Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

Song Browser
[Applications]


Detailed Description

song browser application

song-browser introduction
The song browser application is used to browse dcplaya filesystem and a perform specific operation on file depending of the type. The song browser application handles playlist. Normal behaviour is to have only one instance of a song browser application. It is stored in the global variable song_browser.

Author:
benjamin gerard


Files

file  song_browser.lua
 song browser application.


Update Application functions

See also:
dcplaya_lua_app


 song_browser_update_cdrom (var sb, var cd)
 Update CDROM status.

 song_browser_update_loaddir (var sb, var frametime)
 Update the loaddir status.

 song_browser_update_recloader (var sb, var frametime)
 Update the playlist recursive directory loading.

 song_browser_update_playlist (var sb, var frametime)
 Update the playlist running.

 song_browser_update (var sb, var frametime)
 song-browser update handler.

 song_browser_handle (var sb, var evt)
 Song-Browser application handle.


Control functions

 song_browser_asleep (var sb)
 Song-Browser fall asleep.

 song_browser_awake (var sb)
 Song-Browser wakes up.

 song_browser_open (var sb, var which)
 Open (show) Song-Browser.

 song_browser_close (var sb, var which)
 Close (hide) Song-Browser.

 song_browser_shutdown (var sb)
 Song-Browser shutdown.

 song_browser_draw (var sb)
 Redraw Song-Browser.

 song_browser_list_draw_background (var fl, var dl)
 Song-Browser fall asleep.

 song_browser_set_color (var sb, var a, var r, var g, var b)
 Set Song-Browser color.

 song_browser_confirm (var sb)
 Confirm event handler.

 song_browser_cancel (var sb)
 Cancel event handler.

 song_browser_select (var sb)
 Select event handler.

 song_browser_contextmenu (var sb, var name, var fl, var def, var def2, var entry_path)
 Create contextual menu.


Music and playlist functions

 song_browser_stop (var sb)
 Stop current music and playlist running.

 song_browser_play (var sb, var filename, var track, var immediat)
 Start a new music.

 song_browser_run (var sb, var pos, var loop)
 Run the playlist.

 song_browser_loaddir (var sb, var path, var locate)
 Load directory into filelist.

 song_browser_playlist_clear (var sb)
 Clear playlist.

 song_browser_playlist_stop (var sb)
 Stop playlist running.

 song_browser_playlist (var sb, var path, var insert, var run)
 Load/Insert/Append playlist and run it.


File action functions.

 song_browser_ask_background_load (var sb)
 Ask for background library loading.

 song_browser_load_image (var sb, var filename, var mode)
 Load an image on the background.

 song_browser_info_file (var sb, var filename)
 Display a dialog with file information.

 song_browser_view_file (var sb, var entry_path)
 View a file.

 song_browser_edit_file (var sb, var entry_path)
 Edit a file.


song-browser initialization functions.

 song_browser_create_sprites (var sb)
 Create all icon sprites.

 song_browser_create_dcpsprite (var sb)
 Creates some sprites.

 song_browser_create_box (var sb, var box, var style)
 Creates box3d.

 song_browser_create (var owner, var name)
 Create a song-browser application.

 song_browser_kill (var sb)
 Kill a song-browser application.

function song_browser_playlist_actions [run][major-type]
 song-browser playlist action table.

function song_browser_filelist_actions [action][major-type]
 song-browser filelist actions table.


