Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: PlugIns: Common Format (initial concept discussion)  (Read 23043 times)

0 Members and 1 Guest are viewing this topic.

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Standardize plugins for Jukebox apps
« Reply #80 on: January 05, 2008, 10:15:56 am »
I through your folks got it working with returned string using a string buffer like 256 bytes? If yes, it can been used with some other commands with same scheme.

Or is it more sending strings to the plugins that is the problem? And not the other way?

If one way worked (plugin -> software), why not use the same method to the other way (also by the plugin here)?

So, Barcrest, I just added a another command to your idea about getting tag info if add2queue() have sent to the plugin with no songinfo at all.
« Last Edit: January 05, 2008, 10:29:43 am by Space Fractal »
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

Barry Barcrest

  • I'm only in it for the lack of money
  • Trade Count: (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1620
  • Last login:November 09, 2021, 09:54:17 am
  • Simple Plan
    • E-Touch Jukebox
Re: Standardize plugins for Jukebox apps
« Reply #81 on: January 05, 2008, 10:51:55 am »
Space fractal :hissy: Don't add anything that requires the plugin to send info the application. We can't do this in visual basic using the dynamic loading of DLLS that we have now.

That is what Headkaze has been saying for the past day or so.

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: Standardize plugins for Jukebox apps
« Reply #82 on: January 05, 2008, 11:09:42 am »
Here is the plugin with all the functions but I had to add a paramter to the functions without one as the (now famously limited) CallFuncPtr() won't allow it.

Code: [Select]
// QUEUE FUNCTIONS

JUKEPLUGIN_API int __stdcall Juke_AddQueue(PCHAR File, int SongTime, int Auto, PCHAR CoverArt, PCHAR Title, PCHAR Artist, PCHAR Album, PCHAR Genre, PCHAR Special);
JUKEPLUGIN_API int __stdcall Juke_QueueClear(int ReSubmit);
JUKEPLUGIN_API int __stdcall Juke_SongSuggestion(PCHAR File);

// STATUS FUNCTIONS

JUKEPLUGIN_API int __stdcall Juke_SongStart(int Value);
JUKEPLUGIN_API int __stdcall Juke_SongEnd(int Skipped);
JUKEPLUGIN_API int __stdcall Juke_SongPlayed(int Seconds);
JUKEPLUGIN_API int __stdcall Juke_SongStatus(int Status);

// APPLICATION INFO

JUKEPLUGIN_API int __stdcall Juke_GetPluginInfo(PCHAR Name, PCHAR Author, PCHAR Version, int UTF8);
JUKEPLUGIN_API int __stdcall Juke_Volume(int Value);
JUKEPLUGIN_API int __stdcall Juke_Initialize(int Value);
JUKEPLUGIN_API int __stdcall Juke_Shutdown(int Value);

// COMMANDS (Eg Play, Skip, VolumeUp VolumeDown, Lock, UnLock)

JUKEPLUGIN_API int __stdcall Juke_Command(PCHAR Name, PCHAR Value);

// CREDIT FUNCTIONS

JUKEPLUGIN_API int __stdcall Juke_AddCoin(int Coins);
JUKEPLUGIN_API int __stdcall Juke_PaidCoin(int Coins);
« Last Edit: January 05, 2008, 11:12:56 am by headkaze »

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Standardize plugins for Jukebox apps
« Reply #83 on: January 05, 2008, 11:24:49 am »
Even If I can dynamic loading the plugins using a special wrapper SDK and use this SDK to visual basic?

I have no problem with dynamic loading in Pure Basic at all. It really designed to doing that way.

I also saw Unclet got it working? I assume he use the same language?

This mean retrieve tagging and the important getinfo() cant been used and got empty strings?

Which command(s) do have a problem?

We need something workaround, since few functions require that (and you cant get your tag idea working that way?).
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

unclet

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3561
  • Last login:March 17, 2025, 11:51:15 am
Re: Standardize plugins for Jukebox apps
« Reply #84 on: January 05, 2008, 12:54:01 pm »
Space Fractal
Since I am using VB, I can not rely on the JukeGetPluginInfo() routine to provide the plugin information.   The CallFuncPtr() routine does not allow data to be passed from the plugin to the software.  No big deal for me.

For the Juke_Command() routine ..... why are we relying on a command.txt file to be created.   Why not create a standard list of set values which can be used in this routine instead.

For example:

JUKE_COMMAND_PLAY
JUKE_COMMAND_VOLUME_UP
JUKE_COMMAND_VOLUME_DOWN
JUKE_COMMAND_PARTY_LOCK_ON
JUKE_COMMAND_PARTY_LOCK_OFF
JUKE_COMMAND_MUTE_ON
JUKE_COMMAND_MUTE_OFF
etc.
etc.

Just a thought .... since I am still not crazy about supporting a "command.txt" file
 







Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Standardize plugins for Jukebox apps
« Reply #85 on: January 05, 2008, 02:15:12 pm »
I have faced into the same problems like you folks when I tried communicate directly. But I have found a work around you should check out.

I have created a PlugMyJuke.dll that is basically a wrapper that read all plugin with it.

I used few more commands and I have created a test plugin with all commands used from the other thread (there was few erros in HeadKaze ones, but it can been used if the command list exists or not).

When you connect PlugMyJuke.dll, you need to invoke Load_Plugins(path$) first with a path$ to the plugin folder.

Then all commands is the same as in SDK wich one exception:
You need to add a plugin number as the first argument for all commands.

Examples:
Juke_Initialize() whould been Juke_Initialize(PluginNumber)
Juke_GetPluginInfo() whould been Juke_GetPluginInfo(PluginNumber, value$)

and so on. I change the list on the other thread to sync this SDK. PlugMyJuke.dll it self should been moved to your main software folder, not the plugin. Hence it need where the plugins is, hence the path.

All commands return a number, if the functions did have some success:

0 = not found.
-1 = plugin found, but not the function.
1 or a string is the functions was invoked.

All sources and files is included in the attachement file. Hope you now got it to work.

By now I use PlugMyJuke as a work name, if it would change to something other.






« Last Edit: January 05, 2008, 02:18:36 pm by Space Fractal »
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Standardize plugins for Jukebox apps
« Reply #86 on: January 05, 2008, 02:21:22 pm »
For the Juke_Command() routine ..... why are we relying on a command.txt file to be created.   Why not create a standard list of set values which can be used in this routine instead.

For example:

JUKE_COMMAND_PLAY
JUKE_COMMAND_VOLUME_UP
JUKE_COMMAND_VOLUME_DOWN
JUKE_COMMAND_PARTY_LOCK_ON
JUKE_COMMAND_PARTY_LOCK_OFF
JUKE_COMMAND_MUTE_ON
JUKE_COMMAND_MUTE_OFF
etc.
etc.

Just a thought .... since I am still not crazy about supporting a "command.txt" file

MutiJuke does not have JUKE_COMMAND_PARTY commands. I think a commands.txt would been better for more effective use of all commands, even some commands in a software is unique.

Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

loadman

  • Wiki Contributor
  • Trade Count: (+3)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4306
  • Last login:May 26, 2024, 05:14:32 am
  • Cocktail Cab owner and MaLa FE developer
    • MaLa
Re: Standardize plugins for Jukebox apps
« Reply #87 on: January 05, 2008, 05:27:16 pm »
Mate you can't send data from the plugin that is a limitation of the CallFuncPtr() function I just left the code in there for other languages. I've said it a few times but noone seems to get it. Maybe I should just remove the PluginInfo code?

This is why unclet was thinking of other ways to send the plugin info like using a text file or having the details in the filename.

Thanks.  I should learn to read  :banghead:

Here is the plugin with all the functions but I had to add a paramter to the functions without one as the (now famously limited) CallFuncPtr() won't allow it.

Thanks  ;D
« Last Edit: January 05, 2008, 05:33:44 pm by loadman »

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: Standardize plugins for Jukebox apps
« Reply #88 on: January 05, 2008, 06:37:52 pm »
I created a new thread about a main dll to been used as well.

Loadman: Can you change both of your thread to starting with Plugins?

I created a new thread due with a new SDK. Since we now have 4 threads, I goes a main title should constring Plugins so they can been easier found.

http://forum.arcadecontrols.com/index.php?topic=75166.0

Later we might have a plug-in forum as a child board to the jukebox section?
« Last Edit: January 05, 2008, 06:54:39 pm by Space Fractal »
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

Arcade Freak

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 69
  • Last login:March 27, 2008, 01:12:06 pm
Re: PlugIns: Common Format (initial concept discussion)
« Reply #89 on: January 14, 2008, 11:29:51 am »
hi guys,

i have been following your conversation since the beginning and its fantastic how people from the four corners of the world can work together on such a project. Give and receive critesizime and still pull together and work to be able to acheive such a project. i think the plugin will be great.

my programming skills are very low (college level 7 years ago) so i didn't dare to join but i am enjoying tremendously.

keep up the great work guys  :applaud:
 
 

Arcade Freak

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 69
  • Last login:March 27, 2008, 01:12:06 pm
Re: PlugIns: Common Format (initial concept discussion)
« Reply #90 on: January 14, 2008, 11:47:19 am »
hi guys,

once this all done, if i get this right is that within unclet jukebox there will be an option to listen to the radio?

then will there be somekind of a default video to go with it or somekind of a screen saver or even a screen from like windows media player...just to fill out the screen?

cheers,
calude

unclet

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3561
  • Last login:March 17, 2025, 11:51:15 am
Re: PlugIns: Common Format (initial concept discussion)
« Reply #91 on: January 14, 2008, 12:48:17 pm »
Hello again   ;)

