Main > Audio/Jukebox/MP3 Forum

Plugins: Document API for JukePlugSys

<< < (58/80) > >>

Space Fractal:
System data might been used in MultiJuke if rest of the songs in a album was added when a user choiced a song in MulJuke when the no songs is in queue or is curretly played ("no songs is playing"). Im not sure you have have use of it, so you might just set that system to zero. SONG_NEXT is basically the same as first song in queue (even it might been changed by the user).

The AND should read as AND/OR abot the FOCUS (NOT just ADD), MultiJuke send the command when ONE of them was "activated", not wait when both a accoured. It could been better distripted in the document. That is how I used these commands.... Otherwice I and LoadMand have no clue when your software have been minimezed and maximazed, if he want to use these functions.

JUKE_SONGLIST_CLEAR should not been needed here. I personly recommered you to just send empty data. But I guess both methods might works, but last one might been safer.


BTW. I could elsewice add "JUKE_APP_SUSPEND" and "JUKE_APP_RESTORED" as alternative names to these focus commands? Or should I rename to these to? OK with others (I ask that because it now over V1.0 and wont change without I heard).

unclet:

--- Quote ---JUKE_SONGLIST_CLEAR should not been needed here. I personally recommend you to just send empty data. But I guess both methods might works, but last one might been safer.
--- End quote ---
Actually I think plugin authors should be able to handle both of these cases.  If they get a SONG_NEXT command with empty data, then they know there is no "next" song.   If they get a SONGLIST_CLEAR command then they should understand there is no next song either.   As a result, I will leave it up to the plugin authors to code for both cases.



--- Quote ---BTW. I could otherwise add "JUKE_APP_SUSPEND" and "JUKE_APP_RESTORED" as alternative names to these focus commands? Or should I rename to these to? OK with others (I ask that because it now over V1.0 and wont change without I heard).
--- End quote ---

If we use these commands differently then it still does not matter what you call the commands themeselves ... the problem would be that be do not implement them the same.

What I mean is ...... if MultiJuke is going to use the "LOSTFOCUS" command to indicate the folllowing two things:

1) Application no longer has the focus
2) Application has been minimized

... and my software is only going to use it to support (2), then we are both not implementing this command the same way which would be bad.  As a result, since I can not support (1) then I decided not to support the "LOSTFOCUS" command at all.

 I can only inform the plugin when the application has been "minimized" and "restored".  If you want to add commands (or rename the current ones to) "JUKE_APP_MINIMIZED" and "JUKE_APP_RESTORED" then I can use them, otherwise it will not work for me. 

The correct way to handle this is to keep the "GAINFOCUS" and "LOSTFOCUS" commands, but also add two new commands called "JUKE_APP_MINIMIZED" and "JUKE_APP_RESTORED".    If you do this then the jukebox software can clear indicate what they are doing to the plugin.


Space Fractal:
I add these two commands, so the SDK would still been backward combatible. No need to change the code again.

I can't do sent a SONGLIST_CLEAR from MultiJuke, but only clear the SONG_NEXT info... But for your application its a good idea to use both commands.

That is why I next week will finish a songlist based plugin to test the queue/playlist system ised in various system and make sure it doing that correct....

unclet:

--- Quote from: Space Fractal on January 19, 2008, 10:46:07 am ---I add these two commands, so the SDK would still been backward combatible. No need to change the code again.

I can't do sent a SONGLIST_CLEAR from MultiJuke, but only clear the SONG_NEXT info... But for your application its a good idea to use both commands.

That is why I next week will finish a songlist based plugin to test the queue/playlist system ised in various system and make sure it doing that correct....


--- End quote ---

Good .....  I will support the new commands now.


Here is my new command set:

BLUE = supporting
RED = NOT supporting.   


--- Quote ---PCHAR  Juke_GetPluginInfo();
int    Juke_Initialize(value);
int    Juke_Shutdown(value);
int    Juke_Configure(HWND hWndParent);
PCHAR  Juke_Command(Pchar Namer, PChar Value);

