Author: tack
Date: Thu Nov 30 04:58:43 2006
New Revision: 2129
Modified:
trunk/canvas/src/movie.py
Log:
Move to kaa.popcorn
Modified: trunk/canvas/src/movie.py
==============================================================================
--- trunk/canvas/src/movie.py (original)
+++ trunk/canvas/src/movie.py Thu Nov 30 04:58:43 2006
@@ -31,7 +31,7 @@
from displays.buffer import BufferCanvas
from displays.x11 import X11Canvas
from image import *
-import kaa.player
+import kaa.popcorn
from kaa import notifier, display, evas, weakref
@@ -54,7 +54,7 @@
if self._player:
self._player.signals["osd_configure"].disconnect(self._osd_configure)
if player:
- assert(player.has_capability(kaa.player.CAP_OSD))
+ assert(player.has_capability(kaa.popcorn.CAP_OSD))
player.signals["osd_configure"].connect_weak(self._osd_configure)
self._player = player
@@ -68,7 +68,6 @@
def _render(self):
regions = super(PlayerOSDCanvas, self)._render()
-
self._player.osd_update(self._osd_alpha, self["visible"], regions)
@@ -117,7 +116,11 @@
def __init__(self, mrl = None):
super(Movie, self).__init__()
self._supported_sync_properties += ["detached"]
- self._player = None
+ self._player = kaa.popcorn.Player()
+ self._player.signals["start"].connect_weak(self._video_start)
+ self._player.signals["frame"].connect_weak(self._new_frame)
+
self._player.signals["stream_changed"].connect_weak(self._stream_changed)
+
self._window = None
self.osd = None
@@ -133,6 +136,9 @@
"stream_changed": notifier.Signal()
})
+ for signal in self.signals:
+ if signal in self._player.signals:
+
self._player.signals[signal].connect_weak(self.signals[signal].emit)
self["detached"] = False
self.set_has_alpha(False)
@@ -145,39 +151,14 @@
self.open(mrl)
def open(self, mrl):
- #cls = kaa.player.get_player_class(player = "xine")
- #cls = kaa.player.get_player_class(player = "mplayer")
- cls = kaa.player.get_player_class(mrl = mrl, caps =
kaa.player.CAP_CANVAS)
- if not cls:
- raise canvas.CanvasError, "No suitable player found"
-
- if self._player != None:
- self._player.stop()
- if isinstance(self._player, cls):
- return self._player.open(mrl)
-
- # Continue open once our current player is dead. We want to wait
- # before spawning the new one so that it releases the audio
- # device.
- self._player.signals["quit"].connect_once(self._open, mrl, cls)
- self._player.die()
- return
-
- self._open(mrl, cls)
+ self._player.stop()
+ self._open(mrl)
self._aspect = 0.0
- def _open(self, mrl, cls):
- self._player = cls()
- self._player.signals["start"].connect_weak(self._video_start)
- self._player.signals["frame"].connect_weak(self._new_frame)
-
self._player.signals["stream_changed"].connect_weak(self._stream_changed)
+ def _open(self, mrl):
- for signal in self.signals:
- if signal in self._player.signals:
-
self._player.signals[signal].connect_weak(self.signals[signal].emit)
-
- if self._player.has_capability(kaa.player.CAP_OSD):
+ if self._player.has_capability(kaa.popcorn.CAP_OSD):
self.osd.set_player(weakref.weakref(self._player))
self.osd._queue_render()
else:
@@ -193,15 +174,6 @@
def play(self):
- if not self._player:
- raise SystemError, "Play called before open"
- return
-
- if self._open in self._player.signals["quit"]:
- # Waiting for old player to die.
- self.signals["open"].connect_once(self.play)
- return
-
self._player.play()
@@ -230,7 +202,7 @@
return
if not self._window:
- self._window = display.X11Window(size = (320, 200), parent =
canvas.get_window())
+ self._window = display.X11Window(size =
canvas.get_window().get_size(), parent = canvas.get_window())
self._window.set_cursor_hide_timeout(1)
self._window.show(raised = True)
-------------------------------------------------------------------------
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