Very interesting. DecodeIR is definitely a dead end; for many different reasons.3FG wrote:Clearly the decode of RCA(old) is erroneous. I took a quick look at DecodeIR.cpp and from what I can see, if a protocol is recognized as gap with 24 bits, and hasn't been identified as some other protocol, it defaults to RCA. In this case the leadin more closely resembles RCA(old), so that's what DecodeIR calls it.
In truth I've never understood how DecodeIR works, especially the routine that decode gap type signals. I understand/remember even less now. I've handled the 2.42 through 2.45 versions of DecodeIR, but I am no longer willing to work on it, partly because it is pretty difficult and partly because I am close to providing a public version of a Java program which decodes IR signals using a single decoding engine which takes descriptions of IR protocols from an ASCII file. For me, it is much easier to understand, and should allow anybody to add protocols. However, it is not a direct plug-in replacement for DecodeIR.
Actually, I am also working along these lines.
I am working on a program, tentatively called IrpTransmogrifier, that will among other things. do something like this. Project page and sources at Github. It is reasonably well described there, let me just stress that there is one data base, basically an XML version of IrpProtocols.ini that is used both for rendering and decoding. There can also be a number of other parameters, for example for decoding, in that file.
Feedback and cooperation welcome.