2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 * Licensed under the Flora License, Version 1.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <vconf-keys.h>
20 #include "setting-volume.h"
21 #include "setting_control_haptic.h"
22 #include "setting-common-sound.h"
26 static struct _volume_menu_item volume_menu_its[] = {
27 { "IDS_ST_BUTTON_MULTIMEDIA", _gl_multimedia_cb },
28 { "IDS_ST_HEADER_RINGTONES_ABB", _gl_ringtone_cb },
29 { "IDS_ST_BUTTON_NOTIFICATIONS", _gl_notification_cb },
30 { "IDS_ST_BODY_SYSTEM_M_VOLUME_ABB", _gl_system_cb },
34 static void _set_volumn(sound_type_e type, int volume_index, char *vconf_key);
35 static void _change_to_vibrate_mode();
36 static void vibrate_vconf_changed_cb(keynode_t *key, void *data);
37 static void sound_vconf_changed_cb(keynode_t *key, void *data);
38 static void _play_sound_all_type(int sound_type, float volume);
39 static void _update_volume_circle(Evas_Object *spiner);
42 static int is_changing_level_by_vconf = 0;
43 static int is_changed = 0;
44 static int is_myself_changing = 0;
45 static int is_myself_ringtone_changing = 0;
46 static int is_play_ringtone_sound = 0;
48 static int is_sound_changed = 0;
49 static int is_vibrate_changed = 0;
50 static int is_play_media_sound = 0;
54 void _initialize_volume()
58 is_wav_playing_vol = SOUND_STATE_STOP;
61 is_changing_level_by_vconf = 0;
62 is_myself_changing = 0;
63 is_myself_ringtone_changing = 0;
66 is_vibrate_changed = 0;
67 is_play_media_sound = 0;
69 curr_sound_type = SOUND_TYPE_RINGTONE;
71 if (is_created_player()) {
72 _close_player(NULL, SOUND_TYPE_RINGTONE);
76 void _clear_volume_cb(void *data , Evas *e, Evas_Object *obj, void *event_info)
78 _clear_volume_resources();
83 static void stop_wav()
85 if (is_wav_playing_vol == SOUND_STATE_PLAY) {
86 DBG("Setting - sound id : %d", sound_id_vol);
88 wav_player_stop(sound_id_vol);
89 is_wav_playing_vol = SOUND_STATE_STOP;
94 void _stop_all_volume_sound()
96 DBG("Setting - stop all volume sound.");
98 if (is_created_player()) {
99 _close_player(NULL, curr_sound_type);
105 void _clear_volume_resources()
107 DBG("Setting - _clear_volume_resources()");
109 if (is_created_player()) {
110 _close_player(NULL, curr_sound_type);
116 g_volume_spinner = NULL;
117 is_myself_changing = 0;
118 is_myself_ringtone_changing = 0;
119 is_sound_changed = is_vibrate_changed = 0;
122 static void _update_volume_popup_for_changing_sound_mode()
124 DBG("_update_volume_popup_for_changing_sound_mode is called!!");
126 int temp_volume_index = 0;
128 is_sound_changed = is_vibrate_changed = 0;
130 if (g_volume_spinner) {
131 is_changing_level_by_vconf = 1;
133 int sound_mode = get_sound_mode();
135 if (sound_mode == SOUND_MODE_VIBRATE) {
136 DBG("Setting - vibrate!!!");
138 if (curr_sound_type == SOUND_TYPE_RINGTONE) {
141 elm_spinner_value_set(g_volume_spinner, 0);
142 _update_volume_circle(g_volume_spinner);
144 _stop_all_volume_sound();
146 edje_object_signal_emit(elm_layout_edje_get(g_volume_spinner), "elm,spinner,min", "elm");
147 edje_object_part_drag_value_set(elm_layout_edje_get(g_volume_spinner), "elm.dragable.slider", 0, 0);
148 edje_object_signal_emit(elm_layout_edje_get(g_volume_spinner), "elm,spinner,vibrate", "elm");
150 if (curr_sound_type == SOUND_TYPE_NOTIFICATION ||
151 curr_sound_type == SOUND_TYPE_SYSTEM) {
152 DBG("current_sound_type!!");
154 elm_object_disabled_set(g_volume_spinner, EINA_TRUE);
156 } else if (sound_mode == SOUND_MODE_SOUND) {
157 DBG("Setting - Sound!!!");
159 sound_manager_get_volume(curr_sound_type, &volume_index);
161 DBG("volume_index !!!!!! -------------- %d", volume_index);
163 if (volume_index != 0) {
164 elm_spinner_value_set(g_volume_spinner, volume_index);
166 _update_volume_circle(g_volume_spinner);
168 elm_object_disabled_set(g_volume_spinner, EINA_FALSE);
171 DBG("Setting - Mute!!!");
173 if (curr_sound_type == SOUND_TYPE_NOTIFICATION ||
174 curr_sound_type == SOUND_TYPE_SYSTEM) {
175 elm_object_disabled_set(g_volume_spinner, EINA_FALSE);
177 edje_object_signal_emit(elm_layout_edje_get(g_volume_spinner), "elm,spinner,min", "elm");
178 edje_object_part_drag_value_set(elm_layout_edje_get(g_volume_spinner), "elm.dragable.slider", 0, 0);
180 elm_object_disabled_set(g_volume_spinner, EINA_TRUE);
181 } else if (curr_sound_type == SOUND_TYPE_RINGTONE) {
182 _stop_all_volume_sound();
184 if (curr_sound_type == SOUND_TYPE_RINGTONE) {
187 elm_spinner_value_set(g_volume_spinner, 0);
188 _update_volume_circle(g_volume_spinner);
190 edje_object_signal_emit(elm_layout_edje_get(g_volume_spinner), "elm,spinner,min", "elm");
191 edje_object_part_drag_value_set(elm_layout_edje_get(g_volume_spinner), "elm.dragable.slider", 0, 0);
197 static void sound_vconf_changed_cb(keynode_t *key, void *data)
199 DBG("Setting - sound_vconf_changed_cb() is called!!");
201 if (curr_sound_type == SOUND_TYPE_MEDIA) {
205 if (is_myself_changing) {
206 DBG("Setting - is_myself_changing is called!!");
207 is_myself_changing = 0;
211 is_sound_changed = 1;
213 if (is_sound_changed && is_vibrate_changed) {
214 _update_volume_popup_for_changing_sound_mode();
218 static void vibrate_vconf_changed_cb(keynode_t *key, void *data)
220 DBG("Setting - vibrate_vconf_changed_cb() is called!!");
222 if (curr_sound_type == SOUND_TYPE_MEDIA) {
226 if (is_myself_changing) {
227 DBG("Setting - is_myself_changing is called!!");
228 is_myself_changing = 0;
232 is_vibrate_changed = 1;
234 if (is_sound_changed && is_vibrate_changed) {
235 _update_volume_popup_for_changing_sound_mode();
239 static void pm_state_vconf_changed_cb_for_volume(keynode_t *key, void *data)
241 DBG("Setting - pm_state_vconf_changed_cb_for_volume() is called!");
244 vconf_get_int(VCONFKEY_PM_STATE, &pm_state);
246 if (pm_state == VCONFKEY_PM_STATE_LCDOFF) {
247 DBG("Setting - LCD Off!! stop sound!");
248 _stop_all_volume_sound();
252 static void _rigngtone_volume_changed_cb(sound_type_e type, unsigned int volume, void *user_data)
254 DBG("Setting - _rigngtone_volume_changed_cb() is called!");
256 if (type != SOUND_TYPE_RINGTONE) {
257 DBG("Setting - sound_type is not media!!");
261 if (is_myself_ringtone_changing) {
262 is_myself_ringtone_changing = 0;
266 if (g_volume_spinner) {
267 volume_index = volume;
269 DBG("Setting - Ringtone volume: %d", volume_index);
271 is_play_ringtone_sound = 1;
273 elm_spinner_value_set(g_volume_spinner, volume_index);
277 static void _media_volume_changed_cb(sound_type_e type, unsigned int volume, void *user_data)
279 DBG("Setting - _media_volume_changed_cb() is called!");
281 if (type == SOUND_TYPE_RINGTONE) {
282 DBG("Setting - sound_type is ringtone!!");
286 if (is_myself_ringtone_changing) {
287 is_myself_ringtone_changing = 0;
291 if (volume_index == volume) {
292 DBG("Setting - Volume is same!! %d ---- %d ", volume_index, volume);
296 if (g_volume_spinner) {
297 volume_index = volume;
299 DBG("Setting - Media volume: %d", volume_index);
301 is_play_media_sound = 1;
303 elm_spinner_value_set(g_volume_spinner, volume_index);
307 static void _gl_multimedia_cb(void *data, Evas_Object *obj, void *event_info)
309 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
311 _show_multimedia_popup(data, obj, event_info);
314 static void _gl_ringtone_cb(void *data, Evas_Object *obj, void *event_info)
316 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
318 _show_ringtone_popup(data, obj, event_info);
321 static void _gl_notification_cb(void *data, Evas_Object *obj, void *event_info)
323 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
325 _show_notification_popup(data, obj, event_info);
328 static void _gl_system_cb(void *data, Evas_Object *obj, void *event_info)
330 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
332 _show_system_popup(data, obj, event_info);
335 char *_gl_volume_title_get(void *data, Evas_Object *obj, const char *part)
337 char buf[1024] = {0,};
338 Item_Data *id = data;
339 int index = id->index;
340 if (!strcmp(part, "elm.text")) {
341 snprintf(buf, sizeof(buf) - 1, "%s", _(volume_menu_its[index % VOLUMN_ITEM_COUNT].name));
347 static void _volumn_gl_del(void *data, Evas_Object *obj)
349 Item_Data *id = data;
356 _gl_menu_title_text_get(void *data, Evas_Object *obj, const char *part)
360 snprintf(buf, 1023, "%s", _("IDS_ST_OPT_VOLUME"));
365 Evas_Object *_create_volume_list(void *data)
369 DBG("%s", "_create_volume_list - appdata is null");
372 Evas_Object *genlist = NULL;
373 Elm_Object_Item *item = NULL;
374 struct _volume_menu_item *menu_its = NULL;
379 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
380 itc->item_style = "1text";
381 itc->func.text_get = _gl_volume_title_get;
382 itc->func.del = _volumn_gl_del;
384 genlist = elm_genlist_add(ad->nf);
385 elm_genlist_block_count_set(genlist, 14);
386 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
388 Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
389 eext_circle_object_genlist_scroller_policy_set(circle_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
390 eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
394 Elm_Genlist_Item_Class *title_item = elm_genlist_item_class_new();
395 title_item ->func.text_get = _gl_menu_title_text_get;
396 title_item->item_style = "title";
397 title_item->func.del = _volumn_gl_del;
399 elm_genlist_item_append(genlist, title_item, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
401 elm_genlist_item_class_free(title_item);
403 menu_its = volume_menu_its;
405 for (idx = 0; idx < VOLUMN_ITEM_COUNT; idx++) {
406 Item_Data *id = calloc(sizeof(Item_Data), 1);
409 item = elm_genlist_item_append(
410 genlist, /* genlist object */
411 itc, /* item class */
414 ELM_GENLIST_ITEM_NONE,
415 menu_its[idx].func, /* call back */
421 Elm_Genlist_Item_Class *padding = elm_genlist_item_class_new();
422 padding->item_style = "padding";
423 padding->func.del = _volumn_gl_del;
425 elm_genlist_item_append(genlist, padding, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
426 elm_genlist_item_class_free(padding);
428 elm_genlist_item_class_free(itc);
433 static void change_sound_mode(int mode)
436 case SOUND_MODE_SOUND:
437 DBG("Setting - Change sound mode to Sound!");
439 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, TRUE);
440 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
442 case SOUND_MODE_VIBRATE:
443 DBG("Setting - Change sound mode to Sound!");
445 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
446 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, TRUE);
448 case SOUND_MODE_MUTE:
449 DBG("Setting - Change sound mode to Sound!");
451 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
452 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
457 static void _set_cancel_cb(void *data, Evas_Object *obj, void *event_info)
465 elm_naviframe_item_pop(ad->nf);
469 DBG("Setting - original volume : %d", original_volume);
471 char vconf_key[512] = {0,};
473 switch (curr_sound_type) {
474 case SOUND_TYPE_MEDIA:
475 strcpy(vconf_key, VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT);
477 case SOUND_TYPE_RINGTONE:
478 strcpy(vconf_key, VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT);
480 case SOUND_TYPE_SYSTEM:
481 strcpy(vconf_key, VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_INT);
483 case SOUND_TYPE_NOTIFICATION:
484 strcpy(vconf_key, VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_INT);
488 /* restore original vulume value */
489 _set_volumn(curr_sound_type, original_volume, vconf_key);
492 if (original_sound_mode != get_sound_mode()) {
493 /* restore sound mode */
494 change_sound_mode(original_sound_mode);
497 /*original_volume = 0; */
499 if (is_created_player()) {
500 _close_player(ad, curr_sound_type);
505 elm_naviframe_item_pop(ad->nf);
508 static Eina_Bool _back_volume_naviframe_cb(void *data, Elm_Object_Item *it)
510 DBG("Setting - _back_volume_naviframe_cb is called");
511 DBG("Setting - original volume : %d", original_volume);
512 DBG("Setting - volume index : %d", volume_index);
515 char vconf_key[512] = {0,};
516 switch (curr_sound_type) {
517 case SOUND_TYPE_MEDIA:
518 strcpy(vconf_key, VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT);
520 case SOUND_TYPE_RINGTONE:
521 strcpy(vconf_key, VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT);
523 case SOUND_TYPE_SYSTEM:
524 strcpy(vconf_key, VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_INT);
526 case SOUND_TYPE_NOTIFICATION:
527 strcpy(vconf_key, VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_INT);
531 _set_volumn(curr_sound_type, volume_index, vconf_key);
533 if (original_sound_mode != get_sound_mode()) {
534 /* restore sound mode */
535 change_sound_mode(original_sound_mode);
538 if (is_created_player()) {
539 _close_player(data, curr_sound_type);
542 g_volume_spinner = NULL;
544 is_changed = 0; /* initialize flag! */
548 unregister_vconf_changing(VCONFKEY_PM_STATE, pm_state_vconf_changed_cb_for_volume);
550 sound_manager_unset_volume_changed_cb();
552 /* Unregister sound mode vconf callback */
553 unregister_vconf_changing(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, vibrate_vconf_changed_cb);
554 unregister_vconf_changing(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL , sound_vconf_changed_cb);
559 static void _set_volumn(sound_type_e type, int volume_index, char *vconf_key)
561 DBG("Setting - set_volume() is called!");
564 err = sound_manager_set_volume(type, volume_index);
566 /* save system vulume value */
567 if (err == SOUND_MANAGER_ERROR_NONE) {
568 int vret = vconf_set_int(vconf_key, volume_index);
569 DBG(" ret = %d , %s :: %d ", vret, vconf_key, volume_index);
571 if (curr_sound_type == SOUND_TYPE_RINGTONE) {
572 DBG("Ringtone volume is changed....!");
574 if (volume_index == 0 && get_sound_mode() == SOUND_MODE_SOUND) {
575 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
576 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
577 } else if (volume_index > 0 && get_sound_mode() != SOUND_MODE_SOUND) {
578 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, TRUE);
579 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
582 DBG("current sound mode is %d, not type_ringtone", curr_sound_type);
585 DBG("Setting - ringtone value is not saved... %d", volume_index);
589 static void _set_multimedia_clicked_cb(void *data, Evas_Object *obj, void *event_info)
597 elm_naviframe_item_pop(ad->nf);
601 /* save multimedia vulume value */
602 _set_volumn(SOUND_TYPE_MEDIA, volume_index, VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT);
605 if (is_created_player()) {
606 _close_player(ad, curr_sound_type);
611 elm_naviframe_item_pop(ad->nf);
614 static void _play_sound_all_type(int sound_type, float volume)
616 if (is_myself_ringtone_changing) {
617 DBG(" is_myself_ringtone_changing !!!!!!!!!!!");
623 const char *sound_path = NULL;
624 int temp_volume_index = 0;
625 switch (sound_type) {
626 case SOUND_TYPE_RINGTONE:
627 temp_volume_index = volume_index;
629 vconf_set_int(VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT, temp_volume_index);
630 vconf_set_int("db/setting/sound/call/rmd_ringtone_volume", temp_volume_index); /* backup ringtone volume */
632 sound_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
634 sprintf(buf, "%s", sound_path);
636 sprintf(buf, "%s", VCONFKEY_SETAPPL_CALL_RINGTONE_DEFAULT_PATH_STR);
640 case SOUND_TYPE_MEDIA:
641 _set_volumn(sound_type, volume_index, VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT);
643 sprintf(buf, "%s", SETTING_DEFAULT_MEDIA_TONE);
645 case SOUND_TYPE_NOTIFICATION:
646 vconf_set_int(VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_INT, volume_index);
647 temp_volume_index = volume_index;
649 sound_path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
651 sprintf(buf, "%s", sound_path);
653 sprintf(buf, "%s", SETTING_DEFAULT_MSG_TONE);
656 case SOUND_TYPE_SYSTEM:
657 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_INT, volume_index);
659 sprintf(buf, "%s", SETTING_DEFAULT_SYS_TONE);
665 if (sound_type == SOUND_TYPE_RINGTONE) {
666 DBG("Setting - ringtone safety volume!!");
667 DBG("Setting - real volume : %d", temp_volume_index);
669 sound_manager_set_volume(sound_type, temp_volume_index);
670 } else if (sound_type == SOUND_TYPE_NOTIFICATION) {
671 DBG("Setting - notification safety volume!!");
672 sound_manager_set_volume(sound_type, temp_volume_index);
674 DBG("Setting - normal volume!! ----- volume_index : %d ", volume_index);
675 err = sound_manager_set_volume(sound_type, volume_index);
676 if (err != SOUND_MANAGER_ERROR_NONE) {
677 ERR("Setting - sound_manager_set_volume() is failed! : %d", err);
681 if (sound_type == SOUND_TYPE_RINGTONE) {
682 if (!is_created_player() || is_player_paused()) {
683 play_sound(buf, volume, SOUND_TYPE_RINGTONE);
686 is_myself_ringtone_changing = 1;
687 } else if (sound_type == SOUND_TYPE_MEDIA) {
689 int err = vconf_get_int("memory/private/org.tizen.w-music-player/player_state", &music_state);
691 DBG("Setting - music state: %d, err: %d", music_state, err);
693 if (music_state == VCONFKEY_MUSIC_PLAY) {
694 DBG("Setting - media is playing...");
698 if (!is_created_player() || is_player_paused()) {
699 play_sound(buf, volume, SOUND_TYPE_MEDIA);
704 else if (sound_type == SOUND_TYPE_SYSTEM) {
707 is_wav_playing_vol = SOUND_STATE_PLAY;
708 wav_player_start(buf, sound_type, NULL, NULL, &sound_id_vol);
710 } else if (sound_type == SOUND_TYPE_NOTIFICATION) {
711 play_sound(buf, 0.0, SOUND_TYPE_NOTIFICATION);
718 static void _change_to_vibrate_mode()
720 DBG("Setting - _change_to_vibrate_mode() is called!");
722 if (curr_sound_type == SOUND_TYPE_MEDIA) {
726 if (get_sound_mode() != SOUND_MODE_VIBRATE) {
727 DBG("Setting - Change sound mode to vibrate!");
729 is_myself_changing = 1;
731 _stop_all_volume_sound();
733 _start_vibration(3, SETTING_VIB_STRONG_RATE, SETTING_DEFAULT_SYSTEM_HAPTIC_PREVIEW_VIB);
735 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
736 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, TRUE);
740 static void _change_to_sound_mode()
742 DBG("Setting - _change_to_sound_mode() is called!");
744 if (curr_sound_type == SOUND_TYPE_MEDIA) {
748 if (get_sound_mode() != SOUND_MODE_SOUND) {
749 DBG("Setting - Change sound mode to sound!");
751 is_myself_changing = 1;
753 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, TRUE);
754 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
758 static int sync_volume(int vconf_vol, int real_vol)
760 if (vconf_vol != real_vol)
765 static void _update_volume_circle(Evas_Object *spiner)
771 double min, max, posx;
772 int idx = (int) elm_spinner_value_get(spiner);
774 edje_object_part_geometry_get(elm_layout_edje_get(spiner), "center.image2", NULL, NULL, &w, NULL);
775 elm_spinner_min_max_get(spiner, &min, &max);
778 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,full", "elm");
780 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,default", "elm");
782 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,min", "elm");
783 if (curr_sound_type != SOUND_TYPE_MEDIA && get_sound_mode() == SOUND_MODE_VIBRATE) {
784 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,vibrate", "elm");
788 edje_object_signal_emit(elm_layout_edje_get(spiner), "elm,spinner,normal", "elm");
790 posx = (double)(w / max) * idx;
792 edje_object_part_drag_value_set(elm_layout_edje_get(spiner), "elm.dragable.slider", posx, 0);
795 static void _on_volume_spinner_change_cb(void *data, Evas_Object *obj, void *event_info)
797 DBG("Setting - _on_volume_spinner_change_cb() is called!");
799 if (is_changing_level_by_vconf) {
800 DBG("Setting - is_changing_level_by_vconf!!!!");
802 is_changing_level_by_vconf = 0;
806 is_changed = 1; /* changed flag!! */
811 int idx = (int) elm_spinner_value_get(obj);
815 DBG("Setting - volume_index : %d", volume_index);
817 if (get_sound_mode() != SOUND_MODE_MUTE) {
818 if (!is_play_ringtone_sound) {
819 _play_sound_all_type(curr_sound_type, 0.0);
821 is_play_ringtone_sound = 0;
825 edje_object_part_geometry_get(elm_layout_edje_get(obj), "center.image2", NULL, NULL, &w, NULL);
826 elm_spinner_min_max_get(obj, &min, &max);
828 DBG("Setting - min: %i, max: %i, idx: %d", (int)min, (int)max, idx);
831 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,full", "elm");
834 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,default", "elm");
837 if (get_sound_mode() != SOUND_MODE_VIBRATE) {
838 _change_to_vibrate_mode();
840 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,min", "elm");
841 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,vibrate", "elm");
844 if (get_sound_mode() == SOUND_MODE_MUTE) {
845 _change_to_vibrate_mode();
846 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,min", "elm");
847 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,vibrate", "elm");
849 elm_spinner_value_set(obj, 0);
851 _change_to_sound_mode();
852 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,normal", "elm");
857 if (get_sound_mode() == SOUND_MODE_MUTE) {
860 posx = (double)(w / max) * idx;
863 edje_object_part_drag_value_set(elm_layout_edje_get(obj), "elm.dragable.slider", posx, 0);
866 static void _on_media_volume_spinner_change_cb(void *data, Evas_Object *obj, void *event_info)
868 DBG("Setting - _on_media_volume_spinner_change_cb() is called!");
870 if (curr_sound_type != SOUND_TYPE_MEDIA) {
871 if (is_changing_level_by_vconf) {
872 DBG("Setting - is_changing_level_by_vconf!!!!");
874 is_changing_level_by_vconf = 0;
882 int idx = (int) elm_spinner_value_get(obj);
884 is_changed = 1; /* changed flag!! */
888 DBG("Setting - volume_index : %d", volume_index);
890 if (curr_sound_type == SOUND_TYPE_MEDIA) {
891 if (!is_play_media_sound) {
892 _play_sound_all_type(curr_sound_type, 0.0);
893 is_play_media_sound = 0;
895 is_play_media_sound = 0;
898 _play_sound_all_type(curr_sound_type, 0.0);
901 edje_object_part_geometry_get(elm_layout_edje_get(obj), "center.image2", NULL, NULL, &w, NULL);
902 elm_spinner_min_max_get(obj, &min, &max);
904 DBG("Setting - min: %i, max: %i, idx: %d", (int)min, (int)max, idx);
907 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,full", "elm");
910 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,default", "elm");
913 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,min", "elm");
916 edje_object_signal_emit(elm_layout_edje_get(obj), "elm,spinner,normal", "elm");
920 posx = (double)(w / max) * idx;
922 edje_object_part_drag_value_set(elm_layout_edje_get(obj), "elm.dragable.slider", posx, 0);
927 multimedia_value_changed(void *data, Evas_Object *obj, void *event_info)
929 DBG("Setting - multimedia_value_changed() is called!");
931 Evas_Object *label = data;
933 snprintf(buf, sizeof(buf), "%.0lf", eext_circle_object_value_get(obj));
934 DBG(">>>>>>>>>>>>>>>>>>>>>>>>>>> Slider value = %s", buf);
935 elm_object_text_set(label, buf);
937 if (curr_sound_type != SOUND_TYPE_MEDIA) {
938 if (is_changing_level_by_vconf) {
939 DBG("Setting - is_changing_level_by_vconf!!!!");
941 is_changing_level_by_vconf = 0;
949 int idx = (int) eext_circle_object_value_get(obj);
951 is_changed = 1; /* changed flag!! */
955 DBG("Setting - volume_index : %d", volume_index);
957 if (curr_sound_type == SOUND_TYPE_MEDIA) {
958 if (!is_play_media_sound) {
959 _play_sound_all_type(curr_sound_type, 0.0);
960 is_play_media_sound = 0;
962 is_play_media_sound = 0;
965 _play_sound_all_type(curr_sound_type, 0.0);
969 posx = (double)(w / max) * idx;
973 ringtone_value_changed(void *data, Evas_Object *obj, void *event_info)
975 DBG("Setting - ringtone_value_changed() is called!");
977 Evas_Object *label = data;
979 snprintf(buf, sizeof(buf), "%.0lf", eext_circle_object_value_get(obj));
980 DBG(">>>>>>>>>>>>>>>>>>>>>>>>>>> Slider value = %s", buf);
981 if (get_sound_mode() == SOUND_MODE_SOUND) {
982 elm_object_text_set(label, buf);
984 if (curr_sound_type != SOUND_TYPE_MEDIA) {
985 if (is_changing_level_by_vconf) {
986 DBG("Setting - is_changing_level_by_vconf!!!!");
988 is_changing_level_by_vconf = 0;
996 int idx = (int) eext_circle_object_value_get(obj);
998 is_changed = 1; /* changed flag!! */
1002 DBG("Setting - volume_index : %d", volume_index);
1004 if (curr_sound_type == SOUND_TYPE_MEDIA) {
1005 if (!is_play_media_sound) {
1006 _play_sound_all_type(curr_sound_type, 0.0);
1007 is_play_media_sound = 0;
1009 is_play_media_sound = 0;
1012 _play_sound_all_type(curr_sound_type, 0.0);
1015 /*edje_object_part_geometry_get(elm_layout_edje_get(obj), "center.image2", NULL, NULL, &w, NULL); */
1016 /*elm_spinner_min_max_get(obj, &min, &max); */
1017 /*DBG("Setting - min: %i, max: %i, idx: %d", (int)min, (int)max, idx); */
1019 posx = (double)(w / max) * idx;
1020 /*edje_object_part_drag_value_set(elm_layout_edje_get(obj), "elm.dragable.slider", posx, 0); */
1025 void _show_multimedia_popup(void *data, Evas_Object *obj, void *event_info)
1033 is_play_media_sound = 0;
1035 original_sound_mode = get_sound_mode();
1037 curr_sound_type = SOUND_TYPE_MEDIA;
1039 vconf_get_int(VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT, &volume_index);
1041 int real_volume_index = 0;
1042 sound_manager_get_volume(SOUND_TYPE_MEDIA, &real_volume_index);
1044 DBG("Setting - vconf vol: %d, real vol: %d", volume_index, real_volume_index);
1047 volume_index = sync_volume(volume_index, real_volume_index);
1048 original_volume = volume_index;
1050 ad->MENU_TYPE = SETTING_VOLUME_2_DEPTH;
1053 ly = elm_layout_add(ad->nf);
1055 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default2");
1057 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default3");
1059 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1060 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
1063 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
1064 DBG(" ----> width : %d, height : %d ", w, h);
1067 Evas_Object *label = elm_label_add(ly);
1068 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1069 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
1072 snprintf(tempbuf, sizeof(tempbuf) - 1, "%d", volume_index);
1073 elm_object_text_set(label, tempbuf);
1074 elm_object_part_content_set(ly, "elm.icon.2", label);
1075 evas_object_show(label);
1077 Evas_Object *slider = eext_circle_object_slider_add(ly, ad->circle_surface);
1079 eext_circle_object_value_min_max_set(slider, 0.0, 15.0);
1080 eext_circle_object_value_set(slider, volume_index);
1082 eext_rotary_object_event_activated_set(slider, EINA_TRUE);
1083 eext_circle_object_slider_step_set(slider, 1);
1084 evas_object_smart_callback_add(slider, "value,changed", multimedia_value_changed, label);
1086 Evas_Object *spinner = elm_spinner_add(ly);
1088 g_volume_spinner = spinner;
1090 elm_spinner_editable_set(spinner, EINA_FALSE);
1091 elm_spinner_min_max_set(spinner, 0, 15);
1092 elm_spinner_value_set(spinner, volume_index);
1093 _update_volume_circle(spinner);
1094 evas_object_smart_callback_add(spinner, "changed", _on_media_volume_spinner_change_cb, ly);
1095 elm_object_part_content_set(ly, "elm.icon.1", spinner);
1097 Evas_Object *btn_cancel;
1098 btn_cancel = elm_button_add(ly);
1099 elm_object_style_set(btn_cancel, "default");
1100 evas_object_size_hint_weight_set(btn_cancel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1101 elm_object_translatable_text_set(btn_cancel, "IDS_ST_BUTTON_CANCEL_ABB2");
1102 elm_object_part_content_set(ly, "btn1", btn_cancel);
1103 evas_object_smart_callback_add(btn_cancel, "clicked", _set_cancel_cb, ad);
1105 Evas_Object *btn_ok;
1106 btn_ok = elm_button_add(ly);
1107 elm_object_style_set(btn_ok, "default");
1108 evas_object_size_hint_weight_set(btn_ok, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1109 elm_object_translatable_text_set(btn_ok, "IDS_WNOTI_BUTTON_OK_ABB2");
1110 elm_object_part_content_set(ly, "btn2", btn_ok);
1111 evas_object_smart_callback_add(btn_ok, "clicked", _set_multimedia_clicked_cb, ad);
1113 Elm_Object_Item *nf_it = elm_naviframe_item_push(ad->nf,
1114 "IDS_ST_BUTTON_MULTIMEDIA",
1117 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1118 elm_naviframe_item_pop_cb_set(nf_it, _back_volume_naviframe_cb, ad);
1120 register_vconf_changing(VCONFKEY_PM_STATE, pm_state_vconf_changed_cb_for_volume, NULL);
1121 /*register_vconf_changing(VCONFKEY_SETAPPL_MEDIA_SOUND_VOLUME_INT ,_media_vconf_changing_cb, NULL); */
1123 sound_manager_set_volume_changed_cb(_media_volume_changed_cb, NULL);
1125 /* Unregister sound mode vconf callback */
1126 register_vconf_changing(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, vibrate_vconf_changed_cb, NULL);
1127 register_vconf_changing(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL , sound_vconf_changed_cb, NULL);
1130 static void _set_ringtone_clicked_cb(void *data, Evas_Object *obj, void *event_info)
1138 elm_naviframe_item_pop(ad->nf);
1142 /* save ringtone vulume value */
1143 _set_volumn(SOUND_TYPE_RINGTONE, volume_index, VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT);
1145 if (is_created_player()) {
1146 _close_player(ad, curr_sound_type);
1151 elm_naviframe_item_pop(ad->nf);
1154 void _show_ringtone_popup(void *data, Evas_Object *obj, void *event_info)
1164 original_sound_mode = get_sound_mode();
1166 curr_sound_type = SOUND_TYPE_RINGTONE;
1168 vconf_get_int(VCONFKEY_SETAPPL_CALL_RINGTONE_SOUND_VOLUME_INT, &volume_index);
1170 DBG("Setting - Ringtone volume is %d", volume_index);
1172 sound_mode = get_sound_mode();
1174 int real_volume_index = 0;
1175 sound_manager_get_volume(SOUND_TYPE_RINGTONE, &real_volume_index);
1177 int virtual_index = real_volume_index;
1179 DBG("Setting - vconf vol: %d, real vol: %d", volume_index, virtual_index);
1181 if (sound_mode != SOUND_MODE_SOUND) {
1182 DBG("sound_mode != SOUND_MODE_SOUND ---> set to zero -> mode:%d ", sound_mode);
1187 volume_index = sync_volume(volume_index, virtual_index);
1188 original_volume = real_volume_index;
1190 ad->MENU_TYPE = SETTING_VOLUME_2_DEPTH;
1192 ly = elm_layout_add(ad->nf);
1194 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default2");
1196 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default3");
1198 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1199 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
1202 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
1203 DBG(" ----> width : %d, height : %d ", w, h);
1204 if (w == 360 && h == 480) {
1205 DBG("make long height !!!!!!!!!!!!!!!!!");
1206 /*elm_object_signal_emit(layout, "set,popup,long", "elm.icon.1"); */
1207 elm_object_signal_emit(ly, "set,popup,long", "*");
1211 Evas_Object *label = elm_label_add(ly);
1212 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1213 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
1216 snprintf(tempbuf, sizeof(tempbuf) - 1, "%d", volume_index);
1217 elm_object_text_set(label, tempbuf);
1218 evas_object_resize(label, 200, 200);
1219 elm_object_part_content_set(ly, "elm.icon.2", label);
1220 if (get_sound_mode() != SOUND_MODE_SOUND)
1221 evas_object_color_set(label, 83, 94, 102, 255);
1222 evas_object_show(label);
1224 Evas_Object *slider = eext_circle_object_slider_add(ly, ad->circle_surface);
1226 eext_circle_object_value_min_max_set(slider, 0.0, 15.0);
1227 eext_circle_object_value_set(slider, volume_index);
1229 eext_rotary_object_event_activated_set(slider, EINA_TRUE);
1230 eext_circle_object_slider_step_set(slider, 1);
1231 evas_object_smart_callback_add(slider, "value,changed", ringtone_value_changed, label);
1234 Evas_Object *spinner = elm_spinner_add(ly);
1236 g_volume_spinner = spinner;
1238 DBG("Setting- Volume: %d", volume_index);
1240 elm_spinner_editable_set(spinner, EINA_FALSE);
1241 elm_spinner_min_max_set(spinner, 0, 15);
1243 if (sound_mode != SOUND_MODE_SOUND) {
1244 elm_spinner_value_set(spinner, volume_index);
1245 edje_object_signal_emit(elm_layout_edje_get(spinner), "elm,spinner,min", "elm");
1246 edje_object_part_drag_value_set(elm_layout_edje_get(spinner), "elm.dragable.slider", 0, 0);
1248 if (get_sound_mode() == SOUND_MODE_VIBRATE) {
1249 edje_object_signal_emit(elm_layout_edje_get(spinner), "elm,spinner,vibrate", "elm");
1252 elm_object_disabled_set(spinner, EINA_TRUE);
1254 elm_spinner_value_set(spinner, volume_index);
1255 _update_volume_circle(spinner);
1257 evas_object_smart_callback_add(spinner, "changed", _on_volume_spinner_change_cb, ly);
1258 elm_object_part_content_set(ly, "elm.icon.1", spinner);
1260 btn = elm_button_add(ly);
1261 elm_object_style_set(btn, "default");
1262 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1263 elm_object_translatable_text_set(btn, "IDS_ST_BUTTON_CANCEL_ABB2");
1264 elm_object_part_content_set(ly, "btn1", btn);
1265 evas_object_smart_callback_add(btn, "clicked", _set_cancel_cb, ad);
1267 btn = elm_button_add(ly);
1268 elm_object_style_set(btn, "default");
1269 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1270 elm_object_translatable_text_set(btn, "IDS_WNOTI_BUTTON_OK_ABB2");
1271 elm_object_part_content_set(ly, "btn2", btn);
1272 evas_object_smart_callback_add(btn, "clicked", _set_ringtone_clicked_cb, ad);
1274 Elm_Object_Item *nf_it = elm_naviframe_item_push(ad->nf,
1275 "IDS_ST_HEADER_RINGTONES_ABB",
1279 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1280 elm_naviframe_item_pop_cb_set(nf_it, _back_volume_naviframe_cb, ad);
1282 register_vconf_changing(VCONFKEY_PM_STATE, pm_state_vconf_changed_cb_for_volume, NULL);
1284 sound_manager_set_volume_changed_cb(_rigngtone_volume_changed_cb, NULL);
1286 /* Unregister sound mode vconf callback */
1287 register_vconf_changing(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, vibrate_vconf_changed_cb, NULL);
1288 register_vconf_changing(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL , sound_vconf_changed_cb, NULL);
1291 static void _set_notification_clicked_cb(void *data, Evas_Object *obj, void *event_info)
1299 elm_naviframe_item_pop(ad->nf);
1303 _set_volumn(SOUND_TYPE_NOTIFICATION, volume_index, VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_INT);
1305 if (is_created_player()) {
1306 _close_player(ad, curr_sound_type);
1311 elm_naviframe_item_pop(ad->nf);
1314 void _show_notification_popup(void *data, Evas_Object *obj, void *event_info)
1324 original_sound_mode = get_sound_mode();
1326 curr_sound_type = SOUND_TYPE_NOTIFICATION;
1328 vconf_get_int(VCONFKEY_SETAPPL_NOTI_SOUND_VOLUME_INT, &volume_index);
1330 DBG("Setting - Notification volume is %d", volume_index);
1331 sound_mode = get_sound_mode();
1333 int real_volume_index = 0;
1334 sound_manager_get_volume(SOUND_TYPE_NOTIFICATION, &real_volume_index);
1336 int virtual_index = real_volume_index;
1338 DBG("Setting - vconf vol: %d, real vol: %d", volume_index, real_volume_index);
1339 DBG("current sound mode is : %d <--------", sound_mode);
1341 if (sound_mode != SOUND_MODE_SOUND)
1344 DBG("Sound Mode is - %d ", sound_mode);
1348 volume_index = sync_volume(volume_index, virtual_index);
1349 original_volume = real_volume_index;
1351 ad->MENU_TYPE = SETTING_VOLUME_2_DEPTH;
1353 ly = elm_layout_add(ad->nf);
1355 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default2");
1357 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default3");
1359 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1360 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
1363 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
1364 DBG(" ----> width : %d, height : %d ", w, h);
1365 if (w == 360 && h == 480) {
1366 DBG("make long height !!!!!!!!!!!!!!!!!");
1367 /*elm_object_signal_emit(layout, "set,popup,long", "elm.icon.1"); */
1368 elm_object_signal_emit(ly, "set,popup,long", "*");
1371 Evas_Object *label = elm_label_add(ly);
1372 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1373 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
1376 snprintf(tempbuf, sizeof(tempbuf) - 1, "%d", volume_index);
1377 elm_object_text_set(label, tempbuf);
1378 evas_object_resize(label, 200, 200);
1379 elm_object_part_content_set(ly, "elm.icon.2", label);
1380 if (get_sound_mode() != SOUND_MODE_SOUND)
1381 evas_object_color_set(label, 83, 94, 102, 255);
1382 evas_object_show(label);
1384 Evas_Object *slider = eext_circle_object_slider_add(ly, ad->circle_surface);
1386 eext_circle_object_value_min_max_set(slider, 0.0, 15.0);
1387 eext_circle_object_value_set(slider, volume_index);
1389 eext_rotary_object_event_activated_set(slider, EINA_TRUE);
1390 eext_circle_object_slider_step_set(slider, 1);
1391 evas_object_smart_callback_add(slider, "value,changed", ringtone_value_changed, label);
1394 Evas_Object *spinner = elm_spinner_add(ly);
1396 g_volume_spinner = spinner;
1398 DBG("Setting- Volume: %d", volume_index);
1400 /*elm_object_style_set(spinner, "volumestyle"); */
1401 elm_spinner_editable_set(spinner, EINA_FALSE);
1402 elm_spinner_min_max_set(spinner, 0, 15);
1404 if (get_sound_mode() != SOUND_MODE_SOUND) {
1405 elm_spinner_value_set(spinner, volume_index);
1406 edje_object_signal_emit(elm_layout_edje_get(spinner), "elm,spinner,min", "elm");
1407 edje_object_part_drag_value_set(elm_layout_edje_get(spinner), "elm.dragable.slider", 0, 0);
1409 if (get_sound_mode() == SOUND_MODE_VIBRATE) {
1410 edje_object_signal_emit(elm_layout_edje_get(spinner), "elm,spinner,vibrate", "elm");
1413 elm_object_disabled_set(spinner, EINA_TRUE);
1415 elm_spinner_value_set(spinner, volume_index);
1416 _update_volume_circle(spinner);
1418 evas_object_smart_callback_add(spinner, "changed", _on_media_volume_spinner_change_cb, ly);
1419 elm_object_part_content_set(ly, "elm.icon.1", spinner);
1421 btn = elm_button_add(ly);
1422 elm_object_style_set(btn, "default");
1423 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1424 elm_object_translatable_text_set(btn, "IDS_ST_BUTTON_CANCEL_ABB2");
1425 elm_object_part_content_set(ly, "btn1", btn);
1426 evas_object_smart_callback_add(btn, "clicked", _set_cancel_cb, ad);
1428 btn = elm_button_add(ly);
1429 elm_object_style_set(btn, "default");
1430 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1431 elm_object_translatable_text_set(btn, "IDS_WNOTI_BUTTON_OK_ABB2");
1432 elm_object_part_content_set(ly, "btn2", btn);
1433 evas_object_smart_callback_add(btn, "clicked", _set_notification_clicked_cb, ad);
1435 Elm_Object_Item *nf_it = elm_naviframe_item_push(ad->nf,
1436 "IDS_ST_BUTTON_NOTIFICATIONS",
1439 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1440 elm_naviframe_item_pop_cb_set(nf_it, _back_volume_naviframe_cb, ad);
1441 register_vconf_changing(VCONFKEY_PM_STATE, pm_state_vconf_changed_cb_for_volume, NULL);
1443 sound_manager_set_volume_changed_cb(_media_volume_changed_cb, NULL);
1445 /* Unregister sound mode vconf callback */
1446 register_vconf_changing(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, vibrate_vconf_changed_cb, NULL);
1447 register_vconf_changing(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL , sound_vconf_changed_cb, NULL);
1450 static void _set_system_clicked_cb(void *data, Evas_Object *obj, void *event_info)
1458 elm_naviframe_item_pop(ad->nf);
1462 /* save system vulume value */
1463 _set_volumn(SOUND_TYPE_SYSTEM, volume_index, VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_INT);
1465 if (is_created_player()) {
1466 _close_player(ad, curr_sound_type);
1471 elm_naviframe_item_pop(ad->nf);
1475 void _show_system_popup(void *data, Evas_Object *obj, void *event_info)
1485 original_sound_mode = get_sound_mode();
1487 curr_sound_type = SOUND_TYPE_SYSTEM;
1489 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_SOUND_VOLUME_INT, &volume_index);
1491 DBG("Setting - Notification volume is %d", volume_index);
1492 sound_mode = get_sound_mode();
1494 int real_volume_index = 0;
1495 sound_manager_get_volume(SOUND_TYPE_SYSTEM, &real_volume_index);
1497 int virtual_index = real_volume_index;
1499 DBG("Setting - vconf vol: %d, real vol: %d", volume_index, real_volume_index);
1500 if (sound_mode != SOUND_MODE_SOUND)
1503 DBG("Sound Mode is - %d ", sound_mode);
1507 volume_index = sync_volume(volume_index, virtual_index);
1508 original_volume = real_volume_index;
1510 ad->MENU_TYPE = SETTING_VOLUME_2_DEPTH;
1512 ly = elm_layout_add(ad->nf);
1514 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default2");
1516 elm_layout_file_set(ly, EDJE_PATH, "setting/2finger_popup/default3");
1518 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1519 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
1522 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
1523 DBG(" ----> width : %d, height : %d ", w, h);
1524 if (w == 360 && h == 480) {
1525 DBG("make long height !!!!!!!!!!!!!!!!!");
1526 /*elm_object_signal_emit(layout, "set,popup,long", "elm.icon.1"); */
1527 elm_object_signal_emit(ly, "set,popup,long", "*");
1530 Evas_Object *label = elm_label_add(ly);
1531 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1532 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
1535 snprintf(tempbuf, sizeof(tempbuf) - 1, "%d", volume_index);
1536 elm_object_text_set(label, tempbuf);
1537 evas_object_resize(label, 200, 200);
1538 elm_object_part_content_set(ly, "elm.icon.2", label);
1539 if (get_sound_mode() != SOUND_MODE_SOUND)
1540 evas_object_color_set(label, 83, 94, 102, 255);
1542 evas_object_show(label);
1544 Evas_Object *slider = eext_circle_object_slider_add(ly, ad->circle_surface);
1546 eext_circle_object_value_min_max_set(slider, 0.0, 15.0);
1547 eext_circle_object_value_set(slider, volume_index);
1549 eext_rotary_object_event_activated_set(slider, EINA_TRUE);
1550 eext_circle_object_slider_step_set(slider, 1);
1551 evas_object_smart_callback_add(slider, "value,changed", ringtone_value_changed, label);
1555 Evas_Object *spinner = elm_spinner_add(ly);
1557 g_volume_spinner = spinner;
1559 DBG("Setting- Volume: %d", volume_index);
1561 /*elm_object_style_set(spinner, "volumestyle"); */
1562 elm_spinner_editable_set(spinner, EINA_FALSE);
1563 elm_spinner_min_max_set(spinner, 0, 15);
1565 if (get_sound_mode() != SOUND_MODE_SOUND) {
1566 elm_spinner_value_set(spinner, volume_index);
1567 edje_object_signal_emit(elm_layout_edje_get(spinner), "elm,spinner,min", "elm");
1568 edje_object_part_drag_value_set(elm_layout_edje_get(spinner), "elm.dragable.slider", 0, 0);
1570 if (get_sound_mode() == SOUND_MODE_VIBRATE) {
1571 edje_object_signal_emit(elm_layout_edje_get(spinner), "elm,spinner,vibrate", "elm");
1574 elm_object_disabled_set(spinner, EINA_TRUE);
1576 elm_spinner_value_set(spinner, volume_index);
1577 _update_volume_circle(spinner);
1579 evas_object_smart_callback_add(spinner, "changed", _on_media_volume_spinner_change_cb, ly);
1580 elm_object_part_content_set(ly, "elm.icon.1", spinner);
1582 btn = elm_button_add(ly);
1583 elm_object_style_set(btn, "default");
1584 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1585 elm_object_translatable_text_set(btn, "IDS_ST_BUTTON_CANCEL_ABB2");
1586 elm_object_part_content_set(ly, "btn1", btn);
1587 evas_object_smart_callback_add(btn, "clicked", _set_cancel_cb, ad);
1589 btn = elm_button_add(ly);
1590 elm_object_style_set(btn, "default");
1591 evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1592 elm_object_translatable_text_set(btn, "IDS_WNOTI_BUTTON_OK_ABB2");
1593 elm_object_part_content_set(ly, "btn2", btn);
1594 evas_object_smart_callback_add(btn, "clicked", _set_system_clicked_cb, ad);
1596 Elm_Object_Item *nf_it = elm_naviframe_item_push(ad->nf,
1597 "IDS_ST_BODY_SYSTEM_M_VOLUME_ABB",
1600 elm_object_item_domain_text_translatable_set(nf_it, SETTING_PACKAGE, EINA_TRUE);
1601 elm_naviframe_item_pop_cb_set(nf_it, _back_volume_naviframe_cb, ad);
1603 register_vconf_changing(VCONFKEY_PM_STATE, pm_state_vconf_changed_cb_for_volume, NULL);
1605 sound_manager_set_volume_changed_cb(_media_volume_changed_cb, NULL);
1607 /* Unregister sound mode vconf callback */
1608 register_vconf_changing(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, vibrate_vconf_changed_cb, NULL);
1609 register_vconf_changing(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL , sound_vconf_changed_cb, NULL);