- "Default-Server" is implemented: If a default server was choosen, the plugin starts...
[enigma2-plugins.git] / vlcplayer / src / plugin.py
1 # -*- coding: ISO-8859-1 -*-
2 #===============================================================================
3 # VLC Player Plugin by A. Lätsch 2007
4 #                   modified by Volker Christian 2008
5 #
6 # This is free software; you can redistribute it and/or modify it under
7 # the terms of the GNU General Public License as published by the Free
8 # Software Foundation; either version 2, or (at your option) any later
9 # version.
10 #===============================================================================
11
12
13 from Plugins.Plugin import PluginDescriptor
14 from Tools.BoundFunction import boundFunction
15
16 from VlcServerList import VlcServerListScreen
17 from VlcMediaList import VlcMediaListScreen
18 from VlcServerConfig import vlcServerConfig
19
20 import gettext
21
22 def _(txt):
23         t = gettext.dgettext("VlcPlayer", txt)
24         if t == txt:
25                 print "[VLC] fallback to default translation for", txt
26                 t = gettext.gettext(txt)
27         return t
28         
29
30 class __VlcManager():
31         def __init__(self, session):
32                 print "[VLC] VlcManager"
33                 self.session = session
34
35         def startSession(self):
36                 defaultServer = vlcServerConfig.getDefaultServer()
37                 if defaultServer is None:
38                         self.openServerlist()
39                 else:
40                         self.openMedialist(defaultServer)
41                 
42         def openServerlist(self):
43                 print "[VLC] openServerlist"
44                 self.session.openWithCallback(self.openMedialist, VlcServerListScreen)
45
46         def openMedialist(self, vlcServer):
47                 print "[VLC] openMedialist"
48                 if vlcServer is not None:
49                         self.session.openWithCallback(self.medialistClosed, VlcMediaListScreen, vlcServer).keyUpdate()
50
51         def medialistClosed(self, proceed = False):
52                 print "[VLC] medialistClosed"
53                 if proceed:
54                         self.openServerlist()
55
56
57 def main(session, **kwargs):
58         __VlcManager(session).startSession()
59
60
61 def Plugins(**kwargs):
62         return PluginDescriptor(
63                 name="VLC Video Player",
64                 description="A video streaming solution based on VLC",
65                 where = [ PluginDescriptor.WHERE_EXTENSIONSMENU, PluginDescriptor.WHERE_PLUGINMENU ],
66                 icon = "plugin.png", fnc = main)