Author: duncan
Date: Tue Oct 3 21:06:21 2006
New Revision: 8308
Added:
branches/rel-1-5/freevo/src/video/plugins/dvdimage.py
Log:
Added dvd-image as it's a well downloaded plugin
Added: branches/rel-1-5/freevo/src/video/plugins/dvdimage.py
==============================================================================
--- (empty file)
+++ branches/rel-1-5/freevo/src/video/plugins/dvdimage.py Tue Oct 3
21:06:21 2006
@@ -0,0 +1,124 @@
+#if 0 /*
+# -----------------------------------------------------------------------
+# dvdimage.py - A video plugin handling images as dvd
+# Author: Viggo Fredriksen <[EMAIL PROTECTED]>
+# -----------------------------------------------------------------------
+# Freevo - A Home Theater PC framework
+# Copyright (C) 2003 Krister Lagerstrom, et al.
+# Please see the file freevo/Docs/CREDITS for a complete list of authors.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MER-
+# CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# ----------------------------------------------------------------------- */
+#endif
+
+# imports
+import config, plugin, os, rc
+from event import *
+from gui import PopupBox
+
+class PluginInterface(plugin.ItemPlugin):
+ """
+ This plugin adds 'Play image as DVD' in the item menu for files with .iso
+ and .img extensions. It simply creates a temporary symlink to the selected
+ file, and passes this symlink as the --dvd-device to mplayer.
+
+ Activate with:
+ plugin.activate('video.dvdimage')
+
+ Remember to add .img and .iso to VIDEO_MPLAYER_SUFFIX found in
+ share/freevo/freevo_config.py. Override this in your local_conf.py
+
+ Usage:
+ Select your image in the video menu, bring up the submenu and select
+ <Play image as DVD>. You will be prompted for title, answer with numeric
+ input.
+ """
+ def __init__(self):
+ plugin.ItemPlugin.__init__(self)
+ self.symlink = vfs.join(config.OVERLAY_DIR,'dvdlink')
+
+
+ def actions(self, item):
+ for p in plugin.getbyname(plugin.VIDEO_PLAYER, True):
+ if config.VIDEO_PREFERED_PLAYER == p.name:
+ self.player = p
+
+ if item.type == 'video' and self.player.name == 'mplayer':
+
+ self.files = []
+ self.item = item
+ fs = item.files.get()
+
+ for f in fs:
+ if f.endswith('.img') or f.endswith('.iso'):
+ self.files.append(f)
+
+ if len(self.files)>0:
+ return [ ( self.play_dvd , _('Play image as DVD')) ]
+
+ return []
+
+ def eventhandler(self, event, menuw=None, arg=None):
+ try:
+ if event in INPUT_ALL_NUMBERS:
+
+ if self.selected == None:
+ self.selected = event.arg
+ elif self.schapter == None:
+ self.schapter = event.arg
+
+ if self.pop:
+ self.pop.destroy()
+ self.pop = None
+ rc.app(None)
+
+ self.chapter()
+ except: pass
+
+ def chapter(self):
+ if self.schapter == None:
+ rc.app(self)
+ rc.set_context('input')
+ self.pop = PopupBox(_('Choose title to play. <1-9>'))
+ self.pop.show()
+ else:
+ self.play()
+
+ def play(self):
+ if self.player and (self.selected-1) < len(self.files):
+
+ self.item.network_play = False # prevents crash on my system
+ self.item.url = 'dvd://%s' % self.schapter
+ self.item.mode = 'dvd'
+ self.item.filename = self.symlink
+
+ os.system('ln -sf %s %s' % (self.files[self.selected-1],
+ self.symlink) )
+ self.player.play( [], self.item )
+
+ def play_dvd(self, arg=None, menuw=None):
+ self.schapter = None
+ self.selected = None
+
+ if len(self.files)>1:
+ rc.app(self)
+ rc.set_context('input')
+ self.pop = PopupBox(_('Choose disc (%i discs available).' %
len(self.files) ))
+ self.pop.show()
+ else:
+ self.selected = 1
+ self.chapter()
+
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog