value "auto_throttle_amount" double: 0.1;
value "magnifier_enable" uchar: 1;
value "magnifier_scale" double: 1.5;
+ value "audio_mute_effect" uchar: 0;
+ value "audio_mute_background" uchar: 0;
+ value "audio_mute_music" uchar: 0;
+ value "audio_mute_foreground" uchar: 0;
+ value "audio_mute_interface" uchar: 0;
+ value "audio_mute_input" uchar: 0;
+ value "audio_mute_alert" uchar: 0;
+ value "audio_mute_all" uchar: 0;
group "color_palette" list {
group "Elm_Custom_Palette" struct {
value "palette_name" string: "default";
value "indicator_service_270" string: "elm_indicator_landscape";
value "magnifier_enable" uchar: 1;
value "magnifier_scale" double: 1.5;
+ value "audio_mute_effect" uchar: 0;
+ value "audio_mute_background" uchar: 0;
+ value "audio_mute_music" uchar: 0;
+ value "audio_mute_foreground" uchar: 0;
+ value "audio_mute_interface" uchar: 0;
+ value "audio_mute_input" uchar: 0;
+ value "audio_mute_alert" uchar: 0;
+ value "audio_mute_all" uchar: 0;
group "color_palette" list {
group "Elm_Custom_Palette" struct {
value "palette_name" string: "default";
value "auto_throttle_amount" double: 0.0333333333;
value "magnifier_enable" uchar: 0;
value "magnifier_scale" double: 1.5;
+ value "audio_mute_effect" uchar: 0;
+ value "audio_mute_background" uchar: 0;
+ value "audio_mute_music" uchar: 0;
+ value "audio_mute_foreground" uchar: 0;
+ value "audio_mute_interface" uchar: 0;
+ value "audio_mute_input" uchar: 0;
+ value "audio_mute_alert" uchar: 0;
+ value "audio_mute_all" uchar: 0;
group "color_palette" list {
group "Elm_Custom_Palette" struct {
value "palette_name" string: "default";
}
static void
+_cf_audio(void *data,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ _flip_to(data,"audio");
+}
+
+static void
_cf_etc(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
elm_naviframe_item_simple_push(naviframe, bx);
}
+#define MUTE_CB(_cb, _chan) \
+static void \
+_cb(void *data EINA_UNUSED, \
+ Evas_Object *obj, \
+ void *event_info EINA_UNUSED) \
+{ \
+ Eina_Bool val = elm_check_state_get(obj); \
+ Eina_Bool v = elm_config_audio_mute_get(_chan); \
+ if (val == v) return; \
+ elm_config_audio_mute_set(_chan, val); \
+ elm_config_all_flush(); \
+}
+
+MUTE_CB(mute_effect_change, EDJE_CHANNEL_EFFECT)
+MUTE_CB(mute_background_change, EDJE_CHANNEL_BACKGROUND)
+MUTE_CB(mute_music_change, EDJE_CHANNEL_MUSIC)
+MUTE_CB(mute_foreground_change, EDJE_CHANNEL_FOREGROUND)
+MUTE_CB(mute_interface_change, EDJE_CHANNEL_INTERFACE)
+MUTE_CB(mute_input_change, EDJE_CHANNEL_INPUT)
+MUTE_CB(mute_alert_change, EDJE_CHANNEL_ALERT)
+MUTE_CB(mute_all_change, EDJE_CHANNEL_ALL)
+
+static void
+_status_config_audio(Evas_Object *win,
+ Evas_Object *naviframe)
+{
+ Evas_Object *bx, *ck;
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5);
+
+#define MUTE_CHECK(_label, _chan, _cb) \
+ ck = elm_check_add(win); \
+ elm_object_text_set(ck, _label); \
+ evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, 0.0); \
+ evas_object_size_hint_align_set(ck, EVAS_HINT_FILL, 0.5); \
+ elm_check_state_set(ck, elm_config_audio_mute_get(_chan)); \
+ elm_box_pack_end(bx, ck); \
+ evas_object_show(ck); \
+ evas_object_smart_callback_add(ck, "changed", _cb, NULL);
+
+ MUTE_CHECK("Mute Effects", EDJE_CHANNEL_EFFECT, mute_effect_change);
+ MUTE_CHECK("Mute Background", EDJE_CHANNEL_BACKGROUND, mute_background_change);
+ MUTE_CHECK("Mute Music", EDJE_CHANNEL_MUSIC, mute_music_change);
+ MUTE_CHECK("Mute Foreground", EDJE_CHANNEL_FOREGROUND, mute_foreground_change);
+ MUTE_CHECK("Mute Interface", EDJE_CHANNEL_INTERFACE, mute_interface_change);
+ MUTE_CHECK("Mute Input", EDJE_CHANNEL_INPUT, mute_input_change);
+ MUTE_CHECK("Mute Alert", EDJE_CHANNEL_ALERT, mute_alert_change);
+ MUTE_CHECK("Mute Everything", EDJE_CHANNEL_ALL, mute_all_change);
+
+ evas_object_data_set(win, "audio", bx);
+
+ elm_naviframe_item_simple_push(naviframe, bx);
+}
+
static void
_status_config_etc(Evas_Object *win,
Evas_Object *naviframe)
elm_toolbar_item_append(tb, "video-display", "Rendering",
_cf_rendering, win);
elm_toolbar_item_append(tb, "appointment-new", "Caches", _cf_caches, win);
+ elm_toolbar_item_append(tb, "sound", "Audio", _cf_audio, win);
elm_toolbar_item_append(tb, NULL, "Etc", _cf_etc, win);
elm_box_pack_end(bx0, tb);
_status_config_rendering(win, naviframe);
_status_config_scrolling(win, naviframe);
_status_config_caches(win, naviframe);
+ _status_config_audio(win, naviframe);
_status_config_etc(win, naviframe);
_status_config_sizing(win, naviframe); // Note: call this at the end.
static void _config_free(Elm_Config *cfg);
static void _config_apply(void);
+static void _config_sub_apply(void);
static void _config_update(void);
static void _env_get(void);
_elm_config = config_data;
_env_get();
_config_apply();
+ _config_sub_apply();
_elm_config_font_overlay_apply();
_elm_rescale();
_elm_recache();
ELM_CONFIG_VAL(D, T, clouseau_enable, T_UCHAR);
ELM_CONFIG_VAL(D, T, magnifier_enable, T_UCHAR);
ELM_CONFIG_VAL(D, T, magnifier_scale, T_DOUBLE);
+ ELM_CONFIG_VAL(D, T, audio_mute_effect, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_background, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_music, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_foreground, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_interface, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_input, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_alert, T_UCHAR);
+ ELM_CONFIG_VAL(D, T, audio_mute_all, T_UCHAR);
#undef T
#undef D
#undef T_INT
edje_password_show_last_set(_elm_config->password_show_last);
edje_password_show_last_timeout_set(_elm_config->password_show_last_timeout);
if (_elm_config->modules) _elm_module_parse(_elm_config->modules);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_EFFECT, _elm_config->audio_mute_effect);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_BACKGROUND, _elm_config->audio_mute_background);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_MUSIC, _elm_config->audio_mute_music);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_FOREGROUND, _elm_config->audio_mute_foreground);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_INTERFACE, _elm_config->audio_mute_interface);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_INPUT, _elm_config->audio_mute_input);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_ALERT, _elm_config->audio_mute_alert);
+ edje_audio_channel_mute_set(EDJE_CHANNEL_ALL, _elm_config->audio_mute_all);
}
static Eina_Bool
_elm_config->disable_external_menu = EINA_FALSE;
_elm_config->magnifier_enable = EINA_TRUE;
_elm_config->magnifier_scale = 1.5;
+ _elm_config->audio_mute_effect = 0;
+ _elm_config->audio_mute_background = 0;
+ _elm_config->audio_mute_music = 0;
+ _elm_config->audio_mute_foreground = 0;
+ _elm_config->audio_mute_interface = 0;
+ _elm_config->audio_mute_input = 0;
+ _elm_config->audio_mute_alert = 0;
+ _elm_config->audio_mute_all = 0;
}
static const char *
_elm_config->magnifier_scale = scale;
}
+EAPI Eina_Bool
+elm_config_audio_mute_get(Edje_Channel channel)
+{
+ switch (channel)
+ {
+ case EDJE_CHANNEL_EFFECT:
+ return _elm_config->audio_mute_effect;
+ break;
+ case EDJE_CHANNEL_BACKGROUND:
+ return _elm_config->audio_mute_background;
+ break;
+ case EDJE_CHANNEL_MUSIC:
+ return _elm_config->audio_mute_music;
+ break;
+ case EDJE_CHANNEL_FOREGROUND:
+ return _elm_config->audio_mute_foreground;
+ break;
+ case EDJE_CHANNEL_INTERFACE:
+ return _elm_config->audio_mute_interface;
+ break;
+ case EDJE_CHANNEL_INPUT:
+ return _elm_config->audio_mute_input;
+ break;
+ case EDJE_CHANNEL_ALERT:
+ return _elm_config->audio_mute_alert;
+ break;
+ case EDJE_CHANNEL_ALL:
+ return _elm_config->audio_mute_all;
+ break;
+ default:
+ break;
+ }
+ return EINA_FALSE;
+}
+
+EAPI void
+elm_config_audio_mute_set(Edje_Channel channel, Eina_Bool mute)
+{
+ switch (channel)
+ {
+ case EDJE_CHANNEL_EFFECT:
+ _elm_config->audio_mute_effect = mute;
+ break;
+ case EDJE_CHANNEL_BACKGROUND:
+ _elm_config->audio_mute_background = mute;
+ break;
+ case EDJE_CHANNEL_MUSIC:
+ _elm_config->audio_mute_music = mute;
+ break;
+ case EDJE_CHANNEL_FOREGROUND:
+ _elm_config->audio_mute_foreground = mute;
+ break;
+ case EDJE_CHANNEL_INTERFACE:
+ _elm_config->audio_mute_interface = mute;
+ break;
+ case EDJE_CHANNEL_INPUT:
+ _elm_config->audio_mute_input = mute;
+ break;
+ case EDJE_CHANNEL_ALERT:
+ _elm_config->audio_mute_alert = mute;
+ break;
+ case EDJE_CHANNEL_ALL:
+ _elm_config->audio_mute_all = mute;
+ break;
+ default:
+ break;
+ }
+ edje_audio_channel_mute_set(channel, mute);
+}
+
EAPI void
elm_config_all_flush(void)
{
EAPI void elm_config_glayer_double_tap_timeout_set(double double_tap_timeout);
/**
+ * Get the magnifier enabled state for entries
+ *
+ * @return The enabled state for magnifier
+ * @since 1.9
+ */
+EAPI Eina_Bool elm_config_magnifier_enable_get(void);
+
+/**
+ * Set the magnifier enabled state for entires
+ *
+ * @param enable The magnifier config state
+ * @since 1.9
+ */
+EAPI void elm_config_magnifier_enable_set(Eina_Bool enable);
+
+/**
+ * Get the amount of scaling the magnifer does
+ *
+ * @return The scaling amount (1.0 is none, 2.0 is twice as big etc.)
+ * @since 1.9
+ */
+EAPI double elm_config_magnifier_scale_get(void);
+
+/**
+ * Set the amount of scaling the magnifier does
+ *
+ * @param scale The scaling amount for magnifiers
+ * @since 1.9
+ */
+EAPI void elm_config_magnifier_scale_set(double scale);
+
+/**
+ * Get the mute state of an audio channel for effects
+ *
+ * @param channel The channel to get the mute state of
+ * @return The mute state
+ * @since 1.9
+ */
+EAPI Eina_Bool elm_config_audio_mute_get(Edje_Channel channel);
+
+/**
+ * Set the mute state of the specified channel
+ *
+ * @param channel The channel to set the mute state of
+ * @param mute The mute state to set
+ * @since 1.9
+ */
+EAPI void elm_config_audio_mute_set(Edje_Channel channel, Eina_Bool mute);
+
+/**
* @}
*/
unsigned char clouseau_enable;
unsigned char magnifier_enable;
double magnifier_scale;
+ unsigned char audio_mute_effect;
+ unsigned char audio_mute_background;
+ unsigned char audio_mute_music;
+ unsigned char audio_mute_foreground;
+ unsigned char audio_mute_interface;
+ unsigned char audio_mute_input;
+ unsigned char audio_mute_alert;
+ unsigned char audio_mute_all;
/* Not part of the EET file */
Eina_Bool is_mirrored : 1;