Functions

 song_browser_any_action (var sb, var action, var fl)
 sbfl_confirm (var fl, var sb)
 sbfl_confirm_dir (var fl, var sb, var action, var entry_path, var entry)
 sbfl_confirm_music (var fl, var sb, var action, var entry_path, var entry)
 sbfl_confirm_playlist (var fl, var sb, var action, var entry_path, var entry)
 sbfl_confirm_image (var fl, var sb, var action, var entry_path, var entry)
 sbfl_confirm_plugin (var fl, var sb, var action, var entry_path, var entry)
 sbfl_confirm_lua (var fl, var sb, var action, var entry_path, var entry)
 sbfl_confirm_text (var fl, var sb, var action, var entry_path, var entry)
 sbfl_select (var fl, var sb, var action, var entry_path, var entry)
 sbfl_make_default_menudef (var fl, var sb, var action, var entry_path, var entry)
 sbfl_insert_menu_cb (var menu, var idx)
 sbfl_enqueue_menu_cb (var menu, var idx)
 sbfl_select_default (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_dir (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_music (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_playlist (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_image (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_plugin (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_lua (var fl, var sb, var action, var entry_path, var entry)
 sbfl_menu_text (var fl, var sb, var action, var entry_path, var entry)
 sbfl_cancel (var fl, var sb, var action, var entry_path, var entry)
 sbfl_cancel_default (var fl, var sb, var action, var entry_path, var entry)
 sbfl_view_text (var fl, var sb, var action, var entry_path, var entry)
 sbfl_edit_file (var fl, var sb, var action, var entry_path, var entry)
 sbfl_info_file (var fl, var sb, var action, var entry_path, var entry)
 sbpl_clear (var sb)
 sbpl_insert (var sb, var entry, var pos, var no_redraw)
 sbpl_insertdir (var sb, var path)
 sbpl_stop (var sb)
 sbpl_run (var sb, var pos, var loop)
 sbpl_remove (var sb, var pos)
 sbpl_save (var sb, var owner)
 sbpl_shuffle (var sb)
 sbpl_sort_any (var sb, var cmp)
 sbpl_sort_get_names (var a, var b)
 sbpl_sort_get_files (var a, var b)
 sbpl_sort_get_pathes (var a, var b)
 sbpl_cmp_type (var a, var b, var sb)
 sbpl_cmp_string (var a, var b, var sb)
 sbpl_cmp_name (var a, var b, var sb)
 sbpl_cmp_path (var a, var b, var sb)
 sbpl_cmp_any (var a, var b, var cmptable)
 sbpl_sort_by_type (var a, var b, var sb)
 sbpl_sort_by_name (var a, var b, var sb)
 sbpl_sort_by_path (var a, var b, var sb)
 sbpl_confirm (var pl, var sb)
 sbpl_cancel (var pl, var sb)
 sbpl_open_menu (var pl, var sb)
 sbpl_make_menu_sort_func (var sb, var str, var nocache)
 sbpl_select (var pl, var sb)
 song_browser_menucreator (var target)


Function Documentation

song_browser_update_cdrom var  sb,
var  cd
 

Update CDROM status.

Parameters:
sb song-browser application
cd cdrom_change_event

song_browser_update var  sb,
var  frametime
 

song-browser update handler.

This is the main update handler. It performs several update functions:

  • updates filelist directory loading
  • updates song-browser recursive directory loading
  • handles fall asleep.
  • handles key rate for keyboard browsing
  • handles music fade / stop
  • runs playlist
  • call update for both filelist and playlist textlist.

song_browser_stop var  sb  ) 
 

Stop current music and playlist running.

Parameters:
sb song-browser application (default to song_browser)

song_browser_play var  sb,
var  filename,
var  track,
var  immediat
 

Start a new music.

Parameters:
sb song-browser application (default to song_browser)
filename filename of music to play
track track-number 0:file default
immediat flush sound buffer if setted (some sound will be lost). Do not set it to play chain tracks properly.
Returns:
error-code
Return values:
nil on error

song_browser_run var  sb,
var  pos,
var  loop
 

Run the playlist.

Parameters:
sb song-browser application (default to song_browser)
pos running position (default to cursor)
loop loop at this position if setted 0:keep current loop
Returns:
error-code

nil on error

song_browser_loaddir var  sb,
var  path,
var  locate
 

Load directory into filelist.

Parameters:
sb song-browser application (default to song_browser)
path path of directory to load.
locate name of entry to locate in this directory (optionnal)
Returns:
error-code
Return values:
nil on error
Warning:
The fonction use a different thread to load the directory and returns before it is really loaded. Only one directory can be loaded at a time and the function will fail if another loading is in progress. To know if you can start a loaddir or if your loading is done check the loaded_dir (entrylist) member in the sb table.

song_browser_playlist_clear var  sb  ) 
 

Clear playlist.

Parameters:
sb song-browser application (default to song_browser)
Returns:
error-code
Return values:
nil on error

song_browser_playlist_stop var  sb  ) 
 

Stop playlist running.

Parameters:
sb song-browser application (default to song_browser)
Returns:
error-code
Return values:
nil on error

song_browser_playlist var  sb,
var  path,
var  insert,
var  run
 

Load/Insert/Append playlist and run it.

Parameters:
sb song-browser application (default to song_browser)
path path of playlist
insert insert postion : nil:erase before, 0:cursor pos <0:insert position from end of list
run run at given position 0:insertion point
Returns:
error-code
Return values:
nil on error

song_browser_ask_background_load var  sb  ) 
 

Ask for background library loading.

The song_browser_ask_background_load(sb) checks for background presence. If it exists the function returns immediatly else it display an ask dialog and waits for user reply. If the reply is 'yes' the background library is loaded with the dolib() function and returns the return error-code.

Parameters:
sb Unused :)
Returns:
error-code
Return values:
1 background library loaded successfully
2 background already loaded
nil background not loaded (either error or no replt)
See also:
dcplaya_lua_background

song_browser_load_image var  sb,
var  filename,
var  mode
 

Load an image on the background.

Parameters:
sb song-browser application (default to song_browser)
filename path of image to load
mode background mode ("center", "scale", "tile"). Defaulted to sb.background_mode or load_background() default.
Returns:
error-code
Return values:
nil on error

song_browser_info_file var  sb,
var  filename
 

Display a dialog with file information.

Parameters:
sb Unused
filename file.

song_browser_edit_file var  sb,
var  entry_path
 

Edit a file.

Launch zed to edit the given file.

Parameters:
sb song-browser application (default to song_browser)
entry_path path of file to edit

song_browser_create var  owner,
var  name
 

Create a song-browser application.

Parameters:
owner Owner application (default to desktop).
name Name of application (default to "song browser").
Returns:
song-browswer application
Return values:
nil Error

song_browser_kill var  sb  ) 
 

Kill a song-browser application.

The song_browser_kill() function kills the given application by calling sending the evt_shutdown_app() function. If the given application is nil or song_browser the default song-browser (song_browser) is killed and the global variable song_browser is set to nil.

Parameters:
sb application to kill (default to song_browser)


Variable Documentation

function song_browser_playlist_actions[run][major-type]
 

song-browser playlist action table.

For the playlist actions are not standard. Standard action does the same :

  • confirm always start the playlist
  • select opens menu
  • cancel removes entru

But playlist use special actions :

  • run when the entry start running
  • wait to check if entry has finish its run session.

Major-types for these special actions are :

  • music
  • image

Warning:
special actions used non standard action parameters !!!

function song_browser_filelist_actions[action][major-type]
 

song-browser filelist actions table.

Standard actions are:

  • confirm (A)
  • select (X)
  • confirm (B)

Extra actions are

  • view
  • edit
  • info

Major-types are :

  • dir
  • music
  • image
  • playlist
  • lua
  • plugin
  • text
  • default


dcplaya documentation version 2.0 Generated on November 2004 by doxygen 1.3.6