forked from enlightenment/enlightenment
mod - mixer - visual cleanups of mixer look and feel. more polish
This commit is contained in:
parent
aa4f3ce308
commit
0f90c6a10a
|
@ -514,7 +514,8 @@ _gc_id_new(const E_Gadcon_Client_Class *client_class EINA_UNUSED)
|
||||||
E_API void *
|
E_API void *
|
||||||
e_modapi_init(E_Module *m EINA_UNUSED)
|
e_modapi_init(E_Module *m EINA_UNUSED)
|
||||||
{
|
{
|
||||||
char buf[4096];
|
char buf[PATH_MAX];
|
||||||
|
const char *dir;
|
||||||
|
|
||||||
_e_emix_log_domain = eina_log_domain_register("mixer", EINA_COLOR_RED);
|
_e_emix_log_domain = eina_log_domain_register("mixer", EINA_COLOR_RED);
|
||||||
|
|
||||||
|
@ -542,6 +543,10 @@ e_modapi_init(E_Module *m EINA_UNUSED)
|
||||||
|
|
||||||
e_gadcon_provider_register(&_gadcon_class);
|
e_gadcon_provider_register(&_gadcon_class);
|
||||||
|
|
||||||
|
dir = e_module_dir_get(mixer_context->module);
|
||||||
|
if (!dir) return NULL;
|
||||||
|
snprintf(buf, sizeof(buf), "%s/sink-icons.txt", dir);
|
||||||
|
e_util_env_set("EMIX_SINK_ICONS", buf);
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,80 @@ Evas_Object *source_box, *sink_input_box, *sink_box, *card_box;
|
||||||
Evas_Object *category_current = NULL;
|
Evas_Object *category_current = NULL;
|
||||||
Eina_List *source_list = NULL, *sink_input_list = NULL, *sink_list = NULL, *card_list = NULL;
|
Eina_List *source_list = NULL, *sink_input_list = NULL, *sink_list = NULL, *card_list = NULL;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
static int
|
||||||
|
_glob_case_match(const char *str, const char *pattern)
|
||||||
|
{
|
||||||
|
const char *p;
|
||||||
|
char *tstr, *tglob, *tp;
|
||||||
|
|
||||||
|
if (str == pattern) return 1;
|
||||||
|
if (pattern[0] == 0)
|
||||||
|
{
|
||||||
|
if (str[0] == 0) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!strcmp(pattern, "*")) return 1;
|
||||||
|
tstr = alloca(strlen(str) + 1);
|
||||||
|
for (tp = tstr, p = str; *p != 0; p++, tp++)
|
||||||
|
*tp = tolower(*p);
|
||||||
|
*tp = 0;
|
||||||
|
tglob = alloca(strlen(pattern) + 1);
|
||||||
|
for (tp = tglob, p = pattern; *p != 0; p++, tp++)
|
||||||
|
*tp = tolower(*p);
|
||||||
|
*tp = 0;
|
||||||
|
if (!fnmatch(tglob, tstr, 0)) return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
_sink_icon_find(const char *name)
|
||||||
|
{
|
||||||
|
const char *file;
|
||||||
|
char buf[PATH_MAX], *res = NULL, **strs, *glob, *icon;
|
||||||
|
FILE *f;
|
||||||
|
int i;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
file = getenv("EMIX_SINK_ICONS");
|
||||||
|
if (!file) return NULL;
|
||||||
|
f = fopen(file, "r");
|
||||||
|
if (!f) return NULL;
|
||||||
|
while (fgets(buf, sizeof(buf), f))
|
||||||
|
{
|
||||||
|
buf[sizeof(buf) - 1] = 0;
|
||||||
|
len = strlen(buf);
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
buf[len - 1] = 0;
|
||||||
|
strs = eina_str_split(buf, "|", 0);
|
||||||
|
if (strs)
|
||||||
|
{
|
||||||
|
i = 0;
|
||||||
|
for (glob = strs[i]; glob; i += 2)
|
||||||
|
{
|
||||||
|
icon = strs[i + 1];
|
||||||
|
if (icon)
|
||||||
|
{
|
||||||
|
if (_glob_case_match(name, glob))
|
||||||
|
{
|
||||||
|
res = strdup(icon);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
free(strs[0]);
|
||||||
|
free(strs);
|
||||||
|
}
|
||||||
|
if (res) break;
|
||||||
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
|
fclose(f);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
typedef struct _Mon_Data
|
typedef struct _Mon_Data
|
||||||
|
@ -262,22 +336,34 @@ _cb_sink_default_change(void *data,
|
||||||
static void
|
static void
|
||||||
_emix_sink_volume_fill(Emix_Sink *sink, Evas_Object *fr, Evas_Object *bx, Eina_Bool locked)
|
_emix_sink_volume_fill(Emix_Sink *sink, Evas_Object *fr, Evas_Object *bx, Eina_Bool locked)
|
||||||
{
|
{
|
||||||
Evas_Object *bxhv, *ic, *sl, *ck, *lb;
|
Evas_Object *bxhv, /**ic,*/ *bxv, *sl, *ck, *lb, *hv;
|
||||||
Eina_List *sls = NULL;
|
Eina_List *sls = NULL;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
eina_list_free(evas_object_data_get(fr, "volumes"));
|
eina_list_free(evas_object_data_get(fr, "volumes"));
|
||||||
|
bxhv = evas_object_data_get(fr, "mutebox");
|
||||||
|
hv = evas_object_data_get(fr, "port");
|
||||||
|
if ((bxhv) && (hv)) elm_box_unpack(bxhv, hv);
|
||||||
elm_box_clear(bx);
|
elm_box_clear(bx);
|
||||||
|
|
||||||
|
bxv = elm_box_add(bx);
|
||||||
|
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_box_horizontal_set(bxv, 0);
|
||||||
|
elm_box_pack_end(bx, bxv);
|
||||||
|
evas_object_show(bxv);
|
||||||
|
|
||||||
bxhv = elm_box_add(bx);
|
bxhv = elm_box_add(bx);
|
||||||
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
||||||
elm_box_horizontal_set(bxhv, 1);
|
elm_box_horizontal_set(bxhv, 1);
|
||||||
elm_box_pack_end(bx, bxhv);
|
elm_box_pack_end(bxv, bxhv);
|
||||||
evas_object_show(bxhv);
|
evas_object_show(bxhv);
|
||||||
|
|
||||||
ic = _icon(win, "audio-volume-medium");
|
// ic = _icon(win, "audio-volume");
|
||||||
elm_box_pack_end(bxhv, ic);
|
// elm_box_pack_end(bxhv, ic);
|
||||||
|
// evas_object_show(ic);
|
||||||
|
|
||||||
if (locked)
|
if (locked)
|
||||||
{
|
{
|
||||||
sl = elm_slider_add(bx);
|
sl = elm_slider_add(bx);
|
||||||
|
@ -333,22 +419,15 @@ _emix_sink_volume_fill(Emix_Sink *sink, Evas_Object *fr, Evas_Object *bx, Eina_B
|
||||||
evas_object_data_set(fr, "volumes", sls);
|
evas_object_data_set(fr, "volumes", sls);
|
||||||
|
|
||||||
bxhv = elm_box_add(bx);
|
bxhv = elm_box_add(bx);
|
||||||
elm_box_pack_end(bx, bxhv);
|
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_box_align_set(bxhv, 0.0, 0.5);
|
||||||
|
elm_box_horizontal_set(bxhv, 1);
|
||||||
|
elm_box_pack_end(bxv, bxhv);
|
||||||
|
evas_object_data_set(fr, "mutebox", bxhv);
|
||||||
evas_object_show(bxhv);
|
evas_object_show(bxhv);
|
||||||
|
|
||||||
ck = elm_check_add(bx);
|
ck = elm_check_add(bx);
|
||||||
evas_object_size_hint_weight_set(ck, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_align_set(ck, 0.0, 0.5);
|
|
||||||
evas_object_data_set(fr, "default", ck);
|
|
||||||
elm_object_text_set(ck, "Default");
|
|
||||||
elm_check_state_set(ck, sink->default_sink);
|
|
||||||
elm_box_pack_end(bxhv, ck);
|
|
||||||
evas_object_show(ck);
|
|
||||||
evas_object_smart_callback_add(ck, "changed", _cb_sink_default_change, fr);
|
|
||||||
|
|
||||||
ck = elm_check_add(bx);
|
|
||||||
evas_object_size_hint_weight_set(ck, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_align_set(ck, 0.0, 0.5);
|
|
||||||
evas_object_data_set(fr, "mute", ck);
|
evas_object_data_set(fr, "mute", ck);
|
||||||
elm_object_text_set(ck, "Mute");
|
elm_object_text_set(ck, "Mute");
|
||||||
elm_check_state_set(ck, sink->mute);
|
elm_check_state_set(ck, sink->mute);
|
||||||
|
@ -359,8 +438,6 @@ _emix_sink_volume_fill(Emix_Sink *sink, Evas_Object *fr, Evas_Object *bx, Eina_B
|
||||||
if (sink->volume.channel_count > 1)
|
if (sink->volume.channel_count > 1)
|
||||||
{
|
{
|
||||||
ck = elm_check_add(bx);
|
ck = elm_check_add(bx);
|
||||||
evas_object_size_hint_weight_set(ck, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_align_set(ck, 0.0, 0.5);
|
|
||||||
elm_object_text_set(ck, "Lock");
|
elm_object_text_set(ck, "Lock");
|
||||||
evas_object_data_set(fr, "lock", ck);
|
evas_object_data_set(fr, "lock", ck);
|
||||||
elm_check_state_set(ck, locked);
|
elm_check_state_set(ck, locked);
|
||||||
|
@ -368,16 +445,27 @@ _emix_sink_volume_fill(Emix_Sink *sink, Evas_Object *fr, Evas_Object *bx, Eina_B
|
||||||
evas_object_show(ck);
|
evas_object_show(ck);
|
||||||
evas_object_smart_callback_add(ck, "changed", _cb_sink_lock_change, fr);
|
evas_object_smart_callback_add(ck, "changed", _cb_sink_lock_change, fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ck = elm_check_add(bx);
|
||||||
|
evas_object_data_set(fr, "default", ck);
|
||||||
|
elm_object_text_set(ck, "Default");
|
||||||
|
elm_check_state_set(ck, sink->default_sink);
|
||||||
|
elm_box_pack_end(bxhv, ck);
|
||||||
|
evas_object_show(ck);
|
||||||
|
evas_object_smart_callback_add(ck, "changed", _cb_sink_default_change, fr);
|
||||||
|
|
||||||
|
if (hv) elm_box_pack_end(bxhv, hv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_emix_sink_add(Emix_Sink *sink)
|
_emix_sink_add(Emix_Sink *sink)
|
||||||
{
|
{
|
||||||
Evas_Object *bxv, *bx, *lb, *hv, *fr, *sep, *vu;
|
Evas_Object *bxv, *bx, *lb, *hv, *ic, *fr, *sep, *vu, *pd;
|
||||||
const Eina_List *l;
|
const Eina_List *l;
|
||||||
Emix_Port *port;
|
Emix_Port *port;
|
||||||
Eina_Bool locked = EINA_TRUE;
|
Eina_Bool locked = EINA_TRUE;
|
||||||
Mon_Data *md;
|
Mon_Data *md;
|
||||||
|
char *icname;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
fr = elm_frame_add(win);
|
fr = elm_frame_add(win);
|
||||||
|
@ -391,12 +479,6 @@ _emix_sink_add(Emix_Sink *sink)
|
||||||
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.0);
|
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.0);
|
||||||
|
|
||||||
lb = elm_label_add(win);
|
|
||||||
evas_object_size_hint_align_set(lb, 0.0, EVAS_HINT_FILL);
|
|
||||||
elm_object_text_set(lb, eina_slstr_printf("<heading>%s</>", sink->name));
|
|
||||||
evas_object_show(lb);
|
|
||||||
elm_box_pack_end(bxv, lb);
|
|
||||||
|
|
||||||
bx = elm_box_add(win);
|
bx = elm_box_add(win);
|
||||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
@ -404,21 +486,36 @@ _emix_sink_add(Emix_Sink *sink)
|
||||||
elm_box_pack_end(bxv, bx);
|
elm_box_pack_end(bxv, bx);
|
||||||
evas_object_show(bx);
|
evas_object_show(bx);
|
||||||
|
|
||||||
hv = elm_hoversel_add(win);
|
icname = _sink_icon_find(sink->name);
|
||||||
evas_object_size_hint_weight_set(hv, 1.0, 1.0);
|
if (!icname) icname = strdup("speaker-box");
|
||||||
evas_object_size_hint_align_set(hv, EVAS_HINT_FILL, 0.0);
|
ic = elm_icon_add(win);
|
||||||
evas_object_data_set(hv, "parent", fr);
|
elm_icon_standard_set(ic, icname);
|
||||||
evas_object_data_set(fr, "port", hv);
|
free(icname);
|
||||||
elm_hoversel_hover_parent_set(hv, win);
|
evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(20), ELM_SCALE_SIZE(20));
|
||||||
EINA_LIST_FOREACH(sink->ports, l, port)
|
evas_object_size_hint_weight_set(ic, 0.0, EVAS_HINT_EXPAND);
|
||||||
{
|
evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_FILL);
|
||||||
elm_hoversel_item_add(hv, port->description,
|
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||||
NULL, ELM_ICON_NONE,
|
elm_box_pack_end(bx, ic);
|
||||||
_cb_sink_port_change, port);
|
evas_object_show(ic);
|
||||||
if (port->active) elm_object_text_set(hv, port->description);
|
|
||||||
}
|
pd = elm_frame_add(win);
|
||||||
elm_box_pack_end(bx, hv);
|
elm_object_style_set(pd, "pad_medium");
|
||||||
evas_object_show(hv);
|
elm_box_pack_end(bx, pd);
|
||||||
|
evas_object_show(pd);
|
||||||
|
|
||||||
|
lb = elm_label_add(win);
|
||||||
|
elm_object_text_set(lb, eina_slstr_printf("<heading>%s</>", sink->name));
|
||||||
|
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
||||||
|
elm_box_pack_end(bx, lb);
|
||||||
|
evas_object_show(lb);
|
||||||
|
|
||||||
|
bx = elm_box_add(win);
|
||||||
|
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||||
|
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0);
|
||||||
|
elm_box_pack_end(bxv, bx);
|
||||||
|
evas_object_show(bx);
|
||||||
|
|
||||||
/* Compare each volume level and check if they differ. If they differ unlock
|
/* Compare each volume level and check if they differ. If they differ unlock
|
||||||
the volume control and let user set each channel volume level */
|
the volume control and let user set each channel volume level */
|
||||||
|
@ -441,20 +538,37 @@ _emix_sink_add(Emix_Sink *sink)
|
||||||
|
|
||||||
_emix_sink_volume_fill(sink, fr, bx, locked);
|
_emix_sink_volume_fill(sink, fr, bx, locked);
|
||||||
|
|
||||||
elm_object_content_set(fr, bxv);
|
bx = evas_object_data_get(fr, "mutebox");
|
||||||
evas_object_show(bxv);
|
hv = elm_hoversel_add(win);
|
||||||
|
evas_object_size_hint_weight_set(hv, EVAS_HINT_EXPAND, 0.0);
|
||||||
elm_box_pack_end(sink_box, fr);
|
evas_object_size_hint_align_set(hv, EVAS_HINT_FILL, 0.5);
|
||||||
evas_object_show(fr);
|
evas_object_data_set(hv, "parent", fr);
|
||||||
|
evas_object_data_set(fr, "port", hv);
|
||||||
|
elm_hoversel_hover_parent_set(hv, win);
|
||||||
|
EINA_LIST_FOREACH(sink->ports, l, port)
|
||||||
|
{
|
||||||
|
elm_hoversel_item_add(hv, port->description,
|
||||||
|
NULL, ELM_ICON_NONE,
|
||||||
|
_cb_sink_port_change, port);
|
||||||
|
if (port->active) elm_object_text_set(hv, port->description);
|
||||||
|
}
|
||||||
|
elm_box_pack_end(bx, hv);
|
||||||
|
evas_object_show(hv);
|
||||||
|
|
||||||
vu = elm_progressbar_add(win);
|
vu = elm_progressbar_add(win);
|
||||||
elm_progressbar_unit_format_function_set(vu, _cb_vu_format_cb, NULL);
|
elm_progressbar_unit_format_function_set(vu, _cb_vu_format_cb, NULL);
|
||||||
evas_object_data_set(fr, "vu", vu);
|
evas_object_data_set(fr, "vu", vu);
|
||||||
evas_object_size_hint_weight_set(vu, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(vu, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(vu, EVAS_HINT_FILL, 0.0);
|
evas_object_size_hint_align_set(vu, EVAS_HINT_FILL, 0.0);
|
||||||
elm_box_pack_end(sink_box, vu);
|
elm_box_pack_end(bxv, vu);
|
||||||
evas_object_show(vu);
|
evas_object_show(vu);
|
||||||
|
|
||||||
|
elm_object_content_set(fr, bxv);
|
||||||
|
evas_object_show(bxv);
|
||||||
|
|
||||||
|
elm_box_pack_end(sink_box, fr);
|
||||||
|
evas_object_show(fr);
|
||||||
|
|
||||||
sep = elm_separator_add(win);
|
sep = elm_separator_add(win);
|
||||||
evas_object_data_set(fr, "extra", sep);
|
evas_object_data_set(fr, "extra", sep);
|
||||||
elm_separator_horizontal_set(sep, EINA_TRUE);
|
elm_separator_horizontal_set(sep, EINA_TRUE);
|
||||||
|
@ -499,7 +613,6 @@ _emix_sink_del(Emix_Sink *sink)
|
||||||
{
|
{
|
||||||
sink_list = eina_list_remove_list(sink_list, l);
|
sink_list = eina_list_remove_list(sink_list, l);
|
||||||
evas_object_del(evas_object_data_get(fr, "extra"));
|
evas_object_del(evas_object_data_get(fr, "extra"));
|
||||||
evas_object_del(evas_object_data_get(fr, "vu"));
|
|
||||||
evas_object_del(fr);
|
evas_object_del(fr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -564,12 +677,23 @@ static void _emix_sink_input_volume_fill(Emix_Sink_Input *input, Evas_Object *fr
|
||||||
static void
|
static void
|
||||||
_cb_sink_input_port_change(void *data,
|
_cb_sink_input_port_change(void *data,
|
||||||
Evas_Object *obj,
|
Evas_Object *obj,
|
||||||
void *event_info EINA_UNUSED)
|
void *event_info)
|
||||||
{
|
{
|
||||||
|
Elm_Object_Item *it = event_info;
|
||||||
Emix_Sink *sink = data;
|
Emix_Sink *sink = data;
|
||||||
|
const char *icname = NULL;
|
||||||
|
Evas_Object *ic;
|
||||||
Evas_Object *fr = evas_object_data_get(obj, "parent");
|
Evas_Object *fr = evas_object_data_get(obj, "parent");
|
||||||
Emix_Sink_Input *input = evas_object_data_get(fr, "input");
|
Emix_Sink_Input *input = evas_object_data_get(fr, "input");
|
||||||
elm_object_text_set(obj, sink->name);
|
elm_object_text_set(obj, sink->name);
|
||||||
|
|
||||||
|
elm_hoversel_item_icon_get(it, &icname, NULL, NULL);
|
||||||
|
ic = elm_object_part_content_get(obj, "icon");
|
||||||
|
evas_object_del(ic);
|
||||||
|
ic = _icon(win, icname);
|
||||||
|
elm_object_part_content_set(obj, "icon", ic);
|
||||||
|
evas_object_show(ic);
|
||||||
|
|
||||||
emix_sink_input_sink_change(input, sink);
|
emix_sink_input_sink_change(input, sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -668,22 +792,34 @@ _cb_sink_input_lock_change(void *data,
|
||||||
static void
|
static void
|
||||||
_emix_sink_input_volume_fill(Emix_Sink_Input *input, Evas_Object *fr, Evas_Object *bx, Eina_Bool locked)
|
_emix_sink_input_volume_fill(Emix_Sink_Input *input, Evas_Object *fr, Evas_Object *bx, Eina_Bool locked)
|
||||||
{
|
{
|
||||||
Evas_Object *bxhv, *ic, *lb, *sl = NULL, *ck;
|
Evas_Object *bxhv, *bxv, /**ic,*/ *lb, *sl = NULL, *ck, *hv;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
Eina_List *sls = NULL, *l;
|
Eina_List *sls = NULL, *l;
|
||||||
|
|
||||||
eina_list_free(evas_object_data_get(fr, "volumes"));
|
eina_list_free(evas_object_data_get(fr, "volumes"));
|
||||||
|
bxhv = evas_object_data_get(fr, "mutebox");
|
||||||
|
hv = evas_object_data_get(fr, "port");
|
||||||
|
if ((bxhv) && (hv)) elm_box_unpack(bxhv, hv);
|
||||||
elm_box_clear(bx);
|
elm_box_clear(bx);
|
||||||
|
|
||||||
|
bxv = elm_box_add(bx);
|
||||||
|
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_box_horizontal_set(bxv, 0);
|
||||||
|
elm_box_pack_end(bx, bxv);
|
||||||
|
evas_object_show(bxv);
|
||||||
|
|
||||||
bxhv = elm_box_add(bx);
|
bxhv = elm_box_add(bx);
|
||||||
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
||||||
elm_box_horizontal_set(bxhv, 1);
|
elm_box_horizontal_set(bxhv, 1);
|
||||||
elm_box_pack_end(bx, bxhv);
|
elm_box_pack_end(bxv, bxhv);
|
||||||
evas_object_show(bxhv);
|
evas_object_show(bxhv);
|
||||||
|
|
||||||
ic = _icon(win, "audio-volume-medium");
|
// ic = _icon(win, "audio-volume");
|
||||||
elm_box_pack_end(bxhv, ic);
|
// elm_box_pack_end(bxhv, ic);
|
||||||
|
// evas_object_show(ic);
|
||||||
|
|
||||||
if (locked)
|
if (locked)
|
||||||
{
|
{
|
||||||
sl = elm_slider_add(bx);
|
sl = elm_slider_add(bx);
|
||||||
|
@ -746,7 +882,12 @@ _emix_sink_input_volume_fill(Emix_Sink_Input *input, Evas_Object *fr, Evas_Objec
|
||||||
evas_object_data_set(fr, "volumes", sls);
|
evas_object_data_set(fr, "volumes", sls);
|
||||||
|
|
||||||
bxhv = elm_box_add(bx);
|
bxhv = elm_box_add(bx);
|
||||||
elm_box_pack_end(bx, bxhv);
|
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_box_align_set(bxhv, 0.0, 0.5);
|
||||||
|
elm_box_horizontal_set(bxhv, 1);
|
||||||
|
elm_box_pack_end(bxv, bxhv);
|
||||||
|
evas_object_data_set(fr, "mutebox", bxhv);
|
||||||
evas_object_show(bxhv);
|
evas_object_show(bxhv);
|
||||||
|
|
||||||
ck = elm_check_add(bx);
|
ck = elm_check_add(bx);
|
||||||
|
@ -778,17 +919,20 @@ _emix_sink_input_volume_fill(Emix_Sink_Input *input, Evas_Object *fr, Evas_Objec
|
||||||
evas_object_smart_callback_add(ck, "changed",
|
evas_object_smart_callback_add(ck, "changed",
|
||||||
_cb_sink_input_lock_change, fr);
|
_cb_sink_input_lock_change, fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hv) elm_box_pack_end(bxhv, hv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_emix_sink_input_add(Emix_Sink_Input *input)
|
_emix_sink_input_add(Emix_Sink_Input *input)
|
||||||
{
|
{
|
||||||
Evas_Object *bxv, *bx, *lb, *hv, *ic, *fr, *sep, *vu;
|
Evas_Object *bxv, *bx, *lb, *hv, *ic, *fr, *sep, *vu, *pd;
|
||||||
const Eina_List *l;
|
const Eina_List *l;
|
||||||
Emix_Sink *sink;
|
Emix_Sink *sink;
|
||||||
Eina_Bool locked = EINA_TRUE;
|
Eina_Bool locked = EINA_TRUE;
|
||||||
Mon_Data *md;
|
Mon_Data *md;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
const char *icname;
|
||||||
|
|
||||||
if (!input->sink) return;
|
if (!input->sink) return;
|
||||||
|
|
||||||
|
@ -803,12 +947,6 @@ _emix_sink_input_add(Emix_Sink_Input *input)
|
||||||
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.0);
|
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.0);
|
||||||
|
|
||||||
lb = elm_label_add(win);
|
|
||||||
evas_object_size_hint_align_set(lb, 0.0, EVAS_HINT_FILL);
|
|
||||||
elm_object_text_set(lb, eina_slstr_printf("<heading>%s</>", input->sink->name));
|
|
||||||
evas_object_show(lb);
|
|
||||||
elm_box_pack_end(bxv, lb);
|
|
||||||
|
|
||||||
bx = elm_box_add(win);
|
bx = elm_box_add(win);
|
||||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||||
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
@ -817,37 +955,28 @@ _emix_sink_input_add(Emix_Sink_Input *input)
|
||||||
evas_object_show(bx);
|
evas_object_show(bx);
|
||||||
|
|
||||||
ic = elm_icon_add(win);
|
ic = elm_icon_add(win);
|
||||||
elm_icon_standard_set(ic, input->icon);
|
icname = input->icon;
|
||||||
evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(24), ELM_SCALE_SIZE(24));
|
if (!icname) icname = "multimedia-player";
|
||||||
|
elm_icon_standard_set(ic, icname);
|
||||||
|
evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(20), ELM_SCALE_SIZE(20));
|
||||||
evas_object_size_hint_weight_set(ic, 0.0, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(ic, 0.0, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_FILL);
|
||||||
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||||
elm_box_pack_end(bx, ic);
|
elm_box_pack_end(bx, ic);
|
||||||
evas_object_show(ic);
|
evas_object_show(ic);
|
||||||
|
|
||||||
|
pd = elm_frame_add(win);
|
||||||
|
elm_object_style_set(pd, "pad_medium");
|
||||||
|
elm_box_pack_end(bx, pd);
|
||||||
|
evas_object_show(pd);
|
||||||
|
|
||||||
lb = elm_label_add(win);
|
lb = elm_label_add(win);
|
||||||
elm_object_text_set(lb, input->name);
|
elm_object_text_set(lb, eina_slstr_printf("<heading>%s</>", input->name));
|
||||||
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
||||||
elm_box_pack_end(bx, lb);
|
elm_box_pack_end(bx, lb);
|
||||||
evas_object_show(lb);
|
evas_object_show(lb);
|
||||||
|
|
||||||
hv = elm_hoversel_add(win);
|
|
||||||
evas_object_data_set(hv, "parent", fr);
|
|
||||||
evas_object_data_set(fr, "port", hv);
|
|
||||||
elm_hoversel_hover_parent_set(hv, win);
|
|
||||||
EINA_LIST_FOREACH(emix_sinks_get(), l, sink)
|
|
||||||
{
|
|
||||||
elm_hoversel_item_add(hv, sink->name,
|
|
||||||
NULL, ELM_ICON_NONE,
|
|
||||||
_cb_sink_input_port_change, sink);
|
|
||||||
if (input->sink == sink) elm_object_text_set(hv, sink->name);
|
|
||||||
}
|
|
||||||
evas_object_size_hint_weight_set(hv, 0.0, 0.5);
|
|
||||||
evas_object_size_hint_align_set(hv, EVAS_HINT_FILL, 0.5);
|
|
||||||
elm_box_pack_end(bxv, hv);
|
|
||||||
evas_object_show(hv);
|
|
||||||
|
|
||||||
bx = elm_box_add(win);
|
bx = elm_box_add(win);
|
||||||
evas_object_data_set(fr, "volume_bx", bx);
|
evas_object_data_set(fr, "volume_bx", bx);
|
||||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||||
|
@ -869,20 +998,46 @@ _emix_sink_input_add(Emix_Sink_Input *input)
|
||||||
|
|
||||||
_emix_sink_input_volume_fill(input, fr, bx, locked);
|
_emix_sink_input_volume_fill(input, fr, bx, locked);
|
||||||
|
|
||||||
elm_object_content_set(fr, bxv);
|
bx = evas_object_data_get(fr, "mutebox");
|
||||||
evas_object_show(bxv);
|
hv = elm_hoversel_add(win);
|
||||||
|
evas_object_size_hint_weight_set(hv, EVAS_HINT_EXPAND, 0.0);
|
||||||
elm_box_pack_end(sink_input_box, fr);
|
evas_object_size_hint_align_set(hv, EVAS_HINT_FILL, 0.5);
|
||||||
evas_object_show(fr);
|
evas_object_data_set(hv, "parent", fr);
|
||||||
|
evas_object_data_set(fr, "port", hv);
|
||||||
|
elm_hoversel_hover_parent_set(hv, win);
|
||||||
|
EINA_LIST_FOREACH(emix_sinks_get(), l, sink)
|
||||||
|
{
|
||||||
|
char *icname2 = _sink_icon_find(sink->name);
|
||||||
|
if (!icname2) icname2 = strdup("speaker-box");
|
||||||
|
elm_hoversel_item_add(hv, sink->name,
|
||||||
|
icname2, ELM_ICON_STANDARD,
|
||||||
|
_cb_sink_input_port_change, sink);
|
||||||
|
if (input->sink == sink)
|
||||||
|
{
|
||||||
|
ic = _icon(win, icname2);
|
||||||
|
elm_object_part_content_set(hv, "icon", ic);
|
||||||
|
evas_object_show(ic);
|
||||||
|
elm_object_text_set(hv, sink->name);
|
||||||
|
}
|
||||||
|
free(icname2);
|
||||||
|
}
|
||||||
|
elm_box_pack_end(bx, hv);
|
||||||
|
evas_object_show(hv);
|
||||||
|
|
||||||
vu = elm_progressbar_add(win);
|
vu = elm_progressbar_add(win);
|
||||||
elm_progressbar_unit_format_function_set(vu, _cb_vu_format_cb, NULL);
|
elm_progressbar_unit_format_function_set(vu, _cb_vu_format_cb, NULL);
|
||||||
evas_object_data_set(fr, "vu", vu);
|
evas_object_data_set(fr, "vu", vu);
|
||||||
evas_object_size_hint_weight_set(vu, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(vu, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(vu, EVAS_HINT_FILL, 0.0);
|
evas_object_size_hint_align_set(vu, EVAS_HINT_FILL, 0.0);
|
||||||
elm_box_pack_end(sink_input_box, vu);
|
elm_box_pack_end(bxv, vu);
|
||||||
evas_object_show(vu);
|
evas_object_show(vu);
|
||||||
|
|
||||||
|
elm_object_content_set(fr, bxv);
|
||||||
|
evas_object_show(bxv);
|
||||||
|
|
||||||
|
elm_box_pack_end(sink_input_box, fr);
|
||||||
|
evas_object_show(fr);
|
||||||
|
|
||||||
sep = elm_separator_add(win);
|
sep = elm_separator_add(win);
|
||||||
evas_object_data_set(fr, "extra", sep);
|
evas_object_data_set(fr, "extra", sep);
|
||||||
elm_separator_horizontal_set(sep, EINA_TRUE);
|
elm_separator_horizontal_set(sep, EINA_TRUE);
|
||||||
|
@ -927,7 +1082,6 @@ _emix_sink_input_del(Emix_Sink_Input *input)
|
||||||
{
|
{
|
||||||
sink_input_list = eina_list_remove_list(sink_input_list, l);
|
sink_input_list = eina_list_remove_list(sink_input_list, l);
|
||||||
evas_object_del(evas_object_data_get(fr, "extra"));
|
evas_object_del(evas_object_data_get(fr, "extra"));
|
||||||
evas_object_del(evas_object_data_get(fr, "vu"));
|
|
||||||
evas_object_del(fr);
|
evas_object_del(fr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -939,7 +1093,7 @@ _emix_sink_input_change(Emix_Sink_Input *input)
|
||||||
{
|
{
|
||||||
const Eina_List *l;
|
const Eina_List *l;
|
||||||
Eina_List *ll;
|
Eina_List *ll;
|
||||||
Evas_Object *fr, *hv, *ck, *sl, *lb;
|
Evas_Object *fr, *hv, *ck, *sl, *lb, *ic;
|
||||||
Emix_Sink *sink;
|
Emix_Sink *sink;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(sink_input_list, l, fr)
|
EINA_LIST_FOREACH(sink_input_list, l, fr)
|
||||||
|
@ -951,10 +1105,19 @@ _emix_sink_input_change(Emix_Sink_Input *input)
|
||||||
elm_hoversel_clear(hv);
|
elm_hoversel_clear(hv);
|
||||||
EINA_LIST_FOREACH(emix_sinks_get(), l, sink)
|
EINA_LIST_FOREACH(emix_sinks_get(), l, sink)
|
||||||
{
|
{
|
||||||
|
char *icname2 = _sink_icon_find(sink->name);
|
||||||
|
if (!icname2) icname2 = strdup("speaker-box");
|
||||||
elm_hoversel_item_add(hv, sink->name,
|
elm_hoversel_item_add(hv, sink->name,
|
||||||
NULL, ELM_ICON_NONE,
|
icname2, ELM_ICON_STANDARD,
|
||||||
_cb_sink_input_port_change, sink);
|
_cb_sink_input_port_change, sink);
|
||||||
if (input->sink == sink) elm_object_text_set(hv, sink->name);
|
if (input->sink == sink)
|
||||||
|
{
|
||||||
|
ic = _icon(win, icname2);
|
||||||
|
elm_object_part_content_set(hv, "icon", ic);
|
||||||
|
evas_object_show(ic);
|
||||||
|
elm_object_text_set(hv, sink->name);
|
||||||
|
}
|
||||||
|
free(icname2);
|
||||||
}
|
}
|
||||||
|
|
||||||
ck = evas_object_data_get(fr, "lock");
|
ck = evas_object_data_get(fr, "lock");
|
||||||
|
@ -1096,22 +1259,34 @@ _cb_source_default_change(void *data,
|
||||||
static void
|
static void
|
||||||
_emix_source_volume_fill(Emix_Source *source, Evas_Object *fr, Evas_Object *bx, Eina_Bool locked)
|
_emix_source_volume_fill(Emix_Source *source, Evas_Object *fr, Evas_Object *bx, Eina_Bool locked)
|
||||||
{
|
{
|
||||||
Evas_Object *bxhv, *lb, *ic, *sl, *ck;
|
Evas_Object *bxhv, *bxv, *lb, /**ic,*/ *sl, *ck, *hv;
|
||||||
Eina_List *sls = NULL;
|
Eina_List *sls = NULL;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
eina_list_free(evas_object_data_get(fr, "volumes"));
|
eina_list_free(evas_object_data_get(fr, "volumes"));
|
||||||
|
bxhv = evas_object_data_get(fr, "mutebox");
|
||||||
|
hv = evas_object_data_get(fr, "port");
|
||||||
|
if ((bxhv) && (hv)) elm_box_unpack(bxhv, hv);
|
||||||
elm_box_clear(bx);
|
elm_box_clear(bx);
|
||||||
|
|
||||||
|
bxv = elm_box_add(bx);
|
||||||
|
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_box_horizontal_set(bxv, 0);
|
||||||
|
elm_box_pack_end(bx, bxv);
|
||||||
|
evas_object_show(bxv);
|
||||||
|
|
||||||
bxhv = elm_box_add(bx);
|
bxhv = elm_box_add(bx);
|
||||||
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
||||||
elm_box_horizontal_set(bxhv, 1);
|
elm_box_horizontal_set(bxhv, 1);
|
||||||
elm_box_pack_end(bx, bxhv);
|
elm_box_pack_end(bxv, bxhv);
|
||||||
evas_object_show(bxhv);
|
evas_object_show(bxhv);
|
||||||
|
|
||||||
ic = _icon(win, "audio-input-microphone");
|
// ic = _icon(win, "audio-input-microphone");
|
||||||
elm_box_pack_end(bxhv, ic);
|
// elm_box_pack_end(bxhv, ic);
|
||||||
|
// evas_object_show(ic);
|
||||||
|
|
||||||
if (locked)
|
if (locked)
|
||||||
{
|
{
|
||||||
sl = elm_slider_add(bx);
|
sl = elm_slider_add(bx);
|
||||||
|
@ -1173,22 +1348,15 @@ _emix_source_volume_fill(Emix_Source *source, Evas_Object *fr, Evas_Object *bx,
|
||||||
evas_object_data_set(fr, "volumes", sls);
|
evas_object_data_set(fr, "volumes", sls);
|
||||||
|
|
||||||
bxhv = elm_box_add(bx);
|
bxhv = elm_box_add(bx);
|
||||||
elm_box_pack_end(bx, bxhv);
|
evas_object_size_hint_weight_set(bxhv, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bxhv, EVAS_HINT_FILL, 0.5);
|
||||||
|
elm_box_align_set(bxhv, 0.0, 0.5);
|
||||||
|
elm_box_horizontal_set(bxhv, 1);
|
||||||
|
elm_box_pack_end(bxv, bxhv);
|
||||||
|
evas_object_data_set(fr, "mutebox", bxhv);
|
||||||
evas_object_show(bxhv);
|
evas_object_show(bxhv);
|
||||||
|
|
||||||
ck = elm_check_add(bx);
|
ck = elm_check_add(bx);
|
||||||
evas_object_size_hint_weight_set(ck, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_align_set(ck, 0.0, 0.5);
|
|
||||||
evas_object_data_set(fr, "default", ck);
|
|
||||||
elm_object_text_set(ck, "Default");
|
|
||||||
elm_check_state_set(ck, source->default_source);
|
|
||||||
elm_box_pack_end(bxhv, ck);
|
|
||||||
evas_object_show(ck);
|
|
||||||
evas_object_smart_callback_add(ck, "changed", _cb_source_default_change, fr);
|
|
||||||
|
|
||||||
ck = elm_check_add(bx);
|
|
||||||
evas_object_size_hint_weight_set(ck, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_align_set(ck, 0.0, 0.5);
|
|
||||||
evas_object_data_set(fr, "mute", ck);
|
evas_object_data_set(fr, "mute", ck);
|
||||||
elm_object_text_set(ck, "Mute");
|
elm_object_text_set(ck, "Mute");
|
||||||
elm_check_state_set(ck, source->mute);
|
elm_check_state_set(ck, source->mute);
|
||||||
|
@ -1201,8 +1369,6 @@ _emix_source_volume_fill(Emix_Source *source, Evas_Object *fr, Evas_Object *bx,
|
||||||
{
|
{
|
||||||
ck = elm_check_add(bx);
|
ck = elm_check_add(bx);
|
||||||
elm_object_disabled_set(ck, 1);
|
elm_object_disabled_set(ck, 1);
|
||||||
evas_object_size_hint_weight_set(ck, 1.0, 1.0);
|
|
||||||
evas_object_size_hint_align_set(ck, 0.0, 0.5);
|
|
||||||
evas_object_data_set(fr, "lock", ck);
|
evas_object_data_set(fr, "lock", ck);
|
||||||
elm_object_text_set(ck, "Lock");
|
elm_object_text_set(ck, "Lock");
|
||||||
elm_check_state_set(ck, locked);
|
elm_check_state_set(ck, locked);
|
||||||
|
@ -1211,13 +1377,23 @@ _emix_source_volume_fill(Emix_Source *source, Evas_Object *fr, Evas_Object *bx,
|
||||||
evas_object_smart_callback_add(ck, "changed",
|
evas_object_smart_callback_add(ck, "changed",
|
||||||
_cb_source_lock_change, fr);
|
_cb_source_lock_change, fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ck = elm_check_add(bx);
|
||||||
|
evas_object_data_set(fr, "default", ck);
|
||||||
|
elm_object_text_set(ck, "Default");
|
||||||
|
elm_check_state_set(ck, source->default_source);
|
||||||
|
elm_box_pack_end(bxhv, ck);
|
||||||
|
evas_object_show(ck);
|
||||||
|
evas_object_smart_callback_add(ck, "changed", _cb_source_default_change, fr);
|
||||||
|
|
||||||
|
if (hv) elm_box_pack_end(bxhv, hv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_emix_source_add(Emix_Source *source)
|
_emix_source_add(Emix_Source *source)
|
||||||
{
|
{
|
||||||
Evas_Object *bxv, *bx, *fr, *lb, *sep, *vu;
|
Evas_Object *bxv, *bx, *ic, *fr, *lb, *sep, *vu, *pd;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
Eina_Bool locked = EINA_TRUE;
|
Eina_Bool locked = EINA_TRUE;
|
||||||
Mon_Data *md;
|
Mon_Data *md;
|
||||||
|
@ -1233,11 +1409,33 @@ _emix_source_add(Emix_Source *source)
|
||||||
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(bxv, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.0);
|
evas_object_size_hint_align_set(bxv, EVAS_HINT_FILL, 0.0);
|
||||||
|
|
||||||
|
bx = elm_box_add(win);
|
||||||
|
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||||
|
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0);
|
||||||
|
elm_box_pack_end(bxv, bx);
|
||||||
|
evas_object_show(bx);
|
||||||
|
|
||||||
|
ic = elm_icon_add(win);
|
||||||
|
elm_icon_standard_set(ic, "audio-input-microphone");
|
||||||
|
evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(20), ELM_SCALE_SIZE(20));
|
||||||
|
evas_object_size_hint_weight_set(ic, 0.0, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_FILL);
|
||||||
|
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
|
||||||
|
elm_box_pack_end(bx, ic);
|
||||||
|
evas_object_show(ic);
|
||||||
|
|
||||||
|
pd = elm_frame_add(win);
|
||||||
|
elm_object_style_set(pd, "pad_medium");
|
||||||
|
elm_box_pack_end(bx, pd);
|
||||||
|
evas_object_show(pd);
|
||||||
|
|
||||||
lb = elm_label_add(win);
|
lb = elm_label_add(win);
|
||||||
evas_object_size_hint_align_set(lb, 0.0, EVAS_HINT_FILL);
|
|
||||||
elm_object_text_set(lb, eina_slstr_printf("<heading>%s</>", source->name));
|
elm_object_text_set(lb, eina_slstr_printf("<heading>%s</>", source->name));
|
||||||
|
evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(lb, 0.0, 0.5);
|
||||||
|
elm_box_pack_end(bx, lb);
|
||||||
evas_object_show(lb);
|
evas_object_show(lb);
|
||||||
elm_box_pack_end(bxv, lb);
|
|
||||||
|
|
||||||
bx = elm_box_add(win);
|
bx = elm_box_add(win);
|
||||||
elm_box_horizontal_set(bx, EINA_TRUE);
|
elm_box_horizontal_set(bx, EINA_TRUE);
|
||||||
|
@ -1270,17 +1468,17 @@ _emix_source_add(Emix_Source *source)
|
||||||
elm_object_content_set(fr, bxv);
|
elm_object_content_set(fr, bxv);
|
||||||
evas_object_show(bxv);
|
evas_object_show(bxv);
|
||||||
|
|
||||||
elm_box_pack_end(source_box, fr);
|
|
||||||
evas_object_show(fr);
|
|
||||||
|
|
||||||
vu = elm_progressbar_add(win);
|
vu = elm_progressbar_add(win);
|
||||||
elm_progressbar_unit_format_function_set(vu, _cb_vu_format_cb, NULL);
|
elm_progressbar_unit_format_function_set(vu, _cb_vu_format_cb, NULL);
|
||||||
evas_object_data_set(fr, "vu", vu);
|
evas_object_data_set(fr, "vu", vu);
|
||||||
evas_object_size_hint_weight_set(vu, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(vu, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(vu, EVAS_HINT_FILL, 0.0);
|
evas_object_size_hint_align_set(vu, EVAS_HINT_FILL, 0.0);
|
||||||
elm_box_pack_end(source_box, vu);
|
elm_box_pack_end(bxv, vu);
|
||||||
evas_object_show(vu);
|
evas_object_show(vu);
|
||||||
|
|
||||||
|
elm_box_pack_end(source_box, fr);
|
||||||
|
evas_object_show(fr);
|
||||||
|
|
||||||
sep = elm_separator_add(win);
|
sep = elm_separator_add(win);
|
||||||
evas_object_data_set(fr, "extra", sep);
|
evas_object_data_set(fr, "extra", sep);
|
||||||
elm_separator_horizontal_set(sep, EINA_TRUE);
|
elm_separator_horizontal_set(sep, EINA_TRUE);
|
||||||
|
@ -1325,7 +1523,6 @@ _emix_source_del(Emix_Source *source)
|
||||||
{
|
{
|
||||||
source_list = eina_list_remove_list(source_list, l);
|
source_list = eina_list_remove_list(source_list, l);
|
||||||
evas_object_del(evas_object_data_get(fr, "extra"));
|
evas_object_del(evas_object_data_get(fr, "extra"));
|
||||||
evas_object_del(evas_object_data_get(fr, "vu"));
|
|
||||||
evas_object_del(fr);
|
evas_object_del(fr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1670,7 +1867,7 @@ _icon(Evas_Object *base, const char *name)
|
||||||
{
|
{
|
||||||
Evas_Object *ic = elm_icon_add(base);
|
Evas_Object *ic = elm_icon_add(base);
|
||||||
elm_icon_standard_set(ic, name);
|
elm_icon_standard_set(ic, name);
|
||||||
evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(24), ELM_SCALE_SIZE(24));
|
evas_object_size_hint_min_set(ic, ELM_SCALE_SIZE(20), ELM_SCALE_SIZE(20));
|
||||||
evas_object_show(ic);
|
evas_object_show(ic);
|
||||||
|
|
||||||
return ic;
|
return ic;
|
||||||
|
@ -1735,13 +1932,14 @@ elm_main(int argc, char **argv)
|
||||||
evas_object_event_callback_add(tb, EVAS_CALLBACK_KEY_DOWN, _cb_key_down, win);
|
evas_object_event_callback_add(tb, EVAS_CALLBACK_KEY_DOWN, _cb_key_down, win);
|
||||||
|
|
||||||
lst = elm_list_add(win);
|
lst = elm_list_add(win);
|
||||||
evas_object_size_hint_weight_set(lst, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
elm_list_mode_set(lst, ELM_LIST_LIMIT);
|
||||||
|
evas_object_size_hint_weight_set(lst, 0.0, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(lst, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(lst, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
evas_object_show(lst);
|
evas_object_show(lst);
|
||||||
|
|
||||||
ic = _icon(win, "media-playback-start");
|
ic = _icon(win, "media-playback-start");
|
||||||
it = elm_list_item_append(lst, _("Playback"), ic, NULL, NULL, _cb_playback);
|
it = elm_list_item_append(lst, _("Playback"), ic, NULL, NULL, _cb_playback);
|
||||||
ic = _icon(win, "audio-volume-medium");
|
ic = _icon(win, "audio-volume");
|
||||||
elm_list_item_append(lst, _("Outputs"), ic, NULL, NULL, _cb_outputs);
|
elm_list_item_append(lst, _("Outputs"), ic, NULL, NULL, _cb_outputs);
|
||||||
ic = _icon(win, "audio-input-microphone");
|
ic = _icon(win, "audio-input-microphone");
|
||||||
elm_list_item_append(lst, _("Inputs"), ic, NULL, NULL, _cb_inputs);
|
elm_list_item_append(lst, _("Inputs"), ic, NULL, NULL, _cb_inputs);
|
||||||
|
@ -1813,8 +2011,8 @@ elm_main(int argc, char **argv)
|
||||||
evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
evas_object_size_hint_min_set(rect,
|
evas_object_size_hint_min_set(rect,
|
||||||
440 * elm_config_scale_get(),
|
520 * elm_config_scale_get(),
|
||||||
220 * elm_config_scale_get());
|
320 * elm_config_scale_get());
|
||||||
elm_table_pack(tb, rect, 1, 0, 1, 1);
|
elm_table_pack(tb, rect, 1, 0, 1, 1);
|
||||||
|
|
||||||
_fill_source();
|
_fill_source();
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 5.9 KiB |
|
@ -380,33 +380,21 @@ _icon_from_properties(pa_proplist *l)
|
||||||
{
|
{
|
||||||
const char *t;
|
const char *t;
|
||||||
|
|
||||||
if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ICON_NAME)))
|
if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ICON_NAME))) return t;
|
||||||
return t;
|
if ((t = pa_proplist_gets(l, PA_PROP_WINDOW_ICON_NAME))) return t;
|
||||||
|
if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ICON_NAME))) return t;
|
||||||
if ((t = pa_proplist_gets(l, PA_PROP_WINDOW_ICON_NAME)))
|
if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ICON))) return t;
|
||||||
return t;
|
if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ID))) return t;
|
||||||
|
if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_NAME))) return t;
|
||||||
if ((t = pa_proplist_gets(l, PA_PROP_APPLICATION_ICON_NAME)))
|
|
||||||
return t;
|
|
||||||
|
|
||||||
if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ROLE)))
|
if ((t = pa_proplist_gets(l, PA_PROP_MEDIA_ROLE)))
|
||||||
{
|
{
|
||||||
|
if ((!strcmp(t, "video")) || (!strcmp(t, "phone"))) return t;
|
||||||
if (strcmp(t, "video") == 0 ||
|
if (!strcmp(t, "music")) return "multimedia-player";
|
||||||
strcmp(t, "phone") == 0)
|
if (!strcmp(t, "game")) return "applications-games";
|
||||||
return t;
|
if (!strcmp(t, "event")) return "dialog-information";
|
||||||
|
|
||||||
if (strcmp(t, "music") == 0)
|
|
||||||
return "audio";
|
|
||||||
|
|
||||||
if (strcmp(t, "game") == 0)
|
|
||||||
return "applications-games";
|
|
||||||
|
|
||||||
if (strcmp(t, "event") == 0)
|
|
||||||
return "dialog-information";
|
|
||||||
}
|
}
|
||||||
|
return NULL;
|
||||||
return "audio-card";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue