Updated iMON (Soundgraph) LCD Driver (1 Viewer)

Status
Not open for further replies.

chemelli

Retired Team Member
  • Premium Supporter
  • September 28, 2006
    6,159
    2,264
    50
    Milano, Italy
    Home Country
    Italy Italy
    The new driver works for both VFD and LCD but for the first one you need the code to point to SG_VFD.DLL version 3.x and for the second you need to point to SG_LCD.DLL version 5.x.

    Absolutely, positively 100% incorrect!

    The SG_LCD.dll is just a renamed copy of SG_VFD.dll v5.x... The driver no longer uses the SG_VFD.dll due to concerns that updating the SG_VFD.dll caused problems for the IR remote receiver ( which I have still not been able to duplicate).

    Also, The VFD will work with any version of the SG_VFD.dll... Up to and including the v6.2beta that SG is currently testing (although the beta creates other problems)...

    The issue seems to be something other than the interop assemblies (the DLL files)... (maybe old versions of the system driver??)

    cybrmage, I mean to say that:

    1) VFD(old ones) = SG_VFD.DLL 3.x
    2) LCD(new ones) = SG_VFD.DLL 5.x

    I'm not able to have my old VFD work with a new SG_VFD.DLL and your driver, even if in my system there is the new one working with both iMON test tool and MCE.

    This is not the actual code flowchart....

    What do you mean??? please explain.

    I mean that you need to force users to select VFD or LCD. Ones selected the VFD needs to use SG_VFD.DLL 3.x to be sure to avoid any dought, LCD needs to use SG_LCD.DLL >5.x.

    Can you modify the code so when VFD is selected the corresponding DLL is used, and same when LCD is selected the correct SG_LCD.DLL is used ? This will for sure make your driver works 100% times with both type.

    I also think that because you need to select the port you can also select the type and avoid any issue with autodetection and his SG_IR.DLL....

    Just my idea to contribute.

    Simone

    P.S.> I managed to find some info on Graphic EQ for iMON. Can you review my post (https://forum.team-mediaportal.com/showpost.php?p=195216&postcount=1) and verify if it can be implemented please ? :D in advance for your work.

    cybrmage, JoeDalton,

    I took the time to review the source and I understood where the problem is: the same DLL is used for both VFD and LCD and this is why is not working.

    I suggest a similar philosofy change to the source:

    if( (_DisplayType = DisplayType.VFD & IsOpenVFD()) | (_DisplayType = Display.LCD & IsOpenLCD()) )
    {
    Log.Debug("IDisplay(API) iMONLCDg.Setup() - iMON Display found");
    if(_DisplayType = DisplayType.VFD)
    CloseVFD();
    else
    CloseLCD();
    }

    This will define different functions ( IsOpenVFD/IsOpenLCD, OpenVFD/OpenLCD ) for different DLL solving all users issues:

    #region Interop declarations SG_LCD.dll

    [DllImport("SG_LCD.dll", EntryPoint = "iMONVFD_Init")]
    private static extern bool OpenLCD(int vfdType, int resevered);

    [DllImport("SG_LCD.dll", EntryPoint = "iMONVFD_Uninit")]
    private static extern void CloseLCD();

    [DllImport("SG_LCD.dll", EntryPoint = "iMONVFD_IsInited")]
    private static extern bool IsOpenLCD();

    [DllImport("SG_LCD.dll", EntryPoint = "iMONVFD_SetText")] // VFD specific
    private static extern bool iMONVFD_SetTextLCD(string firstLine, string secondLine);

    [DllImport("SG_LCD.dll", EntryPoint = "iMONVFD_SetEQ")]
    public static extern bool SetEQLCD(int arEQValue);

    [DllImport("SG_LCD.dll", EntryPoint = "iMONLCD_SendData")] // LCD specific
    public static extern bool iMONLCD_SendDataLCD(ref ulong bitMap);
    // public static extern unsafe bool iMONLCD_SendData(Int64* bitMap);

    #endregion

    #region Interop declarations SG_VFD.dll

    [DllImport("SG_VFD.dll", EntryPoint = "iMONVFD_Init")]
    private static extern bool OpenVFD(int vfdType, int resevered);

    [DllImport("SG_VFD.dll", EntryPoint = "iMONVFD_Uninit")]
    private static extern void CloseVFD();

    [DllImport("SG_VFD.dll", EntryPoint = "iMONVFD_IsInited")]
    private static extern bool IsOpenVFD();

    [DllImport("SG_VFD.dll", EntryPoint = "iMONVFD_SetText")] // VFD specific
    private static extern bool iMONVFD_SetTextVFD(string firstLine, string secondLine);

    [DllImport("SG_VFD.dll", EntryPoint = "iMONVFD_SetEQ")]
    public static extern bool SetEQVFD(int arEQValue);

    [DllImport("SG_VFD.dll", EntryPoint = "iMONLCD_SendData")] // LCD specific
    public static extern bool iMONLCD_SendDataVFD(ref ulong bitMap);
    // public static extern unsafe bool iMONLCD_SendData(Int64* bitMap);

    #endregion


    Use then SG_LCD.DLL >= 5.x anf SG_VFD.DLL = 3.x. I still think that will help logic to force VFD/LCD from the config instead of leaving teh autodetect feature with is dependant from an additional SG_RC.DLL.

    Simone
     

    cybrmage

    Portal Pro
    May 30, 2007
    498
    86
    Home Country
    Canada Canada
    cybrmage, I mean to say that:

    1) VFD(old ones) = SG_VFD.DLL 3.x
    2) LCD(new ones) = SG_VFD.DLL 5.x

    I'm not able to have my old VFD work with a new SG_VFD.DLL and your driver, even if in my system there is the new one working with both iMON test tool and MCE.

    Still incorrect!... I have 5 different systems, all with various versions of iMON and/or VFD... and they ALL drive the VFD with SG_VFD.dll >= 5.x when so configured. so... the problem is something other than the dll that is used.

    I mean that you need to force users to select VFD or LCD. Ones selected the VFD needs to use SG_VFD.DLL 3.x to be sure to avoid any dought, LCD needs to use SG_LCD.DLL >5.x.
    Yes, the LCD needs SG_VFD >= v5.x... but ALL versions SHOULD drive the VFD...

    Can you modify the code so when VFD is selected the corresponding DLL is used, and same when LCD is selected the correct SG_LCD.DLL is used ? This will for sure make your driver works 100% times with both type.
    It looks like you already have... have you tested it??? does it operate correctly with VFD and LCD???

    I also think that because you need to select the port you can also select the type and avoid any issue with autodetection and his SG_IR.DLL....
    You DON'T need to select the port... ALL SG devices (SG Retail and OEM versions) are USB... and they all use the SG_VFD.dll to communicate with the device... The driver ignores the port parameter!

    The SG_RC.dll is NOT needed by the driver... If it is present, it is used to determine the EXACT hardware that is installed in the system... If it is not present, that part of the detection code is not used.


    P.S.> I managed to find some info on Graphic EQ for iMON. Can you review my post (https://forum.team-mediaportal.com/showpost.php?p=195216&postcount=1) and verify if it can be implemented please ? :D in advance for your work.
    That info would be helpful if the plugin was a visualization plugin... but it is a process plugin, so the visualization initialization code can not access the plugin... To get the equalization data, we need to either extract it from the musicplayer/videoplayer module, or be able to self register any equalizer code that is created as a vizualization plugin. Without significant changes to the visualization core or the audio core, I don't think either option is possible at this point.



    I took the time to review the source and I understood where the problem is: the same DLL is used for both VFD and LCD and this is why is not working.
    Again... this is NOT the problem... The dll that is used is not the problem.... The reason that the dll was renamed is that, for some undetermined reason, the newer dll interferes with the remote control in some cases... The dll is not the problem... there is something else causing problems in some situations...


    I still think that will help logic to force VFD/LCD from the config instead of leaving teh autodetect feature with is dependant from an additional SG_RC.DLL.
    The driver is NOT dependant on the SG_RC.dll... It is used if it is available... If it is not available, the iMON or VFD configuration in the windows registry is used to determine what display is connected... If you have installed either the iMON or VFD software, and run it at least once (which you need to do for the device driver to be installed, and for the remote receiver to function) the correct device type will be in the registry... it is almost as reliable as the hardware detection... and you always have the option of forcing the display type.
     

    chemelli

    Retired Team Member
  • Premium Supporter
  • September 28, 2006
    6,159
    2,264
    50
    Milano, Italy
    Home Country
    Italy Italy
    cybrmage,

    I can understand that the DLL is not the problem but just changing it solves the issue ;-)

    Also I modified only one call in the source, not the whole driver so I didn't test it.

    Finally for the SG_RC.DLL I now understand the usage and this is not a issue.
    As soon as I go home I will try using all default values for the driver and only usa a SG_LCD.DLL version 3.x...if this works it's easy to change the code and have the VFD work with it's own old dll.

    Take care that I used the iMON API package from Soundgraph in WindowsVista and it work smoothly with DLL version 3.x, but if I copy the 5.x DLL it doesn't work any more....and it's not MediaPortal...it's Soundgraph original...

    Simone
     

    gibman

    Retired Team Member
  • Premium Supporter
  • October 4, 2006
    2,998
    1,372
    Aarhus
    Home Country
    Denmark Denmark
    Hi gibman,

    I have exactly the same VFD in the same case. I am using V6.00xxxx drivers (cant remember the exact version). You do not need to tell the oem drivers to use 3rd party. Just make sure you have "never use" on the front display options. Again, i cant remember the exact option but it has auto, always or never. I set my imon driver to "never" and its working ok in MP.

    By the way, in MP i select "soundgraph iMon VFD USB Driver V1.0. If you first select "never" in the imon driver and maybe the MP plugin will let you select this "soundgraph" option also.....

    Cheers,
    Colin

    Thanks for the reply.
    I did exactly what u described, and still the same.
    Please remember, this has been working for me for god knows how long.
    But not any more.
    MP setup simply wont acknowledge the 2 different soundgraph imon setups.

    EDIT
    I grabbed the DLL from this archive and unpacked it to MP dir, overwriting the existing one.
    http://www.soundgraph.com/Eng_/Supp...rrentPage=2&searchFiled=BoardID&searchString=
    This almost worked ... MP setup now accepts "soundgraph imon 1.0".
    but MP doesnt show anything until I ticked the "use 3rd party software" checkbox in the imon setup.

    NOW IT WORKS :)

    /Gibman
     

    chemelli

    Retired Team Member
  • Premium Supporter
  • September 28, 2006
    6,159
    2,264
    50
    Milano, Italy
    Home Country
    Italy Italy
    I tried newest MP, did config external plugin.
    The plugins claims the following;

    soundgraph imon vfd usb driver v1.0 ; N/A
    soundgraph imon integrated vfd/lcd usb driver v09_28xxx ; N/A
    imon_vfd; OK

    I downloaded the new test driver;
    iMON_6_20_0830.zip
    Installed Imon, skipped Imedia.
    Put it into plugin mode (3rd party)

    gibman,

    1) Select soundgraph imon integrated vfd/lcd usb driver v09_28xxx and force yout choice under advanced to VFD.
    2) Copy SG_VFD.DLL over SG_LCD.DLL (make a backup ;-)
    3) Set iMON to "never load frontview"
    4) Remove the tick in 3rd party
    5) Reboot

    Let me know if this works or not for you.

    Simone
     

    chemelli

    Retired Team Member
  • Premium Supporter
  • September 28, 2006
    6,159
    2,264
    50
    Milano, Italy
    Home Country
    Italy Italy
    cybermage, JoeDalton, I did a test with a fresh 16330 build install and here the result using the new driver:

    LPT1 + autodetect + DLL v5.x = not working
    LPT1 + autodetect + DLL v3.x = not working
    LPT1 + force VFD + DLL v5.x = not working

    LPT1 + force VFD + DLL v3.x = OK !

    So the autodetect is not working for me. I habe no SG_RC.DLL in MediaPortal directory of course...
     

    cricri31

    New Member
    August 23, 2007
    4
    0
    51
    Home Country
    France France
    Hello all,
    Thank you for your advice, but you can summarize the whole setup for a silverstone VFD 96x16 line (MFP51) with soundgraph soft imon/imedian to mediaportal.
    thank you.....
     

    chemelli

    Retired Team Member
  • Premium Supporter
  • September 28, 2006
    6,159
    2,264
    50
    Milano, Italy
    Home Country
    Italy Italy
    cricri31,

    I'm running a VFD 2x16 line. Isn't 96x16 a LCD instead ?

    Simone
     

    cybrmage

    Portal Pro
    May 30, 2007
    498
    86
    Home Country
    Canada Canada
    Here is a summary of VFD/LCD types... It is NOT a complete list...

    Antec Fusion case - VFD - 2 x 16 text display
    Antec Fusion V2 case - VFD with IR receiver - 2 x 16 text display
    Antec Fusion Black case - LCD with IR receiver - 2 x 16 text and/or 96 x 16 graphic display
    SilverStone GD01MX case - LCD with IR receiver - 2 x 16 text and/or 96 x 16 graphic display
    iMON Ultrabay - LCD with IR receiver - 2 x 16 text and/or 96 x 16 graphic display
    iMON VFD - VFD with IR receiver - 2 x 16 text display
    Thermaltake MediaLab A2331 - VFD with IR receiver - 2 x 16 text display
    Thermaltake MediaLab A2328 - VFD with IR receiver - 2 x 16 text display
    SilverStone MFP51 - LCD with IR receiver - 2 x 16 text and/or 96 x 16 graphic display
    Silverstone LC16S-M - VFD with IR receiver - 2 x 16 text display
    Silverstone LC20B - VFD with IR receiver - 2 x 16 text display
    CoolerMaster CM Media 250 case - VFD with IR receiver - 2 x 16 text display
    CoolerMaster CM Media 260 case - VFD with IR receiver - 2 x 16 text display
    ThermalTake VC4001SNS (Mozart) Case - VFD with IR receiver - 2 x 16 text display
    ThermalTake VC7001SNS (Mozart SX) Case - VFD with IR receiver - 2 x 16 text display
    ThermalTake VC8001xNS (Bach) Case - VFD with IR receiver - 2 x 16 text display
    ThermalTake VF7001 (DH-101) Case - LCD with IR receiver - 2 x 16 text and/or 96 x 16 graphic display
    GMC Noblesse K-1 Muse case - VFD with IR receiver - 2 x 16 text display
    Zalman HD160 case - VFD with IR receiver - 2 x 16 text display
    Zalman HD135 case - VFD with IR receiver - 2 x 16 text display
    3R Systems HT-1100 case - VFD with IR receiver - 2 x 16 text display
    3R Systems HT-1000 case - Custom VFD - 1 x 12 text display with various custom icons - NOT SUPPORTED
     
    Status
    Not open for further replies.

    Users who are viewing this thread

    Top Bottom