Jump to content
(Public Beta) HyperSpin 2 is now available for everyone ×

HyperSpin Event Dispatch System (EDS)


Antos

Recommended Posts

Posted

Thanks, can you please confirm that EDS is working fine for you?

HyperMarquee & Event Dispatch System

  • Replies 686
  • Created
  • Last Reply
  • 2 weeks later...
Posted

NEWS UPDATE - 2014/08/11 EDS (Beta Release version 0.6.6) is now available for download. This is an evaluation version for beta testers only.

Improvements

- Minor Graphical User Interface update

- Minor bug fixes

- User Guide - minor updates

HyperMarquee & Event Dispatch System

  • 1 month later...
Posted

Your EDS is amazing, I've been playing around with it since the first version. I find it very flexible, in terms of using it with all kinds of apps.

It's allowed me to display and make game content specific to my needs. Here is a video of how I'm using it. Thanks Antos!

Posted
Your EDS is amazing, I've been playing around with it since the first version. I find it very flexible, in terms of using it with all kinds of apps.

It's allowed me to display and make game content specific to my needs. Here is a video of how I'm using it. Thanks Antos!

Thank you mmg1design for taking the time to put this awesome video together. That is a perfect example of why EDS has been created and what it can achieve for the benefit of the spinner community.

I can't let this post goes away without underlying and thank all the stunning work accomplished by the artistic partners. You are providing a divine dimension to our gaming experience.

Keep spinning safely!

HyperMarquee & Event Dispatch System

Posted
Your EDS is amazing, I've been playing around with it since the first version. I find it very flexible, in terms of using it with all kinds of apps.

It's allowed me to display and make game content specific to my needs. Here is a video of how I'm using it. Thanks Antos!

WOW... Dude that's freaking awesome. Personally I'd consider the superwide marquee screen to display that stuff instead but either way what you have done with the EDS is a fantastic showcase of why this little project is so impressive.

Posted
Just wanted to say that I like this program.

One request can you monitor which system is active in the main menu like HyperSpeech does it. I know hyperspeech looks at the video files, but the theme zip files would be a better indicator for the main menu.

Ok sure. Many users asked for it. I understand that EDS would be a more complete app with this feature. I will be happy to develop it if someone can support me with the research part. R&D takes time and I am already involved on many other initiatives. But with some support, I will be happy to include this in EDS and give the credits that it diserve. I am looking for the best, or at least a good, defined methodology to translate it into code. Idealy a trigger methology on file access, but I am less enthousiastic of a loop that check which files are open within a specific folder for performance reasons. Let me know, thanks in advance.

HyperMarquee & Event Dispatch System

Posted

Check FileSystemWatcher:

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher%28v=vs.110%29.aspx

But I think from Vista onwards it requires you to enable a setting in the registry, which is disabled by default due to performance reasons, so might not be such a good idea to enable it anyway.

Here's a good example for you to check:

http://www.codeproject.com/Articles/26528/C-Application-to-Watch-a-File-or-Directory-using-F

You can also take a look at this Win32 function:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724509%28v=vs.85%29.aspx

Posted

Thanks brolly,

Bad news, here are my results on the 3 proposed options.

1. I have try the first proposed solution, "Check FileSystemWatcher", did a Registry update and reboot, this approach do not work. This site explains why.

http://stackoverflow.com/questions/14779616/filesystemwatcher-used-to-watch-for-folder-file-open

2. I have try the second proposed solution.

This approach do not work either since it is based on the same technology of option 1.

3. NtQuerySystemInformation could be the way to go, but it is not trigger based and not simple to develop.

Also we need to consider this note from Microsoft: NtQuerySystemInformation may be altered or unavailable in future versions of Windows (not good)

According to what I understand, there is a need to create a loop to check each millisecond if a file is open. Yak.. :argh:

Sadly, this is the most time consuming one to develop too.

I will see what I can do, if someone likes challenge, please help.

I think the easiest and simpler solution would be Handle v4.0 (Windows sysinternals) published on September 2014 from Microsoft partner.

I believe HyperSpeech is using that route too. Can someone has some code snippet?

http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx

HyperMarquee & Event Dispatch System

Posted
Thanks brolly,

Bad news, here are my results on the 3 proposed options.

1. I have try the first proposed solution, "Check FileSystemWatcher", did a Registry update and reboot, this approach do not work. This site explains why.

http://stackoverflow.com/questions/14779616/filesystemwatcher-used-to-watch-for-folder-file-open

2. I have try the second proposed solution.

This approach do not work either since it is based on the same technology of option 1.

3. NtQuerySystemInformation could be the way to go, but it is not trigger based and not simple to develop.

Also please note (from Microsoft): NtQuerySystemInformation may be altered or unavailable in future versions of Windows (not good)

According to what I understand, there is a need to create a loop to check each millisecond if a file is open. Yak.. :argh:

Sadly, this is the most time consuming one to develop too.

I will see what I can do, if someone likes challenge, please help.

You could stop and start the loop based on the reception of the 3 and 4 commands received from hyperspin. The 8 command may be applicable too but I don't know how you would incorporate it.

Posted

I don't think Handle would solve your problem you still need a timer/thread and then run Handle on each call, you don't need to run it on each millisecond though, I'd say somewhere between 50 to 100ms should be good enough.