My jukebox software can be read about at my site:

http://unclet.arcadecontrols.com/Jukebox/index.html

It is a video and/or audio music player.  The majority of people have MP3 files they want to use on my jukebox and that works perfectly, although some people (including myself) have tons of music videos to watch instead of listening to just MP3 tracks.  As a result my jukebox was designed to allow videos as well.  My jukebox has nothing to do with Radio stations though ... sorry.   I prefer to keep my jukebox software to be more like a real jukebox instead of a radio tuner   ;D

Anyway, my software interfaces with WMP to show the videos and hear the audio, so the user will need to have WMP 9.0 (or higher) installed.  If you select a video file to play, then the WMP player window will show you the video.

Anyway, you can download it and play around with the software if you like (link above).  It is packed with various features and settings so you really just need to play around to see if it suits your needs.  I basically just made it to suit my needs by then decided to share it with others.


« Last Edit: January 14, 2008, 12:52:39 pm by unclet »

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: PlugIns: Common Format (initial concept discussion)
« Reply #92 on: January 14, 2008, 10:47:51 pm »
It is a video and/or audio music player.  The majority of people have MP3 files they want to use on my jukebox and that works perfectly, although some people (including myself) have tons of music videos to watch instead of listening to just MP3 tracks.  As a result my jukebox was designed to allow videos as well.  My jukebox has nothing to do with Radio stations though ... sorry.   I prefer to keep my jukebox software to be more like a real jukebox instead of a radio tuner   ;D

