Le 7 juin 2015 10:20, "Avi Levin" <[email protected]> a écrit :
>
> jackdanielz pushed a commit to branch master.
>
>
http://git.enlightenment.org/core/efl.git/commit/?id=f9c116a48749c642eb31154a4cfb5f60a110dcba
>
> commit f9c116a48749c642eb31154a4cfb5f60a110dcba
> Author: Avi Levin <[email protected]>
> Date: Sun Apr 26 14:49:26 2015 +0300
>
> emotion: porting evas smart callbacks to eo
This one also smell very wrong ! Especially the part that remove the old
test that should still be working.
> ---
> src/examples/emotion/emotion_basic_example.c | 17 +++-
> src/examples/emotion/emotion_border_example.c | 66 +++++++++----
> src/examples/emotion/emotion_generic_example.c | 80 ++++++++++-----
> .../emotion/emotion_generic_subtitle_example.c | 16 ++-
> src/examples/emotion/emotion_signals_example.c | 87 ++++++++++------
> src/lib/emotion/emotion_smart.c | 76 ++++++--------
> src/modules/ethumb/emotion/emotion.c | 56 +++++++----
> src/tests/emotion/emotion_test_main.c | 110
++++++++++++++-------
> 8 files changed, 318 insertions(+), 190 deletions(-)
>
> diff --git a/src/examples/emotion/emotion_basic_example.c
b/src/examples/emotion/emotion_basic_example.c
> index ec465bc..ebf8244 100644
> --- a/src/examples/emotion/emotion_basic_example.c
> +++ b/src/examples/emotion/emotion_basic_example.c
> @@ -1,5 +1,9 @@
> //Compile with:
> -// gcc -o emotion_basic_example emotion_basic_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas`
> +// gcc -o emotion_basic_example emotion_basic_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas eo`
> +
> +#define EFL_BETA_API_SUPPORT
> +#define EFL_EO_API_SUPPORT
> +#include <Eo.h>
>
> #include <Ecore.h>
> #include <Ecore_Evas.h>
> @@ -10,10 +14,13 @@
> #define WIDTH (320)
> #define HEIGHT (240)
>
> -static void
> -_playback_started_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
void *event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_started_cb(void *data EINA_UNUSED,
> + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info EINA_UNUSED)
> {
> printf("Emotion object started playback.\n");
> +
> + return EINA_TRUE;
> }
>
> int
> @@ -58,8 +65,8 @@ main(int argc, const char *argv[])
> em = emotion_object_add(e);
> emotion_object_init(em, NULL);
>
> - evas_object_smart_callback_add(
> - em, "playback_started", _playback_started_cb, NULL);
> + eo_do(em, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_PLAYBACK_START, _playback_started_cb, NULL));
>
> emotion_object_file_set(em, filename);
>
> diff --git a/src/examples/emotion/emotion_border_example.c
b/src/examples/emotion/emotion_border_example.c
> index 695b507..22eca25 100644
> --- a/src/examples/emotion/emotion_border_example.c
> +++ b/src/examples/emotion/emotion_border_example.c
> @@ -1,5 +1,8 @@
> //Compile with:
> -// gcc -o emotion_border_example emotion_border_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas eina`
> +// gcc -o emotion_border_example emotion_border_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas eina eo`
> +
> +#define EFL_EO_API_SUPPORT
> +#define EFL_BETA_API_SUPPORT
>
> #include <Ecore.h>
> #include <Ecore_Evas.h>
> @@ -14,10 +17,13 @@
> static Eina_List *filenames = NULL;
> static Eina_List *curfile = NULL;
>
> -static void
> -_playback_started_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
void *event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_started_cb(void *data EINA_UNUSED,
> + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc
EINA_UNUSED, void *event_info EINA_UNUSED)
> {
> printf("Emotion object started playback.\n");
> +
> + return EINA_TRUE;
> }
>
> static Evas_Object *
> @@ -27,8 +33,8 @@ _create_emotion_object(Evas *e)
>
> emotion_object_init(em, "gstreamer1");
>
> - evas_object_smart_callback_add(
> - em, "playback_started", _playback_started_cb, NULL);
> + eo_do(em, eo_event_callback_add(
> + EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _playback_started_cb, NULL));
>
> return em;
> }
> @@ -103,38 +109,53 @@ _on_key_down(void *data, Evas *e EINA_UNUSED,
Evas_Object *o EINA_UNUSED, void *
> }
> }
>
> -static void
> -_frame_decode_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
void *event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_decode_cb(void *data EINA_UNUSED,
> + Eo *o EINA_UNUSED, const Eo_Event_Description *desc
EINA_UNUSED, void *event_info EINA_UNUSED)
> {
> // fprintf(stderr, "smartcb: frame_decode\n");
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_length_change_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_length_change_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> fprintf(stderr, "smartcb: length_change: %0.3f\n",
emotion_object_play_length_get(o));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_position_update_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_position_update_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> fprintf(stderr, "smartcb: position_update: %0.3f\n",
emotion_object_position_get(o));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_progress_change_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_progress_change_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> fprintf(stderr, "smartcb: progress_change: %0.3f, %s\n",
> emotion_object_progress_status_get(o),
> emotion_object_progress_info_get(o));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_frame_resize_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_resize_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> int w, h;
> emotion_object_size_get(o, &w, &h);
> fprintf(stderr, "smartcb: frame_resize: %dx%d\n", w, h);
> +
> + return EINA_TRUE;
> }
>
> static void /* adjust canvas' contents on resizes */
> @@ -153,6 +174,15 @@ _canvas_resize_cb(Ecore_Evas *ee)
> evas_object_resize(em, w - 20, h - 20);
> }
>
> +static const Eo_Callback_Array_Item emotion_object_example_callbacks[] =
{
> + { EMOTION_OBJECT_EVENT_FRAME_DECODE, _frame_decode_cb },
> + { EMOTION_OBJECT_EVENT_LENGTH_CHANGE, _length_change_cb },
> + { EMOTION_OBJECT_EVENT_POSITION_UPDATE, _position_update_cb },
> + { EMOTION_OBJECT_EVENT_PROGRESS_CHANGE, _progress_change_cb },
> + { EMOTION_OBJECT_EVENT_FRAME_RESIZE, _frame_resize_cb },
> + { NULL, NULL }
> +};
> +
> int
> main(int argc, const char *argv[])
> {
> @@ -211,11 +241,7 @@ main(int argc, const char *argv[])
>
> ecore_evas_data_set(ee, "emotion", em);
>
> - evas_object_smart_callback_add(em, "frame_decode", _frame_decode_cb,
NULL);
> - evas_object_smart_callback_add(em, "length_change",
_length_change_cb, NULL);
> - evas_object_smart_callback_add(em, "position_update",
_position_update_cb, NULL);
> - evas_object_smart_callback_add(em, "progress_change",
_progress_change_cb, NULL);
> - evas_object_smart_callback_add(em, "frame_resize", _frame_resize_cb,
NULL);
> + eo_do(em,
eo_event_callback_array_add(emotion_object_example_callbacks, NULL));
>
> evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN,
_on_key_down, em);
> evas_object_focus_set(bg, EINA_TRUE);
> diff --git a/src/examples/emotion/emotion_generic_example.c
b/src/examples/emotion/emotion_generic_example.c
> index 9320230..5bd869c 100644
> --- a/src/examples/emotion/emotion_generic_example.c
> +++ b/src/examples/emotion/emotion_generic_example.c
> @@ -1,5 +1,8 @@
> //Compile with:
> -// gcc -o emotion_generic_example emotion_generic_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas eina`
> +// gcc -o emotion_generic_example emotion_generic_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas eina eo`
> +
> +#define EFL_EO_API_SUPPORT
> +#define EFL_BETA_API_SUPPORT
>
> #include <Ecore.h>
> #include <Ecore_Evas.h>
> @@ -15,18 +18,24 @@
> static Eina_List *filenames = NULL;
> static Eina_List *curfile = NULL;
>
> -static void
> -_playback_started_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
void *event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_started_cb(void *data EINA_UNUSED,
> + Eo *o EINA_UNUSED, const Eo_Event_Description *desc
EINA_UNUSED, void *event_info EINA_UNUSED)
> {
> printf("Emotion object started playback.\n");
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_playback_stopped_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_stopped_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("Emotion playback stopped.\n");
> emotion_object_play_set(o, EINA_FALSE);
> emotion_object_position_set(o, 0);
> +
> + return EINA_TRUE;
> }
>
> static Evas_Object *
> @@ -36,10 +45,10 @@ _create_emotion_object(Evas *e)
>
> emotion_object_init(em, "generic");
>
> - evas_object_smart_callback_add(
> - em, "playback_started", _playback_started_cb, NULL);
> - evas_object_smart_callback_add(
> - em, "playback_finished", _playback_stopped_cb, NULL);
> + eo_do(em, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _playback_started_cb,
NULL));
> + eo_do(em, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_PLAYBACK_FINISHED, _playback_stopped_cb,
NULL));
>
> return em;
> }
> @@ -123,40 +132,63 @@ _on_key_down(void *data, Evas *e EINA_UNUSED,
Evas_Object *o EINA_UNUSED, void *
> }
> }
>
> -static void
> -_frame_decode_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
void *event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_decode_cb(void *data EINA_UNUSED,
> + Eo *o EINA_UNUSED, const Eo_Event_Description *desc
EINA_UNUSED, void *event_info EINA_UNUSED)
> {
> // fprintf(stderr, "smartcb: frame_decode\n");
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_length_change_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_length_change_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> fprintf(stderr, "smartcb: length_change: %0.3f\n",
emotion_object_play_length_get(o));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_position_update_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_position_update_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> fprintf(stderr, "smartcb: position_update: %0.3f\n",
emotion_object_position_get(o));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_progress_change_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_progress_change_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> fprintf(stderr, "smartcb: progress_change: %0.3f, %s\n",
> - emotion_object_progress_status_get(o),
> - emotion_object_progress_info_get(o));
> + emotion_object_progress_status_get(obj),
> + emotion_object_progress_info_get(obj));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_frame_resize_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_resize_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> int w, h;
> emotion_object_size_get(o, &w, &h);
> fprintf(stderr, "smartcb: frame_resize: %dx%d\n", w, h);
> +
> + return EINA_TRUE;
> }
>
> +static const Eo_Callback_Array_Item emotion_object_example_callbacks[] =
{
> + { EMOTION_OBJECT_EVENT_FRAME_DECODE, _frame_decode_cb },
> + { EMOTION_OBJECT_EVENT_LENGTH_CHANGE, _length_change_cb },
> + { EMOTION_OBJECT_EVENT_POSITION_UPDATE, _position_update_cb },
> + { EMOTION_OBJECT_EVENT_PROGRESS_CHANGE, _progress_change_cb },
> + { NULL, NULL }
> +};
> +
> int
> main(int argc, const char *argv[])
> {
> @@ -206,11 +238,7 @@ main(int argc, const char *argv[])
> evas_object_resize(em, WIDTH, HEIGHT);
> evas_object_show(em);
>
> - evas_object_smart_callback_add(em, "frame_decode", _frame_decode_cb,
NULL);
> - evas_object_smart_callback_add(em, "length_change",
_length_change_cb, NULL);
> - evas_object_smart_callback_add(em, "position_update",
_position_update_cb, NULL);
> - evas_object_smart_callback_add(em, "progress_change",
_progress_change_cb, NULL);
> - evas_object_smart_callback_add(em, "frame_resize", _frame_resize_cb,
NULL);
> + eo_do(em,
eo_event_callback_array_add(emotion_object_example_callbacks, NULL));
>
> evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN,
_on_key_down, em);
> evas_object_focus_set(bg, EINA_TRUE);
> diff --git a/src/examples/emotion/emotion_generic_subtitle_example.c
b/src/examples/emotion/emotion_generic_subtitle_example.c
> index b5fb5a8..03b8aab 100644
> --- a/src/examples/emotion/emotion_generic_subtitle_example.c
> +++ b/src/examples/emotion/emotion_generic_subtitle_example.c
> @@ -1,5 +1,8 @@
> //Compile with:
> -// gcc -o emotion_generic_subtitle_example
emotion_generic_subtitle_example.c `pkg-config --libs --cflags emotion evas
ecore ecore-evas`
> +// gcc -o emotion_generic_subtitle_example
emotion_generic_subtitle_example.c `pkg-config --libs --cflags emotion evas
ecore ecore-evas eo`
> +
> +#define EFL_EO_API_SUPPORT
> +#define EFL_BETA_API_SUPPORT
>
> #include <Ecore.h>
> #include <Ecore_Evas.h>
> @@ -10,10 +13,13 @@
> #define WIDTH (320)
> #define HEIGHT (240)
>
> -static void
> -_playback_started_cb(void *data EINA_UNUSED, Evas_Object *o EINA_UNUSED,
void *event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_started_cb(void *data EINA_UNUSED,
> + Eo *o EINA_UNUSED, const Eo_Event_Description *desc
EINA_UNUSED, void *event_info EINA_UNUSED)
> {
> printf("Emotion object started playback.\n");
> +
> + return EINA_TRUE;
> }
>
> static void
> @@ -74,8 +80,8 @@ main(int argc, const char *argv[])
> if (subtitle_filename)
> emotion_object_video_subtitle_file_set(em, subtitle_filename);
>
> - evas_object_smart_callback_add(
> - em, "playback_started", _playback_started_cb, NULL);
> + eo_do(em, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _playback_started_cb,
NULL));
>
> emotion_object_file_set(em, filename);
>
> diff --git a/src/examples/emotion/emotion_signals_example.c
b/src/examples/emotion/emotion_signals_example.c
> index dd83ac2..3c56c40 100644
> --- a/src/examples/emotion/emotion_signals_example.c
> +++ b/src/examples/emotion/emotion_signals_example.c
> @@ -1,5 +1,8 @@
> //Compile with:
> -// gcc -o emotion_signals_example emotion_signals_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas`
> +// gcc -o emotion_signals_example emotion_signals_example.c `pkg-config
--libs --cflags emotion evas ecore ecore-evas eo`
> +
> +#define EFL_EO_API_SUPPORT
> +#define EFL_BETA_API_SUPPORT
>
> #include <Ecore.h>
> #include <Ecore_Evas.h>
> @@ -30,74 +33,96 @@ _display_info(Evas_Object *o)
> printf("\n");
> }
>
> -static void
> -_playback_started_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_started_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object started playback.\n");
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_playback_finished_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_playback_finished_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object finished playback.\n");
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_open_done_cb(void *data EINA_UNUSED, Evas_Object *o, void *event_info
EINA_UNUSED)
> +static Eina_Bool
> +_open_done_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object open done.\n");
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_position_update_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_position_update_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object first position update.\n");
> - evas_object_smart_callback_del(o, "position_update",
_position_update_cb);
> + eo_do(o, eo_event_callback_del(EMOTION_OBJECT_EVENT_POSITION_UPDATE,
> + _position_update_cb, NULL));
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_frame_decode_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_decode_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object first frame decode.\n");
> - evas_object_smart_callback_del(o, "frame_decode", _frame_decode_cb);
> + eo_do(o, eo_event_callback_del(EMOTION_OBJECT_EVENT_FRAME_DECODE,
> + _frame_decode_cb, NULL));
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_decode_stop_cb(void *data EINA_UNUSED, Evas_Object *o, void *event_info
EINA_UNUSED)
> +static Eina_Bool
> +_decode_stop_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object decode stop.\n");
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_frame_resize_cb(void *data EINA_UNUSED, Evas_Object *o, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_resize_cb(void *data EINA_UNUSED,
> + Eo *o, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf(">>> Emotion object frame resize.\n");
> _display_info(o);
> +
> + return EINA_TRUE;
> }
>
> +static const Eo_Callback_Array_Item emotion_object_example_callbacks[] =
{
> + { EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _playback_started_cb },
> + { EMOTION_OBJECT_EVENT_PLAYBACK_FINISHED, _playback_finished_cb },
> + { EMOTION_OBJECT_EVENT_OPEN_DONE, _open_done_cb },
> + { EMOTION_OBJECT_EVENT_POSITION_UPDATE, _position_update_cb },
> + { EMOTION_OBJECT_EVENT_FRAME_DECODE, _frame_decode_cb },
> + { EMOTION_OBJECT_EVENT_DECODE_STOP, _decode_stop_cb },
> + { EMOTION_OBJECT_EVENT_FRAME_RESIZE, _frame_resize_cb },
> + { NULL, NULL }
> +};
> +
> static void
> _setup_emotion_callbacks(Evas_Object *o)
> {
> - evas_object_smart_callback_add(
> - o, "playback_started", _playback_started_cb, NULL);
> - evas_object_smart_callback_add(
> - o, "playback_finished", _playback_finished_cb, NULL);
> - evas_object_smart_callback_add(
> - o, "open_done", _open_done_cb, NULL);
> - evas_object_smart_callback_add(
> - o, "position_update", _position_update_cb, NULL);
> - evas_object_smart_callback_add(
> - o, "frame_decode", _frame_decode_cb, NULL);
> - evas_object_smart_callback_add(
> - o, "decode_stop", _decode_stop_cb, NULL);
> - evas_object_smart_callback_add(
> - o, "frame_resize", _frame_resize_cb, NULL);
> + eo_do(o, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, _playback_started_cb,
NULL));
> }
>
> int
> diff --git a/src/lib/emotion/emotion_smart.c
b/src/lib/emotion/emotion_smart.c
> index fbbbb49..ea1130e 100644
> --- a/src/lib/emotion/emotion_smart.c
> +++ b/src/lib/emotion/emotion_smart.c
> @@ -123,29 +123,6 @@ static void _mouse_down(void *data, Evas *ev,
Evas_Object *obj, void *event_info
> static void _pos_set_job(void *data);
> static void _pixels_get(void *data, Evas_Object *obj);
>
> -/**********************************/
> -/* Globals for the E Video Object */
> -/**********************************/
> -static const char SIG_FRAME_DECODE[] = "frame_decode";
> -static const char SIG_POSITION_UPDATE[] = "position_update";
> -static const char SIG_LENGTH_CHANGE[] = "length_change";
> -static const char SIG_FRAME_RESIZE[] = "frame_resize";
> -static const char SIG_DECODE_STOP[] = "decode_stop";
> -static const char SIG_PLAYBACK_STARTED[] = "playback_started";
> -static const char SIG_PLAYBACK_FINISHED[] = "playback_finished";
> -static const char SIG_AUDIO_LEVEL_CHANGE[] = "audio_level_change";
> -static const char SIG_CHANNELS_CHANGE[] = "channels_change";
> -static const char SIG_TITLE_CHANGE[] = "title_change";
> -static const char SIG_PROGRESS_CHANGE[] = "progress_change";
> -static const char SIG_REF_CHANGE[] = "ref_change";
> -static const char SIG_BUTTON_NUM_CHANGE[] = "button_num_change";
> -static const char SIG_BUTTON_CHANGE[] = "button_change";
> -static const char SIG_OPEN_DONE[] = "open_done";
> -static const char SIG_POSITION_SAVE_SUCCEED[] = "position_save,succeed";
> -static const char SIG_POSITION_SAVE_FAILED[] = "position_save,failed";
> -static const char SIG_POSITION_LOAD_SUCCEED[] = "position_load,succeed";
> -static const char SIG_POSITION_LOAD_FAILED[] = "position_load,failed";
> -
> static void
> _engine_init(Eo *obj, Emotion_Object_Data *sd)
> {
> @@ -1341,7 +1318,8 @@ _eio_load_xattr_done(void *data, Eio_File *handler,
double xattr_double)
> Emotion_Object_Data *sd = data;
>
> emotion_object_position_set(evas_object_smart_parent_get(sd->obj),
xattr_double);
> -
evas_object_smart_callback_call(evas_object_smart_parent_get(sd->obj),
SIG_POSITION_LOAD_SUCCEED, NULL);
> + eo_do(evas_object_smart_parent_get(sd->obj),
> +
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_LOAD_SUCCEED, NULL));
> _eio_load_xattr_cleanup(sd, handler);
> }
>
> @@ -1350,7 +1328,8 @@ _eio_load_xattr_error(void *data, Eio_File
*handler, int err EINA_UNUSED)
> {
> Emotion_Object_Data *sd = data;
>
> -
evas_object_smart_callback_call(evas_object_smart_parent_get(sd->obj),
SIG_POSITION_LOAD_FAILED, NULL);
> + eo_do(evas_object_smart_parent_get(sd->obj),
> +
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_LOAD_FAILED, NULL));
> _eio_load_xattr_cleanup(sd, handler);
> }
> #endif
> @@ -1385,10 +1364,10 @@ emotion_object_last_position_load(Evas_Object
*obj)
> if (eina_xattr_double_get(tmp, "user.e.time_seek", &xattr))
> {
> emotion_object_position_set(obj, xattr);
> - evas_object_smart_callback_call(obj, SIG_POSITION_LOAD_SUCCEED,
NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_LOAD_SUCCEED, NULL));
> }
> else
> - evas_object_smart_callback_call(obj, SIG_POSITION_LOAD_FAILED,
NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_LOAD_FAILED, NULL));
> #endif
> }
>
> @@ -1411,7 +1390,7 @@ _eio_save_xattr_done(void *data, Eio_File *handler)
> {
> Emotion_Object_Data *sd = data;
>
> - evas_object_smart_callback_call(sd->obj, SIG_POSITION_SAVE_SUCCEED,
NULL);
> + eo_do(sd->obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_SAVE_SUCCEED, NULL));
> _eio_save_xattr_cleanup(sd, handler);
> }
>
> @@ -1420,7 +1399,7 @@ _eio_save_xattr_error(void *data, Eio_File
*handler, int err EINA_UNUSED)
> {
> Emotion_Object_Data *sd = data;
>
> - evas_object_smart_callback_call(sd->obj, SIG_POSITION_SAVE_FAILED,
NULL);
> + eo_do(sd->obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_SAVE_FAILED, NULL));
> _eio_save_xattr_cleanup(sd, handler);
> }
> #endif
> @@ -1450,9 +1429,10 @@ emotion_object_last_position_save(Evas_Object *obj)
> sd);
> #else
> if (eina_xattr_double_set(tmp, "user.e.time_seek",
emotion_object_position_get(obj), 0))
> - evas_object_smart_callback_call(obj, SIG_POSITION_SAVE_SUCCEED,
NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_SAVE_SUCCEED, NULL));
> else
> - evas_object_smart_callback_call(obj, SIG_POSITION_SAVE_FAILED,
NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_SAVE_FAILED, NULL));
> +
> #endif
> }
>
> @@ -1513,7 +1493,7 @@ _emotion_frame_anim(void *data)
> _emotion_video_pos_update(obj,
>
emotion_engine_instance_pos_get(sd->engine_instance),
>
emotion_engine_instance_len_get(sd->engine_instance));
> - evas_object_smart_callback_call(obj, SIG_FRAME_DECODE, NULL);
> + eo_do(obj, eo_event_callback_call(EMOTION_OBJECT_EVENT_FRAME_DECODE,
NULL));
> return EINA_FALSE;
> }
>
> @@ -1537,8 +1517,10 @@ _emotion_video_pos_update(Evas_Object *obj, double
pos, double len)
> if (len != sd->len) nlen = 1;
> sd->pos = pos;
> sd->len = len;
> - if (npos) evas_object_smart_callback_call(obj, SIG_POSITION_UPDATE,
NULL);
> - if (nlen) evas_object_smart_callback_call(obj, SIG_LENGTH_CHANGE,
NULL);
> + if (npos) eo_do(obj,
> + eo_event_callback_call(EMOTION_OBJECT_EVENT_POSITION_UPDATE,
NULL));
> + if (nlen) eo_do(obj,
> + eo_event_callback_call(EMOTION_OBJECT_EVENT_LENGTH_CHANGE,
NULL));
> }
>
> EAPI void
> @@ -1567,7 +1549,7 @@ _emotion_frame_resize(Evas_Object *obj, int w, int
h, double ratio)
> if (changed)
> {
> evas_object_size_hint_request_set(obj, w, h);
> - evas_object_smart_callback_call(obj, SIG_FRAME_RESIZE, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_FRAME_RESIZE, NULL));
> evas_object_geometry_get(obj, NULL, NULL, &w, &h);
> _emotion_object_aspect_border_apply(obj, sd, w, h);
> }
> @@ -1591,7 +1573,7 @@ _emotion_decode_stop(Evas_Object *obj)
> if (sd->play)
> {
> sd->play = 0;
> - evas_object_smart_callback_call(obj, SIG_DECODE_STOP, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_DECODE_STOP, NULL));
> }
> }
>
> @@ -1607,25 +1589,26 @@ _emotion_open_done(Evas_Object *obj)
> emotion_object_position_set(obj, sd->remember_jump);
> if (sd->remember_play != sd->play)
> emotion_object_play_set(obj, sd->remember_play);
> - evas_object_smart_callback_call(obj, SIG_OPEN_DONE, NULL);
> + eo_do(obj, eo_event_callback_call(EMOTION_OBJECT_EVENT_OPEN_DONE,
NULL));
> +
> }
>
> EAPI void
> _emotion_playback_started(Evas_Object *obj)
> {
> - evas_object_smart_callback_call(obj, SIG_PLAYBACK_STARTED, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_PLAYBACK_STARTED, NULL));
> }
>
> EAPI void
> _emotion_playback_finished(Evas_Object *obj)
> {
> - evas_object_smart_callback_call(obj, SIG_PLAYBACK_FINISHED, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_PLAYBACK_FINISHED, NULL));
> }
>
> EAPI void
> _emotion_audio_level_change(Evas_Object *obj)
> {
> - evas_object_smart_callback_call(obj, SIG_AUDIO_LEVEL_CHANGE, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_AUDIO_LEVEL_CHANGE, NULL));
> }
>
> EAPI void
> @@ -1634,7 +1617,7 @@ _emotion_channels_change(Evas_Object *obj)
> Emotion_Object_Data *sd;
>
> E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
> - evas_object_smart_callback_call(obj, SIG_CHANNELS_CHANGE, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_CHANNELS_CHANGE, NULL));
> }
>
> EAPI void
> @@ -1644,7 +1627,8 @@ _emotion_title_set(Evas_Object *obj, char *title)
>
> E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
> eina_stringshare_replace(&sd->title, title);
> - evas_object_smart_callback_call(obj, SIG_TITLE_CHANGE, NULL);
> + eo_do(obj, eo_event_callback_call(EMOTION_OBJECT_EVENT_TITLE_CHANGE,
NULL));
> +
> }
>
> EAPI void
> @@ -1655,7 +1639,7 @@ _emotion_progress_set(Evas_Object *obj, char *info,
double st)
> E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
> eina_stringshare_replace(&sd->progress.info, info);
> sd->progress.stat = st;
> - evas_object_smart_callback_call(obj, SIG_PROGRESS_CHANGE, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_PROGRESS_CHANGE, NULL));
> }
>
> EAPI void
> @@ -1666,7 +1650,7 @@ _emotion_file_ref_set(Evas_Object *obj, const char
*file, int num)
> E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
> eina_stringshare_replace(&sd->ref.file, file);
> sd->ref.num = num;
> - evas_object_smart_callback_call(obj, SIG_REF_CHANGE, NULL);
> + eo_do(obj, eo_event_callback_call(EMOTION_OBJECT_EVENT_REF_CHANGE,
NULL));
> }
>
> EAPI void
> @@ -1676,7 +1660,7 @@ _emotion_spu_button_num_set(Evas_Object *obj, int
num)
>
> E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
> sd->spu.button_num = num;
> - evas_object_smart_callback_call(obj, SIG_BUTTON_NUM_CHANGE, NULL);
> + eo_do(obj,
eo_event_callback_call(EMOTION_OBJECT_EVENT_BUTTON_NUM_CHANGE, NULL));
> }
>
> EAPI void
> @@ -1686,7 +1670,7 @@ _emotion_spu_button_set(Evas_Object *obj, int
button)
>
> E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
> sd->spu.button = button;
> - evas_object_smart_callback_call(obj, SIG_BUTTON_CHANGE, NULL);
> + eo_do(obj, eo_event_callback_call(EMOTION_OBJECT_EVENT_BUTTON_CHANGE,
NULL));
> }
>
> EAPI void
> diff --git a/src/modules/ethumb/emotion/emotion.c
b/src/modules/ethumb/emotion/emotion.c
> index 4443712..6134406 100644
> --- a/src/modules/ethumb/emotion/emotion.c
> +++ b/src/modules/ethumb/emotion/emotion.c
> @@ -1,5 +1,8 @@
> #ifdef HAVE_CONFIG_H
> #include "config.h"
> +#else
> +#define EFL_EO_API_SUPPORT
> +#define EFL_BETA_API_SUPPORT
> #endif
>
> #include "Ethumb.h"
> @@ -9,6 +12,7 @@
>
> #include <stdio.h>
> #include <stdlib.h>
> +#include <Eo.h>
> #include <Eina.h>
> #include <Eet.h>
> #include <Ecore_File.h>
> @@ -67,8 +71,9 @@ _resize_movie(struct _emotion_plugin *_plugin)
> emotion_object_audio_mute_set(_plugin->video, 1);
> }
>
> -static void
> -_frame_decode_cb(void *data, Evas_Object *o EINA_UNUSED, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_frame_decode_cb(void *data,
> + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info EINA_UNUSED)
> {
> struct _emotion_plugin *_plugin = data;
>
> @@ -76,16 +81,22 @@ _frame_decode_cb(void *data, Evas_Object *o
EINA_UNUSED, void *event_info EINA_U
> _frame_grab(data);
> else
> _frame_grab_single(data);
> -}
>
> -static void
> -_frame_resized_cb(void *data, Evas_Object *o EINA_UNUSED, void
*event_info EINA_UNUSED)
> + return EINA_TRUE;
> + }
> +
> +static Eina_Bool
> +_frame_resized_cb(void *data,
> + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info EINA_UNUSED)
> {
> _resize_movie(data);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -_video_stopped_cb(void *data, Evas_Object *o EINA_UNUSED, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +_video_stopped_cb(void *data,
> + Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info EINA_UNUSED)
> {
> struct _emotion_plugin *_plugin = data;
>
> @@ -94,6 +105,8 @@ _video_stopped_cb(void *data, Evas_Object *o
EINA_UNUSED, void *event_info EINA_
> _plugin->ptotal = 0;
> _plugin->first = EINA_FALSE;
> _plugin->total_time = _plugin->tmp_time;
> +
> + return EINA_TRUE;
> }
>
> static void
> @@ -194,12 +207,12 @@ _finish_thumb_generation(struct _emotion_plugin
*_plugin, int success)
> {
> int r = 0;
>
> - evas_object_smart_callback_del(_plugin->video, "frame_resize",
> - _frame_resized_cb);
> - evas_object_smart_callback_del(_plugin->video, "frame_decode",
> - _frame_decode_cb);
> - evas_object_smart_callback_del(_plugin->video, "decode_stop",
> - _video_stopped_cb);
> + eo_do(_plugin->video, eo_event_callback_del(
> + EMOTION_OBJECT_EVENT_FRAME_RESIZE, _frame_resized_cb,
_plugin));
> + eo_do(_plugin->video, eo_event_callback_del(
> + EMOTION_OBJECT_EVENT_FRAME_DECODE, _frame_decode_cb,
_plugin));
> + eo_do(_plugin->video, eo_event_callback_del(
> + EMOTION_OBJECT_EVENT_DECODE_STOP, _video_stopped_cb,
_plugin));
>
> emotion_object_play_set(_plugin->video, 0);
>
> @@ -243,8 +256,9 @@ _frame_grab_single(void *data)
>
> ethumb_image_save(e);
>
> - evas_object_smart_callback_del(_plugin->video, "frame_resize",
> - _frame_resized_cb);
> + eo_do(_plugin->video, eo_event_callback_del(
> + EMOTION_OBJECT_EVENT_FRAME_RESIZE, _frame_resized_cb,
_plugin));
> +
> emotion_object_play_set(_plugin->video, 0);
> evas_object_del(_plugin->video);
> free(_plugin);
> @@ -383,12 +397,12 @@ _thumb_generate(Ethumb *e)
> _plugin->pcount = 1;
>
> _resize_movie(_plugin);
> - evas_object_smart_callback_add(o, "frame_decode",
> - _frame_decode_cb, _plugin);
> - evas_object_smart_callback_add(o, "frame_resize",
> - _frame_resized_cb, _plugin);
> - evas_object_smart_callback_add(o, "decode_stop",
> - _video_stopped_cb, _plugin);
> + eo_do(o, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_FRAME_DECODE, _frame_decode_cb, _plugin));
> + eo_do(o, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_FRAME_RESIZE,_frame_resized_cb, _plugin));
> + eo_do(o, eo_event_callback_add
> + (EMOTION_OBJECT_EVENT_DECODE_STOP, _video_stopped_cb, _plugin));
>
> if (f == ETHUMB_THUMB_EET)
> {
> diff --git a/src/tests/emotion/emotion_test_main.c
b/src/tests/emotion/emotion_test_main.c
> index 24ab7db..3d7d4a9 100644
> --- a/src/tests/emotion/emotion_test_main.c
> +++ b/src/tests/emotion/emotion_test_main.c
> @@ -1,7 +1,11 @@
> #ifdef HAVE_CONFIG_H
> -# include "config.h"
> +#include "config.h"
> +#else
> +#define EFL_EO_API_SUPPORT
> +#define EFL_BETA_API_SUPPORT
> #endif
>
> +#include <Eo.h>
> #include <stdlib.h>
> #include <stdio.h>
> #include <string.h>
> @@ -325,8 +329,9 @@ video_obj_time_changed(Evas_Object *obj, Evas_Object
*edje)
> edje_object_part_text_set(edje, "video_progress_txt", buf);
> }
>
> -static void
> -video_obj_frame_decode_cb(void *data, Evas_Object *obj, void *event_info
EINA_UNUSED)
> +static Eina_Bool
> +video_obj_frame_decode_cb(void *data,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> video_obj_time_changed(obj, data);
>
> @@ -338,10 +343,12 @@ video_obj_frame_decode_cb(void *data, Evas_Object
*obj, void *event_info EINA_UN
> printf("FPS: %3.3f\n", 1.0 / (t - pt));
> pt = t;
> }
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_frame_resize_cb(void *data, Evas_Object *obj, void *event_info
EINA_UNUSED)
> +static Eina_Bool
> +video_obj_frame_resize_cb(void *data,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> Evas_Object *oe;
> int iw, ih;
> @@ -359,24 +366,33 @@ video_obj_frame_resize_cb(void *data, Evas_Object
*obj, void *event_info EINA_UN
> evas_object_resize(oe, w, h);
> evas_object_size_hint_min_set(obj, 0, 0);
> edje_object_part_swallow(oe, "video_swallow", obj);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_length_change_cb(void *data, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_length_change_cb(void *data,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("len change!\n");
> video_obj_time_changed(obj, data);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_position_update_cb(void *data, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_position_update_cb(void *data,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("pos up!\n");
> video_obj_time_changed(obj, data);
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_stopped_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_stopped_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("video stopped!!!\n");
> if (loop)
> @@ -384,53 +400,72 @@ video_obj_stopped_cb(void *data EINA_UNUSED,
Evas_Object *obj, void *event_info
> emotion_object_position_set(obj, 0.0);
> emotion_object_play_set(obj, 1);
> }
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_channels_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_channels_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("channels changed: [AUD %i][VID %i][SPU %i]\n",
> emotion_object_audio_channel_count(obj),
> emotion_object_video_channel_count(obj),
> emotion_object_spu_channel_count(obj));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_title_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> + video_obj_title_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("video title to: \"%s\"\n", emotion_object_title_get(obj));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_progress_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_progress_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("progress: \"%s\" %3.3f\n",
> emotion_object_progress_info_get(obj),
> emotion_object_progress_status_get(obj));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_ref_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_ref_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("video ref to: \"%s\" %i\n",
> emotion_object_ref_file_get(obj),
> emotion_object_ref_num_get(obj));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_button_num_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_button_num_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("video spu buttons to: %i\n",
> emotion_object_spu_button_count_get(obj));
> +
> + return EINA_TRUE;
> }
>
> -static void
> -video_obj_button_cb(void *data EINA_UNUSED, Evas_Object *obj, void
*event_info EINA_UNUSED)
> +static Eina_Bool
> +video_obj_button_cb(void *data EINA_UNUSED,
> + Eo *obj, const Eo_Event_Description *desc EINA_UNUSED, void
*event_info EINA_UNUSED)
> {
> printf("video selected spu button: %i\n",
> emotion_object_spu_button_get(obj));
> -}
>
> + return EINA_TRUE;
> +}
>
> static void
> video_obj_signal_play_cb(void *data, Evas_Object *o, const char
*emission EINA_UNUSED, const char *source EINA_UNUSED)
> @@ -576,6 +611,20 @@ video_obj_signal_frame_move_cb(void *data
EINA_UNUSED, Evas_Object *o, const cha
> }
> }
>
> +static const Eo_Callback_Array_Item emotion_object_test_callbacks[] = {
> + { EMOTION_OBJECT_EVENT_FRAME_DECODE, video_obj_frame_decode_cb },
> + { EMOTION_OBJECT_EVENT_FRAME_RESIZE, video_obj_frame_resize_cb },
> + { EMOTION_OBJECT_EVENT_LENGTH_CHANGE, video_obj_length_change_cb
},
> + { EMOTION_OBJECT_EVENT_POSITION_UPDATE,
video_obj_position_update_cb },
> + { EMOTION_OBJECT_EVENT_DECODE_STOP, video_obj_stopped_cb },
> + { EMOTION_OBJECT_EVENT_CHANNELS_CHANGE, video_obj_channels_cb },
> + { EMOTION_OBJECT_EVENT_TITLE_CHANGE, video_obj_title_cb },
> + { EMOTION_OBJECT_EVENT_PROGRESS_CHANGE, video_obj_progress_cb },
> + { EMOTION_OBJECT_EVENT_REF_CHANGE, video_obj_ref_cb },
> + { EMOTION_OBJECT_EVENT_BUTTON_NUM_CHANGE, video_obj_button_num_cb
},
> + { EMOTION_OBJECT_EVENT_BUTTON_CHANGE, video_obj_button_cb },
> + { NULL, NULL }
> +};
>
> static void
> init_video_object(const char *module_filename, const char *filename)
> @@ -621,18 +670,7 @@ init_video_object(const char *module_filename, const
char *filename)
> edje_object_size_min_calc(oe, &w, &h);
> evas_object_resize(oe, w, h);
>
> - evas_object_smart_callback_add(o, "frame_decode",
video_obj_frame_decode_cb, oe);
> - evas_object_smart_callback_add(o, "frame_resize",
video_obj_frame_resize_cb, oe);
> - evas_object_smart_callback_add(o, "length_change",
video_obj_length_change_cb, oe);
> - evas_object_smart_callback_add(o, "position_update",
video_obj_position_update_cb, oe);
> -
> - evas_object_smart_callback_add(o, "decode_stop",
video_obj_stopped_cb, oe);
> - evas_object_smart_callback_add(o, "channels_change",
video_obj_channels_cb, oe);
> - evas_object_smart_callback_add(o, "title_change", video_obj_title_cb,
oe);
> - evas_object_smart_callback_add(o, "progress_change",
video_obj_progress_cb, oe);
> - evas_object_smart_callback_add(o, "ref_change", video_obj_ref_cb, oe);
> - evas_object_smart_callback_add(o, "button_num_change",
video_obj_button_num_cb, oe);
> - evas_object_smart_callback_add(o, "button_change",
video_obj_button_cb, oe);
> + eo_do(o, eo_event_callback_array_add(emotion_object_test_callbacks,
oe));
>
> edje_object_signal_callback_add(oe, "video_control", "play",
video_obj_signal_play_cb, o);
> edje_object_signal_callback_add(oe, "video_control", "pause",
video_obj_signal_pause_cb, o);
>
> --
>
>
>
------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel