freezy / dmd-extensions

A toolbox for virtual pinball dot matrix displays.
GNU General Public License v2.0
127 stars 54 forks source link

ZeDMD starts screensaver after returning from VPX to Frontend #481

Open pjeantaud opened 4 months ago

pjeantaud commented 4 months ago

Hi Markus,

Thanks for this version 2.2.3.

Here’s my feedback, you can see it on the following video : http://pjeantaud.free.fr/Freezy/Freezy_2-3-3.mov

1) run PinballX, ZeDMD displays the DMD presentation video: OK. 2) lauch a VPX table, ZeDMD initialize, then display the DMD game: OK. 3) exit the game. Under PinballX, ZeDMD does not display anymore the presentation video: KO. 4) run another table, ZeDMD displays the DMD game as in step 2: OK.

So PinballX displays the presentation video on DMD only once. Thank you for you commitment.

Patrick

mkalkbrenner commented 4 months ago

The title should be "ZeDMD starts screensaver after returning from VPX to Frontend".

mkalkbrenner commented 4 months ago

The same has been reported for Pinball Y via discord.

@freezy so it looks like VPX doesn't cause a call to Dispose() if it is closed by the frontend. Or the Frontend doesn't call Init() again to get the connection to the DMD.

I don't think that this is a ZeDMD issue. The only difference between ZeDMD and others might be that a process could not open the connection if another process still "owns" the serial port.

mkalkbrenner commented 4 months ago

@zesinger just told me that people reported in forums that in dmddevice.log:

System.InvalidOperationException: The calling thread cannot access this object because a different thread owns it

@freezy how is dmdext supposed to work with frontends and VPX both accessing DMD devices?

pjeantaud commented 4 months ago

Hello,

FYI, I made some extensive testing on my configuration:

The correct behavior is obtained with Freezy 2.2.1

Versions 2.2.2 and 2.2.3 present the problem described ahead. Thanks all for your commitment.