int notify;
int mute;
+ int save;
+ int save_mute;
+ int save_volume;
+
emix_config_backend_changed cb;
const void *userdata;
} Emix_Config;
E_CONFIG_VAL(result, Emix_Config, notify, INT);
E_CONFIG_VAL(result, Emix_Config, mute, INT);
+ E_CONFIG_VAL(result, Emix_Config, save, INT);
+ E_CONFIG_VAL(result, Emix_Config, save_mute, INT);
+ E_CONFIG_VAL(result, Emix_Config, save_volume, INT);
+
return result;
}
_config->notify = config->notify;
_config->mute = config->mute;
+ if (config->save == 0) _config->save = -1;
+ else if (config->save == 1) _config->save = 1;
+
DBG("SAVING CONFIG %s %d %d", _config->backend, config->notify,
config->mute);
e_config_domain_save("module.emix", cd, config);
_config->backend = eina_stringshare_add(l->data);
}
+ if (_config->save == 0)
+ {
+ _config->save = 1;
+ _config->save_mute = 0;
+ _config->save_volume = 100;
+ }
+
_config->cb = cb;
_config->userdata = userdata;
DBG("Config loaded, backend to use: %s", _config->backend);
emix_shutdown();
}
+void
+emix_config_save(void)
+{
+ if ((_config) && (cd))
+ e_config_domain_save("module.emix", cd, _config);
+}
+
+Eina_Bool
+emix_config_save_get(void)
+{
+ if (_config->save == 1) return EINA_TRUE;
+ return EINA_FALSE;
+}
+
+Eina_Bool
+emix_config_save_mute_get(void)
+{
+ return _config->save_mute;
+}
+
+void
+emix_config_save_mute_set(Eina_Bool mute)
+{
+ _config->save_mute = mute;
+ if (_config->save == 1) e_config_save_queue();
+}
+
+int
+emix_config_save_volume_get(void)
+{
+ return _config->save_volume;
+}
+
+void
+emix_config_save_volume_set(int volume)
+{
+ _config->save_volume = volume;
+ if (_config->save == 1) e_config_save_queue();
+}
+
static void*
_create_data(E_Config_Dialog *cfg EINA_UNUSED)
{
d->config.notify = _config->notify;
d->config.mute = _config->mute;
+ if (_config->save == -1) d->config.save = 0;
+ else if (_config->save == 1) d->config.save = 1;
+ else d->config.save = 1;
+
return d;
}
l = e_widget_check_add(evas, "Mute on lock", &cfdata->config.mute);
e_widget_list_object_append(o, l, 0, 0, 0);
+ l = e_widget_check_add(evas, "Remember", &cfdata->config.save);
+ e_widget_list_object_append(o, l, 0, 0, 0);
+
l = e_widget_label_add(evas, "Backend to use:");
e_widget_list_object_append(o, l, 0, 0, 0);
void emix_config_init(emix_config_backend_changed cb, const void *userdata);
void emix_config_shutdown(void);
+void emix_config_save(void);
+
+Eina_Bool emix_config_save_get(void);
+Eina_Bool emix_config_save_mute_get(void);
+void emix_config_save_mute_set(Eina_Bool mute);
+int emix_config_save_volume_get(void);
+void emix_config_save_volume_set(int volume);
+
const char *emix_config_backend_get(void);
void emix_config_backend_set(const char *backend);
Eina_Bool emix_config_desklock_mute_get(void);
}
emix_sink_volume_set(s, volume);
+ if (volume.volumes) emix_config_save_volume_set(volume.volumes[0]);
free(volume.volumes);
}
}
emix_sink_volume_set(s, volume);
+ if (volume.volumes) emix_config_save_volume_set(volume.volumes[0]);
free(volume.volumes);
}
Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default;
Eina_Bool mute = !s->mute;
emix_sink_mute_set(s, mute);
+ emix_config_save_mute_set(mute);
}
static void
{
Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default;
emix_sink_mute_set(s, !s->mute);
+ emix_config_save_mute_set(!s->mute);
/*
*TODO: is it really necessary ? or it will be update
* with the sink changed hanlder
unsigned int i;
Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default;
-
val = (int)elm_slider_value_get(obj);
v.volumes = calloc(s->volume.channel_count, sizeof(int));
v.channel_count = s->volume.channel_count;
for (i = 0; i < s->volume.channel_count; i++) v.volumes[i] = val;
emix_sink_volume_set(s, v);
elm_slider_value_set(obj, val);
+ if (v.volumes) emix_config_save_volume_set(v.volumes[0]);
free(v.volumes);
}
mixer_context->sink_default = emix_sinks_get()->data;
}
+ if (emix_config_save_get())
+ {
+ Emix_Volume v;
+ unsigned int i;
+ Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default;
+
+ v.volumes = calloc(s->volume.channel_count, sizeof(int));
+ v.channel_count = s->volume.channel_count;
+ for (i = 0; i < s->volume.channel_count; i++) v.volumes[i] = 100;
+ emix_sink_volume_set(s, v);
+ free(v.volumes);
+ emix_sink_mute_set(s, emix_config_save_mute_get());
+ }
+
_mixer_gadget_update();
}
E_API int
e_modapi_save(E_Module *m EINA_UNUSED)
{
+ emix_config_save();
return 1;
}