forked from enlightenment/enlightenment
mixer - use double progress bar for a decay "max vu" value
This commit is contained in:
parent
5881da2264
commit
14a83251bf
|
@ -54,7 +54,9 @@ struct _Mon_Data
|
||||||
Emix_Source *source;
|
Emix_Source *source;
|
||||||
Evas_Object *vu;
|
Evas_Object *vu;
|
||||||
Ecore_Animator *animator;
|
Ecore_Animator *animator;
|
||||||
|
double last_time;
|
||||||
float samp_max;
|
float samp_max;
|
||||||
|
float samp_max2;
|
||||||
int mon_skips;
|
int mon_skips;
|
||||||
int mon_update;
|
int mon_update;
|
||||||
int mon_samps;
|
int mon_samps;
|
||||||
|
@ -160,23 +162,35 @@ static Eina_Bool
|
||||||
_cb_emix_monitor_update(void *data)
|
_cb_emix_monitor_update(void *data)
|
||||||
{
|
{
|
||||||
Mon_Data *md = data;
|
Mon_Data *md = data;
|
||||||
|
double t = ecore_loop_time_get();
|
||||||
|
double td = t - md->last_time;
|
||||||
|
|
||||||
|
if (md->samp_max2 < md->samp_max) md->samp_max2 = md->samp_max;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
md->samp_max2 = md->samp_max2 * (1.0 - (0.5 * td));
|
||||||
|
if (md->samp_max2 < 0.001) md->samp_max2 = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
if (md->mon_update == 0)
|
if (md->mon_update == 0)
|
||||||
{
|
{
|
||||||
md->mon_skips++;
|
md->mon_skips++;
|
||||||
if (md->mon_skips > 5)
|
if (md->mon_skips > 5)
|
||||||
{
|
{
|
||||||
elm_progressbar_value_set(md->vu, 0.0);
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar", 0.0);
|
||||||
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar1", 0.0);
|
||||||
md->animator = NULL;
|
md->animator = NULL;
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
elm_progressbar_value_set(md->vu, md->samp_max);
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar", md->samp_max);
|
||||||
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar1", md->samp_max2);
|
||||||
md->mon_update = 0;
|
md->mon_update = 0;
|
||||||
md->samp_max = 0;
|
md->samp_max = 0;
|
||||||
md->mon_skips = 0;
|
md->mon_skips = 0;
|
||||||
md->mon_samps = 0;
|
md->mon_samps = 0;
|
||||||
|
md->last_time = t;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,23 +223,35 @@ static Eina_Bool
|
||||||
_cb_emix_source_monitor_update(void *data)
|
_cb_emix_source_monitor_update(void *data)
|
||||||
{
|
{
|
||||||
Mon_Data *md = data;
|
Mon_Data *md = data;
|
||||||
|
double t = ecore_loop_time_get();
|
||||||
|
double td = t - md->last_time;
|
||||||
|
|
||||||
|
if (md->samp_max2 < md->samp_max) md->samp_max2 = md->samp_max;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
md->samp_max2 = md->samp_max2 * (1.0 - (0.5 * td));
|
||||||
|
if (md->samp_max2 < 0.001) md->samp_max2 = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
if (md->mon_update == 0)
|
if (md->mon_update == 0)
|
||||||
{
|
{
|
||||||
md->mon_skips++;
|
md->mon_skips++;
|
||||||
if (md->mon_skips > 5)
|
if (md->mon_skips > 5)
|
||||||
{
|
{
|
||||||
elm_progressbar_value_set(md->vu, 0.0);
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar", 0.0);
|
||||||
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar1", 0.0);
|
||||||
md->animator = NULL;
|
md->animator = NULL;
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
elm_progressbar_value_set(md->vu, md->samp_max);
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar", md->samp_max);
|
||||||
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar1", md->samp_max2);
|
||||||
md->mon_update = 0;
|
md->mon_update = 0;
|
||||||
md->samp_max = 0;
|
md->samp_max = 0;
|
||||||
md->mon_skips = 0;
|
md->mon_skips = 0;
|
||||||
md->mon_samps = 0;
|
md->mon_samps = 0;
|
||||||
|
md->last_time = t;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -685,6 +711,7 @@ _popup_recording_fill(Instance *inst)
|
||||||
evas_object_show(bx);
|
evas_object_show(bx);
|
||||||
|
|
||||||
inst->recvu = elm_progressbar_add(e_comp->elm);
|
inst->recvu = elm_progressbar_add(e_comp->elm);
|
||||||
|
elm_object_style_set(inst->recvu, "double");
|
||||||
elm_progressbar_unit_format_function_set(inst->recvu, _cb_vu_format_cb, NULL);
|
elm_progressbar_unit_format_function_set(inst->recvu, _cb_vu_format_cb, NULL);
|
||||||
evas_object_size_hint_weight_set(inst->recvu, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(inst->recvu, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(inst->recvu, EVAS_HINT_FILL, 0.5);
|
evas_object_size_hint_align_set(inst->recvu, EVAS_HINT_FILL, 0.5);
|
||||||
|
@ -779,6 +806,7 @@ _popup_new(Instance *inst)
|
||||||
evas_object_show(bx);
|
evas_object_show(bx);
|
||||||
|
|
||||||
inst->vu = elm_progressbar_add(e_comp->elm);
|
inst->vu = elm_progressbar_add(e_comp->elm);
|
||||||
|
elm_object_style_set(inst->vu, "double");
|
||||||
elm_progressbar_unit_format_function_set(inst->vu, _cb_vu_format_cb, NULL);
|
elm_progressbar_unit_format_function_set(inst->vu, _cb_vu_format_cb, NULL);
|
||||||
evas_object_size_hint_weight_set(inst->vu, EVAS_HINT_EXPAND, 0.0);
|
evas_object_size_hint_weight_set(inst->vu, EVAS_HINT_EXPAND, 0.0);
|
||||||
evas_object_size_hint_align_set(inst->vu, EVAS_HINT_FILL, 0.5);
|
evas_object_size_hint_align_set(inst->vu, EVAS_HINT_FILL, 0.5);
|
||||||
|
|
|
@ -98,7 +98,9 @@ typedef struct _Mon_Data
|
||||||
Evas_Object *fr;
|
Evas_Object *fr;
|
||||||
Evas_Object *vu;
|
Evas_Object *vu;
|
||||||
Ecore_Animator *animator;
|
Ecore_Animator *animator;
|
||||||
|
double last_time;
|
||||||
float samp_max;
|
float samp_max;
|
||||||
|
float samp_max2;
|
||||||
int mon_skips;
|
int mon_skips;
|
||||||
int mon_update;
|
int mon_update;
|
||||||
int mon_samps;
|
int mon_samps;
|
||||||
|
@ -110,23 +112,35 @@ static Eina_Bool
|
||||||
_cb_emix_monitor_update(void *data)
|
_cb_emix_monitor_update(void *data)
|
||||||
{
|
{
|
||||||
Mon_Data *md = data;
|
Mon_Data *md = data;
|
||||||
|
double t = ecore_loop_time_get();
|
||||||
|
double td = t - md->last_time;
|
||||||
|
|
||||||
|
if (md->samp_max2 < md->samp_max) md->samp_max2 = md->samp_max;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
md->samp_max2 = md->samp_max2 * (1.0 - (0.5 * td));
|
||||||
|
if (md->samp_max2 < 0.001) md->samp_max2 = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
if (md->mon_update == 0)
|
if (md->mon_update == 0)
|
||||||
{
|
{
|
||||||
md->mon_skips++;
|
md->mon_skips++;
|
||||||
if (md->mon_skips > 5)
|
if (md->mon_skips > 5)
|
||||||
{
|
{
|
||||||
elm_progressbar_value_set(md->vu, 0.0);
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar", 0.0);
|
||||||
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar1", 0.0);
|
||||||
md->animator = NULL;
|
md->animator = NULL;
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
elm_progressbar_value_set(md->vu, md->samp_max);
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar", md->samp_max);
|
||||||
|
elm_progressbar_part_value_set(md->vu, "elm.cur.progressbar1", md->samp_max2);
|
||||||
md->mon_update = 0;
|
md->mon_update = 0;
|
||||||
md->samp_max = 0;
|
md->samp_max = 0;
|
||||||
md->mon_skips = 0;
|
md->mon_skips = 0;
|
||||||
md->mon_samps = 0;
|
md->mon_samps = 0;
|
||||||
|
md->last_time = t;
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -550,6 +564,7 @@ _emix_sink_add(Emix_Sink *sink)
|
||||||
evas_object_show(hv);
|
evas_object_show(hv);
|
||||||
|
|
||||||
vu = elm_progressbar_add(win);
|
vu = elm_progressbar_add(win);
|
||||||
|
elm_object_style_set(vu, "double");
|
||||||
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);
|
||||||
|
@ -1019,6 +1034,7 @@ _emix_sink_input_add(Emix_Sink_Input *input)
|
||||||
evas_object_show(hv);
|
evas_object_show(hv);
|
||||||
|
|
||||||
vu = elm_progressbar_add(win);
|
vu = elm_progressbar_add(win);
|
||||||
|
elm_object_style_set(vu, "double");
|
||||||
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);
|
||||||
|
@ -1463,6 +1479,7 @@ _emix_source_add(Emix_Source *source)
|
||||||
evas_object_show(bxv);
|
evas_object_show(bxv);
|
||||||
|
|
||||||
vu = elm_progressbar_add(win);
|
vu = elm_progressbar_add(win);
|
||||||
|
elm_object_style_set(vu, "double");
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue