Author: tack
Date: Fri Dec 29 16:39:17 2006
New Revision: 2305
Modified:
trunk/popcorn/src/backends/__init__.py
trunk/popcorn/src/backends/gstreamer/__init__.py
trunk/popcorn/src/backends/manager.py
trunk/popcorn/src/backends/mplayer/__init__.py
trunk/popcorn/src/backends/xine/__init__.py
Log:
Defer importing backends until needed.
Modified: trunk/popcorn/src/backends/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/__init__.py (original)
+++ trunk/popcorn/src/backends/__init__.py Fri Dec 29 16:39:17 2006
@@ -45,8 +45,3 @@
config.append((backend, c))
except ImportError:
continue
- try:
- # import the backend
- exec('import %s' % backend)
- except ImportError, e:
- pass
Modified: trunk/popcorn/src/backends/gstreamer/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/gstreamer/__init__.py (original)
+++ trunk/popcorn/src/backends/gstreamer/__init__.py Fri Dec 29 16:39:17 2006
@@ -27,11 +27,10 @@
# -----------------------------------------------------------------------------
# kaa.popcorn imports
-from kaa.popcorn.backends import register
+from kaa.popcorn.backends import register_backend
from kaa.popcorn.ptypes import *
# player imports
-from player import GStreamer
from config import config
def get_capabilities():
@@ -62,4 +61,6 @@
return capabilities, schemes, exts, codecs
-register("gstreamer", GStreamer, get_capabilities)
+def register():
+ from player import GStreamer
+ register_backend("gstreamer", GStreamer, get_capabilities)
Modified: trunk/popcorn/src/backends/manager.py
==============================================================================
--- trunk/popcorn/src/backends/manager.py (original)
+++ trunk/popcorn/src/backends/manager.py Fri Dec 29 16:39:17 2006
@@ -26,7 +26,7 @@
#
# -----------------------------------------------------------------------------
-__all__ = [ 'register', 'get_player_class', 'get_all_players' ]
+__all__ = [ 'register_backend', 'get_player_class', 'get_all_players' ]
# python imports
import os
@@ -44,11 +44,30 @@
# internal list of players
_players = {}
+_backends_imported = False
# get logging object
log = logging.getLogger('popcorn.manager')
-def register(player_id, cls, get_caps_callback):
+def import_backends():
+ global _backends_imported
+ if _backends_imported:
+ return
+
+ 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 and register it.
+ exec('from %s import register; register()' % backend)
+ except ImportError, e:
+ pass
+
+ # This function only ever needs to be called once.
+ _backends_imported = True
+
+
+def register_backend(player_id, cls, get_caps_callback):
"""
Register a new player.
"""
@@ -80,6 +99,8 @@
player is found, otherwise None.
"""
+ import_backends()
+
# Ensure all players have their capabilities fetched.
for player_id in _players:
if _players[player_id]["loaded"]:
@@ -184,4 +205,5 @@
"""
Return all player id strings.
"""
+ import_backends()
return _players.keys()
Modified: trunk/popcorn/src/backends/mplayer/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/mplayer/__init__.py (original)
+++ trunk/popcorn/src/backends/mplayer/__init__.py Fri Dec 29 16:39:17 2006
@@ -30,17 +30,18 @@
import kaa.utils
# kaa.popcorn imports
-from kaa.popcorn.backends import register
+from kaa.popcorn.backends import register_backend
from kaa.popcorn.ptypes import *
# player imports
-from player import MPlayer, _get_mplayer_info
from config import config
def get_capabilities():
"""
Return capabilities of the mplayer backend.
"""
+ from player import _get_mplayer_info
+
capabilities = {
CAP_OSD : False,
CAP_CANVAS : False,
@@ -79,5 +80,6 @@
return capabilities, schemes, exts, codecs
-# register mplayer backend
-register("mplayer", MPlayer, get_capabilities)
+def register():
+ from player import MPlayer
+ register_backend("mplayer", MPlayer, get_capabilities)
Modified: trunk/popcorn/src/backends/xine/__init__.py
==============================================================================
--- trunk/popcorn/src/backends/xine/__init__.py (original)
+++ trunk/popcorn/src/backends/xine/__init__.py Fri Dec 29 16:39:17 2006
@@ -27,11 +27,10 @@
# -----------------------------------------------------------------------------
# kaa.popcorn imports
-from kaa.popcorn.backends import register
+from kaa.popcorn.backends import register_backend
from kaa.popcorn.ptypes import *
# player imports
-from player import Xine
from config import config
def get_capabilities():
@@ -68,4 +67,6 @@
return capabilities, schemes, exts, codecs
-register("xine", Xine, get_capabilities)
+def register():
+ from player import Xine
+ register_backend("xine", Xine, get_capabilities)
-------------------------------------------------------------------------
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