Juke_Command("JUKE_APP_GAINFOCUS","")
Juke_Command("JUKE_APP_LOSTFOCUS","")
Juke_Command("JUKE_APP_RESTORED","")
Juke_Command("JUKE_APP_MINIMIZED","")
UNICODE_SUPPORT$=Juke_Command("JUKE_APP_UNICODE","TRUE or FALSE")
Juke_Command("JUKE_APP_HOST","SOFTWARE NAME")

Juke_Command("JUKE_SONGLIST_ADD_SONG","system|postition|title|artist|album|genre|totalDuration|TrackNr|AlbumNr|more")
Juke_Command("JUKE_SONGLIST_REMOVE_SONG", "position")
Juke_Command("JUKE_SONGLIST_MOVE_SONG", "oldPosition|newPosition")
Juke_Command("JUKE_SONGLIST_CLEAR", "")
Juke_Command("JUKE_SONGLIST_CURRENTPOSITION", "position")
SuggestionFile=Juke_Command("JUKE_SONGLIST_SUGGESTION", "LastPlayedFile")

Juke_Command("JUKE_SONG_START","system|title|artist|album|genre|totalDuration|TrackNr|AlbumNr")
Juke_Command("JUKE_SONG_NEXT","system|title|artist|album|genre|totalDuration|TrackNr|AlbumNr")
Juke_Command("JUKE_SONG_FINISH","")
Juke_Command("JUKE_SONG_RESTART", "")
Juke_Command("JUKE_SONG_SKIP","")
Juke_Command("JUKE_SONG_PAUSE","")
Juke_Command("JUKE_SONG_RESUME","")
Juke_Command("JUKE_SONG_PLAYMODE", "modeTextString")
Juke_Command("JUKE_SONG_FASTFWD_START","")
Juke_Command("JUKE_SONG_FASTFWD_FINISH","")
Juke_Command("JUKE_SONG_FASTREV_START","")
Juke_Command("JUKE_SONG_FASTREV_FINISH","")
Juke_Command("JUKE_SONG_PLAY_POSITION",curPosSecs|totalDuration)

Juke_Command("JUKE_ENTER_ALBUM_VALUE", "VALUE")
Juke_Command("JUKE_ENTER_TRACK_VALUE", "VALUE")

Juke_Command("JUKE_VOLUME_CHANGE", "system|curVolumeLevel|minVolumeLevel|maxVolumeLevel")
Juke_Command("JUKE_VOLUME_MUTE", "TRUE or FALSE")

JukeCommand("JUKE_PLUGIN_EVENT_CREATE", "PLUGIN_EVENT_(name)|valueStr")

    where "PLUGIN_EVENT_(name)|valueStr" can be one of the following:

    PLUGIN_EVENT_APP_EXIT|""
    PLUGIN_EVENT_PLAY|""
    PLUGIN_EVENT_PAUSE|""
    PLUGIN_EVENT_FASTREV|"KEYDOWN KEYUP"
    PLUGIN_EVENT_FASTFWD|"KEYDOWN KEYUP"
    PLUGIN_EVENT_SKIP|""
    PLUGIN_EVENT_VOLUMESET|"NUMBER"
    PLUGIN_EVENT_VOLUMEMUTE|"ON OFF"
    PLUGIN_EVENT_VOLUMEUP|"KEYDOWN KEYUP"
    PLUGIN_EVENT_VOLUMEDOWN|"KEYDOWN KEYUP"
    PLUGIN_EVENT_SONGQ_CLEAR|""
    PLUGIN_EVENT_SONGQ_REPEAT|"ON OFF"
    PLUGIN_EVENT_IDLEPLAY_ACTIVATE|"ON OFF"
    PLUGIN_EVENT_ENTERSEL_DIGIT|"NUMBER"
    PLUGIN_EVENT_ENTERSEL_CLEAR|""
    PLUGIN_EVENT_ENTERSEL_DELETE|""
    PLUGIN_EVENT_ENTERSEL_PLAY|""
    PLUGIN_EVENT_ALBUM_COVERS_FLIP_BACKWARD|""
    PLUGIN_EVENT_ALBUM_COVERS_FLIP_FORWARD|""

