also add a slider for seek in the video
SVN revision: 72765
This commit is contained in:
parent
98a9da059e
commit
304434ccf6
|
@ -573,8 +573,8 @@ collections {
|
|||
}
|
||||
description { state: "expanded" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
min: 200 24;
|
||||
max: 200 24;
|
||||
min: 216 24;
|
||||
max: 216 24;
|
||||
}
|
||||
}
|
||||
part { name: "play";
|
||||
|
@ -604,18 +604,52 @@ collections {
|
|||
rel2.offset: 16 0;
|
||||
}
|
||||
}
|
||||
part { name: "posline";
|
||||
mouse_events: 0;
|
||||
repeat_events: 1;
|
||||
clip_to: "media_clip";
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "media_line.png";
|
||||
min: 90 10;
|
||||
max: 90 10;
|
||||
rel1.to: "stop";
|
||||
rel2.to: "stop";
|
||||
rel1.offset: 25 0;
|
||||
rel2.offset: 90 0;
|
||||
}
|
||||
}
|
||||
part { name: "terminology.posdrag"; type: RECT;
|
||||
mouse_events: 1;
|
||||
repeat_events: 1;
|
||||
clip_to: "media_clip";
|
||||
dragable {
|
||||
confine: "posline";
|
||||
x: 1 1 0;
|
||||
y: 0 0 0;
|
||||
}
|
||||
description { state: "default" 0.0;
|
||||
color: 255 0 0 150;
|
||||
min: 10 10;
|
||||
max: 10 10;
|
||||
}
|
||||
description { state: "muted" 0.0;
|
||||
visible: 0;
|
||||
}
|
||||
}
|
||||
part { name: "volline";
|
||||
mouse_events: 0;
|
||||
repeat_events: 1;
|
||||
clip_to: "media_clip";
|
||||
description { state: "default" 0.0;
|
||||
image.normal: "media_line.png";
|
||||
min: 150 10;
|
||||
max: 150 10;
|
||||
rel1.to: "stop";
|
||||
rel2.to: "stop";
|
||||
min: 60 10;
|
||||
max: 60 10;
|
||||
rel1.to: "posline";
|
||||
rel2.to: "posline";
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
rel1.offset: 25 0;
|
||||
rel2.offset: 150 0;
|
||||
rel2.offset: 60 0;
|
||||
}
|
||||
}
|
||||
part { name: "terminology.voldrag"; type: RECT;
|
||||
|
|
|
@ -299,11 +299,17 @@ _cb_mov_frame_decode(void *data, Evas_Object *obj __UNUSED__, void *event __UNUS
|
|||
{
|
||||
Media *sd = evas_object_smart_data_get(data);
|
||||
Evas_Coord ox, oy, ow, oh;
|
||||
double len, pos;
|
||||
|
||||
if (!sd) return;
|
||||
evas_object_geometry_get(data, &ox, &oy, &ow, &oh);
|
||||
evas_object_show(sd->o_img);
|
||||
_type_mov_calc(data, ox, oy, ow, oh);
|
||||
|
||||
len = emotion_object_play_length_get(sd->o_img);
|
||||
pos = emotion_object_position_get(sd->o_img);
|
||||
pos /= len;
|
||||
edje_object_part_drag_value_set(sd->o_ctrl, "terminology.posdrag", pos, pos);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -392,6 +398,16 @@ _cb_media_vol(void *data, Evas_Object *obj, const char *emission, const char *so
|
|||
media_volume_set(data, vx + vy);
|
||||
}
|
||||
|
||||
static void
|
||||
_cb_media_pos(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
{
|
||||
double vx, vy;
|
||||
Media *sd = evas_object_smart_data_get(data);
|
||||
if (!sd) return;
|
||||
edje_object_part_drag_value_get(sd->o_ctrl, "terminology.posdrag", &vx, &vy);
|
||||
media_position_set(data, vx + vy);
|
||||
}
|
||||
|
||||
static void
|
||||
_type_mov_init(Evas_Object *obj)
|
||||
{
|
||||
|
@ -441,10 +457,16 @@ _type_mov_init(Evas_Object *obj)
|
|||
theme_apply(o, sd->config, "terminology/mediactrl");
|
||||
vol = emotion_object_audio_volume_get(sd->o_img);
|
||||
edje_object_part_drag_value_set(o, "terminology.voldrag", vol, vol);
|
||||
edje_object_signal_callback_add(o, "play", "", _cb_media_play, obj);
|
||||
edje_object_signal_callback_add(o, "pause", "", _cb_media_pause, obj);
|
||||
edje_object_signal_callback_add(o, "stop", "", _cb_media_stop, obj);
|
||||
edje_object_signal_callback_add(o, "drag", "terminology.voldrag", _cb_media_vol, obj);
|
||||
edje_object_signal_callback_add(o, "play", "",
|
||||
_cb_media_play, obj);
|
||||
edje_object_signal_callback_add(o, "pause", "",
|
||||
_cb_media_pause, obj);
|
||||
edje_object_signal_callback_add(o, "stop", "",
|
||||
_cb_media_stop, obj);
|
||||
edje_object_signal_callback_add(o, "drag", "terminology.posdrag",
|
||||
_cb_media_pos, obj);
|
||||
edje_object_signal_callback_add(o, "drag", "terminology.voldrag",
|
||||
_cb_media_vol, obj);
|
||||
/* TODO where to stack the object in the ui? controls cannot be part of
|
||||
* the 'media smart obj' becouse controls need to be on top of the term obj.
|
||||
*
|
||||
|
@ -661,10 +683,11 @@ media_play_set(Evas_Object *obj, Eina_Bool play)
|
|||
void
|
||||
media_position_set(Evas_Object *obj, double pos)
|
||||
{
|
||||
double len;
|
||||
Media *sd = evas_object_smart_data_get(obj);
|
||||
if ((!sd) || (sd->type != TYPE_MOV)) return;
|
||||
emotion_object_position_set(sd->o_img, pos);
|
||||
edje_object_part_drag_value_set(sd->o_ctrl, "terminology.posdrag", pos, pos);
|
||||
len = emotion_object_play_length_get(sd->o_img);
|
||||
emotion_object_position_set(sd->o_img, len * pos);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue