davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=9b78f1fc42722d0e4fc3a4f5561970dce75879b7

commit 9b78f1fc42722d0e4fc3a4f5561970dce75879b7
Author: davemds <d...@gurumeditation.it>
Date:   Sun Feb 23 13:17:36 2014 +0100

    Python emotion test: port all the changes done recently in the C test.
    
    * updated theme file
    * new volume slider
    * renamed speed slider to alpha slider
    * fix alpha slider to work only on the video, not the whole frame
    * fix calculation of displayed time
    * new option: --position
    * new option: --loop
    * updated engines list
    * new option: --reflex
---
 examples/emotion/test_emotion.py |  63 ++++++++++++++++++++++++++++-----------
 examples/emotion/theme.edj       | Bin 37808 -> 42871 bytes
 2 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/examples/emotion/test_emotion.py b/examples/emotion/test_emotion.py
index 08f9c73..54d8cde 100755
--- a/examples/emotion/test_emotion.py
+++ b/examples/emotion/test_emotion.py
@@ -32,12 +32,23 @@ class MovieWindow(edje.Edje):
         self.vid.file = media_file
         self.vid.smooth_scale = True
         self.vid.play = True
+        self.vid.audio_volume = 0.5
+
+        if options.position:
+            self.vid.last_position_load()
 
         # edje scene object
+        if options.reflex:
+            group = "video_controller/reflex"
+        else:
+            group = "video_controller"
         edje.Edje.__init__(self, canvas, size=(320, 240),
-                           file=theme_file, group="video_controller")
-        self.part_drag_value_set("video_speed", 0.0, 1.0)
-        self.part_text_set("video_speed_txt", "1.0")
+                           file=theme_file, group=group)
+        self.part_drag_value_set("video_alpha", 0.0, 1.0)
+        self.part_text_set("video_alpha_txt", "alpha 255")
+        self.part_drag_value_set("video_volume", 0.0, 0.5)
+        self.part_text_set("video_volume_txt", "vol 0.50")
+        
         self.part_swallow("video_swallow", self.vid)
         self.data["moving"] = False
         self.data["resizing"] = False
@@ -69,8 +80,10 @@ class MovieWindow(edje.Edje):
                                   self.frame_signal_stop_cb)
         self.signal_callback_add("drag", "video_progress",
                                   self.frame_signal_jump_cb)
-        self.signal_callback_add("drag", "video_speed",
+        self.signal_callback_add("drag", "video_alpha",
                                   self.frame_signal_alpha_cb)
+        self.signal_callback_add("drag", "video_volume",
+                                  self.frame_signal_volume_cb)
 
         self.signal_callback_add("frame_move", "start",
                                   self.frame_signal_move_start_cb)
@@ -91,12 +104,12 @@ class MovieWindow(edje.Edje):
         pos = vid.position
         length = vid.play_length
         lh = length / 3600
-        lm = length / 60 - (lh * 60)
-        ls = length - (lm * 60)
+        lm = (length % 3600) / 60
+        ls = length % 60
         ph = pos / 3600
-        pm = pos / 60 - (ph * 60)
-        ps = pos - (pm * 60)
-        pf = pos * 100 - (ps * 100) - (pm * 60 * 100) - (ph * 60 * 60 * 100)
+        pm = (pos % 3600) / 60
+        ps = pos % 60
+        pf = (pos % 1) * 100
         buf = "%i:%02i:%02i.%02i / %i:%02i:%02i" % (ph, pm, ps, pf, lh, lm, ls)
         self.part_text_set("video_progress_txt", buf)
         if length > 0:
@@ -124,8 +137,13 @@ class MovieWindow(edje.Edje):
     def frame_signal_alpha_cb(self, frame, emission, source):
         x, y = frame.part_drag_value_get(source)
         spd = int(255 * y)
-        frame.color = (spd, spd, spd, spd)
-        frame.part_text_set("video_speed_txt", "%0.0f" % spd)
+        self.vid.color = (spd, spd, spd, spd)
+        frame.part_text_set("video_alpha_txt", "alpha %0.0f" % spd)
+
+    def frame_signal_volume_cb(self, frame, emission, source):
+        x, vol = frame.part_drag_value_get(source)
+        self.vid.audio_volume = vol
+        frame.part_text_set("video_volume_txt", "vol %.2f" % vol)
 
     def frame_signal_move_start_cb(self, frame, emission, source):
         self.data["moving"] = True
@@ -174,8 +192,9 @@ class MovieWindow(edje.Edje):
             self.size = (w, h)
 
     def vid_decode_stop_cb(self, vid):
-        vid.position = 0.0
-        vid.play = True
+        if options.loop:
+            vid.position = 0.0
+            vid.play = True
 
     def vid_channels_change_cb(self, vid):
         print("Channels: %d audio, %d video, %d spu" % \
@@ -320,13 +339,23 @@ def cmdline_parse():
                       action="callback", callback=parse_geometry,
                       default=(800, 600),
                       help="use given window geometry")
+    engines = ("gstreamer1", "vlc", "gstreamer", "xine")
     parser.add_option("-e", "--engine", type="choice",
-                      choices=("xine", "gstreamer", "vlc"), 
default="gstreamer",
-                      help=("multimedia engine to use (xine, gstreamer or vlc) 
"
-                            "default=%default") )
+                      choices=engines, default=engines[0],
+                      help=("multimedia engine to use {} "
+                            "default=%default").format(engines) )
     parser.add_option("-w", "--webcams", action="store_true",
                       default=False,
-                      help=("show all the available webcams streams") )
+                      help=("show all the available v4l streams") )
+    parser.add_option("-r", "--reflex", action="store_true",
+                      default=False,
+                      help=("show video reflex effect") )
+    parser.add_option("-l", "--loop", action="store_true",
+                      default=False,
+                      help=("restart the video when end reached") )
+    parser.add_option("-p", "--position", action="store_true",
+                      default=False,
+                      help=("start the video from last know position") )
     options, args = parser.parse_args()
     if not args and not options.webcams:
         parser.error("missing filename or the -w option")
diff --git a/examples/emotion/theme.edj b/examples/emotion/theme.edj
index 6ad4475..8c4e9cf 100644
Binary files a/examples/emotion/theme.edj and b/examples/emotion/theme.edj 
differ

-- 


Reply via email to