Handle is a CLI tool, so you'd need to call it and then parse the output each time, doesn't seem it would be any more efficient than loading a list of FileInfo objects of the themes folder at startup and on each timer call sort that list by LastAccessTime (even though you might need to refresh it first on Vista an higher), I'm guessing this would be faster than running Handle and parsing the output each time it's not like you'll have an insane amount of main menu themes.

Like ghutch said you only need to have the timer/thread active when you are inside the main menu wheel so there's no need to have it running all the time.

Posted
I don't think Handle would solve your problem you still need a timer/thread and then run Handle on each call, you don't need to run it on each millisecond though, I'd say somewhere between 50 to 100ms should be good enough.

Handle is a CLI tool, so you'd need to call it and then parse the output each time, doesn't seem it would be any more efficient than loading a list of FileInfo objects of the themes folder at startup and on each timer call sort that list by LastAccessTime (even though you might need to refresh it first on Vista an higher), I'm guessing this would be faster than running Handle and parsing the output each time it's not like you'll have an insane amount of main menu themes.

Like ghutch said you only need to have the timer/thread active when you are inside the main menu wheel so there's no need to have it running all the time.

Thanks brolly, unfortunately LastAccessTime (from solution 1 & 2) does not work at all. Try it, and you will see what I mean. I tried it, and spent few hours on internet to see why. Because I do not have the time to find a working solution, I asked for support. But I did it finally. Now, if someone has better, I will take it. But I am asking to people, if they have the time and they like, to go a step further and test what they found to see if is a feasible solution (poof of concept kind of). That would be awesome and very helpful.

Else, I will do it, no worries.

Another R&D that I would like support for, it's about playing video with alpha channel within .Net (for Hypermarquee transitions and Theme). I spent days on this one and couldn't find anything. The best solution that I found and implemented so far is to code a shader in HLSL language using direct X to covert a given color (Color Alpha Key) to transparent. It is working well and it is powerful because it uses the pipeline and GPU of the graphic card, but this is not as good looking as full Alpha channel per pixel. I added a MacroMedia object into .Net without success, then I added VLC in .Net without success, then tried WMP with custom codex, no can do...

HyperMarquee & Event Dispatch System

Posted
flv is the only video codec that supports transparency. So um find an open source flv video player and copy what they did.

actually .avi, .mov and .gif also support transparency. That is strange for .avi because it is a Microsoft format, and none of Microsoft player support alpha channel but Macromedia flash does. Go figure.. ?!

HyperMarquee & Event Dispatch System

Posted
Thanks brolly, unfortunately LastAccessTime (from solution 1 & 2) does not work at all. Try it, and you will see what I mean. I tried it, and spent few hours on internet to see why. Because I do not have the time to find a working solution, I asked for support. But I did it finally. Now, if someone has better, I will take it. But I am asking to people, if they have the time and they like, to go a step further and test what they found to see if is a feasible solution (poof of concept kind of). That would be awesome and very helpful.

Oh I see, I didn't realize LastAccessTime didn't work as well, thought it would be only the watcher notifications that were disabled. They both work fine under XP though, it's from Vista on that they disabled it by default.

We would need HyperSpin to change the LastAccessTime in the actual files once they are loaded for this to work and this will never happen of course, so yeah this solution won't work for everyone not on XP.

I guess you'll need to look at processes locking the files then, this is assuming HS locks the files it's currently using.

Posted
Oh I see, I didn't realize LastAccessTime didn't work as well, thought it would be only the watcher notifications that were disabled. They both work fine under XP though, it's from Vista on that they disabled it by default.

We would need HyperSpin to change the LastAccessTime in the actual files once they are loaded for this to work and this will never happen of course, so yeah this solution won't work for everyone not on XP.

I guess you'll need to look at processes locking the files then, this is assuming HS locks the files it's currently using.

Yeah, I am testing Handle.exe based on what you proposed. I will be set on this option pretty soon. But I know it will work... :) thanks.

Ok, I just got myself green tea and I am currently coding this... I will post results when I have something interesting. That was probably the kick in the butt that I needed.

HyperMarquee & Event Dispatch System

Posted

** UPDATE **

Good news!

Got it working as a proof of concept. Create an handle on HyperSpin.exe and it gives me all the processes the HS owns. In particular the current playing *.flv (exactly what we looking for, bingo)

First observation, this is a bit slow, but still acceptable.

Next step, develop something usable for EDS. Few days of work, should be ready next week!

HyperMarquee & Event Dispatch System

Posted
i'm guessing the main menu theme zip watching didn't work?

I am testing this right now, and theme.zip doesn't work best here. The reason is the way handle.exe works. For a give time, it checks which files HyperSpin.exe has open. The current playing video has 100% chances to be open when you check. But the theme.zip is open, transferred into RAM and then get released right after. So I have to check at the right fraction of second before it's too late. Unlikely. Let me know if you can find a better indicator that the video. tx.

HyperMarquee & Event Dispatch System

Posted

I doubt wheels will work as they are all loaded together once the main menu is up. Videos should be ok though, it's not likely you are missing a main menu video and if you are you can easily replace by some video, personally I use static video.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...