[Pkg-sugar-commit] [sugar-jukebox-activity] 06/10: Stop the player when the user is reproducing a video and switch to another activity.

Jonas Smedegaard dr at jones.dk
Sat Jun 27 01:57:03 UTC 2015


This is an automated email from the git hooks/post-receive script.

js pushed a commit to tag v26.1
in repository sugar-jukebox-activity.

commit acf5b660d31064bda1f654579a8ca274c792e8fb
Author: Gonzalo Odiard <godiard at gmail.com>
Date:   Mon Aug 27 16:57:31 2012 -0300

    Stop the player when the user is reproducing a video and switch to another activity.
    
    Signed-off-by: Manuel Kaufmann <humitos at gmail.com>
    Acked-by: Gonzalo Odiard <gonzalo at laptop.org>
---
 jukeboxactivity.py | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/jukeboxactivity.py b/jukeboxactivity.py
index bfbdb1a..ea1f95a 100644
--- a/jukeboxactivity.py
+++ b/jukeboxactivity.py
@@ -131,6 +131,11 @@ class JukeboxActivity(activity.Activity):
             toolbar_box.show_all()
         self.connect("key_press_event", self._key_press_event_cb)
 
+        # We want to be notified when the activity gets the focus or
+        # loses it.  When it is not active, we don't need to keep
+        # reproducing the video
+        self.connect("notify::active", self._notify_active_cb)
+
         if handle.uri:
             pass
         elif self._shared_activity:
@@ -155,7 +160,6 @@ class JukeboxActivity(activity.Activity):
         self.playflag = False
         self.tags = {}
         self.only_audio = False
-        self.got_stream_info = False
 
         self.tag_reader = TagReader()
         self.tag_reader.connect('get-tags', self.__get_tags_cb)
@@ -187,6 +191,17 @@ class JukeboxActivity(activity.Activity):
             self.uri = handle.uri
             gobject.idle_add(self._start, self.uri, handle.title)
 
+    def _notify_active_cb(self, widget, event):
+        """Sugar notify us that the activity is becoming active or inactive.
+        When we are inactive, we stop the player if it is reproducing
+        a video.
+        """
+        if self.player is not None and not self.only_audio:
+            if not self.player.is_playing() and self.props.active:
+                self.player.play()
+            if self.player.is_playing() and not self.props.active:
+                self.player.pause()
+
     def _init_view_area(self):
         """
         Use a notebook with two pages, one empty an another
@@ -339,7 +354,7 @@ class JukeboxActivity(activity.Activity):
                 self.tags[gst.TAG_ARTIST], album)
 
     def _player_stream_info_cb(self, widget, stream_info):
-        if not len(stream_info) or self.got_stream_info:
+        if not len(stream_info):
             return
 
         GST_STREAM_TYPE_UNKNOWN = 0
@@ -352,7 +367,6 @@ class JukeboxActivity(activity.Activity):
             if item.props.type == GST_STREAM_TYPE_VIDEO:
                 only_audio = False
         self.only_audio = only_audio
-        self.got_stream_info = True
         self._update_overlay()
 
     def _joined_cb(self, activity):

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-sugar/sugar-jukebox-activity.git



More information about the pkg-sugar-commit mailing list