4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #include <setting-profile-sound-main.h>
23 #define VOLUME_STR _("IDS_ST_SK_VOLUME")
24 #define RINGTONE_STR _("IDS_COM_BODY_RINGTONES")
26 #define SOUND_DESC "IDS_ST_BODY_ADJUST_VOLUME_AND_INTENSITY_FOR_SOUNDS_WHEN_MSG"
28 static int setting_profile_sound_main_create(void *cb);
29 static int setting_profile_sound_main_destroy(void *cb);
30 static int setting_profile_sound_main_update(void *cb);
31 static int setting_profile_sound_main_cleanup(void *cb);
33 static void setting_profile_layout_ug_cb(ui_gadget_h ug,
34 enum ug_mode mode, void *priv);
36 setting_view setting_view_profile_sound_main = {
37 .create = setting_profile_sound_main_create,
38 .destroy = setting_profile_sound_main_destroy,
39 .update = setting_profile_sound_main_update,
40 .cleanup = setting_profile_sound_main_cleanup,
43 /* ***************************************************
47 ***************************************************/
48 void __change_state_of_sliderbars(void *data)
51 SettingProfileUG *ad = (SettingProfileUG *) data;
54 int vibration_on = TRUE;
56 if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &sound_on) == 0) {
57 if (sound_on == FALSE) {
58 /* disable slider bar of call ringtone, notification, media, and system volume */
59 if (ad->data_call_volume) {
60 setting_disable_genlist_item(ad->data_call_volume->item);
62 if (ad->data_noti_volume) {
63 setting_disable_genlist_item(ad->data_noti_volume->item);
65 if (ad->data_media_volume) {
66 setting_disable_genlist_item(ad->data_media_volume->item);
68 if (ad->data_touch_volume) {
69 setting_disable_genlist_item(ad->data_touch_volume->item);
75 (VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vibration_on) == 0) {
76 if (vibration_on == FALSE) {
77 /* disable slider bar of notification and system vibration */
78 if (ad->data_vib_volume) {
79 setting_disable_genlist_item(ad->data_vib_volume->item);
81 if (ad->data_touch_vib) {
82 setting_disable_genlist_item(ad->data_touch_vib->item);
88 void __sound_sub_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
91 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
92 retm_if(data == NULL, "Invalid argument: data is NULL");
94 SettingProfileUG *ad = (SettingProfileUG *) data;
95 Elm_Object_Item *subitem = (Elm_Object_Item *) event_info;
96 Elm_Object_Item *parentItem = elm_genlist_item_parent_get(subitem);
97 elm_genlist_item_selected_set(subitem, 0);
98 Setting_GenGroupItem_Data *data_subItem =
99 elm_object_item_data_get(subitem);
100 Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(parentItem);
101 if (NULL == data_subItem || NULL == data_parentItem)
104 elm_radio_value_set(data_subItem->rgd, data_subItem->chk_status);
106 setting_set_int_slp_key(data_parentItem->int_slp_setting_binded,
107 data_subItem->chk_status, &err);
109 if (data_parentItem) {
110 data_parentItem->sub_desc =
111 (char *)g_strdup(_(data_subItem->keyStr));
112 elm_object_item_data_set(data_parentItem->item, data_parentItem);
113 elm_genlist_item_update(data_parentItem->item);
116 if (data_parentItem->int_slp_setting_binded ==
117 INT_SLP_SETTING_CALL_ALERT_VIB) {
118 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
119 SETTING_TRACE("ERROR device_haptic_stop_play");
122 setting_profile_play_vibration(ad,
123 setting_profile_get_call_playing_vib_by_vconf_value
124 (data_subItem->chk_status));
128 static void __sound_exp_cb(void *data, Evas_Object *obj, void *event_info)
130 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
131 retm_if(data == NULL, "Invalid argument: data is NULL");
133 SettingProfileUG *ad = (SettingProfileUG *) data;
134 Elm_Object_Item *parentItem = event_info; /* parent item */
135 Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(parentItem); /* parent data */
136 Evas_Object *scroller = elm_object_item_widget_get(parentItem);
139 if (data_parentItem == ad->data_call_alert_vib) {
140 rgd = elm_radio_add(scroller);
141 elm_radio_value_set(rgd, -1);
142 setting_create_Gendial_exp_sub_field(scroller,
143 &(ad->itc_1icon_1text_sub),
144 __sound_sub_list_sel_cb,
146 SWALLOW_Type_1RADIO, rgd,
148 "IDS_ST_BODY_VIBRATION_1",
151 setting_create_Gendial_exp_sub_field(scroller,
152 &(ad->itc_1icon_1text_sub),
153 __sound_sub_list_sel_cb,
155 SWALLOW_Type_1RADIO, rgd,
157 "IDS_ST_BODY_VIBRATION_2",
160 setting_create_Gendial_exp_sub_field(scroller,
161 &(ad->itc_1icon_1text_sub),
162 __sound_sub_list_sel_cb,
164 SWALLOW_Type_1RADIO, rgd,
166 "IDS_ST_BODY_VIBRATION_3",
169 setting_update_chk_status(rgd,
171 int_slp_setting_binded);
173 } else if (data_parentItem == ad->data_msg_alert_repeat
174 || data_parentItem == ad->data_email_alert_repeat) {
175 rgd = elm_radio_add(scroller);
176 elm_radio_value_set(rgd, -1);
177 setting_create_Gendial_exp_sub_field(scroller,
178 &(ad->itc_1icon_1text_sub),
179 __sound_sub_list_sel_cb,
181 SWALLOW_Type_1RADIO, rgd,
183 SETTING_SOUND_TEXT_REPEAT_ONCE,
186 setting_create_Gendial_exp_sub_field(scroller,
187 &(ad->itc_1icon_1text_sub),
188 __sound_sub_list_sel_cb,
190 SWALLOW_Type_1RADIO, rgd,
192 SETTING_SOUND_TEXT_REPEAT_2MIN,
195 setting_create_Gendial_exp_sub_field(scroller,
196 &(ad->itc_1icon_1text_sub),
197 __sound_sub_list_sel_cb,
199 SWALLOW_Type_1RADIO, rgd,
201 SETTING_SOUND_TEXT_REPEAT_5MIN,
203 setting_create_Gendial_exp_sub_field(scroller,
204 &(ad->itc_1icon_1text_sub),
205 __sound_sub_list_sel_cb,
207 SWALLOW_Type_1RADIO, rgd,
209 SETTING_SOUND_TEXT_REPEAT_10MIN,
212 setting_update_chk_status(rgd,
214 int_slp_setting_binded);
218 static void __mm_player_msg_cb(void *user_param)
220 ret_if(user_param == NULL);
221 SettingProfileUG *ad = (SettingProfileUG *)user_param;
224 case MM_MESSAGE_END_OF_STREAM:
225 SETTING_TRACE_DEBUG("End of Stream");
226 setting_profile_close_all_mm_players(ad);
231 SETTING_TRACE("completed_cb is called.");
232 setting_profile_close_all_mm_players(ad);
235 void __ringtone_start_change_cb(void *data, Evas_Object *obj, void *event_info)
237 ret_if(data == NULL);
239 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
240 SettingProfileUG *ad = list_item->userdata;
242 ad->cur_vol_type = SETTING_VOL_TYPE_RINGTONE;
243 setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_RINGTONE);
245 void __noti_start_change_cb(void *data, Evas_Object *obj, void *event_info)
247 ret_if(data == NULL);
249 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
250 SettingProfileUG *ad = list_item->userdata;
252 ad->cur_vol_type = SETTING_VOL_TYPE_NOTIFICATION;
253 setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_NOTIFICATION);
255 void __media_start_change_cb(void *data, Evas_Object *obj, void *event_info)
257 ret_if(data == NULL);
259 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
260 SettingProfileUG *ad = list_item->userdata;
262 ad->cur_vol_type = SETTING_VOL_TYPE_MEDIA;
263 setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_MEDIA);
265 void __system_start_change_cb(void *data, Evas_Object *obj, void *event_info)
267 ret_if(data == NULL);
269 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
270 SettingProfileUG *ad = list_item->userdata;
272 ad->cur_vol_type = SETTING_VOL_TYPE_SYSTEM;
273 setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_SYSTEM);
276 void __volume_stop_change_cb(void *data, Evas_Object *obj, void *event_info)
279 ret_if(data == NULL);
281 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
282 SettingProfileUG *ad = list_item->userdata;
284 char *pa_tone_path = NULL;
285 player_h **player = NULL;
287 double value = elm_slider_value_get(obj);
289 switch(ad->cur_vol_type)
291 case SETTING_VOL_TYPE_RINGTONE:
292 sound_manager_set_volume(SOUND_TYPE_RINGTONE, (unsigned int)(value+0.5));
293 player = &(ad->mp_ringtone);
296 SETTING_TRACE_DEBUG("ringtone player will be created");
297 pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
298 if(pa_tone_path == NULL)
300 pa_tone_path = SETTING_DEFAULT_CALL_TONE;
302 if(vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_tone_path) < 0)
305 setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
308 SOUND_TYPE_RINGTONE);
310 case SETTING_VOL_TYPE_NOTIFICATION:
311 sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, (unsigned int)(value+0.5));
312 player = &(ad->mp_noti);
315 SETTING_TRACE_DEBUG("noti player will be created");
316 pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
317 if(pa_tone_path == NULL)
319 pa_tone_path = SETTING_DEFAULT_MSG_TONE;
320 if(vconf_set_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SETTING_DEFAULT_MSG_TONE) < 0)
323 setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
326 SOUND_TYPE_NOTIFICATION);
328 case SETTING_VOL_TYPE_MEDIA:
329 sound_manager_set_volume(SOUND_TYPE_MEDIA, (unsigned int)(value+0.5));
330 player = &(ad->mp_media);
333 SETTING_TRACE_DEBUG("media player will be created");
334 pa_tone_path = (char*)strdup(SETTING_DEFAULT_MEDIA_TONE);
336 setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
341 case SETTING_VOL_TYPE_SYSTEM:
342 sound_manager_set_volume(SOUND_TYPE_SYSTEM, (unsigned int)(value+0.5));
343 player = &(ad->mp_sys);
346 SETTING_TRACE_DEBUG("ringtone player will be created");
347 char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
348 svi_get_path(SVI_TYPE_SND, SVI_SND_TOUCH_TOUCH1, pattern_file, sizeof(pattern_file));
350 setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
364 static void __main_list_unrealized_cb(void *data, Evas_Object *obj, void *event_info)
367 retv_if(data == NULL, NULL);
369 SettingProfileUG *ad = (SettingProfileUG *) data;
371 Elm_Object_Item *item = (Elm_Object_Item *)event_info;
372 Setting_GenGroupItem_Data *list_item =
373 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
375 /* backup each slider's value */
376 if(list_item == ad->data_call_volume)
377 sound_manager_set_volume(SOUND_TYPE_RINGTONE, ad->data_call_volume->chk_status);
378 else if(list_item == ad->data_noti_volume)
379 sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, ad->data_noti_volume->chk_status);
380 else if(list_item == ad->data_media_volume)
381 sound_manager_set_volume(SOUND_TYPE_MEDIA, ad->data_media_volume->chk_status);
382 else if(list_item == ad->data_touch_volume)
383 sound_manager_set_volume(SOUND_TYPE_SYSTEM, ad->data_touch_volume->chk_status);
386 static Evas_Object *__get_main_list(void *data)
388 retv_if(data == NULL, NULL);
390 SettingProfileUG *ad = (SettingProfileUG *) data;
392 if(ad->sub_view[SETTING_PROF_VIEW_VOL])
393 return ad->sub_view[SETTING_PROF_VIEW_VOL];
395 Evas_Object *genlist = elm_genlist_add(ad->navi_bar);
396 elm_object_style_set(genlist, "dialogue");
397 retvm_if(genlist == NULL, NULL,
398 "Cannot set genlist object as contento of layout");
399 elm_genlist_clear(genlist); /* first to clear list */
404 Elm_Object_Item *item = elm_genlist_item_append(genlist,
405 &(ad->itc_seperator), NULL, NULL,
406 ELM_GENLIST_ITEM_NONE, NULL, NULL);
407 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
410 if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &vconf_value) < 0)
411 vconf_value = TRUE; /* default value of sound : on */
413 setting_create_Gendial_field_def(genlist, &(ad->itc_1text_1icon),
414 setting_profile_sound_main_mouse_up_Gendial_list_cb,
415 ad, SWALLOW_Type_1TOGGLE, NULL,
417 SETTING_SOUND_TEXT_SOUND, NULL,
418 setting_profile_sound_main_Gendial_chk_cb);
419 if (ad->data_sound) {
420 ad->data_sound->userdata = ad;
422 SETTING_TRACE_ERROR("ad->data_sound is NULL");
425 (void)setting_create_Gendial_field_titleItem(genlist,
426 &(ad->itc_group_item),
427 "IDS_ST_BODY_VOLUME", NULL);
430 if(sound_manager_get_volume(SOUND_TYPE_RINGTONE, &mm_value) < 0)
431 mm_value = SETTING_DEFAULT_RINGTONE_VOL_INT;
432 ad->data_call_volume =
433 setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
435 SWALLOW_Type_LAYOUT_SLIDER,
436 IMG_SLIDER_BTN_VOLUME01,
437 IMG_SLIDER_BTN_VOLUME02, mm_value,
438 SETTING_SOUND_TEXT_INCOMING_CALL,
440 setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb);
441 if (ad->data_call_volume) {
442 ad->data_call_volume->win_main = ad->win_main_layout;
443 ad->data_call_volume->evas = ad->evas;
444 ad->data_call_volume->isIndicatorVisible = true;
445 ad->data_call_volume->slider_min = 0;
446 ad->data_call_volume->slider_max = SETTING_SOUND_VOL_MAX;
447 ad->data_call_volume->userdata = ad;
448 ad->data_call_volume->start_change_cb = __ringtone_start_change_cb;
449 ad->data_call_volume->stop_change_cb = __volume_stop_change_cb;
450 ad->data_call_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
452 SETTING_TRACE_ERROR("ad->data_call_volume is NULL");
456 if(sound_manager_get_volume(SOUND_TYPE_NOTIFICATION, &mm_value) < 0)
457 mm_value = SETTING_DEFAULT_NOTI_VOL_INT;
458 ad->data_noti_volume =
459 setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
461 SWALLOW_Type_LAYOUT_SLIDER,
462 IMG_SLIDER_BTN_VOLUME01,
463 IMG_SLIDER_BTN_VOLUME02, mm_value,
464 SETTING_SOUND_TEXT_NOTIFICATION,
466 setting_profile_sound_main_noti_sound_slider_value_change_cb);
467 if (ad->data_noti_volume) {
468 ad->data_noti_volume->win_main = ad->win_main_layout;
469 ad->data_noti_volume->evas = ad->evas;
470 ad->data_noti_volume->isIndicatorVisible = true;
471 ad->data_noti_volume->slider_min = 0;
472 ad->data_noti_volume->slider_max = SETTING_SOUND_VOL_MAX;
473 ad->data_noti_volume->userdata = ad;
474 ad->data_noti_volume->start_change_cb = __noti_start_change_cb;
475 ad->data_noti_volume->stop_change_cb = __volume_stop_change_cb;
476 ad->data_noti_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
478 SETTING_TRACE_ERROR("ad->data_noti_volume is NULL");
482 if(sound_manager_get_volume(SOUND_TYPE_MEDIA, &mm_value) < 0)
483 mm_value = SETTING_DEFAULT_MEDIA_VOL_INT;
484 ad->data_media_volume =
485 setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
487 SWALLOW_Type_LAYOUT_SLIDER,
488 IMG_SLIDER_BTN_VOLUME01,
489 IMG_SLIDER_BTN_VOLUME02, mm_value,
490 SETTING_SOUND_TEXT_MEDIA, NULL,
491 setting_profile_sound_main_media_sound_slider_value_change_cb);
492 if (ad->data_media_volume) {
493 ad->data_media_volume->win_main = ad->win_main_layout;
494 ad->data_media_volume->evas = ad->evas;
495 ad->data_media_volume->isIndicatorVisible = true;
496 ad->data_media_volume->slider_min = 0;
497 ad->data_media_volume->slider_max = SETTING_SOUND_VOL_MAX;
498 ad->data_media_volume->userdata = ad;
499 ad->data_media_volume->start_change_cb = __media_start_change_cb;
500 ad->data_media_volume->stop_change_cb = __volume_stop_change_cb;
501 ad->data_media_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
503 SETTING_TRACE_ERROR("ad->data_media_volume is NULL");
506 /* h.system volume */
507 if(sound_manager_get_volume(SOUND_TYPE_SYSTEM, &mm_value) < 0)
508 mm_value = SETTING_DEFAULT_SYSTEM_VOL_INT;
509 ad->data_touch_volume =
510 setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
512 SWALLOW_Type_LAYOUT_SLIDER,
513 IMG_SLIDER_BTN_VOLUME01,
514 IMG_SLIDER_BTN_VOLUME02, mm_value,
515 SETTING_SOUND_TEXT_SYSTEM, NULL,
516 settings_profile_sound_main_sys_sound_slider_value_change_cb);
517 if (ad->data_touch_volume) {
518 ad->data_touch_volume->win_main = ad->win_main_layout;
519 ad->data_touch_volume->evas = ad->evas;
520 ad->data_touch_volume->isIndicatorVisible = true;
521 ad->data_touch_volume->slider_min = 0;
522 ad->data_touch_volume->slider_max = SETTING_SOUND_VOL_MAX;
523 ad->data_touch_volume->userdata = ad;
524 ad->data_touch_volume->start_change_cb = __system_start_change_cb;
525 ad->data_touch_volume->stop_change_cb = __volume_stop_change_cb;
526 ad->data_touch_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
528 SETTING_TRACE_ERROR("ad->data_touch_volume is NULL");
531 elm_genlist_item_select_mode_set(elm_genlist_item_append(genlist, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
532 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
535 if (vconf_get_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, &vconf_value) < 0)
536 vconf_value = TRUE; /* default value of touch sounds : on */
538 ad->data_touch_sounds =
539 setting_create_Gendial_field_def(genlist, &(ad->itc_1text_1icon),
540 setting_profile_sound_main_mouse_up_Gendial_list_cb,
541 ad, SWALLOW_Type_1TOGGLE, NULL,
543 "IDS_ST_BODY_TOUCH_SOUNDS",
545 setting_profile_sound_main_Gendial_chk_cb);
546 if (ad->data_touch_sounds) {
547 ad->data_touch_sounds->userdata = ad;
549 SETTING_TRACE_ERROR("ad->data_lock_sound is NULL");
552 setting_create_Gendial_field_def(genlist, &(ad->itc_bg_1icon),
554 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
555 NULL, NULL, 0, "IDS_ST_BODY_PLAY_SOUND_WHEN_MAKING_SCREEN_SELECTION", NULL, NULL);
557 __change_state_of_sliderbars(ad);
559 evas_object_smart_callback_add(genlist, "unrealized", __main_list_unrealized_cb, ad);
561 ad->sub_view[SETTING_PROF_VIEW_VOL] = genlist;
563 return ad->sub_view[SETTING_PROF_VIEW_VOL];
566 static Evas_Object *__get_ringtone_list(void *data)
568 retv_if(data == NULL, NULL);
569 SettingProfileUG *ad = (SettingProfileUG *) data;
571 if(ad->sub_view[SETTING_PROF_VIEW_RTN])
572 return ad->sub_view[SETTING_PROF_VIEW_RTN];
574 Evas_Object *genlist = elm_genlist_add(ad->navi_bar);
575 elm_object_style_set(genlist, "dialogue");
576 retvm_if(genlist == NULL, NULL,
577 "Cannot set genlist object as contento of layout");
578 elm_genlist_clear(genlist); /* first to clear list */
579 setting_enable_expandable_genlist(genlist, ad, __sound_exp_cb, NULL);
581 /* a. incoming call group */
582 (void)setting_create_Gendial_field_titleItem(genlist,
583 &(ad->itc_group_item),
584 SETTING_SOUND_TEXT_INCOMING_CALL,
589 char *sub_desc = NULL;
590 char *pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
591 if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
593 pa_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
594 vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_ringtone);
596 SETTING_TRACE_DEBUG("failed to set vconf");
598 sub_desc = setting_file_basename(pa_ringtone);
600 ad->data_call_alert_tone =
601 setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
602 setting_profile_sound_main_mouse_up_Gendial_list_cb,
603 ad, SWALLOW_Type_INVALID, NULL,
604 NULL, 0, SETTING_SOUND_TEXT_CALL_RINGTONE,
606 if (ad->data_call_alert_tone) {
607 ad->data_call_alert_tone->userdata = ad;
609 SETTING_TRACE_ERROR("ad->data_call_alert_tone is NULL");
615 /* b. notification */
616 (void)setting_create_Gendial_field_titleItem(genlist,
617 &(ad->itc_group_item),
618 SETTING_SOUND_TEXT_NOTIFICATION,
621 char *repeat_type[SETTING_SOUND_REPEAT_TYPE_LEN] = {
622 _(SETTING_SOUND_TEXT_REPEAT_ONCE),
623 _(SETTING_SOUND_TEXT_REPEAT_2MIN),
624 _(SETTING_SOUND_TEXT_REPEAT_5MIN),
625 _(SETTING_SOUND_TEXT_REPEAT_10MIN)
627 int repeat_value = 0;
629 /* b-1. msg ringtone */
630 pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
631 if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
633 pa_ringtone = (char *)strdup(SETTING_DEFAULT_MSG_TONE);
634 vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SETTING_DEFAULT_MSG_TONE);
636 SETTING_TRACE_DEBUG("failed to set vconf");
638 sub_desc = setting_file_basename(pa_ringtone);
640 ad->data_msg_alert_tone =
641 setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
642 setting_profile_sound_main_mouse_up_Gendial_list_cb,
643 ad, SWALLOW_Type_INVALID, NULL,
645 SETTING_SOUND_TEXT_MSG_ALERT,
647 if (ad->data_msg_alert_tone) {
648 ad->data_msg_alert_tone->userdata = ad;
650 SETTING_TRACE_ERROR("ad->data_msg_alert_tone is NULL");
655 /* b-2. msg alert repetition */
657 (VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, &repeat_value) != 0)
658 repeat_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
659 ad->data_msg_alert_repeat =
660 setting_create_Gendial_exp_parent_field(genlist,
661 &(ad->itc_2text_3_parent),
662 setting_profile_sound_main_mouse_up_Gendial_list_cb,
663 ad, SWALLOW_Type_INVALID,
664 SETTING_SOUND_TEXT_MSG_RINGTONE_REPEAT,
665 repeat_type[repeat_value]);
666 if (ad->data_msg_alert_repeat) {
667 ad->data_msg_alert_repeat->int_slp_setting_binded =
668 INT_SLP_SETTING_MSG_ALERT_REPEAT;
670 SETTING_TRACE_ERROR("ad->data_msg_alert_repeat is NULL");
673 /* b-3. email ringtone */
674 pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR);
675 if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
677 pa_ringtone = (char *)strdup(SETTING_DEFAULT_EMAIL_TONE);
678 vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR, SETTING_DEFAULT_EMAIL_TONE);
680 SETTING_TRACE_DEBUG("failed to set vconf");
682 sub_desc = setting_file_basename(pa_ringtone);
684 ad->data_email_alert_tone =
685 setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
686 setting_profile_sound_main_mouse_up_Gendial_list_cb,
687 ad, SWALLOW_Type_INVALID, NULL,
689 SETTING_SOUND_TEXT_EMAIL_ALERT,
691 if (ad->data_email_alert_tone) {
692 ad->data_email_alert_tone->userdata = ad;
694 SETTING_TRACE_ERROR("ad->data_email_alert_tone is NULL");
699 /* b-4. email alert repetition */
701 (VCONFKEY_SETAPPL_NOTI_EMAIL_ALERT_REP_TYPE_INT,
703 repeat_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
704 ad->data_email_alert_repeat =
705 setting_create_Gendial_exp_parent_field(genlist,
706 &(ad->itc_2text_3_parent),
707 setting_profile_sound_main_mouse_up_Gendial_list_cb,
708 ad, SWALLOW_Type_INVALID,
709 SETTING_SOUND_TEXT_EMAIL_RINGTONE_REPEAT,
710 repeat_type[repeat_value]);
711 if (ad->data_email_alert_repeat) {
712 ad->data_email_alert_repeat->int_slp_setting_binded =
713 INT_SLP_SETTING_EMAIL_ALERT_REPEAT;
715 SETTING_TRACE_ERROR("ad->data_email_alert_repeat is NULL");
718 Elm_Object_Item *item = NULL;
719 item = elm_genlist_item_append(genlist, &itc_bottom_seperator, NULL, NULL,
720 ELM_GENLIST_ITEM_NONE, NULL, NULL);
721 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
723 ad->sub_view[SETTING_PROF_VIEW_RTN] = genlist;
725 return ad->sub_view[SETTING_PROF_VIEW_RTN];
728 static void __view_change_cb(void *data, Evas_Object *obj, void *event_info)
730 //appcore_measure_start();
731 retm_if(event_info == NULL, "Invalid argmuent: event info is NULL");
732 retm_if(data == NULL, "Invalid argmuent: data is NULL");
734 SettingProfileUG *ad = (SettingProfileUG *) data;
736 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
737 SETTING_TRACE("ERROR device_haptic_stop_play");
740 setting_profile_close_all_mm_players(ad);
742 Evas_Object *sub_view = NULL;
743 Elm_Object_Item *sel_item = elm_toolbar_selected_item_get(obj);
744 const char *tab_lable = elm_object_item_text_get(sel_item);
746 //SETTING_TRACE("tab_lable:%s", tab_lable);
747 if (0 == safeStrCmp(tab_lable, VOLUME_STR)) {
749 device_haptic_stop_play(ad->hnd_hpt);
750 sub_view = __get_main_list(ad);
751 } else if (0 == safeStrCmp(tab_lable, RINGTONE_STR)) {
752 sub_view = __get_ringtone_list(ad);
755 Evas_Object *old_sub_view = elm_object_part_content_get(ad->view_layout, "elm.swallow.content");
756 ret_if(old_sub_view == sub_view);
761 elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
762 evas_object_hide(old_sub_view);
764 elm_object_part_content_set(ad->view_layout, "elm.swallow.content", sub_view);
765 evas_object_show(sub_view);
769 static int setting_profile_sound_main_create(void *cb)
771 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
773 SettingProfileUG *ad = (SettingProfileUG *) cb;
775 ad->ly_main = setting_create_win_layout(ad->win_main_layout, ad->win_get);
776 ad->navi_bar = setting_create_navi_bar(ad->ly_main);
779 Evas_Object *view_layout = elm_layout_add(ad->win_main_layout);
780 elm_layout_theme_set(view_layout, "layout", "tabbar", "default");
781 evas_object_show(view_layout);
782 ad->view_layout = view_layout;
784 Evas_Object *tabbar= elm_toolbar_add(ad->navi_bar);
786 return SETTING_RETURN_FAIL;
788 elm_object_part_content_set(view_layout, "elm.swallow.tabbar", tabbar);
789 ad->ctrl_bar = tabbar;
790 elm_toolbar_shrink_mode_set(tabbar, ELM_TOOLBAR_SHRINK_EXPAND);
791 elm_object_style_set(tabbar, "tabbar");
793 ad->ctrl_item[0] = elm_toolbar_item_append(tabbar,
795 VOLUME_STR, __view_change_cb, ad);
797 ad->ctrl_item[1] = elm_toolbar_item_append(tabbar,
799 RINGTONE_STR, __view_change_cb, ad);
801 elm_toolbar_select_mode_set(tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
802 elm_toolbar_item_selected_set(ad->ctrl_item[0], EINA_TRUE);
804 Evas_Object *ug_back_btn = elm_button_add(ad->navi_bar);
805 elm_object_style_set(ug_back_btn, NAVI_BACK_BUTTON_STYLE);
806 evas_object_smart_callback_add(ug_back_btn, "clicked", setting_profile_sound_main_click_softkey_cancel_cb, ad);
808 Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->navi_bar, NULL, ug_back_btn, NULL, ad->view_layout, "tabbar");
809 elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
811 setting_view_profile_sound_main.is_create = TRUE;
813 return SETTING_RETURN_SUCCESS;
816 static int setting_profile_sound_main_destroy(void *cb)
819 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
821 SettingProfileUG *ad = (SettingProfileUG *) cb;
823 if (ad->ly_main != NULL) {
824 //Fix the memory leak,
825 //Manage ad->sub_view[] separately, unset first, then delete in together
828 elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
830 int i = SETTING_PROF_VIEW_VOL;
831 for (; i < SETTING_PROF_VIEW_MAX; i++ )
833 evas_object_del(ad->sub_view[i]);
836 evas_object_del(ad->ly_main);
837 setting_view_profile_sound_main.is_create = FALSE;
839 return SETTING_RETURN_SUCCESS;
842 static int setting_profile_sound_main_update(void *cb)
845 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
847 SettingProfileUG *ad = (SettingProfileUG *) cb;
849 if (ad->ly_main != NULL) {
850 evas_object_show(ad->ly_main);
853 return SETTING_RETURN_SUCCESS;
856 static int setting_profile_sound_main_cleanup(void *cb)
859 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
861 SettingProfileUG *ad = (SettingProfileUG *) cb;
863 if (ad->ly_main != NULL) {
864 evas_object_hide(ad->ly_main);
867 return SETTING_RETURN_SUCCESS;
870 /* ***************************************************
874 ***************************************************/
876 /* ***************************************************
880 ***************************************************/
883 setting_profile_sound_main_click_softkey_cancel_cb(void *data,
888 ret_if(data == NULL);
890 SettingProfileUG *ad = (SettingProfileUG *) data;
893 setting_profile_close_all_mm_players(ad);
894 /* close vibration */
895 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
896 SETTING_TRACE("ERROR device_haptic_stop_play");
900 /* Send destroy request */
901 ug_destroy_me(ad->ug);
906 static void setting_profile_sound_main_destroy_myfile_ug_cb(ui_gadget_h ug, void *priv)
908 ret_if(priv == NULL);
909 SettingProfileUG *ad = (SettingProfileUG *) priv;
913 ad->ug_loading = NULL;
918 setting_profile_sound_main_result_myfile_ug_cb(ui_gadget_h ug,
919 service_h result, void *priv)
921 ret_if(priv == NULL);
923 SettingProfileUG *ad = (SettingProfileUG *) priv;
924 char *ringtone_file = NULL;
925 char *ringtone_path = NULL;
927 service_get_extra_data(result, "result", &ringtone_path);
931 SETTING_TRACE("ringtone_path:%s", ringtone_path);
933 if (ringtone_path != NULL) {
934 ringtone_file = setting_file_basename(ringtone_path);
935 SETTING_TRACE("ringtone_file:%s", ringtone_file);
937 if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_CALL_RINGTONE)) {
939 (VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, ringtone_path) == 0) {
940 if (ad->data_call_alert_tone) {
941 ad->data_call_alert_tone->sub_desc = (char *)g_strdup(ringtone_file);
943 elm_object_item_data_set(ad->data_call_alert_tone->item, ad->data_call_alert_tone);
944 elm_genlist_item_update(ad->data_call_alert_tone->item);
948 safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_MSG_ALERT)) {
950 (VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, ringtone_path) == 0) {
951 if (ad->data_msg_alert_tone) {
952 ad->data_msg_alert_tone->sub_desc = (char *)g_strdup(ringtone_file);
954 elm_object_item_data_set(ad->data_msg_alert_tone->item, ad->data_msg_alert_tone);
955 elm_genlist_item_update(ad->data_msg_alert_tone->item);
959 safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_EMAIL_ALERT)) {
961 (VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR, ringtone_path) == 0) {
962 if (ad->data_email_alert_tone) {
963 ad->data_email_alert_tone->sub_desc = (char *)g_strdup(ringtone_file);
965 elm_object_item_data_set(ad->data_email_alert_tone->item, ad->data_email_alert_tone);
966 elm_genlist_item_update(ad->data_email_alert_tone->item);
972 G_FREE(ringtone_file);
977 setting_profile_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
980 ret_if(priv == NULL);
982 SettingProfileUG *ad = (SettingProfileUG *) priv;
985 base = (Evas_Object *) ug_get_layout(ug);
990 case UG_MODE_FULLVIEW:
991 evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
992 elm_win_resize_object_add(ad->win_get, base);
993 evas_object_show(base);
1001 static void setting_profile_sound_main_create_myfile_ug(SettingProfileUG *ad)
1007 SETTING_TRACE("Myfiles ug is already loaded.");
1011 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
1015 cbs->layout_cb = setting_profile_layout_ug_cb;
1016 cbs->result_cb = setting_profile_sound_main_result_myfile_ug_cb;
1017 cbs->destroy_cb = setting_profile_sound_main_destroy_myfile_ug_cb;
1018 cbs->priv = (void *)ad;
1021 if (service_create(&svc)) {
1026 const char *pa_cur_ringtone = NULL;
1027 const char *dir_path = NULL;
1028 if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_CALL_RINGTONE)) {
1029 pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
1030 if (pa_cur_ringtone == NULL)
1032 pa_cur_ringtone = SETTING_DEFAULT_CALL_TONE;
1034 dir_path = SETTING_PROFILE_SOUND_RINGTONES_PATH;
1035 } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_MSG_ALERT)) {
1036 pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
1037 if (pa_cur_ringtone == NULL)
1038 pa_cur_ringtone = SETTING_DEFAULT_MSG_TONE;
1039 dir_path = SETTING_PROFILE_SOUND_ALERTS_PATH;
1040 } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_EMAIL_ALERT)) {
1041 pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR);
1042 if (pa_cur_ringtone == NULL)
1043 pa_cur_ringtone = SETTING_DEFAULT_EMAIL_TONE;
1044 dir_path = SETTING_PROFILE_SOUND_ALERTS_PATH;
1046 SETTING_TRACE("pa_cur_ringtone:\t%s", pa_cur_ringtone);
1047 SETTING_TRACE("dir_path:\t%s", dir_path);
1049 service_add_extra_data(svc, "marked_mode", pa_cur_ringtone);
1050 service_add_extra_data(svc, "path", dir_path);
1051 service_add_extra_data(svc, "select_type", "SINGLE_FILE");
1052 service_add_extra_data(svc, "file_type", "SOUND");
1053 service_add_extra_data(svc, "drm_type", "DRM_ALL");
1055 SETTING_TRACE("ad->ug->layout:%p", (void *)ug_get_layout(ad->ug));
1056 ad->ug_loading = ug_create(ad->ug, "myfile-efl", UG_MODE_FULLVIEW, svc, cbs);
1057 if (NULL == ad->ug_loading) { /* error handling */
1058 SETTING_TRACE_ERROR("NULL == ad->ug_loading");
1061 service_destroy(svc);
1064 /** @todo verify it's valid */
1066 FREE(pa_cur_ringtone);
1072 setting_profile_sound_main_Gendial_chk_cb(void *data, Evas_Object *obj,
1076 ret_if(data == NULL);
1078 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1079 SettingProfileUG *ad = list_item->userdata;
1081 int state = list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
1083 /* restore the selected check status */
1084 list_item->chk_status = state;
1085 elm_check_state_set(list_item->eo_check, state);
1087 if (!safeStrCmp(SETTING_SOUND_TEXT_SOUND, list_item->keyStr)) {
1088 if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, list_item->chk_status) < 0) {
1089 list_item->chk_status = !state;
1090 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1093 if (list_item->chk_status) {
1094 setting_enable_genlist_item(ad->data_call_volume->item);
1095 setting_enable_genlist_item(ad->data_noti_volume->item);
1096 setting_enable_genlist_item(ad->data_media_volume->item);
1097 setting_enable_genlist_item(ad->data_touch_volume->item);
1099 setting_profile_close_all_mm_players(ad);
1100 setting_disable_genlist_item(ad->data_call_volume->item);
1101 setting_disable_genlist_item(ad->data_noti_volume->item);
1102 setting_disable_genlist_item(ad->data_media_volume->item);
1103 setting_disable_genlist_item(ad->data_touch_volume->item);
1105 } else if (!safeStrCmp(SETTING_SOUND_TEXT_VIBRATION, list_item->keyStr)) {
1106 if (vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, list_item->chk_status) < 0) {
1107 list_item->chk_status = !state;
1108 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1110 if (list_item->chk_status) {
1111 setting_enable_genlist_item(ad->data_vib_volume->item);
1112 setting_enable_genlist_item(ad->data_touch_vib->item);
1114 /* Play vib if vib turns on */
1116 char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
1117 svi_get_path(SVI_TYPE_VIB, SVI_VIB_NOTIFICATION_GENERAL, pattern_file, sizeof(pattern_file));
1118 device_haptic_stop_play(ad->hnd_hpt);
1119 err = device_haptic_play_file(ad->hnd_hpt, pattern_file, 1, (int)(elm_slider_value_get(ad->data_vib_volume->eo_check)+0.5));
1122 SETTING_TRACE("Failed to play haptic monotone");
1124 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
1125 SETTING_TRACE("ERROR device_haptic_stop_play");
1127 setting_disable_genlist_item(ad->data_vib_volume->item);
1128 setting_disable_genlist_item(ad->data_touch_vib->item);
1131 /* additional items */
1132 else if (!safeStrCmp(SETTING_SOUND_TEXT_LOCK_SOUND, list_item->keyStr)) {
1133 if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, list_item->chk_status) < 0) {
1134 list_item->chk_status = !state;
1135 elm_check_state_set(list_item->eo_check, !state);
1138 else if (!safeStrCmp("IDS_ST_BODY_TOUCH_SOUNDS", list_item->keyStr)) {
1139 if (vconf_set_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, list_item->chk_status) < 0) {
1140 list_item->chk_status = !state;
1141 elm_check_state_set(list_item->eo_check, !state);
1150 setting_profile_sound_main_mouse_up_Gendial_list_cb(void *data,
1155 ret_if(data == NULL);
1156 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
1158 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
1159 elm_genlist_item_selected_set(item, 0);
1160 Setting_GenGroupItem_Data *list_item =
1161 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
1163 SettingProfileUG *ad = data;
1166 device_haptic_stop_play(ad->hnd_hpt);
1168 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
1169 if (!safeStrCmp(SETTING_SOUND_TEXT_CALL_RINGTONE, list_item->keyStr)
1170 || !safeStrCmp(SETTING_SOUND_TEXT_MSG_ALERT, list_item->keyStr)
1171 || !safeStrCmp(SETTING_SOUND_TEXT_EMAIL_ALERT, list_item->keyStr)) {
1172 ad->ringtone_type = list_item->keyStr;
1173 setting_profile_sound_main_create_myfile_ug(ad);
1174 } else if (!safeStrCmp(SETTING_SOUND_TEXT_SOUND, list_item->keyStr)) {
1175 int old_status = elm_check_state_get(list_item->eo_check);
1176 if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, !old_status) == 0) {
1178 list_item->chk_status = !old_status;
1179 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1180 if (list_item->chk_status) {
1181 setting_enable_genlist_item(ad->data_call_volume->item);
1182 setting_enable_genlist_item(ad->data_noti_volume->item);
1183 setting_enable_genlist_item(ad->data_media_volume->item);
1184 setting_enable_genlist_item(ad->data_touch_volume->item);
1186 setting_profile_close_all_mm_players(ad);
1187 setting_disable_genlist_item(ad->data_call_volume->item);
1188 setting_disable_genlist_item(ad->data_noti_volume->item);
1189 setting_disable_genlist_item(ad->data_media_volume->item);
1190 setting_disable_genlist_item(ad->data_touch_volume->item);
1195 else if (!safeStrCmp("IDS_ST_BODY_TOUCH_SOUNDS", list_item->keyStr)) {
1196 int old_status = elm_check_state_get(list_item->eo_check);
1197 /* To do : set vconfkey for touch sounds */
1198 if (vconf_set_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, !old_status) == 0) {
1200 list_item->chk_status = !old_status;
1201 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1205 else if (ad->data_msg_alert_repeat == list_item
1206 || ad->data_email_alert_repeat == list_item) {
1207 bool status = !elm_genlist_item_expanded_get(item);
1208 elm_genlist_item_expanded_set(item, status);
1213 setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb(void *data,
1218 ret_if(data == NULL);
1220 double val = elm_slider_value_get(obj);
1222 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1223 SettingProfileUG *ad = list_item->userdata;
1225 if(ad->mp_ringtone == NULL)
1228 if(list_item->chk_status != (int)(val+0.5))
1230 list_item->chk_status = (int)(val+0.5);
1231 sound_manager_set_volume(SOUND_TYPE_RINGTONE, (unsigned int)list_item->chk_status);
1232 SETTING_TRACE_DEBUG("ringtone volume is %d, %f", list_item->chk_status, val);
1237 setting_profile_sound_main_noti_sound_slider_value_change_cb(void *data,
1242 ret_if(data == NULL);
1244 double val = elm_slider_value_get(obj);
1246 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1247 SettingProfileUG *ad = list_item->userdata;
1249 if(ad->mp_noti == NULL)
1252 if(list_item->chk_status != (int)(val+0.5))
1254 list_item->chk_status = val;
1255 sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, (unsigned int)list_item->chk_status);
1256 SETTING_TRACE_DEBUG("notification volume is %d, %f", list_item->chk_status, val);
1261 setting_profile_sound_main_media_sound_slider_value_change_cb(void *data,
1266 ret_if(data == NULL);
1268 double val = elm_slider_value_get(obj);
1270 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1271 SettingProfileUG *ad = list_item->userdata;
1273 if(ad->mp_media == NULL)
1275 if(list_item->chk_status != (int)(val+0.5))
1277 list_item->chk_status = val;
1278 sound_manager_set_volume(SOUND_TYPE_MEDIA, (unsigned int)list_item->chk_status);
1279 SETTING_TRACE_DEBUG("media volume is %d, %f", list_item->chk_status, val);
1284 settings_profile_sound_main_sys_sound_slider_value_change_cb(void *data,
1289 ret_if(data == NULL);
1291 double val = elm_slider_value_get(obj);
1293 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1294 SettingProfileUG *ad = list_item->userdata;
1296 if(ad->mp_sys == NULL)
1299 if(list_item->chk_status != (int)(val+0.5))
1301 list_item->chk_status = val;
1302 sound_manager_set_volume(SOUND_TYPE_SYSTEM, (unsigned int)list_item->chk_status);
1303 SETTING_TRACE_DEBUG("system volume is %d, %f", list_item->chk_status, val);