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 ad->data_touch_sounds =
536 setting_create_Gendial_field_def(genlist, &(ad->itc_1text_1icon),
537 setting_profile_sound_main_mouse_up_Gendial_list_cb,
538 ad, SWALLOW_Type_1TOGGLE, NULL,
540 "IDS_ST_BODY_TOUCH_SOUNDS",
542 setting_profile_sound_main_Gendial_chk_cb);
543 if (ad->data_touch_sounds) {
544 ad->data_touch_sounds->userdata = ad;
546 SETTING_TRACE_ERROR("ad->data_lock_sound is NULL");
549 setting_create_Gendial_field_def(genlist, &(ad->itc_bg_1icon),
551 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
552 NULL, NULL, 0, "IDS_ST_BODY_PLAY_SOUND_WHEN_MAKING_SCREEN_SELECTION", NULL, NULL);
554 __change_state_of_sliderbars(ad);
556 evas_object_smart_callback_add(genlist, "unrealized", __main_list_unrealized_cb, ad);
558 ad->sub_view[SETTING_PROF_VIEW_VOL] = genlist;
560 return ad->sub_view[SETTING_PROF_VIEW_VOL];
563 static Evas_Object *__get_ringtone_list(void *data)
565 retv_if(data == NULL, NULL);
566 SettingProfileUG *ad = (SettingProfileUG *) data;
568 if(ad->sub_view[SETTING_PROF_VIEW_RTN])
569 return ad->sub_view[SETTING_PROF_VIEW_RTN];
571 Evas_Object *genlist = elm_genlist_add(ad->navi_bar);
572 elm_object_style_set(genlist, "dialogue");
573 retvm_if(genlist == NULL, NULL,
574 "Cannot set genlist object as contento of layout");
575 elm_genlist_clear(genlist); /* first to clear list */
576 setting_enable_expandable_genlist(genlist, ad, __sound_exp_cb, NULL);
578 /* a. incoming call group */
579 (void)setting_create_Gendial_field_titleItem(genlist,
580 &(ad->itc_group_item),
581 SETTING_SOUND_TEXT_INCOMING_CALL,
586 char *sub_desc = NULL;
587 char *pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
588 if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
590 pa_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
591 vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_ringtone);
593 SETTING_TRACE_DEBUG("failed to set vconf");
595 sub_desc = setting_file_basename(pa_ringtone);
597 ad->data_call_alert_tone =
598 setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
599 setting_profile_sound_main_mouse_up_Gendial_list_cb,
600 ad, SWALLOW_Type_INVALID, NULL,
601 NULL, 0, SETTING_SOUND_TEXT_CALL_RINGTONE,
603 if (ad->data_call_alert_tone) {
604 ad->data_call_alert_tone->userdata = ad;
606 SETTING_TRACE_ERROR("ad->data_call_alert_tone is NULL");
612 /* b. notification */
613 (void)setting_create_Gendial_field_titleItem(genlist,
614 &(ad->itc_group_item),
615 SETTING_SOUND_TEXT_NOTIFICATION,
618 char *repeat_type[SETTING_SOUND_REPEAT_TYPE_LEN] = {
619 _(SETTING_SOUND_TEXT_REPEAT_ONCE),
620 _(SETTING_SOUND_TEXT_REPEAT_2MIN),
621 _(SETTING_SOUND_TEXT_REPEAT_5MIN),
622 _(SETTING_SOUND_TEXT_REPEAT_10MIN)
624 int repeat_value = 0;
626 /* b-1. msg ringtone */
627 pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
628 if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
630 pa_ringtone = (char *)strdup(SETTING_DEFAULT_MSG_TONE);
631 vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SETTING_DEFAULT_MSG_TONE);
633 SETTING_TRACE_DEBUG("failed to set vconf");
635 sub_desc = setting_file_basename(pa_ringtone);
637 ad->data_msg_alert_tone =
638 setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
639 setting_profile_sound_main_mouse_up_Gendial_list_cb,
640 ad, SWALLOW_Type_INVALID, NULL,
642 SETTING_SOUND_TEXT_MSG_ALERT,
644 if (ad->data_msg_alert_tone) {
645 ad->data_msg_alert_tone->userdata = ad;
647 SETTING_TRACE_ERROR("ad->data_msg_alert_tone is NULL");
652 /* b-2. msg alert repetition */
654 (VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, &repeat_value) != 0)
655 repeat_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
656 ad->data_msg_alert_repeat =
657 setting_create_Gendial_exp_parent_field(genlist,
658 &(ad->itc_2text_3_parent),
659 setting_profile_sound_main_mouse_up_Gendial_list_cb,
660 ad, SWALLOW_Type_INVALID,
661 SETTING_SOUND_TEXT_MSG_RINGTONE_REPEAT,
662 repeat_type[repeat_value]);
663 if (ad->data_msg_alert_repeat) {
664 ad->data_msg_alert_repeat->int_slp_setting_binded =
665 INT_SLP_SETTING_MSG_ALERT_REPEAT;
667 SETTING_TRACE_ERROR("ad->data_msg_alert_repeat is NULL");
670 /* b-3. email ringtone */
671 pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR);
672 if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
674 pa_ringtone = (char *)strdup(SETTING_DEFAULT_EMAIL_TONE);
675 vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR, SETTING_DEFAULT_EMAIL_TONE);
677 SETTING_TRACE_DEBUG("failed to set vconf");
679 sub_desc = setting_file_basename(pa_ringtone);
681 ad->data_email_alert_tone =
682 setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
683 setting_profile_sound_main_mouse_up_Gendial_list_cb,
684 ad, SWALLOW_Type_INVALID, NULL,
686 SETTING_SOUND_TEXT_EMAIL_ALERT,
688 if (ad->data_email_alert_tone) {
689 ad->data_email_alert_tone->userdata = ad;
691 SETTING_TRACE_ERROR("ad->data_email_alert_tone is NULL");
696 /* b-4. email alert repetition */
698 (VCONFKEY_SETAPPL_NOTI_EMAIL_ALERT_REP_TYPE_INT,
700 repeat_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
701 ad->data_email_alert_repeat =
702 setting_create_Gendial_exp_parent_field(genlist,
703 &(ad->itc_2text_3_parent),
704 setting_profile_sound_main_mouse_up_Gendial_list_cb,
705 ad, SWALLOW_Type_INVALID,
706 SETTING_SOUND_TEXT_EMAIL_RINGTONE_REPEAT,
707 repeat_type[repeat_value]);
708 if (ad->data_email_alert_repeat) {
709 ad->data_email_alert_repeat->int_slp_setting_binded =
710 INT_SLP_SETTING_EMAIL_ALERT_REPEAT;
712 SETTING_TRACE_ERROR("ad->data_email_alert_repeat is NULL");
715 Elm_Object_Item *item = NULL;
716 item = elm_genlist_item_append(genlist, &itc_bottom_seperator, NULL, NULL,
717 ELM_GENLIST_ITEM_NONE, NULL, NULL);
718 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
720 ad->sub_view[SETTING_PROF_VIEW_RTN] = genlist;
722 return ad->sub_view[SETTING_PROF_VIEW_RTN];
725 static void __view_change_cb(void *data, Evas_Object *obj, void *event_info)
727 //appcore_measure_start();
728 retm_if(event_info == NULL, "Invalid argmuent: event info is NULL");
729 retm_if(data == NULL, "Invalid argmuent: data is NULL");
731 SettingProfileUG *ad = (SettingProfileUG *) data;
733 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
734 SETTING_TRACE("ERROR device_haptic_stop_play");
737 setting_profile_close_all_mm_players(ad);
739 Evas_Object *sub_view = NULL;
740 Elm_Object_Item *sel_item = elm_toolbar_selected_item_get(obj);
741 const char *tab_lable = elm_object_item_text_get(sel_item);
743 //SETTING_TRACE("tab_lable:%s", tab_lable);
744 if (0 == safeStrCmp(tab_lable, VOLUME_STR)) {
746 device_haptic_stop_play(ad->hnd_hpt);
747 sub_view = __get_main_list(ad);
748 } else if (0 == safeStrCmp(tab_lable, RINGTONE_STR)) {
749 sub_view = __get_ringtone_list(ad);
752 Evas_Object *old_sub_view = elm_object_part_content_get(ad->view_layout, "elm.swallow.content");
753 ret_if(old_sub_view == sub_view);
758 elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
759 evas_object_hide(old_sub_view);
761 elm_object_part_content_set(ad->view_layout, "elm.swallow.content", sub_view);
762 evas_object_show(sub_view);
766 static int setting_profile_sound_main_create(void *cb)
768 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
770 SettingProfileUG *ad = (SettingProfileUG *) cb;
772 ad->ly_main = setting_create_win_layout(ad->win_main_layout, ad->win_get);
773 ad->navi_bar = setting_create_navi_bar(ad->ly_main);
776 Evas_Object *view_layout = elm_layout_add(ad->win_main_layout);
777 elm_layout_theme_set(view_layout, "layout", "tabbar", "default");
778 evas_object_show(view_layout);
779 ad->view_layout = view_layout;
781 Evas_Object *tabbar= elm_toolbar_add(ad->navi_bar);
783 return SETTING_RETURN_FAIL;
785 elm_object_part_content_set(view_layout, "elm.swallow.tabbar", tabbar);
786 ad->ctrl_bar = tabbar;
787 elm_toolbar_shrink_mode_set(tabbar, ELM_TOOLBAR_SHRINK_EXPAND);
788 elm_object_style_set(tabbar, "tabbar");
790 ad->ctrl_item[0] = elm_toolbar_item_append(tabbar,
792 VOLUME_STR, __view_change_cb, ad);
794 ad->ctrl_item[1] = elm_toolbar_item_append(tabbar,
796 RINGTONE_STR, __view_change_cb, ad);
798 elm_toolbar_select_mode_set(tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
799 elm_toolbar_item_selected_set(ad->ctrl_item[0], EINA_TRUE);
801 Evas_Object *ug_back_btn = elm_button_add(ad->navi_bar);
802 elm_object_style_set(ug_back_btn, NAVI_BACK_BUTTON_STYLE);
803 evas_object_smart_callback_add(ug_back_btn, "clicked", setting_profile_sound_main_click_softkey_cancel_cb, ad);
805 Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->navi_bar, NULL, ug_back_btn, NULL, ad->view_layout, "tabbar");
806 elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
808 setting_view_profile_sound_main.is_create = TRUE;
810 return SETTING_RETURN_SUCCESS;
813 static int setting_profile_sound_main_destroy(void *cb)
816 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
818 SettingProfileUG *ad = (SettingProfileUG *) cb;
820 if (ad->ly_main != NULL) {
821 //Fix the memory leak,
822 //Manage ad->sub_view[] separately, unset first, then delete in together
825 elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
827 int i = SETTING_PROF_VIEW_VOL;
828 for (; i < SETTING_PROF_VIEW_MAX; i++ )
830 evas_object_del(ad->sub_view[i]);
833 evas_object_del(ad->ly_main);
834 setting_view_profile_sound_main.is_create = FALSE;
836 return SETTING_RETURN_SUCCESS;
839 static int setting_profile_sound_main_update(void *cb)
842 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
844 SettingProfileUG *ad = (SettingProfileUG *) cb;
846 if (ad->ly_main != NULL) {
847 evas_object_show(ad->ly_main);
850 return SETTING_RETURN_SUCCESS;
853 static int setting_profile_sound_main_cleanup(void *cb)
856 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
858 SettingProfileUG *ad = (SettingProfileUG *) cb;
860 if (ad->ly_main != NULL) {
861 evas_object_hide(ad->ly_main);
864 return SETTING_RETURN_SUCCESS;
867 /* ***************************************************
871 ***************************************************/
873 /* ***************************************************
877 ***************************************************/
880 setting_profile_sound_main_click_softkey_cancel_cb(void *data,
885 ret_if(data == NULL);
887 SettingProfileUG *ad = (SettingProfileUG *) data;
890 setting_profile_close_all_mm_players(ad);
891 /* close vibration */
892 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
893 SETTING_TRACE("ERROR device_haptic_stop_play");
897 /* Send destroy request */
898 ug_destroy_me(ad->ug);
903 static void setting_profile_sound_main_destroy_myfile_ug_cb(ui_gadget_h ug, void *priv)
905 ret_if(priv == NULL);
906 SettingProfileUG *ad = (SettingProfileUG *) priv;
910 ad->ug_loading = NULL;
915 setting_profile_sound_main_result_myfile_ug_cb(ui_gadget_h ug,
916 service_h result, void *priv)
918 ret_if(priv == NULL);
920 SettingProfileUG *ad = (SettingProfileUG *) priv;
921 char *ringtone_file = NULL;
922 char *ringtone_path = NULL;
924 service_get_extra_data(result, "result", &ringtone_path);
928 SETTING_TRACE("ringtone_path:%s", ringtone_path);
930 if (ringtone_path != NULL) {
931 ringtone_file = setting_file_basename(ringtone_path);
932 SETTING_TRACE("ringtone_file:%s", ringtone_file);
934 if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_CALL_RINGTONE)) {
936 (VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, ringtone_path) == 0) {
937 if (ad->data_call_alert_tone) {
938 ad->data_call_alert_tone->sub_desc = (char *)g_strdup(ringtone_file);
940 elm_object_item_data_set(ad->data_call_alert_tone->item, ad->data_call_alert_tone);
941 elm_genlist_item_update(ad->data_call_alert_tone->item);
945 safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_MSG_ALERT)) {
947 (VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, ringtone_path) == 0) {
948 if (ad->data_msg_alert_tone) {
949 ad->data_msg_alert_tone->sub_desc = (char *)g_strdup(ringtone_file);
951 elm_object_item_data_set(ad->data_msg_alert_tone->item, ad->data_msg_alert_tone);
952 elm_genlist_item_update(ad->data_msg_alert_tone->item);
956 safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_EMAIL_ALERT)) {
958 (VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR, ringtone_path) == 0) {
959 if (ad->data_email_alert_tone) {
960 ad->data_email_alert_tone->sub_desc = (char *)g_strdup(ringtone_file);
962 elm_object_item_data_set(ad->data_email_alert_tone->item, ad->data_email_alert_tone);
963 elm_genlist_item_update(ad->data_email_alert_tone->item);
969 G_FREE(ringtone_file);
974 setting_profile_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
977 ret_if(priv == NULL);
979 SettingProfileUG *ad = (SettingProfileUG *) priv;
982 base = (Evas_Object *) ug_get_layout(ug);
987 case UG_MODE_FULLVIEW:
988 evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
989 elm_win_resize_object_add(ad->win_get, base);
990 evas_object_show(base);
998 static void setting_profile_sound_main_create_myfile_ug(SettingProfileUG *ad)
1004 SETTING_TRACE("Myfiles ug is already loaded.");
1008 struct ug_cbs *cbs = (struct ug_cbs *)calloc(1, sizeof(struct ug_cbs));
1012 cbs->layout_cb = setting_profile_layout_ug_cb;
1013 cbs->result_cb = setting_profile_sound_main_result_myfile_ug_cb;
1014 cbs->destroy_cb = setting_profile_sound_main_destroy_myfile_ug_cb;
1015 cbs->priv = (void *)ad;
1018 if (service_create(&svc)) {
1023 const char *pa_cur_ringtone = NULL;
1024 const char *dir_path = NULL;
1025 if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_CALL_RINGTONE)) {
1026 pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
1027 if (pa_cur_ringtone == NULL)
1029 pa_cur_ringtone = SETTING_DEFAULT_CALL_TONE;
1031 dir_path = SETTING_PROFILE_SOUND_RINGTONES_PATH;
1032 } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_MSG_ALERT)) {
1033 pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
1034 if (pa_cur_ringtone == NULL)
1035 pa_cur_ringtone = SETTING_DEFAULT_MSG_TONE;
1036 dir_path = SETTING_PROFILE_SOUND_ALERTS_PATH;
1037 } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_EMAIL_ALERT)) {
1038 pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR);
1039 if (pa_cur_ringtone == NULL)
1040 pa_cur_ringtone = SETTING_DEFAULT_EMAIL_TONE;
1041 dir_path = SETTING_PROFILE_SOUND_ALERTS_PATH;
1043 SETTING_TRACE("pa_cur_ringtone:\t%s", pa_cur_ringtone);
1044 SETTING_TRACE("dir_path:\t%s", dir_path);
1046 service_add_extra_data(svc, "marked_mode", pa_cur_ringtone);
1047 service_add_extra_data(svc, "path", dir_path);
1048 service_add_extra_data(svc, "select_type", "SINGLE_FILE");
1049 service_add_extra_data(svc, "file_type", "SOUND");
1050 service_add_extra_data(svc, "drm_type", "DRM_ALL");
1052 SETTING_TRACE("ad->ug->layout:%p", (void *)ug_get_layout(ad->ug));
1053 ad->ug_loading = ug_create(ad->ug, "myfile-efl", UG_MODE_FULLVIEW, svc, cbs);
1054 if (NULL == ad->ug_loading) { /* error handling */
1055 SETTING_TRACE_ERROR("NULL == ad->ug_loading");
1058 service_destroy(svc);
1061 /** @todo verify it's valid */
1063 FREE(pa_cur_ringtone);
1069 setting_profile_sound_main_Gendial_chk_cb(void *data, Evas_Object *obj,
1073 ret_if(data == NULL);
1075 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1076 SettingProfileUG *ad = list_item->userdata;
1078 int state = list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
1080 /* restore the selected check status */
1081 list_item->chk_status = state;
1082 elm_check_state_set(list_item->eo_check, state);
1084 if (!safeStrCmp(SETTING_SOUND_TEXT_SOUND, list_item->keyStr)) {
1085 if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, list_item->chk_status) < 0) {
1086 list_item->chk_status = !state;
1087 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1090 if (list_item->chk_status) {
1091 setting_enable_genlist_item(ad->data_call_volume->item);
1092 setting_enable_genlist_item(ad->data_noti_volume->item);
1093 setting_enable_genlist_item(ad->data_media_volume->item);
1094 setting_enable_genlist_item(ad->data_touch_volume->item);
1096 setting_profile_close_all_mm_players(ad);
1097 setting_disable_genlist_item(ad->data_call_volume->item);
1098 setting_disable_genlist_item(ad->data_noti_volume->item);
1099 setting_disable_genlist_item(ad->data_media_volume->item);
1100 setting_disable_genlist_item(ad->data_touch_volume->item);
1102 } else if (!safeStrCmp(SETTING_SOUND_TEXT_VIBRATION, list_item->keyStr)) {
1103 if (vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, list_item->chk_status) < 0) {
1104 list_item->chk_status = !state;
1105 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1107 if (list_item->chk_status) {
1108 setting_enable_genlist_item(ad->data_vib_volume->item);
1109 setting_enable_genlist_item(ad->data_touch_vib->item);
1111 /* Play vib if vib turns on */
1113 char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
1114 svi_get_path(SVI_TYPE_VIB, SVI_VIB_NOTIFICATION_GENERAL, pattern_file, sizeof(pattern_file));
1115 device_haptic_stop_play(ad->hnd_hpt);
1116 err = device_haptic_play_file(ad->hnd_hpt, pattern_file, 1, (int)(elm_slider_value_get(ad->data_vib_volume->eo_check)+0.5));
1119 SETTING_TRACE("Failed to play haptic monotone");
1121 if (device_haptic_stop_play(ad->hnd_hpt) != 0) {
1122 SETTING_TRACE("ERROR device_haptic_stop_play");
1124 setting_disable_genlist_item(ad->data_vib_volume->item);
1125 setting_disable_genlist_item(ad->data_touch_vib->item);
1128 /* additional items */
1129 else if (!safeStrCmp(SETTING_SOUND_TEXT_LOCK_SOUND, list_item->keyStr)) {
1130 if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, list_item->chk_status) < 0) {
1131 list_item->chk_status = !state;
1132 elm_check_state_set(list_item->eo_check, !state);
1141 setting_profile_sound_main_mouse_up_Gendial_list_cb(void *data,
1146 ret_if(data == NULL);
1147 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
1149 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
1150 elm_genlist_item_selected_set(item, 0);
1151 Setting_GenGroupItem_Data *list_item =
1152 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
1154 SettingProfileUG *ad = data;
1157 device_haptic_stop_play(ad->hnd_hpt);
1159 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
1160 if (!safeStrCmp(SETTING_SOUND_TEXT_CALL_RINGTONE, list_item->keyStr)
1161 || !safeStrCmp(SETTING_SOUND_TEXT_MSG_ALERT, list_item->keyStr)
1162 || !safeStrCmp(SETTING_SOUND_TEXT_EMAIL_ALERT, list_item->keyStr)) {
1163 ad->ringtone_type = list_item->keyStr;
1164 setting_profile_sound_main_create_myfile_ug(ad);
1165 } else if (!safeStrCmp(SETTING_SOUND_TEXT_SOUND, list_item->keyStr)) {
1166 int old_status = elm_check_state_get(list_item->eo_check);
1167 if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, !old_status) == 0) {
1169 list_item->chk_status = !old_status;
1170 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1171 if (list_item->chk_status) {
1172 setting_enable_genlist_item(ad->data_call_volume->item);
1173 setting_enable_genlist_item(ad->data_noti_volume->item);
1174 setting_enable_genlist_item(ad->data_media_volume->item);
1175 setting_enable_genlist_item(ad->data_touch_volume->item);
1177 setting_profile_close_all_mm_players(ad);
1178 setting_disable_genlist_item(ad->data_call_volume->item);
1179 setting_disable_genlist_item(ad->data_noti_volume->item);
1180 setting_disable_genlist_item(ad->data_media_volume->item);
1181 setting_disable_genlist_item(ad->data_touch_volume->item);
1186 else if (!safeStrCmp("IDS_ST_BODY_TOUCH_SOUNDS", list_item->keyStr)) {
1187 int old_status = elm_check_state_get(list_item->eo_check);
1188 /* To do : set vconfkey for touch sounds */
1190 list_item->chk_status = !old_status;
1191 elm_check_state_set(list_item->eo_check, list_item->chk_status);
1194 else if (ad->data_msg_alert_repeat == list_item
1195 || ad->data_email_alert_repeat == list_item) {
1196 bool status = !elm_genlist_item_expanded_get(item);
1197 elm_genlist_item_expanded_set(item, status);
1202 setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb(void *data,
1207 ret_if(data == NULL);
1209 double val = elm_slider_value_get(obj);
1211 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1212 SettingProfileUG *ad = list_item->userdata;
1214 if(ad->mp_ringtone == NULL)
1217 if(list_item->chk_status != (int)(val+0.5))
1219 list_item->chk_status = (int)(val+0.5);
1220 sound_manager_set_volume(SOUND_TYPE_RINGTONE, (unsigned int)list_item->chk_status);
1221 SETTING_TRACE_DEBUG("ringtone volume is %d, %f", list_item->chk_status, val);
1226 setting_profile_sound_main_noti_sound_slider_value_change_cb(void *data,
1231 ret_if(data == NULL);
1233 double val = elm_slider_value_get(obj);
1235 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1236 SettingProfileUG *ad = list_item->userdata;
1238 if(ad->mp_noti == NULL)
1241 if(list_item->chk_status != (int)(val+0.5))
1243 list_item->chk_status = val;
1244 sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, (unsigned int)list_item->chk_status);
1245 SETTING_TRACE_DEBUG("notification volume is %d, %f", list_item->chk_status, val);
1250 setting_profile_sound_main_media_sound_slider_value_change_cb(void *data,
1255 ret_if(data == NULL);
1257 double val = elm_slider_value_get(obj);
1259 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1260 SettingProfileUG *ad = list_item->userdata;
1262 if(ad->mp_media == NULL)
1264 if(list_item->chk_status != (int)(val+0.5))
1266 list_item->chk_status = val;
1267 sound_manager_set_volume(SOUND_TYPE_MEDIA, (unsigned int)list_item->chk_status);
1268 SETTING_TRACE_DEBUG("media volume is %d, %f", list_item->chk_status, val);
1273 settings_profile_sound_main_sys_sound_slider_value_change_cb(void *data,
1278 ret_if(data == NULL);
1280 double val = elm_slider_value_get(obj);
1282 Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
1283 SettingProfileUG *ad = list_item->userdata;
1285 if(ad->mp_sys == NULL)
1288 if(list_item->chk_status != (int)(val+0.5))
1290 list_item->chk_status = val;
1291 sound_manager_set_volume(SOUND_TYPE_SYSTEM, (unsigned int)list_item->chk_status);
1292 SETTING_TRACE_DEBUG("system volume is %d, %f", list_item->chk_status, val);