Eina_Bool _su_timer_cb(void *data)
{
- int val = -1;
+ int val = -1, snd = 0, vib =0;
struct appdata *ad = (struct appdata *)data;
+ int type = MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY;
+ type = _get_volume_type();
retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "window is NULL");
- retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE, ECORE_CALLBACK_CANCEL, "window is hide\n");
+ retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE && type != VOLUME_TYPE_MEDIA, ECORE_CALLBACK_CANCEL, "window is hide\n");
ecore_timer_interval_set(ad->sutimer, 0.1);
DEL_TIMER(ad->stimer)
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
+ vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
+
_get_sound_level(ad->type, &val);
if(ad->flag_touching == EINA_TRUE){
- return ECORE_CALLBACK_RENEW;
- }
+ return ECORE_CALLBACK_RENEW;
+ }
if(val == 15){
_D("already 15\n");
return ECORE_CALLBACK_RENEW;
}
+ if(!snd && ad->type != VOLUME_TYPE_MEDIA){
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 1);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
+ }
_set_sound_level(ad->type, val +1 > ad->step ? ad->step : val + 1);
_D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
return ECORE_CALLBACK_RENEW;
Eina_Bool _sd_timer_cb(void *data)
{
- int val = 0;
+ int val = 0, snd = 0, vib =0;
struct appdata *ad = (struct appdata *)data;
+ int type = MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY;
+ type = _get_volume_type();
retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n");
retvm_if(ad->win == NULL, ECORE_CALLBACK_CANCEL, "window is NULL");
- retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE, ECORE_CALLBACK_CANCEL, "window is hide\n");
+ retvm_if(evas_object_visible_get(ad->win) == EINA_FALSE && type != VOLUME_TYPE_MEDIA, ECORE_CALLBACK_CANCEL, "window is hide\n");
ecore_timer_interval_set(ad->sdtimer, 0.1);
DEL_TIMER(ad->stimer)
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
+ vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
+
_get_sound_level(ad->type, &val);
if(ad->flag_touching == EINA_TRUE){
- return ECORE_CALLBACK_RENEW;
- }
+ return ECORE_CALLBACK_RENEW;
+ }
+ if(val == 1){
+ if(snd && ad->type != VOLUME_TYPE_MEDIA){
+ _D("Set sound status to vibration in long press\n");
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 1);
+ }
+ }
if(val == 0){
_D("already 0\n");
return ECORE_CALLBACK_RENEW;
}
- _set_sound_level(ad->type, val -1 <= 0 ? 0 : val - 1);
- _D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
+ if(snd || ad->type == VOLUME_TYPE_MEDIA){
+ _set_sound_level(ad->type, val -1 <= 0 ? 0 : val - 1);
+ _D("down, type(%d), step(%d) val[%d]\n", ad->type, ad->step, val+1);
+ }
return ECORE_CALLBACK_RENEW;
}
int mtype = MM_ERROR_SOUND_VOLUME_CAPTURE_ONLY;
int lock = IDLELOCK_ON;
int is_turn_off_all_sounds = 0;
- int ret = -1;
struct appdata *ad = (struct appdata *)data;
status = _check_status(&lock, &mtype);
return ECORE_CALLBACK_CANCEL;
}
- ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS, &is_turn_off_all_sounds);
- if(is_turn_off_all_sounds)
- {
- if(status == LOCK_AND_NOT_MEDIA)
- return ECORE_CALLBACK_CANCEL;
+ vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS, &is_turn_off_all_sounds);
+ if(is_turn_off_all_sounds) {
+ _D("VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS is set, all sound is mute");
notification_status_message_post(_("IDS_PN_POP_UNABLE_TO_ADJUST_VOLUME_WHILE_ALL_SOUND_IS_OFF_YOU_CAN_TURN_ON_SOUND_BY_GOING_TO_ACCESSIBILITY_SETTINGS"));
- retvm_if(is_turn_off_all_sounds == EINA_TRUE, ECORE_CALLBACK_CANCEL,
- "VCONFKEY_SETAPPL_ACCESSIBILITY_TURN_OFF_ALL_SOUNDS is set, all sound is mute\n");
+ return ECORE_CALLBACK_CANCEL;
}
+ status = _check_status(&lock, &mtype);
if(!ad->flag_launching)
{
if(_volume_show(data) != EINA_TRUE)
{
+ _E("_volume_show() failed");
return ECORE_CALLBACK_CANCEL;
}
}
+ else{
+ if(evas_object_visible_get(ad->win) == EINA_FALSE && lock == IDLELOCK_OFF){
+ _D("music launching, volume window is not showing.\n");
+ _volume_show(data);
+ }
+ }
if(ad->flag_touching == EINA_TRUE) {
return ECORE_CALLBACK_CANCEL;
if (!strcmp(ev->keyname, KEY_VOLUMEUP)) {
_get_sound_level(ad->type, &val);
if (val == ad->step) {
- _set_sound_level(ad->type, ad->step);
- if(snd)_play_sound(ad->type, ad->sh);
+ ADD_TIMER(ad->sutimer, 0.5, _su_timer_cb, ad);
+ if(snd)_play_sound(ad->type);
return ECORE_CALLBACK_CANCEL;
}
- _set_sound_level(ad->type, val + 1);
- if(snd)_play_sound(ad->type, ad->sh);
+ if(!snd && !vib && ad->type != VOLUME_TYPE_MEDIA){
+ _D("Set sound status to vibration from mute.\n");
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 1);
+ _set_icon(ad, 1);
+ ad->flag_vib = EINA_TRUE;
+ _set_slider_value(ad, 0);
+ }
+ else{
+ if(vib && ad->type != VOLUME_TYPE_MEDIA){
+ _D("Set sound status to sound from vibration.\n");
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 1);
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
+ _set_icon(ad, 1);
+ }
+ _set_sound_level(ad->type, val + 1);
+ ad->flag_vib = EINA_FALSE;
+ if(snd)_play_sound(ad->type);
+ }
DEL_TIMER(ad->sutimer)
DEL_TIMER(ad->sdtimer)
DEL_TIMER(ad->ldtimer)
ADD_TIMER(ad->sutimer, 0.5, _su_timer_cb, ad)
_D("set volume %d -> [%d]\n", val, val+1);
- if(ad->sutimer == NULL){
- _D("error\n");
- }
+ if(ad->sutimer == NULL)
+ _E("error\n");
+
} else if (!strcmp(ev->keyname, KEY_VOLUMEDOWN)) {
_get_sound_level(ad->type, &val);
+ if(!snd){
+ if(ad->type != VOLUME_TYPE_MEDIA){
+ _D("already vibration mode.\n");
+ _set_slider_value(ad, 0);
+ }
+ }
+ if(val == 1 && snd && ad->type != VOLUME_TYPE_MEDIA){
+ _D("Set sound status to vibration.\n");
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 1);
+ _set_icon(ad, 1);
+ ad->flag_vib = EINA_TRUE;
+ }
if (val == 0) {
- if(vib)_play_vib(ad->sh);
+ ADD_TIMER(ad->sdtimer, 0.5, _sd_timer_cb, ad)
return ECORE_CALLBACK_CANCEL;
}
- _set_sound_level(ad->type, val - 1);
- if(snd)_play_sound(ad->type, ad->sh);
+ if(snd || ad->type == VOLUME_TYPE_MEDIA){
+ _set_sound_level(ad->type, val - 1);
+ ad->flag_vib = EINA_FALSE;
+ if(snd)_play_sound(ad->type);
+ }
DEL_TIMER(ad->sdtimer)
DEL_TIMER(ad->sutimer)
DEL_TIMER(ad->lutimer)
ADD_TIMER(ad->sdtimer, 0.5, _sd_timer_cb, ad)
_D("type (%d) set volume %d -> [%d]\n", ad->type, val, val-1);
- if(ad->sdtimer == NULL)
- _D("error\n");
+ if(ad->sdtimer == NULL)
+ _E("error\n");
}
_D("key press fini\n");
{
Ecore_Event_Key *ev = event;
struct appdata *ad = (struct appdata *)data;
- _D("%s %s\n", __func__, ev->keyname);
+ _D("%s %s", __func__, ev->keyname);
retvm_if(ev == NULL, ECORE_CALLBACK_CANCEL, "Invalid arguemnt: event is NULL\n");
retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument:appdata is NULL\n");
Eina_Bool _slider_timer_cb(void *data)
{
+ _D("%s\n", __func__);
double val = 0;
+ int snd = 0, vib = 0;
struct appdata *ad = (struct appdata *)data;
retvm_if(ad == NULL, 0, "Invalid argument: appdata is NULL\n");
+
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
+ vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
+
if (ad->sl) {
val = elm_slider_value_get(ad->sl);
val += 0.5;
if ((int)val != 0) {
+ if(ad->type != VOLUME_TYPE_MEDIA){
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 1);
+ }
_set_sound_level(ad->type, (int)val);
+ ad->flag_vib = EINA_FALSE;
+ _set_icon(ad, 1);
}
- if (val <= 0.5) {
+ if (val < 1) {
+ if(ad->type != VOLUME_TYPE_MEDIA){
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
+ if(snd){
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 1);
+ }
+ }
elm_slider_value_set(ad->sl, 0);
_set_sound_level(ad->type, 0);
+ _set_icon(ad, 1);
+ if(ad->flag_vib == EINA_FALSE && ad->type != VOLUME_TYPE_MEDIA){
+ ad->flag_vib = EINA_TRUE;
+ }
}
return ECORE_CALLBACK_RENEW;
}
vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
if(!snd){
- vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, EINA_TRUE);
- _set_icon(data, -1);
+// vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, EINA_TRUE);
+// _set_icon(data, -1);
}
if (ad->lutimer || ad->ldtimer) {
{
_D("func\n");
double val = 0;
+ int snd = 0, vib = 0;
struct appdata *ad = (struct appdata *)data;
retm_if(ad == NULL, "Invalid argument: appdata is NULL\n");
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &snd);
+ vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
+
if (ad->lutimer || ad->ldtimer) {
_D("return when long press is working\n");
return;
if (ad->sl) {
val = elm_slider_value_get(ad->sl);
val += 0.5;
+ if ((int)val != 0) {
+ if(ad->type != VOLUME_TYPE_MEDIA){
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 1);
+ }
_set_sound_level(ad->type, (int)val);
+ ad->flag_vib = EINA_FALSE;
+ _set_icon(ad, 1);
+ }
+ if (val < 1) {
+ if(ad->type != VOLUME_TYPE_MEDIA){
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
+ if(snd){
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 1);
+ }
+ }
+ elm_slider_value_set(ad->sl, 0);
+ _set_sound_level(ad->type, 0);
+ _set_icon(ad, 1);
+ if(ad->flag_vib == EINA_FALSE && ad->type != VOLUME_TYPE_MEDIA){
+ ad->flag_vib = EINA_TRUE;
+ }
+ }
}
- _play_sound(ad->type, ad->sh);
+ if(snd)_play_sound(ad->type);
ad->flag_touching = EINA_FALSE;
ADD_TIMER(ad->ptimer, 3.0, popup_timer_cb, ad)
}
ad->flag_launching = EINA_FALSE;
ad->flag_pressing = EINA_FALSE;
ad->flag_touching = EINA_FALSE;
+ ad->flag_vib = EINA_FALSE;
+ ad->lastval = 0;
status = _check_status(&lock, &type);
ad->type = type;