forked from enlightenment/efl
Emotion test: more cleanups
* really free Frame_Data on EVAS_CALLBACK_FREE (data was NULL) * place video windows with an incremental offset
This commit is contained in:
parent
11e04529f8
commit
064307edee
|
@ -564,12 +564,10 @@ static void
|
||||||
init_video_object(const char *module_filename, const char *filename)
|
init_video_object(const char *module_filename, const char *filename)
|
||||||
{
|
{
|
||||||
Evas_Object *o, *oe;
|
Evas_Object *o, *oe;
|
||||||
int iw, ih;
|
Evas_Coord w, h, offset;
|
||||||
Evas_Coord w, h;
|
|
||||||
Frame_Data *fd;
|
Frame_Data *fd;
|
||||||
|
|
||||||
|
/* basic video object setup */
|
||||||
/* basic video object setup */
|
|
||||||
o = emotion_object_add(evas);
|
o = emotion_object_add(evas);
|
||||||
if (!emotion_object_init(o, module_filename))
|
if (!emotion_object_init(o, module_filename))
|
||||||
return;
|
return;
|
||||||
|
@ -583,32 +581,27 @@ init_video_object(const char *module_filename, const char *filename)
|
||||||
evas_object_resize(o, 320, 240);
|
evas_object_resize(o, 320, 240);
|
||||||
emotion_object_smooth_scale_set(o, 1);
|
emotion_object_smooth_scale_set(o, 1);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
/* end basic video setup. all the rest here is just to be fancy */
|
|
||||||
|
|
||||||
|
|
||||||
video_objs = eina_list_append(video_objs, o);
|
video_objs = eina_list_append(video_objs, o);
|
||||||
|
/* end basic video setup. all the rest here is just to be fancy */
|
||||||
|
|
||||||
emotion_object_size_get(o, &iw, &ih);
|
|
||||||
w = iw; h = ih;
|
|
||||||
|
|
||||||
fd = calloc(1, sizeof(Frame_Data));
|
fd = calloc(1, sizeof(Frame_Data));
|
||||||
if (!fd) exit(1);
|
if (!fd) exit(1);
|
||||||
|
|
||||||
oe = edje_object_add(evas);
|
oe = edje_object_add(evas);
|
||||||
evas_object_event_callback_add(oe, EVAS_CALLBACK_FREE, _oe_free_cb, NULL);
|
evas_object_event_callback_add(oe, EVAS_CALLBACK_FREE, _oe_free_cb, fd);
|
||||||
evas_object_data_set(oe, "frame_data", fd);
|
evas_object_data_set(oe, "frame_data", fd);
|
||||||
if (reflex)
|
if (reflex)
|
||||||
edje_object_file_set(oe, theme_file, "video_controller/reflex");
|
edje_object_file_set(oe, theme_file, "video_controller/reflex");
|
||||||
else
|
else
|
||||||
edje_object_file_set(oe, theme_file, "video_controller");
|
edje_object_file_set(oe, theme_file, "video_controller");
|
||||||
edje_extern_object_min_size_set(o, w, h);
|
|
||||||
edje_object_part_swallow(oe, "video_swallow", o);
|
edje_object_part_swallow(oe, "video_swallow", o);
|
||||||
|
|
||||||
|
offset = 20 * (eina_list_count(video_objs) - 1);
|
||||||
|
evas_object_move(oe, offset, offset);
|
||||||
edje_object_size_min_calc(oe, &w, &h);
|
edje_object_size_min_calc(oe, &w, &h);
|
||||||
// evas_object_move(oe, rand() % (int)(startw - w), rand() % (int)(starth - h));
|
|
||||||
evas_object_move(oe, 0, 0);
|
|
||||||
evas_object_resize(oe, w, h);
|
evas_object_resize(oe, w, h);
|
||||||
edje_extern_object_min_size_set(o, 0, 0);
|
|
||||||
edje_object_part_swallow(oe, "video_swallow", o);
|
|
||||||
|
|
||||||
evas_object_smart_callback_add(o, "frame_decode", video_obj_frame_decode_cb, oe);
|
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, "frame_resize", video_obj_frame_resize_cb, oe);
|
||||||
|
|
Loading…
Reference in New Issue