Author: dmeyer
Date: Thu Nov  2 21:23:02 2006
New Revision: 1974

Added:
   trunk/popcorn/src/backends/gstreamer/config.py
   trunk/popcorn/src/backends/mplayer/config.py
   trunk/popcorn/src/backends/xine/config.py
Modified:
   trunk/popcorn/src/backends/__init__.py
   trunk/popcorn/src/config.py
   trunk/popcorn/src/generic.py

Log:
add basic config for backends

Modified: trunk/popcorn/src/backends/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/__init__.py      (original)
+++ trunk/popcorn/src/backends/__init__.py      Thu Nov  2 21:23:02 2006
@@ -30,16 +30,23 @@
 import os
 import sys
 
+config = []
+
 if not __file__.startswith(sys.argv[0]):
     # import only when we are not a called child process
-
     from manager import *
 
     for backend in os.listdir(os.path.dirname(__file__)):
         dirname = os.path.join(os.path.dirname(__file__), backend)
         if os.path.isdir(dirname):
             try:
+                # import the backend config
+                exec('from %s.config import config as c' % backend)
+                config.append((backend, c))
+            except ImportError:
+                continue
+            try:
                 # import the backend
                 exec('import %s' % backend)
-            except ImportError:
+            except ImportError, e:
                 pass

Added: trunk/popcorn/src/backends/gstreamer/config.py
==============================================================================
--- (empty file)
+++ trunk/popcorn/src/backends/gstreamer/config.py      Thu Nov  2 21:23:02 2006
@@ -0,0 +1,12 @@
+import os
+import sys
+import gettext
+from kaa.config import Var, Group, Dict, List
+
+path = os.path.normpath(
+    os.path.join(os.path.dirname(__file__), '../../../../share/locale'))
+i18n = gettext.translation('kaa.popcorn', path, fallback=True).ugettext
+
+config = Group(desc=i18n('gstreamer configuration'), schema=[
+    Var(name='activate', default=False, desc=i18n('activate backend'))
+    ])

Added: trunk/popcorn/src/backends/mplayer/config.py
==============================================================================
--- (empty file)
+++ trunk/popcorn/src/backends/mplayer/config.py        Thu Nov  2 21:23:02 2006
@@ -0,0 +1,12 @@
+import os
+import sys
+import gettext
+from kaa.config import Var, Group, Dict, List
+
+path = os.path.normpath(
+    os.path.join(os.path.dirname(__file__), '../../../../share/locale'))
+i18n = gettext.translation('kaa.popcorn', path, fallback=True).ugettext
+
+config = Group(desc=i18n('mplayer configuration'), schema=[
+    Var(name='activate', default=True, desc=i18n('activate backend'))
+    ])

Added: trunk/popcorn/src/backends/xine/config.py
==============================================================================
--- (empty file)
+++ trunk/popcorn/src/backends/xine/config.py   Thu Nov  2 21:23:02 2006
@@ -0,0 +1,12 @@
+import os
+import sys
+import gettext
+from kaa.config import Var, Group, Dict, List
+
+path = os.path.normpath(
+    os.path.join(os.path.dirname(__file__), '../../../../share/locale'))
+i18n = gettext.translation('kaa.popcorn', path, fallback=True).ugettext
+
+config = Group(desc=i18n('xine configuration'), schema=[
+    Var(name='activate', default=True, desc=i18n('activate backend'))
+    ])

Modified: trunk/popcorn/src/config.py
==============================================================================
--- trunk/popcorn/src/config.py (original)
+++ trunk/popcorn/src/config.py Thu Nov  2 21:23:02 2006
@@ -3,6 +3,8 @@
 import gettext
 from kaa.config import Var, Group, Dict, List, Config
 
+import backends
+
 path = os.path.normpath(
     os.path.join(os.path.dirname(__file__), '../../../../share/locale'))
 i18n = gettext.translation('kaa.popcorn', path, fallback=True).ugettext
@@ -21,3 +23,6 @@
         desc=i18n('digital out'))
     ])
     ])
+
+for n, c in backends.config:
+    config.add_variable(n, c)

Modified: trunk/popcorn/src/generic.py
==============================================================================
--- trunk/popcorn/src/generic.py        (original)
+++ trunk/popcorn/src/generic.py        Thu Nov  2 21:23:02 2006
@@ -38,13 +38,14 @@
 import kaa.notifier
 
 # kaa.popcorn imports
+import backends.manager
 from config import config as default_config
 from ptypes import *
-from backends.manager import get_player_class, get_all_players
 
 # get logging object
 log = logging.getLogger('popcorn')
 
+
 def required_states(*states):
     """
     Decorator to make sure a function is only called in the corrent state
@@ -114,6 +115,21 @@
         self._failed_player = []
         
 
+    def _get_player_class(self, player=None):
+        """
+        Return player class object to play the current mrl. This function
+        uses self._open_mrl, self._open_caps as mrl and caps and respects
+        the failed player and the player deactived in the config. If player
+        is given as argument, this player will be used.
+        """
+        exclude = self._failed_player[:]
+        for p in backends.manager.get_all_players():
+            if not getattr(self._config, p).activate and not p in exclude:
+                exclude.append(p)
+        return backends.manager.get_player_class(\
+            self._open_mrl, self._open_caps, player, exclude)
+
+        
     def _state_change(self, signal):
         """
         The used player changed its state and emited a signal. This function
@@ -131,8 +147,7 @@
             self._failed_player.append(self.get_player_id())
             self._pending = []
             self._player.release()
-            cls = get_player_class(mrl = self._open_mrl, caps = 
self._open_caps,
-                                   exclude = self._failed_player)
+            cls = self._get_player_class()
             if cls:
                 # a new possible player is found, try it
                 self._create_player(cls)
@@ -200,15 +215,15 @@
         player must have. If 'player' is given, force playback with the
         given player.
         """
-        cls = get_player_class(mrl = mrl, player = player, caps = caps)
         self._open_mrl = mrl
         self._open_caps = caps
+        self._failed_player = []
+        cls = self._get_player_class(player)
         
         if not cls:
             raise PlayerError("No supported player found to play %s", mrl)
 
         self._pending = []
-        self._failed_player = []
         if not self._player:
             self._create_player(cls)
         else:

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to