I think he's talking about having a plugin that adds radio playback to your Jukebox. But if your using the WMP engine for video playback, then it should be able to play streaming radio since WMP can play that. All you need is the ability to run *.lnk files which are shortcuts to the address of the radio station.

For example right click on your desktop and select New > Shortcut. Paste in http://www.abc.net.au/streaming/triplej.asx as the location and JJJ as the name. Then double click the shortcut and it will play streaming radio through WMP.

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: PlugIns: Common Format (initial concept discussion)
« Reply #93 on: January 15, 2008, 03:01:18 am »
They are ASX files, NOT LNK files.

LNK is just a shortcuts to anyway to a net or harddrive. Some nasty webradio does use flash  :( today, so they cant been used other than a browser, so LNK might been needed, but just hope they dosent use popups (use a blocker).

Otherwice direct links to net radios is ASX and PLS files and both plays fine in Windows Media Player. Just add these extension to add net radio support.
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: PlugIns: Common Format (initial concept discussion)
« Reply #94 on: January 15, 2008, 03:37:06 am »
They are ASX files, NOT LNK files.

LNK is just a shortcuts to anyway to a net or harddrive. Some nasty webradio does use flash  :( today, so they cant been used other than a browser, so LNK might been needed, but just hope they dosent use popups (use a blocker).

Otherwice direct links to net radios is ASX and PLS files and both plays fine in Windows Media Player. Just add these extension to add net radio support.

I understand lnk's are just shortcuts, I just didn't realise what asx files were. But your right you can actually right-click the asx and save them as a file. All it is is a html tag with a link to the stream.

Code: [Select]
<ASX version = "3.0" BannerBar = "FIXED">
   <Entry>
<Ref href = "mms://media3.abc.net.au/triplej"/>
   </Entry>
</ASX>

So if you create a shortcut to mms://media3.abc.net.au/triplej instead it will play the stream directly without any potential popup's.

unclet

  • Trade Count: (+4)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 3561
  • Last login:March 17, 2025, 11:51:15 am
Re: PlugIns: Common Format (initial concept discussion)
« Reply #95 on: January 15, 2008, 07:26:25 am »
Quote
I think he's talking about having a plugin that adds radio playback to your Jukebox. But if your using the WMP engine for video playback, then it should be able to play streaming radio since WMP can play that. All you need is the ability to run *.lnk files which are shortcuts to the address of the radio station.

WMP can do a lot of stuff which has not be incorporated into my jukebox.   Radio playback is one of these features, however, if I do not update my software to interact with WMP to support this feature then that WMP functionality will not be working via my jukebox interface.

WMP also allows playlist lists (like Space Fractal mentioned previously ... I think).  My jukebox does not use the playlist functionality from WMP to manage the songs .... I implemented my own queue instead

Space Fractal

  • Wiki Master
  • Trade Count: (+1)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 1888
  • Last login:September 26, 2023, 11:32:13 am
  • Space Fractal
    • Space Fractal
Re: PlugIns: Common Format (initial concept discussion)
« Reply #96 on: January 15, 2008, 09:38:04 am »
Even WMP and PLS is both a Playlist files, these are also used to send the link to the current streams by some webradios (Like danish DR).... Here not been treated as a normal PlayList. That should been mainstream in WMP automatic.
Decade Old Work: MultiFE, ArcadeMusicBox
Today Works: Various Spectrum Next games from Rusty Pixels and html5 games.