emotion: Add support for "playback_started" callback to generic player.
authorcedric <cedric>
Fri, 8 Jun 2012 04:59:37 +0000 (04:59 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 8 Jun 2012 04:59:37 +0000 (04:59 +0000)
Patch by Pierre Le Magourou <pierre.lemagourou@openwide.fr>

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/emotion@71830 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
NEWS
src/generic_players/vlc/emotion_generic_vlc.c
src/modules/generic/Emotion_Generic_Plugin.h
src/modules/generic/emotion_generic.c

index bc79a9a..203332a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,3 +13,7 @@
 2012-06-07  Cedric Bail
 
        * Fix stride for all YUV video stream.
+
+2012-06-08  Pierre Le Magourou
+
+       * Add support for "playback_started" callback to generic player.
diff --git a/NEWS b/NEWS
index a3c86a9..75d4ae0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ Changes since Emotion 1.0.0:
 -------------------------
 
 Additions:
+       - Add support for "playback_started" callback to generic player.
 
 Fixes:
        - build out of tree.
index 72649ac..4fe1d16 100644 (file)
@@ -23,6 +23,7 @@
 
 enum _Thread_Events {
      EM_THREAD_POSITION_CHANGED,
+     EM_THREAD_PLAYBACK_STARTED,
      EM_THREAD_PLAYBACK_STOPPED,
      EM_THREAD_LAST
 };
@@ -363,6 +364,8 @@ _event_cb(const struct libvlc_event_t *ev, void *data)
         break;
       case libvlc_MediaPlayerPlaying:
         _send_resize(app, app->w, app->h);
+        thread_event = EM_THREAD_PLAYBACK_STARTED;
+        write(app->fd_write, &thread_event, sizeof(thread_event));
         break;
       case libvlc_MediaPlayerStopped:
         _send_file_set(app);
@@ -720,6 +723,9 @@ _process_thread_events(struct _App *app)
       case EM_THREAD_POSITION_CHANGED:
         _position_changed(app);
         break;
+      case EM_THREAD_PLAYBACK_STARTED:
+        _send_cmd(app, EM_RESULT_PLAYBACK_STARTED);
+        break;
       case EM_THREAD_PLAYBACK_STOPPED:
          libvlc_media_player_stop(app->mp);
          app->playing = 0;
index 2dff814..17bd7e9 100644 (file)
@@ -43,6 +43,7 @@ enum _Emotion_Generic_Result
    EM_RESULT_INIT = 0, // param: none
    EM_RESULT_FILE_SET, // param: none
    EM_RESULT_FILE_SET_DONE, // param: success (int)
+   EM_RESULT_PLAYBACK_STARTED, // param: none
    EM_RESULT_PLAYBACK_STOPPED, // param: none
    EM_RESULT_FILE_CLOSE, // param: none
    EM_RESULT_FRAME_NEW, // param: none
index ddba7b5..549c179 100644 (file)
@@ -557,6 +557,9 @@ _player_cmd_process(Emotion_Generic_Video *ev)
       case EM_RESULT_FILE_CLOSE:
         _player_file_closed(ev);
         break;
+      case EM_RESULT_PLAYBACK_STARTED:
+        _emotion_playback_started(ev->obj);
+        break;
       case EM_RESULT_PLAYBACK_STOPPED:
         _emotion_playback_finished(ev->obj);
         break;
@@ -774,6 +777,7 @@ _player_cmd_read(Emotion_Generic_Video *ev)
    switch (ev->cmd.type) {
       case EM_RESULT_INIT:
       case EM_RESULT_FILE_SET:
+      case EM_RESULT_PLAYBACK_STARTED:
       case EM_RESULT_PLAYBACK_STOPPED:
       case EM_RESULT_FILE_CLOSE:
       case EM_RESULT_FRAME_NEW: