From: <di...@us...> - 2002-10-20 18:07:43
|
Update of /cvsroot/freevo/freevo In directory usw-pr-cvs1:/tmp/cvs-serv6840 Modified Files: music.py Log Message: Added all rom drives with identify media support to the main menu. You can't browse DVD, VCD and SVCD and AUDIO-CD support is still missing, but it works for mp3 cds. Index: music.py =================================================================== RCS file: /cvsroot/freevo/freevo/music.py,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** music.py 12 Oct 2002 22:30:45 -0000 1.17 --- music.py 20 Oct 2002 18:07:40 -0000 1.18 *************** *** 15,18 **** --- 15,23 ---- # ---------------------------------------------------------------------- # $Log$ + # Revision 1.18 2002/10/20 18:07:40 dischi + # Added all rom drives with identify media support to the main menu. You + # can't browse DVD, VCD and SVCD and AUDIO-CD support is still missing, + # but it works for mp3 cds. + # # Revision 1.17 2002/10/12 22:30:45 krister # Removed debug output. *************** *** 119,122 **** --- 124,221 ---- + # + # EJECT handling + # + def eventhandler(event = None, menuw=None, arg=None): + + global main_menu_selected + if event == rc.IDENTIFY_MEDIA: + if menuw.menustack[1] == menuw.menustack[-1]: + main_menu_selected = menuw.all_items.index(menuw.menustack[1].selected) + + menuw.menustack[1].choices = main_menu_generate() + + menuw.menustack[1].selected = menuw.menustack[1].choices[main_menu_selected] + + if menuw.menustack[1] == menuw.menustack[-1]: + menuw.init_page() + menuw.refresh() + + if event == rc.EJECT: + + print 'EJECT1: Arg=%s' % arg + + # Was the handler called for a specific drive? + if not arg: + print 'Arg was none' + if not config.REMOVABLE_MEDIA: + print 'No removable media defined' + return # Do nothing if no media defined + # Otherwise open/close the first drive in the list + media = config.REMOVABLE_MEDIA[0] + print 'Selecting first device' + else: + media = arg + + print media + print dir(media) + media.move_tray(dir='toggle') + + # Done + return + + + # ====================================================================== + + # + # The Movie module main menu + # + def main_menu_generate(): + items = [] + + for (title, dir) in config.DIR_AUDIO: + items += [menu.MenuItem(title, parse_entry, (title, dir), eventhandler, + type = 'dir')] + + for media in config.REMOVABLE_MEDIA: + if media.info: + + if not media.info.label: + print "WARNING: no title for %s given, setting to default" % media.mountdir + media.info.label = media.mountdir + + if media.info.type: + if media.info.type == 'AUDIO-CD': + m = menu.MenuItem('Drive %s (Audio CD)' % media.drivename, None, + None, eventhandler, media) + print "Audio cd, not implemented yet" + + elif media.info.type == 'DVD' or media.info.type == 'VCD' or \ + media.info.type == 'SVCD': + + m = menu.MenuItem('%s (%s)' % (media.info.label, media.info.type), + None, None, eventhandler, media) + m.setImage(('movie', media.info.image)) + + else: + image_type = 'music' + label = media.info.label + + if media.info.type == 'VIDEO': + image_type = 'movie' + label += ' (Video CD)' + + m = menu.MenuItem(label, parse_entry, + (label, media.mountdir), eventhandler, media) + m.setImage((image_type, media.info.image)) + + else: + m = menu.MenuItem('Drive %s (no disc)' % media.drivename, None, + None, eventhandler, media) + items += [m] + + return items + + def main_menu(arg=None, menuw=None): """ *************** *** 127,156 **** """ ! items = [] ! for (title, file ) in config.DIR_AUDIO: ! if os.path.isdir: ! type = 'dir' ! elif os.path.isfile: ! type = 'file' ! ! items += [ menu.MenuItem( title, parse_entry, (title, file), ! handle_config, (type, file), type, ! None, None, None ) ] ! ! ! # XXX has this ever worked ? ! ! # for media in config.REMOVABLE_MEDIA: ! # if media.info: ! # if mediatype == 'AUDIO': ! # s = 'Drive %s [%s]' % (media.drivename, media.info.label) ! # items += [menu.MenuItem(s, parse_entry, ! # (media.info.label, media.mountdir), ! # handle_config, ('dir', media.mountdir), ! # 'dir')] - mp3menu = menu.Menu('MUSIC MAIN MENU', items) - menuw.pushmenu(mp3menu) - --- 226,232 ---- """ ! moviemenu = menu.Menu('MUSIC MAIN MENU', main_menu_generate(), umount_all=1) ! menuw.pushmenu(moviemenu) *************** *** 167,174 **** (new_title, mdir) = arg - if DEBUG: - b = os.path.isdir(mdir) - print 'music:parse_entry(): title=%s, dir=%s, isdir=%s' % (new_title, mdir, b) - # If the dir is on a removable media it needs to be mounted for media in config.REMOVABLE_MEDIA: --- 243,246 ---- *************** *** 199,203 **** title = 'PL: Random playlist with songs here and below' items += [menu.MenuItem(title, make_playlist_menu, playlist, ! handle_config, ('list', playlist), 'list')] --- 271,275 ---- title = 'PL: Random playlist with songs here and below' items += [menu.MenuItem(title, make_playlist_menu, playlist, ! eventhandler, None, 'list')] *************** *** 208,212 **** # Yes recursive stupid. m = menu.MenuItem( title, parse_entry, (title, dirname), ! handle_config, ('dir', dirname), 'dir', None, None, None ) --- 280,284 ---- # Yes recursive stupid. m = menu.MenuItem( title, parse_entry, (title, dirname), ! eventhandler, None, 'dir', None, None, None ) *************** *** 223,232 **** title = 'PL: Random playlist with all songs here' items += [menu.MenuItem(title, make_playlist_menu, playlist, ! handle_config, ('list', playlist), 'list')] for playlist in playlists: title = 'PL: ' + os.path.basename(playlist)[:-4] items += [menu.MenuItem(title, make_playlist_menu, playlist, ! handle_config, ('list', playlist), 'list')] for file in files: --- 295,304 ---- title = 'PL: Random playlist with all songs here' items += [menu.MenuItem(title, make_playlist_menu, playlist, ! eventhandler, None, 'list')] for playlist in playlists: title = 'PL: ' + os.path.basename(playlist)[:-4] items += [menu.MenuItem(title, make_playlist_menu, playlist, ! eventhandler, None, 'list')] for file in files: *************** *** 250,280 **** - - def handle_config( event=None, menuw=None, arg=None ): - """ - Handles the configuration of directories and files, building - play lists and stuff eventually. - - Arguments: event - event identifier. - menuw - menu widget. - arg - argument to event. - Returns: None - Authors: Thomas Malt <th...@ma...> - dischi - Started: 2002-07-26 18:17 tm - Changed: $Date$ $Author$ - """ - - (type, file) = arg - - print( 'inside handle_config actually. type = ' + type + ' file = ' + - file + ' event = ' + event ) - - if event == rc.EJECT and config.REMOVABLE_MEDIA: - media = config.REMOVABLE_MEDIA[0] # The default is the first drive in the list - media.move_tray(dir='toggle') - if media.tray_open == 0: - menuw.back_one_menu() - main_menu(None, menuw) --- 322,325 ---- |