class Selectmusic(Screen): def __init__(self, session): Screen.__init__(self, session) self["actions"] = HelpableActionMap(self, "MC_AudioPlayerActions", { "ok": (self.KeyOk, "Play selected file"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), }, -2) self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", { "cancel": self.close }, -2) currDir = config.plugins.mc_ap.lastDir.value if not pathExists(currDir): currDir = "/" inhibitDirs = ["/bin", "/boot", "/dev", "/dev.static", "/etc", "/lib" , "/proc", "/ram", "/root" , "/sbin", "/sys", "/tmp", "/usr", "/var"] self.filelist = FileList(currDir, useServiceRef = True, showDirectories = True, showFiles = True, matchingPattern = "(?i)^.*\.(m3u|mp2|mp3|wav|wave|wma|m4a|ogg|ra|flac)", inhibitDirs = inhibitDirs) self["filelist"] = self.filelist self["currentfolder"] = Label() self["currentfolder"].setText(str(currDir)) def up(self): self["filelist"].up() def down(self): self["filelist"].down() def leftUp(self): self["filelist"].pageUp() def rightDown(self): self["filelist"].pageDown() def KeyOk(self): self.filename = self.filelist.getFilename() self["currentfolder"].setText(str(self.filelist.getCurrentDirectory())) if self.filelist.getFilename() is not None: if self.filelist.canDescent(): self.filelist.descent() else: config.plugins.mc_pp.music.value = self.filename config.plugins.mc_pp.save() self.close() else: if self.filelist.canDescent(): self.filelist.descent() else: config.plugins.mc_pp.music.value = self.filename config.plugins.mc_pp.save() self.close()
class MC_VideoPlayer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self["key_red"] = Button(_("Delete Movie")) self["key_yellow"] = Button("") self["key_blue"] = Button(_("Settings")) self["currentfolder"] = Label("") self["currentfavname"] = Label("") self.showiframe = Showiframe() self.mvion = False self.curfavfolder = -1 os.system("touch /tmp/bmcmovie") self["actions"] = HelpableActionMap( self, "MC_VideoPlayerActions", { "ok": (self.KeyOk, "Play selected file"), "cancel": (self.Exit, "Exit Video Player"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), "menu": (self.KeyMenu, "File / Folder Options"), "info": (self.showFileInfo, "Show File Info"), "nextBouquet": (self.NextFavFolder, "Next Favorite Folder"), "prevBouquet": (self.PrevFavFolder, "Previous Favorite Folder"), "red": (self.SelDelete, "Delete Movie"), "blue": (self.KeySettings, "Settings"), }, -2) global currDir currDir = config.plugins.mc_vp.lastDir.value if not pathExists(currDir): currDir = "/" self["currentfolder"].setText(str(currDir)) sort = config.plugins.mc_vp_sortmode.enabled.value self.filelist = [] self["filelist"] = [] inhibitDirs = [ "/bin", "/boot", "/dev", "/dev.static", "/etc", "/lib", "/proc", "/ram", "/root", "/sbin", "/sys", "/tmp", "/usr", "/var" ] self.filelist = FileList( currDir, useServiceRef=True, showDirectories=True, showFiles=True, matchingPattern= "(?i)^.*\.(ts|vob|mpg|mpeg|avi|mkv|dat|iso|img|mp4|wmv|flv|divx|mov|ogm|m2ts)", additionalExtensions=None, sort=sort) self["filelist"] = self.filelist self["filelist"].show() def up(self): self["filelist"].up() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: self.cover() def down(self): self["filelist"].down() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: self.cover() def leftUp(self): self["filelist"].pageUp() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: if self.mvion == True: self.showiframe.finishStillPicture() self.cover() def rightDown(self): self["filelist"].pageDown() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): if self.mvion == True: self.showiframe.finishStillPicture() else: self.cover() def NextFavFolder(self): return def SelDelete(self): self.filename = self.filelist.getFilename() path = self.filename self.session.openWithCallback( self.selremove, MessageBox, _("Do you really want to delete\n%s ?") % path, MessageBox.TYPE_YESNO) def selremove(self, ret): if ret is True: self.filename = self.filelist.getFilename() if self.filename.endswith('.ts'): path = self.filename.replace('.ts', "") for fdelete in glob(path + ".*"): os.remove(fdelete) elif self.filename.endswith('.vob'): path = self.filename.replace('.vob', "") print "path:", path for fdelete in glob(path + ".*"): print "fdelete:", fdelete os.remove(fdelete) else: path = self.filename os.remove(path) self.updd() else: pass def PrevFavFolder(self): return def showFileInfo(self): if self["filelist"].canDescent(): return else: self.session.open( MC_VideoInfoView, self["filelist"].getCurrentDirectory() + self["filelist"].getFilename(), self["filelist"].getFilename(), self["filelist"].getServiceRef()) def KeyOk(self): self.filename = self.filelist.getFilename() print self.filename try: if self.filename.endswith('.img') or self.filename.endswith( '.iso' ) or self.filename.endswith( 'VIDEO_TS/') and config.plugins.mc_vp.dvd.value == "dvd": self.showiframe.finishStillPicture() from Screens import DVD if self.filename.endswith('VIDEO_TS/'): path = os.path.split(self.filename.rstrip('/'))[0] else: path = self.filename self.session.open(DVD.DVDPlayer, dvd_filelist=[path]) return except Exception, e: print "DVD Player error:", e if self.filelist.canDescent(): self.filelist.descent() else: self.showiframe.finishStillPicture() self.session.open(MoviePlayer, self["filelist"].getServiceRef(), slist=None, lastservice=None)
class MC_VideoPlayer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self["key_red"] = Button(_("Delete Movie")) self["key_yellow"] = Button("") self["key_blue"] = Button(_("Settings")) self["currentfolder"] = Label("") self["currentfavname"] = Label("") self.showiframe = Showiframe() self.mvion = False self.curfavfolder = -1 os.system("touch /tmp/bmcmovie") self["actions"] = HelpableActionMap(self, "MC_VideoPlayerActions", { "ok": (self.KeyOk, "Play selected file"), "cancel": (self.Exit, "Exit Video Player"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), "menu": (self.KeyMenu, "File / Folder Options"), "info": (self.showFileInfo, "Show File Info"), "nextBouquet": (self.NextFavFolder, "Next Favorite Folder"), "prevBouquet": (self.PrevFavFolder, "Previous Favorite Folder"), "red": (self.SelDelete, "Delete Movie"), "blue": (self.KeySettings, "Settings"), }, -2) global currDir currDir = config.plugins.mc_vp.lastDir.value if not pathExists(currDir): currDir = "/" self["currentfolder"].setText(str(currDir)) sort = config.plugins.mc_vp_sortmode.enabled.value self.filelist = [] self["filelist"] = [] inhibitDirs = ["/bin", "/boot", "/dev", "/dev.static", "/etc", "/lib" , "/proc", "/ram", "/root" , "/sbin", "/sys", "/tmp", "/usr", "/var"] self.filelist = FileList(currDir, useServiceRef = True, showDirectories = True, showFiles = True, matchingPattern = "(?i)^.*\.(ts|vob|mpg|mpeg|avi|mkv|dat|iso|img|mp4|wmv|flv|divx|mov|ogm|m2ts)", additionalExtensions = None, sort = sort) self["filelist"] = self.filelist self["filelist"].show() def up(self): self["filelist"].up() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: self.cover() def down(self): self["filelist"].down() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: self.cover() def leftUp(self): self["filelist"].pageUp() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: if self.mvion == True: self.showiframe.finishStillPicture() self.cover() def rightDown(self): self["filelist"].pageDown() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): if self.mvion == True: self.showiframe.finishStillPicture() else: self.cover() def NextFavFolder(self): return def SelDelete(self): self.filename = self.filelist.getFilename() path = self.filename self.session.openWithCallback(self.selremove, MessageBox, _("Do you really want to delete\n%s ?") % path, MessageBox.TYPE_YESNO) def selremove(self, ret): if ret is True: self.filename = self.filelist.getFilename() if self.filename.endswith('.ts'): path = self.filename.replace('.ts', "") for fdelete in glob(path + ".*"): os.remove (fdelete) elif self.filename.endswith('.vob'): path = self.filename.replace('.vob', "") print "path:", path for fdelete in glob(path + ".*"): print "fdelete:", fdelete os.remove (fdelete) else: path = self.filename os.remove(path) self.updd() else: pass def PrevFavFolder(self): return def showFileInfo(self): if self["filelist"].canDescent(): return else: self.session.open(MC_VideoInfoView, self["filelist"].getCurrentDirectory() + self["filelist"].getFilename() , self["filelist"].getFilename(), self["filelist"].getServiceRef()) def KeyOk(self): self.filename = self.filelist.getFilename() print self.filename try: if self.filename.endswith('.img') or self.filename.endswith('.iso') or self.filename.endswith('VIDEO_TS/') and config.plugins.mc_vp.dvd.value == "dvd": self.showiframe.finishStillPicture() from Screens import DVD if self.filename.endswith('VIDEO_TS/'): path = os.path.split(self.filename.rstrip('/'))[0] else: path = self.filename self.session.open(DVD.DVDPlayer, dvd_filelist=[path]) return except Exception, e: print "DVD Player error:", e if self.filelist.canDescent(): self.filelist.descent() else: self.showiframe.finishStillPicture() self.session.open(MoviePlayer, self["filelist"].getServiceRef(), slist = None, lastservice = None)
class MC_VideoPlayer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self["key_red"] = Button(_("Favorites")) self["key_yellow"] = Button("") self["key_blue"] = Button(_("Settings")) self["currentfolder"] = Label("") self["currentfavname"] = Label("") self.showiframe = Showiframe() self.mvion = False self.curfavfolder = -1 os.system("touch /tmp/bmcmovie") self["actions"] = HelpableActionMap(self, "MC_VideoPlayerActions", { "ok": (self.KeyOk, "Play selected file"), "cancel": (self.Exit, "Exit Video Player"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), "menu": (self.KeyMenu, "File / Folder Options"), "info": (self.showFileInfo, "Show File Info"), "nextBouquet": (self.NextFavFolder, "Next Favorite Folder"), "prevBouquet": (self.PrevFavFolder, "Previous Favorite Folder"), # "red": (self.FavoriteFolders, "Favorite Folders"), "blue": (self.KeySettings, "Settings"), }, -2) currDir = config.plugins.mc_vp.lastDir.value if not pathExists(currDir): currDir = "/" self["currentfolder"].setText(str(currDir)) sort = config.plugins.mc_vp_sortmode.enabled.value self.filelist = [] self["filelist"] = [] inhibitDirs = ["/bin", "/boot", "/dev", "/dev.static", "/etc", "/lib", "/proc", "/ram", "/root", "/sbin", "/sys", "/tmp", "/usr", "/var"] self.filelist = FileList(currDir, useServiceRef=True, showDirectories=True, showFiles=True, matchingPattern="(?i)^.*\.(ts|vob|mpg|mpeg|avi|mkv|dat|iso|img|mp4|wmv|flv|divx|mov|ogm|m2ts)", additionalExtensions=None, sort=sort) self["filelist"] = self.filelist self["filelist"].show() def up(self): self["filelist"].up() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: self.cover() def down(self): self["filelist"].down() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: self.cover() def leftUp(self): self["filelist"].pageUp() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): return else: if self.mvion == True: self.showiframe.finishStillPicture() self.cover() def rightDown(self): self["filelist"].pageDown() if self.mvion == True: self.showiframe.finishStillPicture() if self["filelist"].canDescent(): if self.mvion == True: self.showiframe.finishStillPicture() else: self.cover() def NextFavFolder(self): return def PrevFavFolder(self): return def showFileInfo(self): if self["filelist"].canDescent(): return else: self.session.open(MC_VideoInfoView, self["filelist"].getCurrentDirectory() + self["filelist"].getFilename(), self["filelist"].getFilename(), self["filelist"].getServiceRef()) def KeyOk(self): self.filename = self.filelist.getFilename() print(self.filename) try: if self.filename.endswith('.img') or self.filename.endswith('.iso') or self.filename.endswith('VIDEO_TS/') and config.plugins.mc_vp.dvd.value == "dvd": self.showiframe.finishStillPicture() from Screens import DVD if self.filename.endswith('VIDEO_TS/'): path = os.path.split(self.filename.rstrip('/'))[0] else: path = self.filename self.session.open(DVD.DVDPlayer, dvd_filelist=[path]) return except Exception as e: print("DVD Player error:", e) if self.filelist.canDescent(): self.filelist.descent() else: self.showiframe.finishStillPicture() self.session.open(MoviePlayer, self["filelist"].getServiceRef(), slist=None, lastservice=None) def cover(self): filename = self["filelist"].getName() short = shortname(filename) newshort = short.lower() newshort = newshort.replace(" ", "") movienameserie = re.sub("e[0-9]{2}", "", newshort.lower()) covername = "/hdd/bmcover/" + str(movienameserie) + "/backcover.mvi" if fileExists(covername): self.showiframe.showStillpicture(covername) self.mvion = True else: if self.mvion == True: self.showiframe.showStillpicture("/usr/share/enigma2/black.mvi") self.mvion = False def KeyMenu(self): # if self["filelist"].canDescent(): # if self.filelist.getCurrent()[0][1]: # self.currentDirectory = self.filelist.getCurrent()[0][0] # if self.currentDirectory is not None: # foldername = self.currentDirectory.split('/') # foldername = foldername[-2] # self.session.open(MC_FolderOptions,self.currentDirectory, foldername) return def updd(self): sort = config.plugins.mc_vp_sortmode.enabled.value self.filelist.refresh(sort) def KeySettings(self): self.session.openWithCallback(self.updd, VideoPlayerSettings) def Exit(self): if self.filelist.getCurrentDirectory() is None: config.plugins.mc_vp.lastDir.value = "/" else: config.plugins.mc_vp.lastDir.value = self.filelist.getCurrentDirectory() config.plugins.mc_vp.save() try: os.remove("/tmp/bmcmovie") except: pass self.showiframe.finishStillPicture() self.close()
class MC_PictureViewer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self["key_green"] = Button("Slide Show") self["key_yellow"] = Button("Thumb View") self["currentfolder"] = Label("") self["actions"] = HelpableActionMap(self, "MC_PictureViewerActions", { "ok": (self.KeyOk, "Show Picture"), "cancel": (self.Exit, "Exit Picture Viewer"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), "info": (self.StartExif, "Show File Info"), "green": (self.startslideshow, "Start Slideshow"), "yellow": (self.StartThumb, "Thumb View"), "blue": (self.Settings, "Settings"), }, -2) self.aspect = getAspect() currDir = config.plugins.mc_pp.lastDir.value if not pathExists(currDir): currDir = "/" self["currentfolder"].setText(str(currDir)) inhibitDirs = ["/bin", "/boot", "/dev", "/dev.static", "/etc", "/lib" , "/proc", "/ram", "/root" , "/sbin", "/sys", "/tmp", "/usr", "/var"] self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp)", inhibitDirs = inhibitDirs) self["filelist"] = self.filelist self["thumbnail"] = Pixmap() self.ThumbTimer = eTimer() self.ThumbTimer.callback.append(self.showThumb) self.ThumbTimer.start(500, True) self.picload = ePicLoad() #self.picload.PictureData.get().append(self.showPic) def startslideshow(self): self.session.openWithCallback(self.returnVal , MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), True) def up(self): self["filelist"].up() self.ThumbTimer.start(500, True) def down(self): self["filelist"].down() self.ThumbTimer.start(500, True) def leftUp(self): self["filelist"].pageUp() self.ThumbTimer.start(500, True) def rightDown(self): self["filelist"].pageDown() self.ThumbTimer.start(500, True) def showPic(self, picInfo=""): ptr = self.picload.getData() if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() def showThumb(self): return if not self.filelist.canDescent(): if self.picload.getThumbnail(self.filelist.getCurrentDirectory() + self.filelist.getFilename()) == 1: ptr = self.picload.getData() else: ptr = None #ptr = loadPic(self.filelist.getCurrentDirectory() + self.filelist.getFilename(), 180, 160, self.aspect, int(config.plugins.mc_pp.resize.value), 0, 0, cachefile) if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() else: self["thumbnail"].hide() def KeyOk(self): if self.filelist.canDescent(): self.filelist.descent() else: self.session.openWithCallback(self.returnVal, MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), False) def StartThumb(self): self.session.openWithCallback(self.returnVal, MC_PicThumbViewer, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory()) def JumpToFolder(self, jumpto = None): if jumpto is None: return else: self["filelist"].changeDir(jumpto) self["currentfolder"].setText(("%s") % (jumpto)) def returnVal(self, val=0): if val > 0: for x in self.filelist.getFileList(): if x[0][1] == True: val += 1 self.filelist.moveToIndex(val) def StartExif(self): if not self.filelist.canDescent(): #self.session.open(Pic_Exif, self.filelist.getCurrentDirectory() + self.filelist.getFilename(), self.filelist.getFilename()) #self.session.open(Pic_Exif, self.picload.getInfo(self.filelist.getSelectionIndex())) self.session.open(MessageBox, "Oh no, bugged in this version :(", MessageBox.TYPE_ERROR) def Settings(self): self.session.open(MC_PicSetup) def Exit(self): if self.filelist.getCurrentDirectory() is None: config.plugins.mc_pp.lastDir.value = "/" else: config.plugins.mc_pp.lastDir.value = self.filelist.getCurrentDirectory() config.plugins.mc_pp.save() self.close()
class MC_PictureViewer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self["key_red"] = Button("Favorites") self["key_green"] = Button("Slide Show") self["key_yellow"] = Button("Thumb View") self["key_blue"] = Button(_("Settings")) self["currentfolder"] = Label("") self["currentfavname"] = Label("") self.curfavfolder = -1 self["actions"] = HelpableActionMap(self, "MC_PictureViewerActions", { "ok": (self.KeyOk, "Show Picture"), "cancel": (self.Exit, "Exit Picture Viewer"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), "menu": (self.KeyMenu, "File / Folder Options"), "info": (self.StartExif, "Show File Info"), "nextBouquet": (self.NextFavFolder, "Next Favorite Folder"), "prevBouquet": (self.PrevFavFolder, "Previous Favorite Folder"), "red": (self.FavoriteFolders, "Favorite Folders"), "green": (self.startslideshow, "Start Slideshow"), "yellow": (self.StartThumb, "Thumb View"), "blue": (self.Settings, "Settings"), }, -2) self.aspect = getAspect() currDir = config.plugins.mc_pp.lastDir.value if not pathExists(currDir): currDir = "/" self["currentfolder"].setText(str(currDir)) self.filelist = FileList(currDir, matchingPattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp)") self["filelist"] = self.filelist self["thumbnail"] = Pixmap() self.ThumbTimer = eTimer() self.ThumbTimer.callback.append(self.showThumb) self.ThumbTimer.start(500, True) self.picload = ePicLoad() #self.picload.PictureData.get().append(self.showPic) def startslideshow(self): self.session.openWithCallback(self.returnVal , MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), True) def up(self): self["filelist"].up() self.ThumbTimer.start(500, True) def down(self): self["filelist"].down() self.ThumbTimer.start(500, True) def leftUp(self): self["filelist"].pageUp() self.ThumbTimer.start(500, True) def rightDown(self): self["filelist"].pageDown() self.ThumbTimer.start(500, True) def NextFavFolder(self): if self.curfavfolder + 1 < config.plugins.mc_favorites.foldercount.value: self.curfavfolder += 1 self.favname = config.plugins.mc_favorites.folders[self.curfavfolder].name.value self.folder = config.plugins.mc_favorites.folders[self.curfavfolder].basedir.value self["currentfolder"].setText(("%s") % (self.folder)) self["currentfavname"].setText(("%s") % (self.favname)) if os.path.exists(self.folder) == True: self["filelist"].changeDir(self.folder) else: return def PrevFavFolder(self): if self.curfavfolder <= 0: return else: self.curfavfolder -= 1 self.favname = config.plugins.mc_favorites.folders[self.curfavfolder].name.value self.folder = config.plugins.mc_favorites.folders[self.curfavfolder].basedir.value self["currentfolder"].setText(("%s") % (self.folder)) self["currentfavname"].setText(("%s") % (self.favname)) if os.path.exists(self.folder) == True: self["filelist"].changeDir(self.folder) def showPic(self, picInfo=""): ptr = self.picload.getData() if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() def showThumb(self): return if not self.filelist.canDescent(): if self.picload.getThumbnail(self.filelist.getCurrentDirectory() + self.filelist.getFilename()) == 1: ptr = self.picload.getData() else: ptr = None #ptr = loadPic(self.filelist.getCurrentDirectory() + self.filelist.getFilename(), 180, 160, self.aspect, int(config.plugins.mc_pp.resize.value), 0, 0, cachefile) if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() else: self["thumbnail"].hide() def KeyOk(self): if self.filelist.canDescent(): self.filelist.descent() else: self.session.openWithCallback(self.returnVal, MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), False) def KeyMenu(self): self.ThumbTimer.stop() if self["filelist"].canDescent(): if self.filelist.getCurrent()[0][1]: self.currentDirectory = self.filelist.getCurrent()[0][0] if self.currentDirectory is not None: foldername = self.currentDirectory.split('/') foldername = foldername[-2] self.session.open(MC_FolderOptions,self.currentDirectory, foldername) def StartThumb(self): self.session.openWithCallback(self.returnVal, MC_PicThumbViewer, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory()) def JumpToFolder(self, jumpto = None): if jumpto is None: return else: self["filelist"].changeDir(jumpto) self["currentfolder"].setText(("%s") % (jumpto)) def FavoriteFolders(self): self.session.openWithCallback(self.JumpToFolder, MC_FavoriteFolders) def returnVal(self, val=0): if val > 0: for x in self.filelist.getFileList(): if x[0][1] == True: val += 1 self.filelist.moveToIndex(val) def StartExif(self): if not self.filelist.canDescent(): #self.session.open(Pic_Exif, self.filelist.getCurrentDirectory() + self.filelist.getFilename(), self.filelist.getFilename()) #self.session.open(Pic_Exif, self.picload.getInfo(self.filelist.getSelectionIndex())) self.session.open(MessageBox, "Oh no, bugged in this version :(", MessageBox.TYPE_ERROR) def Settings(self): self.session.open(MC_PicSetup) def Exit(self): if self.filelist.getCurrentDirectory() is None: config.plugins.mc_pp.lastDir.value = "/" else: config.plugins.mc_pp.lastDir.value = self.filelist.getCurrentDirectory() config.plugins.mc_pp.save() self.close()
class MC_PictureViewer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self["key_red"] = Button("Favorites") self["key_green"] = Button("Slide Show") self["key_yellow"] = Button("Thumb View") self["key_blue"] = Button(_("Settings")) self["currentfolder"] = Label("") self["currentfavname"] = Label("") self.curfavfolder = -1 self["actions"] = HelpableActionMap( self, "MC_PictureViewerActions", { "ok": (self.KeyOk, "Show Picture"), "cancel": (self.Exit, "Exit Picture Viewer"), "left": (self.leftUp, "List Top"), "right": (self.rightDown, "List Bottom"), "up": (self.up, "List up"), "down": (self.down, "List down"), "menu": (self.KeyMenu, "File / Folder Options"), "info": (self.StartExif, "Show File Info"), "nextBouquet": (self.NextFavFolder, "Next Favorite Folder"), "prevBouquet": (self.PrevFavFolder, "Previous Favorite Folder"), "red": (self.FavoriteFolders, "Favorite Folders"), "green": (self.startslideshow, "Start Slideshow"), "yellow": (self.StartThumb, "Thumb View"), "blue": (self.Settings, "Settings"), }, -2, ) self.aspect = getAspect() currDir = config.plugins.mc_pp.lastDir.value if not pathExists(currDir): currDir = "/" self["currentfolder"].setText(str(currDir)) self.filelist = FileList(currDir, matchingPattern="(?i)^.*\.(jpeg|jpg|jpe|png|bmp)") self["filelist"] = self.filelist self["thumbnail"] = Pixmap() self.ThumbTimer = eTimer() self.ThumbTimer.callback.append(self.showThumb) self.ThumbTimer.start(500, True) self.picload = ePicLoad() # self.picload.PictureData.get().append(self.showPic) def startslideshow(self): self.session.openWithCallback( self.returnVal, MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), True, ) def up(self): self["filelist"].up() self.ThumbTimer.start(500, True) def down(self): self["filelist"].down() self.ThumbTimer.start(500, True) def leftUp(self): self["filelist"].pageUp() self.ThumbTimer.start(500, True) def rightDown(self): self["filelist"].pageDown() self.ThumbTimer.start(500, True) def NextFavFolder(self): if self.curfavfolder + 1 < config.plugins.mc_favorites.foldercount.value: self.curfavfolder += 1 self.favname = config.plugins.mc_favorites.folders[self.curfavfolder].name.value self.folder = config.plugins.mc_favorites.folders[self.curfavfolder].basedir.value self["currentfolder"].setText(("%s") % (self.folder)) self["currentfavname"].setText(("%s") % (self.favname)) if os.path.exists(self.folder) == True: self["filelist"].changeDir(self.folder) else: return def PrevFavFolder(self): if self.curfavfolder <= 0: return else: self.curfavfolder -= 1 self.favname = config.plugins.mc_favorites.folders[self.curfavfolder].name.value self.folder = config.plugins.mc_favorites.folders[self.curfavfolder].basedir.value self["currentfolder"].setText(("%s") % (self.folder)) self["currentfavname"].setText(("%s") % (self.favname)) if os.path.exists(self.folder) == True: self["filelist"].changeDir(self.folder) def showPic(self, picInfo=""): ptr = self.picload.getData() if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() def showThumb(self): return if not self.filelist.canDescent(): if self.picload.getThumbnail(self.filelist.getCurrentDirectory() + self.filelist.getFilename()) == 1: ptr = self.picload.getData() else: ptr = None # ptr = loadPic(self.filelist.getCurrentDirectory() + self.filelist.getFilename(), 180, 160, self.aspect, int(config.plugins.mc_pp.resize.value), 0, 0, cachefile) if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() else: self["thumbnail"].hide() def KeyOk(self): if self.filelist.canDescent(): self.filelist.descent() else: self.session.openWithCallback( self.returnVal, MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), False, ) def KeyMenu(self): self.ThumbTimer.stop() if self["filelist"].canDescent(): if self.filelist.getCurrent()[0][1]: self.currentDirectory = self.filelist.getCurrent()[0][0] if self.currentDirectory is not None: foldername = self.currentDirectory.split("/") foldername = foldername[-2] self.session.open(MC_FolderOptions, self.currentDirectory, foldername) def StartThumb(self): self.session.openWithCallback( self.returnVal, MC_PicThumbViewer, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), ) def JumpToFolder(self, jumpto=None): if jumpto is None: return else: self["filelist"].changeDir(jumpto) self["currentfolder"].setText(("%s") % (jumpto)) def FavoriteFolders(self): self.session.openWithCallback(self.JumpToFolder, MC_FavoriteFolders) def returnVal(self, val=0): if val > 0: for x in self.filelist.getFileList(): if x[0][1] == True: val += 1 self.filelist.moveToIndex(val) def StartExif(self): if not self.filelist.canDescent(): # self.session.open(Pic_Exif, self.filelist.getCurrentDirectory() + self.filelist.getFilename(), self.filelist.getFilename()) # self.session.open(Pic_Exif, self.picload.getInfo(self.filelist.getSelectionIndex())) self.session.open(MessageBox, "Oh no, bugged in this version :(", MessageBox.TYPE_ERROR) def Settings(self): self.session.open(MC_PicSetup) def Exit(self): if self.filelist.getCurrentDirectory() is None: config.plugins.mc_pp.lastDir.value = "/" else: config.plugins.mc_pp.lastDir.value = self.filelist.getCurrentDirectory() config.plugins.mc_pp.save() self.close()
class MC_PictureViewer(Screen, HelpableScreen): def __init__(self, session): Screen.__init__(self, session) HelpableScreen.__init__(self) self.oldService = self.session.nav.getCurrentlyPlayingServiceReference() self.session.nav.stopService() # Show Background MVI os.system("/usr/bin/showiframe /usr/share/enigma2/black.mvi &") self["key_red"] = Button(_(" ")) self["key_green"] = Button(_("Slide Show")) self["key_yellow"] = Button(_("Thumb View")) self["key_blue"] = Button(_("Settings")) self["currentfolder"] = Label("") self["currentfavname"] = Label("") self.curfavfolder = -1 self["actions"] = HelpableActionMap(self, "MC_PictureViewerActions", { "ok": (self.KeyOk, _("Show Picture")), "cancel": (self.Exit, _("Directory Up")), "left": (self.leftUp, _("List Top")), "right": (self.rightDown, _("List Bottom")), "up": (self.up, _("List up")), "down": (self.down, _("List down")), "menu": (self.KeyMenu, _("File / Folder Options")), "info": (self.StartExif, _("Show File Info")), #"red": (self.Exit, _("Exit Pictures")), "green": (self.startslideshow, _("Start Slideshow")), "yellow": (self.StartThumb, _("Thumb View")), "blue": (self.Settings, _("Settings")), }, -2) currDir = config.plugins.mc_pp.lastDir.value if not pathExists(currDir): currDir = None self["currentfolder"].setText(str(currDir)) self.filelist = FileList(currDir, showMountpoints = True, matchingPattern = "(?i)^.*\.(jpeg|jpg|jpe|png|bmp)") self["filelist"] = self.filelist self["filelist"].onSelectionChanged.append(self.selectionChanged) self["thumbnail"] = Pixmap() self["datelabel"] = StaticText("") self["cameralabel"] = StaticText("") self["sizelabel"] = StaticText("") self["date"] = StaticText("") self["camera"] = StaticText("") self["size"] = StaticText("") list = [] self["fileinfo"] = List(list, enableWrapAround = False) self.ThumbTimer = eTimer() self.ThumbTimer.callback.append(self.showThumb) self.picload = ePicLoad() self.picload.PictureData.get().append(self.showPic) self.onLayoutFinish.append(self.setConf) def startslideshow(self): self.session.openWithCallback(self.returnVal , MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), True) def up(self): self["filelist"].up() def down(self): self["filelist"].down() def leftUp(self): self["filelist"].pageUp() def rightDown(self): self["filelist"].pageDown() def showPic(self, picInfo=""): ptr = self.picload.getData() if ptr != None: self["thumbnail"].instance.setPixmap(ptr.__deref__()) self["thumbnail"].show() exiflist = self.picload.getInfo(self.filelist.getCurrentDirectory() + self.filelist.getFilename()) self["datelabel"].setText("Date/Time:") self["cameralabel"].setText("Camera:") self["sizelabel"].setText("Width/Heigth:") try: self["date"].setText(exiflist[4]) except: pass try: self["camera"].setText(exiflist[3]) except: pass try: self["size"].setText(exiflist[5]) except: pass def showThumb(self): if not self.filelist.canDescent(): if self.filelist.getCurrentDirectory() and self.filelist.getFilename(): if self.picload.getThumbnail(self.filelist.getCurrentDirectory() + self.filelist.getFilename()) == 1: self.ThumbTimer.start(500, True) def selectionChanged(self): if not self.filelist.canDescent(): self.ThumbTimer.start(500, True) else: self["thumbnail"].hide() self["datelabel"].setText("") self["cameralabel"].setText("") self["sizelabel"].setText("") self["date"].setText("") self["camera"].setText("") self["size"].setText("") def KeyOk(self): if self.filelist.canDescent(): self.filelist.descent() else: self.session.openWithCallback(self.returnVal, MC_PicView, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory(), False) def KeyExit(self): self.filelist.gotoParent() def KeyMenu(self): self.ThumbTimer.stop() if self["filelist"].canDescent(): if self.filelist.getCurrent()[0][1]: self.currentDirectory = self.filelist.getCurrent()[0][0] if self.currentDirectory is not None: foldername = self.currentDirectory.split('/') foldername = foldername[-2] self.session.open(MC_FolderOptions,self.currentDirectory, foldername) def StartThumb(self): self.session.openWithCallback(self.returnVal, MC_PicThumbViewer, self.filelist.getFileList(), self.filelist.getSelectionIndex(), self.filelist.getCurrentDirectory()) def returnVal(self, val=0, home=False): if home: self.Exit() else: if val > 0: for x in self.filelist.getFileList(): if x[0][1] == True: val += 1 self.filelist.moveToIndex(val) def StartExif(self): if not self.filelist.canDescent(): self.session.open(Pic_Exif, self.picload.getInfo(self.filelist.getCurrentDirectory() + self.filelist.getFilename())) def Settings(self): self.session.open(MC_PicSetup) def setConf(self): sc = getScale() self.picload.setPara((self["thumbnail"].instance.size().width(), self["thumbnail"].instance.size().height(), sc[0], sc[1], config.plugins.mc_pp.cache.value, int(config.plugins.mc_pp.resize.value), "#00000000")) def Exit(self): try: config.plugins.mc_pp.lastDir.value = self.filelist.getCurrentDirectory() except: config.plugins.mc_pp.lastDir.value = 'mountpoint' config.plugins.mc_pp.save() configfile.save() self.session.nav.playService(self.oldService) self.close()
class MC_VideoPlayer(Screen, HelpableScreen): def __init__(self, session): global currDir Screen.__init__(self, session) HelpableScreen.__init__(self) self['key_red'] = Button(_('Delete Movie')) self['key_yellow'] = Button('') self['key_blue'] = Button(_('Settings')) self['currentfolder'] = Label('') self['currentfavname'] = Label('') self.showiframe = Showiframe() self.mvion = False self.curfavfolder = -1 os.system('touch /tmp/bmcmovie') self['actions'] = HelpableActionMap(self, 'MC_VideoPlayerActions', {'ok': (self.KeyOk, 'Play selected file'), 'cancel': (self.Exit, 'Exit Video Player'), 'left': (self.leftUp, 'List Top'), 'right': (self.rightDown, 'List Bottom'), 'up': (self.up, 'List up'), 'down': (self.down, 'List down'), 'menu': (self.KeyMenu, 'File / Folder Options'), 'info': (self.showFileInfo, 'Show File Info'), 'nextBouquet': (self.NextFavFolder, 'Next Favorite Folder'), 'prevBouquet': (self.PrevFavFolder, 'Previous Favorite Folder'), 'red': (self.SelDelete, 'Delete Movie'), 'blue': (self.KeySettings, 'Settings')}, -2) currDir = config.plugins.mc_vp.lastDir.value if not pathExists(currDir): currDir = '/' self['currentfolder'].setText(str(currDir)) sort = config.plugins.mc_vp_sortmode.enabled.value self.filelist = [] self['filelist'] = [] inhibitDirs = ['/bin', '/boot', '/dev', '/dev.static', '/etc', '/lib', '/proc', '/ram', '/root', '/sbin', '/sys', '/tmp', '/usr', '/var'] self.filelist = FileList(currDir, useServiceRef=True, showDirectories=True, showFiles=True, matchingPattern='(?i)^.*\\.(ts|vob|mpg|mpeg|avi|mkv|dat|iso|img|mp4|wmv|flv|divx|mov|ogm|m2ts)', additionalExtensions=None, sort=sort) self['filelist'] = self.filelist self['filelist'].show() return def up(self): self['filelist'].up() if self.mvion == True: self.showiframe.finishStillPicture() if self['filelist'].canDescent(): return self.cover() def down(self): self['filelist'].down() if self.mvion == True: self.showiframe.finishStillPicture() if self['filelist'].canDescent(): return self.cover() def leftUp(self): self['filelist'].pageUp() if self.mvion == True: self.showiframe.finishStillPicture() if self['filelist'].canDescent(): return if self.mvion == True: self.showiframe.finishStillPicture() self.cover() def rightDown(self): self['filelist'].pageDown() if self.mvion == True: self.showiframe.finishStillPicture() if self['filelist'].canDescent(): if self.mvion == True: self.showiframe.finishStillPicture() else: self.cover() def NextFavFolder(self): pass def SelDelete(self): self.filename = self.filelist.getFilename() path = self.filename self.session.openWithCallback(self.selremove, MessageBox, _('Do you really want to delete\n%s ?') % path, MessageBox.TYPE_YESNO) def selremove(self, ret): if ret is True: self.filename = self.filelist.getFilename() if self.filename.endswith('.ts'): path = self.filename.replace('.ts', '') for fdelete in glob(path + '.*'): os.remove(fdelete) elif self.filename.endswith('.vob'): path = self.filename.replace('.vob', '') print 'path:', path for fdelete in glob(path + '.*'): print 'fdelete:', fdelete os.remove(fdelete) else: path = self.filename os.remove(path) self.updd() def PrevFavFolder(self): pass def showFileInfo(self): if self['filelist'].canDescent(): return self.session.open(MC_VideoInfoView, self['filelist'].getCurrentDirectory() + self['filelist'].getFilename(), self['filelist'].getFilename(), self['filelist'].getServiceRef()) def KeyOk(self): self.filename = self.filelist.getFilename() print self.filename try: if self.filename.endswith('.img') or self.filename.endswith('.iso') or self.filename.endswith('VIDEO_TS/') and config.plugins.mc_vp.dvd.value == 'dvd': self.showiframe.finishStillPicture() from Screens import DVD if self.filename.endswith('VIDEO_TS/'): path = os.path.split(self.filename.rstrip('/'))[0] else: path = self.filename self.session.open(DVD.DVDPlayer, dvd_filelist=[path]) return except Exception as e: print 'DVD Player error:', e if self.filelist.canDescent(): self.filelist.descent() else: self.showiframe.finishStillPicture() self.session.open(MoviePlayer, self['filelist'].getServiceRef(), slist=None, lastservice=None) return def cover(self): filename = self['filelist'].getName() short = shortname(filename) newshort = short.lower() newshort = newshort.replace(' ', '') movienameserie = re.sub('e[0-9]{2}', '', newshort.lower()) covername = '/hdd/bmcover/' + str(movienameserie) + '/backcover.mvi' if fileExists(covername): self.showiframe.showStillpicture(covername) self.mvion = True elif self.mvion == True: self.showiframe.showStillpicture('/usr/share/enigma2/black.mvi') self.mvion = False def KeyMenu(self): pass def updd(self): sort = config.plugins.mc_vp_sortmode.enabled.value self.filelist.refresh(sort) def KeySettings(self): self.session.openWithCallback(self.updd, VideoPlayerSettings) def Exit(self): if self.filelist.getCurrentDirectory() is None: config.plugins.mc_vp.lastDir.value = '/' else: config.plugins.mc_vp.lastDir.value = self.filelist.getCurrentDirectory() config.plugins.mc_vp.save() try: os.remove('/tmp/bmcmovie') except: pass self.showiframe.finishStillPicture() self.close() return