I have read the data sheet you provided in the link. It provides enough details to build our own library, by continuosly monitoring at rising/falling edges,and their pulse duration and then decoding it.
As of me, we should use interrupt to handle this, attach an ISR in the code to handle the rest. I can develop the library.
We can discuss more on chat