self.currentList.pageDown()
def play(self, media, name):
- dlg = self.session.open(VlcPlayer, self.server, self.currentList)
- dlg.playfile(media, name)
+ self.server.play(self, media, name, self.currentList)
def ok(self):
media, name = self.currentList.activate()
def __init__(self, session, parent):
Screen.__init__(self, session)
self.skinName = "InfoBarMoviePlayerSummary"
-
+
class VlcPlayer(Screen, InfoBarNotifications, InfoBarAudioSelection):
screen_timeout = 5000
print "[VLC] unpause"
try:
self.server.seek("-2")
- self.server.play()
+ self.server.unpause()
except Exception, e:
self.session.open(
MessageBox, _("Error with VLC server:\n%s" % e), MessageBox.TYPE_ERROR
self.playfile(url, "DVD")
self.showInfobar()
else:
- media, name = self.currentList.getNextFile()
- if media is None:
- self.session.open(
- MessageBox, _("No more files in this directory"), MessageBox.TYPE_INFO
- )
- self.close()
- else:
- self.playfile(media, name)
- self.showInfobar()
+ if self.currentList != None:
+ media, name = self.currentList.getNextFile()
+ if media is None:
+ self.session.open(
+ MessageBox, _("No more files in this directory"), MessageBox.TYPE_INFO
+ )
+ self.close()
+ else:
+ self.playfile(media, name)
+ self.showInfobar()
def playPrevFile(self):
print "[VLC] playPrevFile"
self.playfile(url, "DVD")
self.showInfobar()
else:
- media, name = self.currentList.getPrevFile()
- if media is None:
- self.session.open(
- MessageBox, _("No previous file in this directory"), MessageBox.TYPE_INFO
+ if self.currentList != None:
+ media, name = self.currentList.getPrevFile()
+ if media is None:
+ self.session.open(
+ MessageBox, _("No previous file in this directory"), MessageBox.TYPE_INFO
)
- self.close()
- else:
- self.playfile(media, name)
- self.showInfobar()
+ self.close()
+ else:
+ self.playfile(media, name)
+ self.showInfobar()
def audioTracks(self):
return self.session.nav.getCurrentService() and self.session.nav.getCurrentService().audioTracks();
from urllib import urlencode
from urllib import urlopen
from xml.dom.minidom import parse
-from VlcPlayer import isDvdUrl
+from VlcPlayer import VlcPlayer, isDvdUrl
seed()
return e
return None
+ def play(self, screen, media, name, currentList = None):
+ dlg = screen.session.open(VlcPlayer, self, currentList)
+ dlg.playfile(media, name)
+
def playFile(self, filename, videoPid, audioPid):
streamName = "dream" + str(randint(0, maxint))
transcode = []
self.lastError = None
return "http://%s:%d/%s.ts" % (self.getHost(), self.getHttpPort(), streamName)
- def play(self):
+ def unpause(self):
self.__xmlRequest("status", {"command": "pl_pause"})
def stop(self):
from Components.config import ConfigText
from Components.config import ConfigYesNo
from Components.config import config
-from Components.config import configfile
from Components.config import getConfigListEntry
from Screens.Screen import Screen
from VlcServer import VlcServer
self.notifiers.remove(notifier)
-class VlcServerConfig():
+class __VlcServerConfig():
def __init__(self):
self.serverlist = []
config.plugins.vlcplayer = ConfigSubsection()
def getServerlist(self):
return self.serverlist
+ def getServerByName(self, name):
+ for server in self.serverlist:
+ if server.getName() == name:
+ return server
+ return None
+
def __save(self):
config.plugins.vlcplayer.servercount.value = self.__getServerCount()
config.plugins.vlcplayer.servercount.save()
- configfile.save()
def __getServerCount(self):
return len(config.plugins.vlcplayer.servers)
+vlcServerConfig = __VlcServerConfig()
+
class VlcServerConfigScreen(Screen, ConfigListScreen):
skin = """
<screen name="VlcServerConfigScreen" position="80,100" size="560,320" title="Edit VLC Server">
self["key_blue"] = Button("")
cfglist = []
- cfglist.append(getConfigListEntry(_("Symbolic Servername"), server.name()))
+ cfglist.append(getConfigListEntry(_("Server Profile Name"), server.name()))
cfglist.append(getConfigListEntry(_("Enter VLC-Server as FQDN or IP-Address"), server.addressType()))
self.hostConfigListEntry = getConfigListEntry(_("Server Address"), server.host())
cfglist.append(self.hostConfigListEntry)
from Tools.Directories import resolveFilename, SCOPE_PLUGINS
from Tools.LoadPixmap import LoadPixmap
from VlcMediaList import VlcMediaListScreen
-from VlcServerConfig import VlcServerConfig
+from VlcServerConfig import vlcServerConfig
from VlcServerConfig import VlcServerConfigScreen
from enigma import eListboxPythonMultiContent, RT_HALIGN_LEFT, gFont
from . import _
class VlcServerListScreen(Screen):
skin = """
- <screen position="80,100" size="560,400" title="VLC Video Player V2.5" >
+ <screen position="80,100" size="560,400" title="VLC Video Player V2.5 - Select a VLC-Server Profile" >
<widget name="serverlabel" position="10,10" size="550,20" font="Regular;18"/>
<widget name="serverlist" position="10,35" size="550,310" scrollbarMode="showOnDemand"/>
<ePixmap name="red" position="0,355" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
<widget name="key_blue" position="420,355" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
</screen>"""
- def __init__(self, session):
+ def __init__(self, session, asConfigDialog = False):
Screen.__init__(self, session)
self.session = session
+ self.asConfigDialog = asConfigDialog
self.serverlist = VlcServerList()
- self.vlcServerConfig = VlcServerConfig()
- self["serverlabel"] = Label(_("List of known VLC-Servers"))
+ self["serverlabel"] = Label(_("List of known VLC-Server Profiles"))
self["serverlist"] = self.serverlist
self["key_red"] = Button(_("delete server"))
self["key_green"] = Button(_("add server"))
self["key_yellow"] = Button(_("edit server"))
self["key_blue"] = Button("")
- self["actions"] = ActionMap(["WizardActions", "MenuActions", "ShortcutActions", "MoviePlayerActions"],
+ self["actions"] = ActionMap(["WizardActions", "ColorActions"],
{
- "back": self.close,
+ "back": self.doRealClose,
"red": self.keyDelete,
"green": self.keyAddServer,
"yellow": self.keyEditServer,
self.onLayoutFinish.append(self.updateServerlist)
def updateServerlist(self):
- self.serverlist.update(self.vlcServerConfig.getServerlist())
+ self.serverlist.update(vlcServerConfig.getServerlist())
def keyAddServer(self):
- newServer = self.vlcServerConfig.new()
+ newServer = vlcServerConfig.new()
self.session.openWithCallback(self.addCallback, VlcServerConfigScreen, newServer)
def addCallback(self, result, server):
if result:
- self.vlcServerConfig.save(server)
+ vlcServerConfig.save(server)
self.updateServerlist()
else:
- self.vlcServerConfig.delete(server)
+ vlcServerConfig.delete(server)
def keyDelete(self):
self.session.openWithCallback(self.deleteCallback, MessageBox, _("Really delete this Server?"))
def deleteCallback(self, result):
if result:
- self.vlcServerConfig.delete(self.serverlist.getSelection())
+ vlcServerConfig.delete(self.serverlist.getSelection())
self.updateServerlist()
def keyEditServer(self):
def editCallback(self, result, server):
if result:
- self.vlcServerConfig.save(server)
+ vlcServerConfig.save(server)
+ index = self.serverlist.getSelectedIndex()
self.updateServerlist()
+ self.serverlist.moveToIndex(index)
else:
- self.vlcServerConfig.cancel(server)
+ vlcServerConfig.cancel(server)
def up(self):
self.serverlist.up()
def right(self):
self.serverlist.pageDown()
+ def doRealClose(self):
+ self.close(None)
+
def ok(self):
- if self.serverlist.getSelection() is not None:
- self.session.open(VlcMediaListScreen, self.serverlist.getSelection()).update()
+ if self.asConfigDialog:
+ self.close(self.serverlist.getSelection())
+ else:
+ if self.serverlist.getSelection() is not None:
+ self.session.open(VlcMediaListScreen, self.serverlist.getSelection()).update()
t = gettext.gettext(txt)
return t
+
def main(session, **kwargs):
session.open(VlcServerListScreen)
+
def Plugins(**kwargs):
return PluginDescriptor(
name="VLC Video Player",