WinLIRC 0.9.0i

WinLIRC 0.9.0h

WinLIRC 0.9.0f

WinLIRC 0.9.0e

WinLIRC 0.9.0d

WinLIRC 0.9.0c

WinLIRC 0.9.0b

WinLIRC 0.9.0a

WinLIRC 0.8.7a

WinLIRC 0.8.7

*Skystar2 remote control owners; Read readme.txt in skystar2 folder and just move winlirc.ini from this folder to plugins folder !

WinLIRC 0.8.6b

WinLIRC 0.8.6a

WinLIRC 0.8.6 (based on LIRC 0.8.6) - by Ian Curtis

I've made some quite large changes to WinLIRC. The original program was hard coded to basically use serial recievers. While this was fine for many years, a lot of newer pcs don't have serial ports ! And that presents a big problem. I wanted to build my own simple reciever and support it in the original version of WinLIRC. The audio input reciever would essentially share the same code base as the serial version, as it works with raw timing information. But I came to the conclusion that it would just be too messy to try and
add support for a second reciever, so I redesigned the whole program.

WinLIRC now only acts a server/GUI, and loads config files. All the decoding is now from from within a DLL file. I created a simple C API for this.

#define SI_API __declspec(dllexport)

#ifdef __cplusplus
extern "C" {
#endif

SI_API int init (HANDLE exitEvent);
SI_API void deinit ();
SI_API int hasGui ();
SI_API void loadSetupGui();
SI_API int sendIR (struct ir_remote *remotes, struct ir_ncode *code, int repeats);
SI_API int decodeIR (struct ir_remote *remotes, char *out);

#ifdef __cplusplus
}
#endif

#endif

If you want to add support for a new reciever, just export those functions from a DLL. sendIR and loadSetupGui can be stubbed if needed. Most of the decode code can be taken from the LIRC project. Copy and paste directly.

The init function should create/destroy a thead if needed. In my audio example it doesn't need this, as the Windows API automatically creates a thread for capturing audio, and destroys it again when I stop. The decodeIR function runs in a seperate thread. It runs in the daemon thread from WinLIRC itself, and should be
exited when exitEvent is triggered.

I decided to write all the settings to the INI file, as the program has no uninstaller. Just makes things simpler. The registery is no longer used. If you write a plugin, feel free to put the settings in the same file.

Although not required, the DLLs also export a hardware struct. This struct will contain information that the IRRecord program, when it's done will eventually use. This is slightly different to the standard LIRC one, but near enough. The idea is, the IRRecord program will just be able to load whichever dll you have for your
reciever and you will be able to record input with it.

If you have any problems with this, feel free to email me, or leave a bug report on sourceforge. If you have problems with the serial version, just roll back to the older version which is 0.6.5, since that was the last stable build with the old architecture.

WinLIRC WebPage

http://winlirc.sourceforge.net/