Results 1 to 5 of 5

Thread: About developing a plugin for the Creative iNFRA CD series

  1. #1
    Join Date
    Aug 2002
    Location
    Argentina
    Posts
    3

    Default About developing a plugin for the Creative iNFRA CD series

    Hi, I'm new to the forum.

    I just installed a machine with Windows XP and I fitted my old CD2421E into it. Wanting to give it more functionality I found Girder (nice proggie by the way but was disappointed no one had developed a plugin for it.

    The reason apparently being that there is no tech. info on it and Creative hasn't provided anybody with any.

    So I started doing some reverse engineering and I found that the file CTInfra.dll that comes with the Creative Infra Suite has all the code that connects to the drive and it even has a VERY simple DISPATCH interface to the remote!!

    Well, I just started playing with Girder today, and to be honest I can't dedicate too much time developing this plugin. But if anybody with more Girder and IR experience needs my help I would gladly contribute some time. Although I have no Girder plugin experience I'm betting it's gonna be a breeze developing a plugin that binds with the existing CTInfra.dll

    Here's some TypeLib inspiration...

    dispinterface IRmSource {
    properties:
    methods:
    [id(0x00000001), helpstring("method Connect")]
    void Connect(
    [in] unsigned long dwRegThreadID,
    [in] IUnknown* pUnkEventSink,
    [in] unsigned long Port);
    [id(0x00000002), helpstring("method PauseConnect")]
    void PauseConnect();
    [id(0x00000003), helpstring("method ResumeConnect")]
    void ResumeConnect();
    [id(0x00000004), helpstring("method Disconnect")]
    void Disconnect();
    [id(0x00000005), helpstring("method RegisterIrm")]
    void RegisterIrm(
    [in] IUnknown* hIrmWnd,
    [in] unsigned short wIrmMsg);
    [id(0x00000006), helpstring("method UnregisterIrm")]
    void UnregisterIrm();
    };

    dispinterface IEventSink {
    properties:
    methods:
    [id(0x00000001), helpstring("method EventSink")]
    void EventSink(
    [in] unsigned long dwKeyEvent,
    [in] unsigned long dwErrorCode);
    };

  2. #2
    Join Date
    Aug 2002
    Posts
    2

    Default plug-in for Creative iNFRA IDE CDROM drives

    Hi forum, Sebastian.F,

    I'm also interested in developing the plug-in for Creative iNFRA IDE CDROM drives with built in IR transcievers, in my free time. I've a couple of those drives. I'll start to try the dll and Girder. Your help is greatly appreciated.

    thank you
    Ravi

  3. #3
    Join Date
    Aug 2002
    Location
    Argentina
    Posts
    3

    Default CTInfra.dll

    I tried instancing some of the class libraries in the dll through with javascript code and it worked fine.

    I didn't do much. I just called a function - CTInfraDLL.CDrom.GetDriveList() - that returned a String with available drive letters. Since the drive is not in a development machine and there's a single CD drive in it. I can't tell if it only returns iNFRA drives or all cd drives in the machine.

    However it's a start as far as playing around with the code. Also a dissasembly of the dll, showed me that the code can handle both cd drives and serial interfaces to the remote! I didn't look much deeper but apparently after binding through one or the other the rest of the code behaves the same. So maybe it's possible to use the MidiSysEx plugin, but this is a big maybe since I have no idea how that plugin works, I just know it's supposed to handle iNFRA remotes somehow.

    Sebastian

  4. #4
    Join Date
    Sep 2002
    Location
    Eindhoven
    Posts
    10

    Default Re: CTInfra.dll

    Quote Originally Posted by sebastianf
    So maybe it's possible to use the MidiSysEx plugin, but this is a big maybe since I have no idea how that plugin works, I just know it's supposed to handle iNFRA remotes somehow.
    But I do
    The Live!Drive IR actually is a MIDI devices that sends System Exclusive (SysEx) messages. As far as I know, the iNFRA remotes do not. I don't have one, so monitoring your system with a MIDI monitor (eg midi-OX) could help, but in that case, also MidiSysEx should pickup those messages.

    Fact is, that the Live!Drive receives and recognises codes send with the remote bundled with the iNFRA drives, but uses another technique to handle them.
    Creator of MidiInSysEx plugin - For Live!Drive IR remote support

  5. #5
    Join Date
    Aug 2002
    Location
    Argentina
    Posts
    3

    Default Re: CTInfra.dll

    Quote Originally Posted by v
    The Live!Drive IR actually is a MIDI devices that sends System Exclusive (SysEx) messages. As far as I know, the iNFRA remotes do not.
    ...
    Fact is, that the Live!Drive receives and recognises codes send with the remote bundled with the iNFRA drives, but uses another technique to handle them.
    Since the drives send the messages through the IDE bus, (through polling or interrupts, nobody seems to know...) there is no way they would get redirected to the MIDI driver, if the messages are anything like MIDI at all.

    The only reason I suspect they could be similar is by browsing (very lightly) through a dissasembly of the DLL. There I found that the code chechs for either a serial interface or a cd drive when starting. This hints the messages could be similar, unless there is an high-level abstraction layer in between the code I saw and the hardware.

    Unfortunately, I had to send the machine with the drive to my sister so I no longer have it with me for testing. I still can help with the dissasembly if anyvbody else is willing to write some code.

    Seb

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •