diff --git a/legacy/emotion/ChangeLog b/legacy/emotion/ChangeLog index bc79a9a154..203332a275 100644 --- a/legacy/emotion/ChangeLog +++ b/legacy/emotion/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/legacy/emotion/NEWS b/legacy/emotion/NEWS index a3c86a9c55..75d4ae05de 100644 --- a/legacy/emotion/NEWS +++ b/legacy/emotion/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. diff --git a/legacy/emotion/src/generic_players/vlc/emotion_generic_vlc.c b/legacy/emotion/src/generic_players/vlc/emotion_generic_vlc.c index 72649ace9b..4fe1d16fbc 100644 --- a/legacy/emotion/src/generic_players/vlc/emotion_generic_vlc.c +++ b/legacy/emotion/src/generic_players/vlc/emotion_generic_vlc.c @@ -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; diff --git a/legacy/emotion/src/modules/generic/Emotion_Generic_Plugin.h b/legacy/emotion/src/modules/generic/Emotion_Generic_Plugin.h index 2dff814a66..17bd7e9c50 100644 --- a/legacy/emotion/src/modules/generic/Emotion_Generic_Plugin.h +++ b/legacy/emotion/src/modules/generic/Emotion_Generic_Plugin.h @@ -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 diff --git a/legacy/emotion/src/modules/generic/emotion_generic.c b/legacy/emotion/src/modules/generic/emotion_generic.c index ddba7b538d..549c179534 100644 --- a/legacy/emotion/src/modules/generic/emotion_generic.c +++ b/legacy/emotion/src/modules/generic/emotion_generic.c @@ -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: