def leaf_node(self, branch, data, menuw): """ last node in branch generates a playlist. """ logger.debug('leaf_node(branch=%r, data=%r, menuw=%r)', branch, data, menuw) title = '-'.join(data) #creating of audio items is slow. #need a progress-bar. pl = playlist.Playlist(name='-'.join(data), playlist=[], display_type='audiocd') tracks = branch.execute(data) #returns list of (desc, path, filename) pop = ProgressBox(text=_('Generating playlist...'), full=len(tracks)) pop.show() items = [] i = 0 for desc, path, filename in tracks: filepath = os.path.join(path, filename) item = audioitem.AudioItem(filepath, parent=pl) item.name = desc item.track = i items.append(item) pop.tick() i += 1 pop.destroy() pl.playlist = items mymenu = menu.Menu(title, pl.playlist, item_types="audio") menuw.pushmenu(mymenu)
def leaf_node(self, branch, data, menuw): """ last node in branch generates a playlist. """ logger.debug('leaf_node(branch=%r, data=%r, menuw=%r)', branch, data, menuw) title = '-'.join(data) #creating of audio items is slow. #need a progress-bar. pl = playlist.Playlist(name='-'.join(data), playlist=[], display_type='audiocd') tracks = branch.execute(data) #returns list of (desc, path, filename) pop = ProgressBox(text=_('Generating playlist...'), full=len(tracks)) pop.show() items = [] i = 0 for desc, path, filename in tracks: filepath = os.path.join(path, filename) item = audioitem.AudioItem(filepath, parent=pl) item.name = desc item.track = i items.append( item) pop.tick() i+=1 pop.destroy() pl.playlist = items mymenu = menu.Menu(title, pl.playlist, item_types="audio") menuw.pushmenu(mymenu)
def check_cache_status(): """ check if cache got updated with helper while freevo is running """ from menu import MenuWidget global __last_status_check__ if not isinstance(rc.focused_app(), MenuWidget): return try: cachefile = os.path.join(config.FREEVO_CACHEDIR, 'mediainfo') if os.stat(cachefile)[stat.ST_MTIME] <= __last_status_check__: return if not __last_status_check__: __last_status_check__ = os.stat(cachefile)[stat.ST_MTIME] return except: __last_status_check__ = 1 return __last_status_check__ = os.stat(cachefile)[stat.ST_MTIME] open_cache_files = [] for cache in mmpython_cache, meta_cache: # save current cache cache.save_cache() # delete all info about loaded objects cache.current_objects = {} cache.current_cachefile = None cache.current_cachedir = None cache.cache_modified = False # file database for d in cache.all_directories: if d and not os.path.dirname(vfs.normalize(d)) in open_cache_files: open_cache_files.append(os.path.dirname(vfs.normalize(d))) cache.all_directories = {} # create ProgressBox for reloading from gui import ProgressBox box = ProgressBox(text=_('Reloading cache files, be patient...'), full=len(open_cache_files)) box.show() # reload already open cache files for d in open_cache_files: load_cache(d) box.tick() box.destroy()
def onchoose_last_node(self, tree, data, menuw): """ last node in tree generates a playlist. """ title = '-'.join(data) #creating of audio items is slow. #need a progress-bar. pl = playlist.Playlist(name='-'.join(data), playlist=[], display_type='audiocd') tracks = tree.execute(data) #returns list of (desc,path,filename) pop = ProgressBox(text=_('Generating playlist...'), full=len(tracks)) pop.show() items = [] i = 0 for desc, path, filename in tracks: filepath = os.path.join(path, filename) item = audioitem.AudioItem(filepath, parent=pl) item.name = desc item.track = i items.append(item) pop.tick() i += 1 pop.destroy() pl.playlist = items #note/question for core developers: #command below causes strange errors? #plugin.__plugin_type_list__ is empty??? but it's Not? #pl.browse(arg=None,menuw=menuw) #print 'LIST=',plugin.__plugin_type_list__['mimetype'] #workaround: not all features of a real playlist :( mymenu = menu.Menu(title, pl.playlist, item_types="audio") menuw.pushmenu(mymenu)