So, what is the purpose of the DecodeIR.dll? Is it a static data structure or does it go beyond that and actually perform calculations based on data passed to it?
Regards,
Craig
Moderator: Moderators
Thankyou for pointing me to the JP1-KM group - I would never have known it existed. Taking a look at the (earlier) DecodeIT.DLL source helps a lot in understanding what is going on. Gotta love pattern recognition at the bit leveljohnsfine wrote:The C++ source code is posted in the Yahoo JP1-KM group (a few rev's obsolete at the moment, but I'll update it again soon).
It performs massive calculations based on the data passed to it.
If you had any clue at all what is going on in that messy C++ code, that soon after first looking at it, you must be quite an experienced C++ programmer and we should be working on convincing you to contribute to some of the group's half finished (or half baked) programming projects.Token User wrote:Taking a look at the (earlier) DecodeIT.DLL source helps a lot in understanding what is going on.
I took a long time to get used to C++. I'm still upset by flaws in the design of the langauge every day that I work with it (something I didn't feel when I was a professional C programmer). But software engineering has changed and C is no longer enough. My opinion of C++ is that it is a horrid misdesigned piece of garbage that unfortunately is better than any other available language for writing serious projects.Token User wrote:FWIW - Despite the fact I can read C++, I hate it, and prefer to use plain vanilla K&R C in preference.
Try writing an extender or an RC6 protocol in S3C80 assembler and "tight code" can take on meanings you never imagined. But actually please don't. We need Java programming a lot more at the moment.Token User wrote:It amazing the appreciation for tight code you get when you are constrained in memory/MHz.
There are a lot of applications in which the C or C++ implimentation drowns in the problem of remembering which dynamically allocated objects still have owners. Java just eliminates the problem. I also find the use of "super" a vast improvement over C++ when you are evolving your inheretance structure as you evolve the project. Java also avoids all sorts of declaration sequencing nightmares you hit when objects need to know about each other non hierarchically.Token User wrote: I do enjoy Java as a language though
I'd advise against it. decodeIR would be pretty slow in anything but C++. The code that I haven't posted in source yet is even slower. I have plans for more changes that will make it slower still. Later, I MIGHT do some things I've been planning that involve very complicated templating combined with some very non_object_oriented tricks with pointers, all of which should greatly improve the speed and make it REALLY hard to port to anything but C++.Token User wrote: Before I throw my hat in the ring as a contributor, I'll poke around the code some more. A first pass might be to translate the DecodeIR code from C++ to Java.
But I don't think I was asking you to touch Delphi (sorry Mark, no insult intended).Token User wrote:But, but, but ... ir.exe is written in *shudder* Delphi. I haven't touched Delphi (or more particularly its older brother Pascal) since I was an undergrad.
Actually, I wasn't thinking of touching the Delphi code either (btw - nice code Mark, even without touching Pascal for over 10 years it all came flooding back to mejohnsfine wrote:But I don't think I was asking you to touch Delphi (sorry Mark, no insult intended).
Hmm, sounds like a job for a well defined XML file ... could provide a nice foundation for a unified toolset between Prontos and OFA style remotes. Sort of a "one file define them, and in darkenss bind them" type of deal.johnsfine wrote:BTW, on that IR_saved_file topic, the big feature request (actually the enabling technology for lots of otherwise easy things that users have as many "unrelated" feature requests) is to tack on some kind of addendum to that file format, so that it doesn't just store an eeprom image but also stores the reasons for things in the image (The fact that a KeyMove was tied to a specific upgrade. The name of the function in some other KeyMove. The name of a learned signal. The function of a macro. The brand and model that a device mode is being used for, etc.).