Juke_Command("JUKE_PLUGIN_EVENT_SEND", "PLUGIN_EVENT_(name)|valueStr")

    where "PLUGIN_EVENT_(name)|valueStr" can be one of the following:
   
    PLUGIN_EVENT_APP_EXIT|""
        (application has exited)
   
    PLUGIN_EVENT_SONGQ_REPEAT|"ON" or "OFF"
        (song queue repeat button is turned ON/OFF)
   
    PLUGIN_EVENT_IDLEPLAY_ACTIVATE|"ON" or "OFF"
        (idle play button is turned ON/OFF)

    PLUGIN_EVENT_ALBUM_COVERS_FLIP_BACKWARD|""
        (album covers were flipped backward)

    PLUGIN_EVENT_ALBUM_COVERS_FLIP_FORWARD|""
        (album covers were flipped forward)



retValStr = Juke_Command("JUKE_PLUGIN_EVENT_GET", "")

    where "retValStr" is of the format "PLUGIN_EVENT_(name)|valueStr" and can be one of the following:
   
    PLUGIN_EVENT_APP_EXIT|""
        (application should exit)

    PLUGIN_EVENT_PLAY|""
        (click the PLAY media button)

    PLUGIN_EVENT_PAUSE|""
        (click the {AUSE media button)

    PLUGIN_EVENT_FASTREV|"KEYDOWN" or "KEYUP"
        (KEYDOWN = start fast reversing the song)
        (KEYUP   = stop  fast reversing the song)

    PLUGIN_EVENT_FASTFWD|"KEYDOWN" or "KEYUP"
        (KEYDOWN = start fast forwarding the song)
        (KEYUP   = stop  fast forwarding the song)

    PLUGIN_EVENT_SKIP|""
        (click the SKIP media button)

    PLUGIN_EVENT_VOLUMESET|"NUMBER"
        (set the volume level directly)

    PLUGIN_EVENT_VOLUMEMUTE|"ON" or "OFF"
        (turn volume mute ON/OFF)

    PLUGIN_EVENT_VOLUMEUP|"KEYDOWN" or "KEYUP"
        (KEYDOWN = start increasing the volume)
        (KEYUP   = stop  increasing the volume)

    PLUGIN_EVENT_VOLUMEDOWN|"KEYDOWN" or "KEYUP"
        (KEYDOWN = start decreasing the volume)
        (KEYUP   = stop  decreasing the volume)

    PLUGIN_EVENT_SONGQ_CLEAR|""
        (click song queue CLEAR button)

    PLUGIN_EVENT_SONGQ_REPEAT|"ON" or "OFF"
        (turn song queue repeat button ON/OFF)

    PLUGIN_EVENT_IDLEPLAY_ACTIVATE|"ON" or "OFF"
        (turn idle-play activate button ON/OFF)

    PLUGIN_EVENT_ENTERSEL_DIGIT|"NUMBER"
        (click specific enter selection number button)

    PLUGIN_EVENT_ENTERSEL_CLEAR|""
        (click CLEAR enter selection button)

    PLUGIN_EVENT_ENTERSEL_DELETE|""
        (click DELETE enter selection button)

    PLUGIN_EVENT_ENTERSEL_PLAY|""
        (click PLAY enter selection button)

    PLUGIN_EVENT_ALBUM_COVERS_FLIP_BACKWARD|""
        (flip album covers page backward)

    PLUGIN_EVENT_ALBUM_COVERS_FLIP_FORWARD|""
        (flip album covers page forward)



--- End quote ---

unclet:
headkaze
I have a VB problem I just noticed and perhaps you can help.

problem solved .... nevermind

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version