forked from enlightenment/enlightenment
e_client_volume: check volume setted after a slider drag
This commit is contained in:
parent
fba185798c
commit
cb6ea9f747
|
@ -11,6 +11,7 @@ static void _e_client_volume_event_simple_free(void *d, E_Event_Client *ev);
|
||||||
static void _e_client_volume_event_simple(E_Client *ec, int type);
|
static void _e_client_volume_event_simple(E_Client *ec, int type);
|
||||||
static void _e_client_volume_object_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
static void _e_client_volume_object_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
static void _e_client_volume_object_volume_changed(void *data, Evas_Object *obj, void *event_info);
|
static void _e_client_volume_object_volume_changed(void *data, Evas_Object *obj, void *event_info);
|
||||||
|
static void _e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info);
|
||||||
static Eina_Bool _e_client_volume_object_changed(void *data, int type, void *event);
|
static Eina_Bool _e_client_volume_object_changed(void *data, int type, void *event);
|
||||||
static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||||
|
|
||||||
|
@ -77,6 +78,16 @@ _e_client_volume_object_volume_changed(void *data, Evas_Object *obj, void *event
|
||||||
e_client_volume_set(ec, elm_slider_value_get(obj));
|
e_client_volume_set(ec, elm_slider_value_get(obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
ec = data;
|
||||||
|
|
||||||
|
e_client_volume_set(ec, elm_slider_value_get(obj));
|
||||||
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_e_client_volume_object_changed(void *data, int type EINA_UNUSED, void *event)
|
_e_client_volume_object_changed(void *data, int type EINA_UNUSED, void *event)
|
||||||
{
|
{
|
||||||
|
@ -353,6 +364,7 @@ e_client_volume_set(E_Client *ec, int volume)
|
||||||
e_client_volume_sink_set(sink, ec->volume, ec->mute);
|
e_client_volume_sink_set(sink, ec->volume, ec->mute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_e_client_volume_update(ec);
|
||||||
_e_client_volume_event_simple(ec, E_EVENT_CLIENT_VOLUME);
|
_e_client_volume_event_simple(ec, E_EVENT_CLIENT_VOLUME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -423,6 +435,9 @@ e_client_volume_object_add(E_Client *ec, Evas *evas)
|
||||||
evas_object_smart_callback_add(o, "changed",
|
evas_object_smart_callback_add(o, "changed",
|
||||||
_e_client_volume_object_volume_changed,
|
_e_client_volume_object_volume_changed,
|
||||||
ec);
|
ec);
|
||||||
|
evas_object_smart_callback_add(o, "slider,drag,stop",
|
||||||
|
_e_client_volume_object_volume_drag_stop,
|
||||||
|
ec);
|
||||||
elm_slider_value_set(o, ec->volume);
|
elm_slider_value_set(o, ec->volume);
|
||||||
edje_object_part_swallow(bx, "e.swallow.volume", o);
|
edje_object_part_swallow(bx, "e.swallow.volume", o);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
|
@ -1049,6 +1049,17 @@ _bd_hook_volume_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUS
|
||||||
e_client_volume_set(ec, elm_slider_value_get(obj));
|
e_client_volume_set(ec, elm_slider_value_get(obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_bd_hook_volume_drag_stop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
ec = data;
|
||||||
|
|
||||||
|
elm_slider_value_set(obj, ec->volume);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_bd_hook_mute_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_bd_hook_mute_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -1074,6 +1085,24 @@ _bd_hook_sink_volume_changed(void *data, Evas_Object *obj, void *event_info EINA
|
||||||
elm_check_state_get(check));
|
elm_check_state_get(check));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_bd_hook_sink_volume_drag_stop(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Client_Volume_Sink *sink;
|
||||||
|
Evas_Object *check;
|
||||||
|
Eina_Bool mute;
|
||||||
|
int vol;
|
||||||
|
|
||||||
|
sink = data;
|
||||||
|
|
||||||
|
check = evas_object_data_get(obj, "e_sink_check");
|
||||||
|
|
||||||
|
e_client_volume_sink_get(sink, &vol, &mute);
|
||||||
|
elm_slider_value_set(obj, vol);
|
||||||
|
elm_check_state_set(check, mute);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_bd_hook_sink_mute_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_bd_hook_sink_mute_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -1187,6 +1216,8 @@ _e_client_mixer_sink_append(E_Client_Volume_Sink *sink, Client_Mixer *cm)
|
||||||
elm_slider_value_set(slider, volume);
|
elm_slider_value_set(slider, volume);
|
||||||
evas_object_smart_callback_add(slider, "changed",
|
evas_object_smart_callback_add(slider, "changed",
|
||||||
_bd_hook_sink_volume_changed, sink);
|
_bd_hook_sink_volume_changed, sink);
|
||||||
|
evas_object_smart_callback_add(slider, "slider,drag,stop",
|
||||||
|
_bd_hook_sink_volume_drag_stop, sink);
|
||||||
elm_box_pack_end(cm->bx, slider);
|
elm_box_pack_end(cm->bx, slider);
|
||||||
evas_object_show(slider);
|
evas_object_show(slider);
|
||||||
|
|
||||||
|
@ -1379,6 +1410,8 @@ _bd_hook_cb(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *it EINA_UNUSED)
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
elm_slider_value_set(o, ec->volume);
|
elm_slider_value_set(o, ec->volume);
|
||||||
evas_object_smart_callback_add(o, "changed", _bd_hook_volume_changed, ec);
|
evas_object_smart_callback_add(o, "changed", _bd_hook_volume_changed, ec);
|
||||||
|
evas_object_smart_callback_add(o, "slider,drag,stop",
|
||||||
|
_bd_hook_volume_drag_stop, ec);
|
||||||
elm_box_pack_end(bx, o);
|
elm_box_pack_end(bx, o);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
cm->volume = o;
|
cm->volume = o;
|
||||||
|
|
Loading…
Reference in New Issue