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