/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+ *
*/
+
+#include <feedback.h>
+#include <mm_sound_private.h>
+#include <app_manager.h>
#include <setting-profile-sound-main.h>
#include <setting-profile.h>
-#define VOLUME_STR _("IDS_ST_BODY_VOLUME")
-#define RINGTONE_STR _("IDS_COM_BODY_RINGTONES")
-
-#define SOUND_DESC "IDS_ST_BODY_ADJUST_VOLUME_AND_INTENSITY_FOR_SOUNDS_WHEN_MSG"
+#define STR_RINGTONES_AND_NOTIFICATIONS "IDS_ST_HEADER_RINGTONES_AND_NOTIFICATIONS"
+#define STR_FEEDBACK "IDS_ST_HEADER_FEEDBACK"
char *repeat_type[SETTING_SOUND_REPEAT_TYPE_LEN] = {
SETTING_SOUND_TEXT_REPEAT_ONCE,
SETTING_SOUND_TEXT_REPEAT_10MIN
};
+
static int setting_profile_sound_main_create(void *cb);
static int setting_profile_sound_main_destroy(void *cb);
static int setting_profile_sound_main_update(void *cb);
static int setting_profile_sound_main_cleanup(void *cb);
-static void setting_profile_layout_ug_cb(ui_gadget_h ug,
- enum ug_mode mode, void *priv);
-
-static void setting_profile_sound_main_click_softkey_cancel_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_Gendial_chk_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_mouse_up_Gendial_list_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_noti_sound_slider_value_change_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_media_sound_slider_value_change_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_vib_sound_slider_value_change_cb(void *data,
- Evas_Object *obj, void *event_info);
-
-static void setting_profile_sound_main_touchVib_sound_slider_value_change_cb(void *data,
- Evas_Object *obj, void *event_info);
+static void setting_profile_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
+static Eina_Bool setting_profile_sound_main_click_softkey_cancel_cb(void *data, Elm_Object_Item *it);
+static void setting_profile_sound_main_Gendial_chk_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_create_popup_with_sliders(void *data);
+static void setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_noti_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_media_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_call_vib_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_vib_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_touchVib_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void settings_profile_sound_main_sys_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+static void setting_profile_sound_main_tts_sound_slider_value_change_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+#define ADD_GENLIST(genlist, parent) \
+{\
+ genlist = elm_genlist_add(parent);\
+ retvm_if(genlist == NULL, NULL, "Cannot set genlist object as contento of layout");\
+ elm_genlist_realization_mode_set(genlist, EINA_TRUE);\
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);\
+ elm_object_style_set(genlist, "dialogue");\
+ elm_genlist_clear(genlist);\
+ evas_object_smart_callback_add(genlist, "realized", __gl_realized_cb, NULL);\
+ elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);\
+}
-static void settings_profile_sound_main_sys_sound_slider_value_change_cb(void *data,
- Evas_Object *obj, void *event_info);
+#define ADD_TOGGLE_MENU(item, genlist, item_style, keystr, value, g_style, data) \
+{\
+ item = setting_create_Gendial_field_def(genlist, &(item_style), \
+ setting_profile_sound_main_mouse_up_Gendial_list_cb, \
+ data, SWALLOW_Type_1ICON_1RADIO, NULL, \
+ NULL, value, \
+ keystr, NULL, \
+ setting_profile_sound_main_Gendial_chk_cb); \
+ if (item) {\
+ item->userdata = data;\
+ setting_genlist_item_groupstyle_set(item, g_style); \
+ } else {\
+ SETTING_TRACE_ERROR("%s item is NULL", keystr);\
+ }\
+}
+#define ADD_SLIDER_MENU(item, genlist, item_style, l_img, r_img, value, keystr, data, sld_cb, sld_max, start_cb, stop_cb, sound_group, g_style) \
+{ \
+ item = setting_create_Gendial_field_def(genlist, &(item_style), NULL,\
+ NULL, \
+ SWALLOW_Type_LAYOUT_SLIDER,\
+ l_img, r_img,\
+ value,\
+ keystr,\
+ NULL,\
+ sld_cb);\
+ if (item) {\
+ item->win_main = data->win_main_layout;\
+ item->evas = data->evas;\
+ item->isIndicatorVisible = TRUE;\
+ item->slider_min = 0;\
+ item->slider_max = sld_max;\
+ item->userdata = data;\
+ item->start_change_cb = start_cb;\
+ item->stop_change_cb = stop_cb;\
+ item->belongs_to = sound_group;\
+ setting_genlist_item_groupstyle_set(item, g_style); \
+ } else {\
+ SETTING_TRACE_ERROR("%s item is NULL", keystr);\
+ }\
+}
setting_view setting_view_profile_sound_main = {
.create = setting_profile_sound_main_create,
.cleanup = setting_profile_sound_main_cleanup,
};
+extern char *setting_vib_type[];
+
/* ***************************************************
*
*basic func
retm_if(event_info == NULL, "Invalid argument: event info is NULL");
retm_if(data == NULL, "Invalid argument: data is NULL");
- SettingProfileUG *ad = (SettingProfileUG *) data;
+ //SettingProfileUG *ad = (SettingProfileUG *) data;
Elm_Object_Item *subitem = (Elm_Object_Item *) event_info;
Elm_Object_Item *parentItem = elm_genlist_item_parent_get(subitem);
elm_genlist_item_selected_set(subitem, 0);
elm_genlist_item_update(data_parentItem->item);
}
- if (data_parentItem->int_slp_setting_binded ==
- INT_SLP_SETTING_CALL_ALERT_VIB) {
- if(ad->hnd_hpt < 0)
- {
- SETTING_TRACE_DEBUG("[ERROR] Can't use haptic handle.");
- return;
- }
- if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
- SETTING_TRACE("ERROR haptic_stop_all_effects");
- /* return; */
- }
- setting_profile_play_vibration(ad,
- setting_profile_get_call_playing_vib_by_vconf_value
- (data_subItem->chk_status));
- }
+ elm_genlist_item_expanded_set(parentItem, EINA_FALSE);
}
static void __sound_exp_cb(void *data, Evas_Object *obj, void *event_info)
Evas_Object *scroller = elm_object_item_widget_get(parentItem);
Evas_Object *rgd;
- if (data_parentItem == ad->data_call_alert_vib) {
- rgd = elm_radio_add(scroller);
- elm_radio_value_set(rgd, -1);
- setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __sound_sub_list_sel_cb,
- ad, parentItem,
- SWALLOW_Type_1RADIO, rgd,
- 0,
- "IDS_ST_BODY_VIBRATION_1",
- NULL);
-
- setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __sound_sub_list_sel_cb,
- ad, parentItem,
- SWALLOW_Type_1RADIO, rgd,
- 1,
- "IDS_ST_BODY_VIBRATION_2",
- NULL);
-
- setting_create_Gendial_exp_sub_field(scroller,
- &(ad->itc_1icon_1text_sub),
- __sound_sub_list_sel_cb,
- ad, parentItem,
- SWALLOW_Type_1RADIO, rgd,
- 2,
- "IDS_ST_BODY_VIBRATION_3",
- NULL);
-
- setting_update_chk_status(rgd,
- data_parentItem->
- int_slp_setting_binded);
-
- } else if (data_parentItem == ad->data_msg_alert_repeat
+ if (data_parentItem == ad->data_msg_alert_repeat
|| data_parentItem == ad->data_email_alert_repeat) {
rgd = elm_radio_add(scroller);
+ elm_object_style_set(rgd, "list");
+ evas_object_propagate_events_set(rgd, EINA_TRUE);
elm_radio_value_set(rgd, -1);
- setting_create_Gendial_exp_sub_field(scroller,
+ if(parentItem)
+ elm_object_item_signal_emit(parentItem, "elm,state,center", "");
+ if(data_parentItem)
+ data_parentItem->group_style = SETTING_GROUP_STYLE_CENTER;
+
+ ad->data_sound_text_repeat_once = setting_create_Gendial_exp_sub_field(scroller,
&(ad->itc_1icon_1text_sub),
__sound_sub_list_sel_cb,
ad, parentItem,
0,
_(SETTING_SOUND_TEXT_REPEAT_ONCE),
NULL);
-
- setting_create_Gendial_exp_sub_field(scroller,
+ if(ad->data_sound_text_repeat_once)
+ {
+ ad->data_sound_text_repeat_once->userdata = ad;
+ setting_genlist_item_groupstyle_set(ad->data_sound_text_repeat_once, SETTING_GROUP_STYLE_CENTER);
+ }
+ ad->data_sound_text_repeat_2min = setting_create_Gendial_exp_sub_field(scroller,
&(ad->itc_1icon_1text_sub),
__sound_sub_list_sel_cb,
ad, parentItem,
1,
_(SETTING_SOUND_TEXT_REPEAT_2MIN),
NULL);
-
- setting_create_Gendial_exp_sub_field(scroller,
+ if(ad->data_sound_text_repeat_2min)
+ {
+ ad->data_sound_text_repeat_2min->userdata = ad;
+ setting_genlist_item_groupstyle_set(ad->data_sound_text_repeat_2min, SETTING_GROUP_STYLE_CENTER);
+ }
+ ad->data_sound_text_repeat_5min = setting_create_Gendial_exp_sub_field(scroller,
&(ad->itc_1icon_1text_sub),
__sound_sub_list_sel_cb,
ad, parentItem,
2,
_(SETTING_SOUND_TEXT_REPEAT_5MIN),
NULL);
- setting_create_Gendial_exp_sub_field(scroller,
+ if(ad->data_sound_text_repeat_5min)
+ {
+ ad->data_sound_text_repeat_5min->userdata = ad;
+ setting_genlist_item_groupstyle_set(ad->data_sound_text_repeat_5min, SETTING_GROUP_STYLE_CENTER);
+ }
+ ad->data_sound_text_repeat_10min = setting_create_Gendial_exp_sub_field(scroller,
&(ad->itc_1icon_1text_sub),
__sound_sub_list_sel_cb,
ad, parentItem,
3,
_(SETTING_SOUND_TEXT_REPEAT_10MIN),
NULL);
-
- setting_update_chk_status(rgd,
- data_parentItem->int_slp_setting_binded);
+ if(ad->data_sound_text_repeat_10min)
+ {
+ ad->data_sound_text_repeat_10min->userdata = ad;
+ setting_genlist_item_groupstyle_set(ad->data_sound_text_repeat_10min, SETTING_GROUP_STYLE_BOTTOM);
+ }
+ if(data_parentItem) {
+ setting_update_chk_status(rgd, data_parentItem->int_slp_setting_binded);
+ }
+ }
+}
+static void __sound_con_cb(void *data, Evas_Object *obj,
+ void *event_info)
+{
+ ret_if(data == NULL || event_info == NULL);
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ Setting_GenGroupItem_Data *data_parentItem = elm_object_item_data_get(item);
+ char *cb_type = data;
+
+ if (0 == safeStrCmp(cb_type, "drag")
+ || 0 == safeStrCmp(cb_type, "longpressed")) {
+ //Evas_Object *base_view = (Evas_Object *) elm_genlist_item_object_get(item);
+ //edje_object_signal_emit(base_view, "mouse,out", "touch_arrow");
+ } else if (0 == safeStrCmp(cb_type, "contracted")) {
+ if(item)
+ {
+ elm_genlist_item_subitems_clear(item);
+ elm_object_item_signal_emit(item, "elm,state,bottom", "");
+ }
+ if(data_parentItem)
+ data_parentItem->group_style = SETTING_GROUP_STYLE_BOTTOM;
}
}
-static void __mm_player_msg_cb(void *user_param)
+static Eina_Bool __play_ringtone_sound_idle_cb(void *data)
{
- ret_if(user_param == NULL);
- SettingProfileUG *ad = (SettingProfileUG *)user_param;
- /*switch(message)
+ SETTING_TRACE_BEGIN;
+ retv_if(!data, EINA_FALSE);
+
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
+ SettingProfileUG *ad = list_item->userdata;
+
+ if(list_item->eo_check)
{
- case MM_MESSAGE_END_OF_STREAM:
- SETTING_TRACE_DEBUG("End of Stream");
- setting_profile_close_all_mm_players(ad);
- return TRUE;
- default:
- return FALSE;
- }*/
- SETTING_TRACE("completed_cb is called.");
- setting_profile_close_all_mm_players(ad);
+ double current;
+ current = elm_slider_value_get(list_item->eo_check);
+ list_item->chk_status = (int)(current+0.5);
+ }
+
+ if(ad->mp_ringtone == NULL)
+ {
+ setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_RINGTONE);
+ char *pa_tone_path = NULL;
+ pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
+ if(pa_tone_path == NULL)
+ {
+ if(isEmulBin())
+ pa_tone_path = (char *)strdup(SETTING_DEFAULT_CALL_TONE_SDK);
+ else
+ pa_tone_path = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
+
+ if(vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_tone_path) < 0) {
+ FREE(pa_tone_path);
+ return EINA_FALSE;
+ }
+ }
+ if(list_item->chk_status > 0)
+ {
+ setting_profile_play_sound_origin(&(ad->mp_ringtone), ad, NULL,
+ pa_tone_path,
+ (float)list_item->chk_status,
+ SOUND_TYPE_RINGTONE);
+ }
+ }
+ else
+ {
+ player_state_e state;
+ player_get_state(*(ad->mp_ringtone), &state);
+ SETTING_TRACE("ringtone player status : %d", state);
+ if(state == PLAYER_STATE_PAUSED)
+ {
+ player_start(*(ad->mp_ringtone));
+ }
+ else if(state == PLAYER_STATE_PLAYING)
+ {
+ //bool is_muted = 0;
+ //player_is_muted(*(ad->mp_ringtone), &is_muted);
+ //SETTING_TRACE("ringtone player is muted : %d", is_muted);
+ if(/*is_muted &&*/ ad->sound_on)
+ player_set_mute(*(ad->mp_ringtone), 0);
+ }
+ }
+
+ ad->play_ringtone_idler = NULL;
+ return EINA_FALSE;
}
void __ringtone_start_change_cb(void *data, Evas_Object *obj, void *event_info)
{
+ SETTING_TRACE_BEGIN;
ret_if(data == NULL);
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ ret_if(ad == NULL);
+ //if(haptic_stop_all_effects(ad->hnd_hpt) != 0){
+ // SETTING_TRACE("Error,haptic_stop_all_effects")
+ //}
ad->cur_vol_type = SETTING_VOL_TYPE_RINGTONE;
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+#if 0
+ if(ad->mp_ringtone == NULL)
+ {
+ setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_RINGTONE);
+ if(list_item->chk_status > 0)
+ {
+ char *pa_tone_path = NULL;
+ pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
+ if(pa_tone_path == NULL)
+ {
+ if(isEmulBin())
+ pa_tone_path = (char *)strdup(SETTING_DEFAULT_CALL_TONE_SDK);
+ else
+ pa_tone_path = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
+
+ if(vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_tone_path) < 0) {
+ FREE(pa_tone_path);
+ return;
+ }
+ }
+ setting_profile_play_sound_origin(&(ad->mp_ringtone), ad, NULL,
+ pa_tone_path,
+ (float)list_item->chk_status,
+ SOUND_TYPE_RINGTONE);
+ }
+ }
+#else
setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_RINGTONE);
+#endif
}
void __noti_start_change_cb(void *data, Evas_Object *obj, void *event_info)
{
+ SETTING_TRACE_BEGIN;
ret_if(data == NULL);
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ ret_if(ad == NULL);
+
+ //if(haptic_stop_all_effects(ad->hnd_hpt) != 0){
+ // SETTING_TRACE("Error,haptic_stop_all_effects")
+ //}
ad->cur_vol_type = SETTING_VOL_TYPE_NOTIFICATION;
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+#if 0
+ if(ad->mp_noti == NULL)
+ {
+ setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_NOTIFICATION);
+ if(list_item->chk_status > 0)
+ {
+ char *pa_tone_path = NULL;
+ pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_RINGTONE_PATH_STR);
+ if(pa_tone_path == NULL)
+ {
+ pa_tone_path = (char *)strdup(SETTING_DEFAULT_MSG_TONE);
+
+ if(vconf_set_str(VCONFKEY_SETAPPL_NOTI_RINGTONE_PATH_STR, pa_tone_path) < 0) {
+ FREE(pa_tone_path);
+ return;
+ }
+ }
+ setting_profile_play_sound_origin(&(ad->mp_noti), ad, NULL,
+ pa_tone_path,
+ (float)list_item->chk_status,
+ SOUND_TYPE_NOTIFICATION);
+ }
+ }
+#else
setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_NOTIFICATION);
+#endif
}
void __media_start_change_cb(void *data, Evas_Object *obj, void *event_info)
{
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ if(haptic_stop_all_effects(ad->hnd_hpt) != 0){
+ SETTING_TRACE("Error,haptic_stop_all_effects")
+ }
+
ad->cur_vol_type = SETTING_VOL_TYPE_MEDIA;
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+#if 0
+ if(ad->mp_media == NULL)
+ {
+ sound_type_e type;
+ sound_manager_get_current_sound_type(&type);
+ if(type != SOUND_TYPE_MEDIA)
+ {
+ setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_MEDIA);
+ if(list_item->chk_status > 0)
+ {
+ setting_profile_play_sound_origin(&(ad->mp_media), ad, NULL,
+ SETTING_DEFAULT_MEDIA_TONE,
+ (float)list_item->chk_status,
+ SOUND_TYPE_MEDIA);
+ }
+ }
+ }
+#else
setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_MEDIA);
+#endif
}
void __system_start_change_cb(void *data, Evas_Object *obj, void *event_info)
{
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ if(haptic_stop_all_effects(ad->hnd_hpt) != 0){
+ SETTING_TRACE("Error,haptic_stop_all_effects")
+ }
+
ad->cur_vol_type = SETTING_VOL_TYPE_SYSTEM;
- setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_SYSTEM);
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+
+ setting_profile_close_all_mm_players(ad);
}
void __noti_vib_start_change_cb(void *data, Evas_Object *obj, void *event_info)
ad->cur_vol_type = SETTING_VOL_TYPE_NOTI_VIB;
setting_profile_close_all_mm_players(ad);
- int err = 0;
- char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_NOTIFICATION_GENERAL, pattern_file, MAX_COMMON_BUFFER_LEN);
- haptic_stop_all_effects(ad->hnd_hpt);
- err = haptic_vibrate_file_with_detail(ad->hnd_hpt, pattern_file, 1, list_item->chk_status * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
- if (err < 0)
- SETTING_TRACE("Failed to play haptic monotone");
+ if(list_item->chk_status > 0)
+ {
+ SETTING_TRACE_DEBUG("play_value %d", list_item->chk_status);
+ int err = haptic_vibrate_file_with_detail(ad->hnd_hpt, SETTING_DEFAULT_NOTI_PREVIEW_VIB,
+ 1, list_item->chk_status * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ if(err != 0)
+ SETTING_TRACE_DEBUG("haptic_vibrate_file_with_detail() failed");
+ }
}
void __haptic_vib_start_change_cb(void *data, Evas_Object *obj, void *event_info)
- {
+{
SETTING_TRACE_BEGIN;
ret_if(data == NULL);
ad->cur_vol_type = SETTING_VOL_TYPE_HAPTIC_VIB;
setting_profile_close_all_mm_players(ad);
- int err = 0;
- char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_OPERATION_VIBRATION, pattern_file, MAX_COMMON_BUFFER_LEN);
- haptic_stop_all_effects(ad->hnd_hpt);
- err = haptic_vibrate_file_with_detail(ad->hnd_hpt, pattern_file, 1, list_item->chk_status * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
-
- if (err < 0)
- SETTING_TRACE("Failed to play haptic monotone");
+ if(list_item->chk_status > 0)
+ {
+ SETTING_TRACE_DEBUG("play_value %d", list_item->chk_status);
+ int err = haptic_vibrate_file_with_detail(ad->hnd_hpt, SETTING_DEFAULT_HAPTIC_PREVIEW_VIB,
+ 1, list_item->chk_status * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ if(err != 0)
+ SETTING_TRACE_DEBUG("haptic_vibrate_file_with_detail() failed");
+ }
}
void __volume_stop_change_cb(void *data, Evas_Object *obj, void *event_info)
{
SETTING_TRACE_BEGIN;
+#if 0
ret_if(data == NULL);
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
- char *pa_tone_path = NULL;
- player_h **player = NULL;
+ SETTING_TRACE("cur_vol_type : %d", ad->cur_vol_type);
double value = elm_slider_value_get(obj);
- list_item->chk_status = (unsigned int)(value+0.5);
+ SETTING_TRACE("value : %f", value);
+ list_item->chk_status = (int)(value+0.5);
+ SETTING_TRACE("list_item->chk_status : %d", list_item->chk_status);
+ elm_slider_value_set(obj, list_item->chk_status);
+ /* Change left icon of sliders */
+ char *left_icon = NULL;
switch(ad->cur_vol_type)
{
- case SETTING_VOL_TYPE_RINGTONE:
- sound_manager_set_volume(SOUND_TYPE_RINGTONE, list_item->chk_status);
- player = &(ad->mp_ringtone);
- if(*player != NULL)
- return;
- SETTING_TRACE_DEBUG("ringtone player will be created");
- pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
- if(pa_tone_path == NULL)
- {
- pa_tone_path = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
-
- if(vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_tone_path) < 0) {
- FREE(pa_tone_path);
- return;
- }
- }
- setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
- pa_tone_path,
- (float)value,
- SOUND_TYPE_RINGTONE);
- break;
- case SETTING_VOL_TYPE_NOTIFICATION:
- sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, list_item->chk_status);
- player = &(ad->mp_noti);
- if(*player != NULL)
- return;
- SETTING_TRACE_DEBUG("noti player will be created");
- pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
- if(pa_tone_path == NULL)
- {
- pa_tone_path = (char *)strdup(SETTING_DEFAULT_MSG_TONE);
- if(vconf_set_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, SETTING_DEFAULT_MSG_TONE) < 0) {
- FREE(pa_tone_path);
- return;
- }
- }
- setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
- pa_tone_path,
- (float)value,
- SOUND_TYPE_NOTIFICATION);
+ case SETTING_VOL_TYPE_RINGTONE :
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_CALL, list_item->chk_status);
break;
- case SETTING_VOL_TYPE_MEDIA:
- sound_manager_set_volume(SOUND_TYPE_MEDIA, list_item->chk_status);
- player = &(ad->mp_media);
- if(*player != NULL)
- return;
- SETTING_TRACE_DEBUG("media player will be created");
- pa_tone_path = (char*)strdup(SETTING_DEFAULT_MEDIA_TONE);
-
- sound_type_e type;
- int ret = sound_manager_get_current_sound_type(&type);
- SETTING_TRACE("sound_manager_get_current_sound_type() : type %d, ret = %d", type, ret);
- if(type != SOUND_TYPE_MEDIA)
- {
- setting_profile_play_sound_origin(player, ad, __mm_player_msg_cb,
- pa_tone_path,
- (float)value,
- SOUND_TYPE_MEDIA);
- }
+ case SETTING_VOL_TYPE_NOTIFICATION :
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_NOTI, list_item->chk_status);
break;
- case SETTING_VOL_TYPE_SYSTEM:
- sound_manager_set_volume(SOUND_TYPE_SYSTEM, list_item->chk_status);
- player = &(ad->mp_sys);
- if(*player != NULL)
- return;
- SETTING_TRACE_DEBUG("ringtone player will be created");
-
- feedback_initialize();
- feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_SIP);
- feedback_deinitialize();
+ case SETTING_VOL_TYPE_MEDIA :
+ /* MEDIA has just one icon type. No need to change */
+ return;
+ case SETTING_VOL_TYPE_SYSTEM :
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_SYSTEM, list_item->chk_status);
break;
default:
- return;
- }
-
- if(pa_tone_path) {
- free(pa_tone_path);
- pa_tone_path = NULL;
+ break;
}
- SETTING_TRACE_END;
-}
+ if(!left_icon)
+ return;
-void __vibration_stop_change_cb(void *data, Evas_Object *obj, void *event_info)
-{
+ Evas_Object *cur_icon = elm_object_content_unset(obj);
+ if(cur_icon)
+ {
+ evas_object_del(cur_icon);
+ cur_icon = NULL;
+ }
+ Evas_Object *icon = elm_icon_add(obj);
+ elm_image_file_set(icon, left_icon, NULL);
+ evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+ elm_object_content_set(obj, icon);
+ evas_object_show(icon);
+#else
ret_if(data == NULL);
-
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
- SettingProfileUG *ad = list_item->userdata;
-
- if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
- SETTING_TRACE("ERROR haptic_stop_all_effects");
- /* return; */
+ SETTING_TRACE("chk_status : %d, slider : %f", list_item->chk_status, elm_slider_value_get(obj));
+ if(list_item->chk_status == 0)
+ {
+ elm_slider_value_set(obj, 0.0);
}
-#if DISABLED_CODE
- double value = 0.0;
- switch(ad->cur_vol_type)
+ else if(list_item->chk_status == 15)
{
- case SETTING_VOL_TYPE_NOTI_VIB:
- if(ad->data_vib_volume)
- {
- value = elm_slider_value_get(ad->data_vib_volume->eo_check);
- list_item->chk_status = (int)(value + 0.5);
- vconf_set_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, list_item->chk_status);
- if(value < 0.5)
- elm_slider_value_set(ad->data_vib_volume->eo_check, 0);
- else
- elm_slider_value_set(ad->data_vib_volume->eo_check, list_item->chk_status);
- }
- break;
- case SETTING_VOL_TYPE_HAPTIC_VIB:
- if(ad->data_touch_vib)
- {
- value = elm_slider_value_get(ad->data_touch_vib->eo_check);
- list_item->chk_status = (int)(value + 0.5);
- vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, list_item->chk_status);
- vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, list_item->chk_status);
- if(value < 0.5)
- elm_slider_value_set(ad->data_touch_vib->eo_check, 0);
- else
- elm_slider_value_set(ad->data_touch_vib->eo_check, (unsigned int)(value+0.5));
- }
- break;
- default:
- break;
+ elm_slider_value_set(obj, 15.0);
}
#endif
- ad->cur_vol_type = SETTING_VOL_TYPE_MAX;
SETTING_TRACE_END;
}
-static void __main_list_unrealized_cb(void *data, Evas_Object *obj, void *event_info)
+void __vibration_stop_change_cb(void *data, Evas_Object *obj, void *event_info)
{
- SETTING_TRACE_BEGIN;
ret_if(data == NULL);
- SettingProfileUG *ad = (SettingProfileUG *) data;
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
+ //SettingProfileUG *ad = list_item->userdata;
- Elm_Object_Item *item = (Elm_Object_Item *)event_info;
- Setting_GenGroupItem_Data *list_item =
- (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
+ double value = elm_slider_value_get(obj);
+ list_item->chk_status = (int)(value+0.5);
+ elm_slider_value_set(obj, list_item->chk_status);
- /* backup each slider's value */
- if(list_item == ad->data_call_volume)
- sound_manager_set_volume(SOUND_TYPE_RINGTONE, ad->data_call_volume->chk_status);
- else if(list_item == ad->data_noti_volume)
- sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, ad->data_noti_volume->chk_status);
- else if(list_item == ad->data_media_volume)
- sound_manager_set_volume(SOUND_TYPE_MEDIA, ad->data_media_volume->chk_status);
- else if(list_item == ad->data_touch_volume)
- sound_manager_set_volume(SOUND_TYPE_SYSTEM, ad->data_touch_volume->chk_status);
- else if(list_item == ad->data_vib_volume)
- vconf_set_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, ad->data_vib_volume->chk_status);
- else if(list_item == ad->data_touch_vib)
- vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, ad->data_touch_vib->chk_status);
+ SETTING_TRACE_END;
}
-static Evas_Object *__get_main_list(void *data)
+void ___sound_destroy_ug_cb(ui_gadget_h ug, void *priv)
{
- retv_if(data == NULL, NULL);
-
- SettingProfileUG *ad = (SettingProfileUG *) data;
-
- __setting_profile_ug_key_grab(ad);
+ ret_if(priv == NULL);
+ SettingProfileUG *ad = priv;
+ if (ug) {
+ setting_ug_destroy(ug);
+ ad->ug_loading = NULL;
+ }
+}
- if(ad->sub_view[SETTING_PROF_VIEW_VOL])
- return ad->sub_view[SETTING_PROF_VIEW_VOL];
+char* __get_sound_mode_str(void)
+{
+ // update radio
+ int sound = 0;
+ int vibration = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &sound);
+ vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vibration);
+
+ if(sound && !vibration)
+ return (char*)g_strdup("IDS_ST_HEADER_SOUND");
+ else if(vibration && !sound)
+ return (char*)g_strdup("IDS_ST_BODY_CALLALERTTYPE_VIBRATION");
+ else if(!vibration && !sound)
+ return (char*)g_strdup("IDS_ST_BODY_MUTE");
+ else
+ return NULL;
+}
- Evas_Object *genlist = elm_genlist_add(ad->navi_bar);
- elm_object_style_set(genlist, "dialogue");
- retvm_if(genlist == NULL, NULL,
- "Cannot set genlist object as contento of layout");
- elm_genlist_clear(genlist); /* first to clear list */
+static void __get_lite_main_list(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ SettingProfileUG *ad = (SettingProfileUG *)data;
int vconf_value = 0;
- int mm_value = 0;
+ char *sub_desc = NULL;
- Elm_Object_Item *item = elm_genlist_item_append(genlist,
- &(ad->itc_seperator), NULL, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ Evas_Object *genlist = NULL;
+ ADD_GENLIST(genlist, ad->navi_bar);
+ ad->gl_lite_main = genlist;
+ elm_genlist_block_count_set(genlist, 3);
+ setting_enable_expandable_genlist(genlist, ad, __sound_exp_cb, NULL);
- /* a.use sound */
- if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &vconf_value) < 0)
- vconf_value = TRUE; /* default value of sound : on */
- ad->data_sound =
- setting_create_Gendial_field_def(genlist, &(ad->itc_1text_1icon),
- setting_profile_sound_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1TOGGLE, NULL,
- NULL, vconf_value,
- SETTING_SOUND_TEXT_SOUND, NULL,
- setting_profile_sound_main_Gendial_chk_cb);
- if (ad->data_sound) {
- ad->data_sound->userdata = ad;
- } else {
- SETTING_TRACE_ERROR("ad->data_sound is NULL");
- }
- /* b.use vib */
- if (vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vconf_value) < 0)
- vconf_value = TRUE; /* default value of vibration : on */
- ad->data_vibration =
- setting_create_Gendial_field_def(genlist, &(ad->itc_1text_1icon),
+ /* 1. Sound mode */
+ sub_desc = __get_sound_mode_str();
+ ad->data_sound_mode =
+ setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
setting_profile_sound_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1TOGGLE, NULL,
- NULL, vconf_value,
- SETTING_SOUND_TEXT_VIBRATION, NULL,
- setting_profile_sound_main_Gendial_chk_cb);
- if (ad->data_vibration) {
- ad->data_vibration->userdata = ad;
+ ad, SWALLOW_Type_INVALID, NULL,
+ NULL, 0, "IDS_ST_OPT_SOUND_MODE_ABB",
+ sub_desc, NULL);
+ if (ad->data_sound_mode) {
+ ad->data_sound_mode->userdata = ad;
+ setting_genlist_item_groupstyle_set(ad->data_sound_mode, SETTING_GROUP_STYLE_TOP);
} else {
- SETTING_TRACE_ERROR("ad->data_vibration is NULL");
+ SETTING_TRACE_ERROR("ad->data_call_alert_tone is NULL");
}
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(ad->itc_group_item),
- "IDS_ST_BODY_VOLUME", NULL);
+ G_FREE(sub_desc);
- /* d.call volumn. */
- if(sound_manager_get_volume(SOUND_TYPE_RINGTONE, &mm_value) < 0)
- mm_value = SETTING_DEFAULT_RINGTONE_VOL_INT;
- ad->data_call_volume =
- setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
- NULL,
- SWALLOW_Type_LAYOUT_SLIDER,
- IMG_SLIDER_BTN_VOLUME01,
- IMG_SLIDER_BTN_VOLUME02, mm_value,
- SETTING_SOUND_TEXT_INCOMING_CALL,
- NULL,
- setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb);
- if (ad->data_call_volume) {
- ad->data_call_volume->win_main = ad->win_main_layout;
- ad->data_call_volume->evas = ad->evas;
- ad->data_call_volume->isIndicatorVisible = true;
- ad->data_call_volume->slider_min = 0;
- ad->data_call_volume->slider_max = SETTING_SOUND_VOL_MAX;
- ad->data_call_volume->userdata = ad;
- ad->data_call_volume->start_change_cb = __ringtone_start_change_cb;
- ad->data_call_volume->stop_change_cb = __volume_stop_change_cb;
- ad->data_call_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
- } else {
- SETTING_TRACE_ERROR("ad->data_call_volume is NULL");
- }
+ /* 2. Volume */
+ setting_create_Gendial_field_def(genlist, &itc_1text,
+ setting_profile_sound_main_mouse_up_Gendial_list_cb,
+ data, SWALLOW_Type_INVALID, NULL,
+ NULL, 0,
+ VOLUME_STR, NULL, NULL);
- /* e.noti volumn */
- if(sound_manager_get_volume(SOUND_TYPE_NOTIFICATION, &mm_value) < 0)
- mm_value = SETTING_DEFAULT_NOTI_VOL_INT;
-
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(itc_group_item),
- SETTING_SOUND_TEXT_NOTIFICATION, NULL);
- ad->data_noti_volume =
- setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
- NULL,
- SWALLOW_Type_LAYOUT_SLIDER,
- IMG_SLIDER_BTN_VOLUME01,
- IMG_SLIDER_BTN_VOLUME02, mm_value,
- NULL,//SETTING_SOUND_TEXT_NOTIFICATION,
- NULL,
- setting_profile_sound_main_noti_sound_slider_value_change_cb);
- if (ad->data_noti_volume) {
- ad->data_noti_volume->win_main = ad->win_main_layout;
- ad->data_noti_volume->evas = ad->evas;
- ad->data_noti_volume->isIndicatorVisible = true;
- ad->data_noti_volume->slider_min = 0;
- ad->data_noti_volume->slider_max = SETTING_SOUND_VOL_MAX;
- ad->data_noti_volume->userdata = ad;
- ad->data_noti_volume->start_change_cb = __noti_start_change_cb;
- ad->data_noti_volume->stop_change_cb = __volume_stop_change_cb;
- ad->data_noti_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
- } else {
- SETTING_TRACE_ERROR("ad->data_noti_volume is NULL");
- }
-
- /* g.media volume */
- if(sound_manager_get_volume(SOUND_TYPE_MEDIA, &mm_value) < 0)
- mm_value = SETTING_DEFAULT_MEDIA_VOL_INT;
-
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(itc_group_item),
- SETTING_SOUND_TEXT_MEDIA, NULL);
- ad->data_media_volume =
- setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
- NULL,
- SWALLOW_Type_LAYOUT_SLIDER,
- IMG_SLIDER_BTN_VOLUME01,
- IMG_SLIDER_BTN_VOLUME02, mm_value,
- NULL, NULL,
- setting_profile_sound_main_media_sound_slider_value_change_cb);
- if (ad->data_media_volume) {
- ad->data_media_volume->win_main = ad->win_main_layout;
- ad->data_media_volume->evas = ad->evas;
- ad->data_media_volume->isIndicatorVisible = true;
- ad->data_media_volume->slider_min = 0;
- ad->data_media_volume->slider_max = SETTING_SOUND_VOL_MAX;
- ad->data_media_volume->userdata = ad;
- ad->data_media_volume->start_change_cb = __media_start_change_cb;
- ad->data_media_volume->stop_change_cb = __volume_stop_change_cb;
- ad->data_media_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
- } else {
- SETTING_TRACE_ERROR("ad->data_media_volume is NULL");
- }
-
- /* h.system volume */
- if(sound_manager_get_volume(SOUND_TYPE_SYSTEM, &mm_value) < 0)
- {
- SETTING_TRACE_DEBUG("Fail to get volume");
- mm_value = SETTING_DEFAULT_SYSTEM_VOL_INT;
- }
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(itc_group_item),
- SETTING_SOUND_TEXT_SYSTEM, NULL);
- ad->data_touch_volume =
- setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
- NULL,
- SWALLOW_Type_LAYOUT_SLIDER,
- IMG_SLIDER_BTN_VOLUME01,
- IMG_SLIDER_BTN_VOLUME02, mm_value,
- NULL, NULL,
- settings_profile_sound_main_sys_sound_slider_value_change_cb);
- if (ad->data_touch_volume) {
- ad->data_touch_volume->win_main = ad->win_main_layout;
- ad->data_touch_volume->evas = ad->evas;
- ad->data_touch_volume->isIndicatorVisible = true;
- ad->data_touch_volume->slider_min = 0;
- ad->data_touch_volume->slider_max = SETTING_SOUND_VOL_MAX;
- ad->data_touch_volume->userdata = ad;
- ad->data_touch_volume->start_change_cb = __system_start_change_cb;
- ad->data_touch_volume->stop_change_cb = __volume_stop_change_cb;
- ad->data_touch_volume->belongs_to = SETTING_VOL_SOUND_GROUP;
- } else {
- SETTING_TRACE_ERROR("ad->data_touch_volume is NULL");
- }
-
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(ad->itc_group_item),
- "IDS_ST_BODY_CALLALERTTYPE_VIBRATION", NULL);
-
- /* f.noti vib */
- if (vconf_get_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, &vconf_value) < 0)
- vconf_value = SETTING_DEFAULT_NOTI_VIB_INT; /* default value of notification vibration volume : 5 */
-
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(itc_group_item),
- SETTING_SOUND_TEXT_NOTIFICATION, NULL);
- ad->data_vib_volume =
- setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
- NULL,
- SWALLOW_Type_LAYOUT_SLIDER,
- IMG_VIBRATION_ICON_01,
- IMG_VIBRATION_ICON_02, vconf_value,
- NULL,//SETTING_SOUND_TEXT_NOTIFICATION,
- NULL,
- setting_profile_sound_main_vib_sound_slider_value_change_cb);
- if (ad->data_vib_volume) {
- ad->data_vib_volume->win_main = ad->win_main_layout;
- ad->data_vib_volume->evas = ad->evas;
- ad->data_vib_volume->isIndicatorVisible = true;
- ad->data_vib_volume->slider_min = 0;
- ad->data_vib_volume->slider_max = SETTING_VIB_VOL_MAX;
- ad->data_vib_volume->userdata = ad;
- ad->data_vib_volume->start_change_cb = __noti_vib_start_change_cb;
- ad->data_vib_volume->stop_change_cb = __vibration_stop_change_cb;
- ad->data_vib_volume->belongs_to = SETTING_VOL_VIBRATION_GROUP;
- } else {
- SETTING_TRACE_ERROR("ad->data_vib_volume is NULL");
- }
-
- /* i.haptic vib */
- if (vconf_get_int
- (VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &vconf_value) < 0)
- vconf_value = SETTING_DEFAULT_HAPTIC_VIB_INT; /* default value of haptic vibration volume : 3 */
-
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(itc_group_item),
- "IDS_ST_BODY_SOUNDFEEDBACK_HAPTIC_FEEDBACK", NULL);
- ad->data_touch_vib =
- setting_create_Gendial_field_def(genlist, &(ad->itc_layout), NULL,
- NULL,
- SWALLOW_Type_LAYOUT_SLIDER,
- IMG_VIBRATION_ICON_01,
- IMG_VIBRATION_ICON_02, vconf_value,
- NULL, NULL,
- setting_profile_sound_main_touchVib_sound_slider_value_change_cb);
- if (ad->data_touch_vib) {
- ad->data_touch_vib->win_main = ad->win_main_layout;
- ad->data_touch_vib->evas = ad->evas;
- ad->data_touch_vib->isIndicatorVisible = true;
- ad->data_touch_vib->slider_min = 0;
- ad->data_touch_vib->slider_max = SETTING_VIB_VOL_MAX;
- ad->data_touch_vib->userdata = ad;
- ad->data_touch_vib->start_change_cb = __haptic_vib_start_change_cb;
- ad->data_touch_vib->stop_change_cb = __vibration_stop_change_cb;
- ad->data_touch_vib->belongs_to = SETTING_VOL_VIBRATION_GROUP;
- } else {
- SETTING_TRACE_ERROR("ad->data_touch_vib is NULL");
- }
-
- setting_create_Gendial_field_def(genlist, &(ad->itc_bg_1icon),
- NULL, ad,
- SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
- NULL, NULL, 0, SOUND_DESC, NULL, NULL);
- elm_genlist_item_select_mode_set(elm_genlist_item_append(genlist, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-
- /* Touch sounds */
- if (vconf_get_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, &vconf_value) < 0)
- vconf_value = TRUE; /* default value of touch sounds : on */
-
- ad->data_touch_sounds =
- setting_create_Gendial_field_def(genlist, &(ad->itc_1text_1icon),
- setting_profile_sound_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_1TOGGLE, NULL,
- NULL, vconf_value,
- "IDS_ST_BODY_TOUCH_SOUNDS",
- NULL,
- setting_profile_sound_main_Gendial_chk_cb);
- if (ad->data_touch_sounds) {
- ad->data_touch_sounds->userdata = ad;
- } else {
- SETTING_TRACE_ERROR("ad->data_lock_sound is NULL");
- }
-
- setting_create_Gendial_field_def(genlist, &(ad->itc_bg_1icon),
- NULL, ad,
- SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
- NULL, NULL, 0, "IDS_ST_BODY_PLAY_SOUND_WHEN_MAKING_SCREEN_SELECTION", NULL, NULL);
- elm_genlist_item_select_mode_set(elm_genlist_item_append(genlist, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
- ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-
- __change_state_of_sliderbars(ad);
-
- //evas_object_smart_callback_add(genlist, "unrealized", __main_list_unrealized_cb, ad);
-
- ad->sub_view[SETTING_PROF_VIEW_VOL] = genlist;
-
- return ad->sub_view[SETTING_PROF_VIEW_VOL];
-}
-
-static Evas_Object *__get_ringtone_list(void *data)
-{
- retv_if(data == NULL, NULL);
- SettingProfileUG *ad = (SettingProfileUG *) data;
-
- if(ad->sub_view[SETTING_PROF_VIEW_RTN])
- return ad->sub_view[SETTING_PROF_VIEW_RTN];
-
- Evas_Object *genlist = elm_genlist_add(ad->navi_bar);
- elm_object_style_set(genlist, "dialogue");
- retvm_if(genlist == NULL, NULL,
- "Cannot set genlist object as contento of layout");
- elm_genlist_clear(genlist); /* first to clear list */
- setting_enable_expandable_genlist(genlist, ad, __sound_exp_cb, NULL);
+ ADD_GL_SEPARATOR(genlist)
- /* a. incoming call group */
+ /* Group title : Ringtones and notifications */
(void)setting_create_Gendial_field_titleItem(genlist,
- &(ad->itc_group_item),
- SETTING_SOUND_TEXT_INCOMING_CALL,
- NULL);
-
- /* a-1. ringtone */
+ &itc_group_item,
+ _(STR_RINGTONES_AND_NOTIFICATIONS), NULL);
+ /* 3. Ringtones */
int vconf_ret = 0;
- char *sub_desc = NULL;
char *pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
{
- pa_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
+ if(isEmulBin())
+ pa_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE_SDK);
+ else
+ pa_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, pa_ringtone);
if(vconf_ret < 0)
SETTING_TRACE_DEBUG("failed to set vconf");
}
- sub_desc = setting_file_basename(pa_ringtone);
+ sub_desc = setting_media_basename(pa_ringtone);
ad->data_call_alert_tone =
setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
setting_profile_sound_main_mouse_up_Gendial_list_cb,
ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0, SETTING_SOUND_TEXT_CALL_RINGTONE,
+ NULL, 0, SETTING_SOUND_TEXT_RINGTONES,
sub_desc, NULL);
if (ad->data_call_alert_tone) {
ad->data_call_alert_tone->userdata = ad;
+ setting_genlist_item_groupstyle_set(ad->data_call_alert_tone, SETTING_GROUP_STYLE_TOP);
} else {
SETTING_TRACE_ERROR("ad->data_call_alert_tone is NULL");
}
FREE(pa_ringtone);
G_FREE(sub_desc);
- /* b. notification */
- (void)setting_create_Gendial_field_titleItem(genlist,
- &(ad->itc_group_item),
- SETTING_SOUND_TEXT_NOTIFICATION,
- NULL);
-
- int repeat_value = 0;
-
- /* b-1. msg ringtone */
+ /* 4. Notification alert */
pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
{
if(vconf_ret < 0)
SETTING_TRACE_DEBUG("failed to set vconf");
}
- sub_desc = setting_file_basename(pa_ringtone);
+ sub_desc = setting_media_basename(pa_ringtone);
ad->data_msg_alert_tone =
setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
setting_profile_sound_main_mouse_up_Gendial_list_cb,
ad, SWALLOW_Type_INVALID, NULL,
NULL, 0,
- SETTING_SOUND_TEXT_MSG_ALERT,
+ SETTING_SOUND_TEXT_NOTIFICATION_ALERT/*SETTING_SOUND_TEXT_MSG_ALERT*/,
sub_desc, NULL);
if (ad->data_msg_alert_tone) {
ad->data_msg_alert_tone->userdata = ad;
+ ad->data_msg_alert_tone->group_style = SETTING_GROUP_STYLE_TOP;
+ setting_genlist_item_groupstyle_set(ad->data_msg_alert_tone, SETTING_GROUP_STYLE_TOP);
} else {
SETTING_TRACE_ERROR("ad->data_msg_alert_tone is NULL");
}
FREE(pa_ringtone);
G_FREE(sub_desc);
- /* b-2. msg alert repetition */
- if (vconf_get_int
- (VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, &repeat_value) != 0)
- repeat_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
+ /* 5. Notification alert repetition */
+ if (vconf_get_int(VCONFKEY_SETAPPL_NOTI_MSG_ALERT_REP_TYPE_INT, &vconf_value) != 0)
+ vconf_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
ad->data_msg_alert_repeat =
setting_create_Gendial_exp_parent_field(genlist,
- &(ad->itc_2text_3_parent),
- setting_profile_sound_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID,
- SETTING_SOUND_TEXT_MSG_RINGTONE_REPEAT,
- _(repeat_type[repeat_value]));
+ &itc_2text_3_parent,
+ NULL, NULL, SWALLOW_Type_INVALID,
+ SETTING_SOUND_TEXT_NOTIFICATION_ALERT_REPETITION/*SETTING_SOUND_TEXT_MSG_RINGTONE_REPEAT*/,
+ _(repeat_type[vconf_value]),
+ SETTING_GROUP_STYLE_CENTER, SETTING_GROUP_STYLE_CENTER);
if (ad->data_msg_alert_repeat) {
ad->data_msg_alert_repeat->int_slp_setting_binded =
- INT_SLP_SETTING_MSG_ALERT_REPEAT;
+ INT_SLP_SETTING_MSG_ALERT_REPEAT;
} else {
SETTING_TRACE_ERROR("ad->data_msg_alert_repeat is NULL");
}
- /* b-3. email ringtone */
- pa_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR);
- if(setting_profile_check_file_exist(ad, pa_ringtone) == SETTING_RETURN_FAIL)
+ /* 1. Vibrate when ringing */
+ if (vconf_get_bool(VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL, &vconf_value) < 0)
{
- pa_ringtone = (char *)strdup(SETTING_DEFAULT_EMAIL_TONE);
- vconf_ret = vconf_set_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR, SETTING_DEFAULT_EMAIL_TONE);
- if(vconf_ret < 0)
- SETTING_TRACE_DEBUG("failed to set vconf");
- }
- sub_desc = setting_file_basename(pa_ringtone);
-
- ad->data_email_alert_tone =
- setting_create_Gendial_field_def(genlist, &(ad->itc_2text_2),
- setting_profile_sound_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID, NULL,
- NULL, 0,
- SETTING_SOUND_TEXT_EMAIL_ALERT,
- sub_desc, NULL);
- if (ad->data_email_alert_tone) {
- ad->data_email_alert_tone->userdata = ad;
- } else {
- SETTING_TRACE_ERROR("ad->data_email_alert_tone is NULL");
- }
- FREE(pa_ringtone);
- G_FREE(sub_desc);
-
- /* b-4. email alert repetition */
- if (vconf_get_int
- (VCONFKEY_SETAPPL_NOTI_EMAIL_ALERT_REP_TYPE_INT,
- &repeat_value) != 0)
- repeat_value = SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT; /* default 0 : repeat once */
- ad->data_email_alert_repeat =
- setting_create_Gendial_exp_parent_field(genlist,
- &(ad->itc_2text_3_parent),
- setting_profile_sound_main_mouse_up_Gendial_list_cb,
- ad, SWALLOW_Type_INVALID,
- SETTING_SOUND_TEXT_EMAIL_RINGTONE_REPEAT,
- _(repeat_type[repeat_value]));
- if (ad->data_email_alert_repeat) {
- ad->data_email_alert_repeat->int_slp_setting_binded =
- INT_SLP_SETTING_EMAIL_ALERT_REPEAT;
- } else {
- SETTING_TRACE_ERROR("ad->data_email_alert_repeat is NULL");
+ vconf_value = TRUE; /* default value of vibrate sound : on */
}
+ ADD_TOGGLE_MENU(ad->data_sound_when_ring, genlist, itc_1text_1icon, SETTING_SOUND_TEXT_VIBRATE_WHEN_RING, vconf_value, SETTING_GROUP_STYLE_NONE, ad);
- Elm_Object_Item *item = NULL;
- item = elm_genlist_item_append(genlist, &itc_bottom_seperator, NULL, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ /* Group title : Feedback */
+ setting_create_Gendial_field_titleItem(genlist,
+ &itc_group_item,
+ _(STR_FEEDBACK), NULL);
- ad->sub_view[SETTING_PROF_VIEW_RTN] = genlist;
+ /* 6. Keytones */
+ if (vconf_get_bool(VCONFKEY_SETAPPL_BUTTON_SOUNDS_BOOL, &vconf_value) < 0)
+ vconf_value = TRUE; /* default value of touch sounds : on */
+ ADD_TOGGLE_MENU(ad->data_button_sounds, genlist, itc_1text_1icon, "IDS_ST_MBODY_DIALLING_KEYPAD_TONE", vconf_value, SETTING_GROUP_STYLE_NONE, ad)
+ ADD_GL_HELP(genlist,"IDS_ST_BODY_PLAY_TONE_WHEN_THE_DIALLING_KEYPAD_IS_TAPPED");
- return ad->sub_view[SETTING_PROF_VIEW_RTN];
+ /* 7. Touch sounds */
+ if (vconf_get_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, &vconf_value) < 0)
+ vconf_value = TRUE; /* default value of touch sounds : on */
+ ADD_TOGGLE_MENU(ad->data_touch_sounds, genlist, itc_1text_1icon, "IDS_ST_BODY_TOUCH_SOUNDS", vconf_value, SETTING_GROUP_STYLE_NONE, ad)
+ ADD_GL_HELP(genlist,"IDS_ST_BODY_PLAY_SOUND_WHEN_MAKING_SCREEN_SELECTION");
+
+ /* 8. Screen lock sound */
+ if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &vconf_value) < 0)
+ vconf_value = 0; /* default value of lock/unlock sound : off */
+ ADD_TOGGLE_MENU(ad->data_lock_sound, genlist, itc_1text_1icon, SETTING_SOUND_TEXT_LOCK_SOUND, vconf_value, SETTING_GROUP_STYLE_NONE, ad)
+ ADD_GL_HELP(genlist,"IDS_ST_BODY_PLAY_SOUNDS_WHEN_LOCKING_AND_UNLOCKING_SCREEN");
}
-static void __view_change_cb(void *data, Evas_Object *obj, void *event_info)
-{
- //appcore_measure_start();
- retm_if(event_info == NULL, "Invalid argmuent: event info is NULL");
- retm_if(data == NULL, "Invalid argmuent: data is NULL");
-
- SettingProfileUG *ad = (SettingProfileUG *) data;
-
- if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
- SETTING_TRACE("ERROR haptic_stop_all_effects");
- /* return; */
- }
- setting_profile_close_all_mm_players(ad);
-
- Evas_Object *sub_view = NULL;
- Elm_Object_Item *sel_item = elm_toolbar_selected_item_get(obj);
- const char *tab_lable = elm_object_item_text_get(sel_item);
- ret_if(!tab_lable);
- //SETTING_TRACE("tab_lable:%s", tab_lable);
- if (0 == safeStrCmp(tab_lable, VOLUME_STR)) {
- if(ad->hnd_hpt)
- haptic_stop_all_effects(ad->hnd_hpt);
- sub_view = __get_main_list(ad);
- } else if (0 == safeStrCmp(tab_lable, RINGTONE_STR)) {
- sub_view = __get_ringtone_list(ad);
- }
-
- Evas_Object *old_sub_view = elm_object_part_content_get(ad->view_layout, "elm.swallow.content");
- ret_if(old_sub_view == sub_view);
- if (sub_view) {
- if (old_sub_view)
- {
- elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
- evas_object_hide(old_sub_view);
- }
- elm_object_part_content_set(ad->view_layout, "elm.swallow.content", sub_view);
- evas_object_show(sub_view);
- }
-}
static int setting_profile_sound_main_create(void *cb)
{
+ SETTING_TRACE_BEGIN;
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
SettingProfileUG *ad = (SettingProfileUG *) cb;
ad->ly_main = setting_create_win_layout(ad->win_main_layout, ad->win_get);
ad->navi_bar = setting_create_navi_bar(ad->ly_main);
- /* view layout */
- Evas_Object *view_layout = elm_layout_add(ad->win_main_layout);
- elm_layout_theme_set(view_layout, "layout", "application", "default");
- evas_object_show(view_layout);
- ad->view_layout = view_layout;
-
- Evas_Object *tabbar= elm_toolbar_add(ad->navi_bar);
- if(tabbar == NULL)
- return SETTING_RETURN_FAIL;
-
- elm_object_part_content_set(view_layout, "elm.swallow.tabbar", tabbar);
- ad->ctrl_bar = tabbar;
- elm_toolbar_shrink_mode_set(tabbar, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_object_style_set(tabbar, "tabbar");
- elm_toolbar_transverse_expanded_set(tabbar, EINA_TRUE);
-
- ad->ctrl_item[0] = elm_toolbar_item_append(tabbar,
- IMG_CTRL_ICON_VOLUME,
- VOLUME_STR, __view_change_cb, ad);
-
- ad->ctrl_item[1] = elm_toolbar_item_append(tabbar,
- IMG_CTRL_ICON_RINGTONE,
- RINGTONE_STR, __view_change_cb, ad);
-
- elm_toolbar_select_mode_set(tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
- elm_toolbar_item_selected_set(ad->ctrl_item[0], EINA_TRUE);
+ SETTING_TRACE("1");
+ __get_lite_main_list(ad);
+ Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->navi_bar, KeyStr_Sounds, NULL, NULL, ad->gl_lite_main, NULL);
+ elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
- Evas_Object *ug_back_btn = elm_button_add(ad->navi_bar);
- elm_object_style_set(ug_back_btn, NAVI_BACK_BUTTON_STYLE);
- evas_object_smart_callback_add(ug_back_btn, "clicked", setting_profile_sound_main_click_softkey_cancel_cb, ad);
+ SETTING_TRACE("viewtype: %s", ad->viewtype);
+ if(!safeStrCmp(ad->viewtype, "org.tizen.setting.volume"))
+ {
+ SETTING_TRACE("ENTER setting_profile_sound_main_create_popup_with_sliders");
+ setting_profile_sound_main_create_popup_with_sliders(ad);
+ }
- Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->navi_bar, _(KeyStr_Sounds), ug_back_btn, NULL, ad->view_layout, "tabbar");
- elm_object_item_part_content_set(navi_it, "tabbar", tabbar);
- //elm_naviframe_item_title_visible_set(navi_it, EINA_FALSE);
+ SETTING_TRACE("2");
+ elm_naviframe_item_pop_cb_set(navi_it, (Elm_Naviframe_Item_Pop_Cb)setting_profile_sound_main_click_softkey_cancel_cb, ad);
setting_view_profile_sound_main.is_create = TRUE;
+ SETTING_TRACE("3");
return SETTING_RETURN_SUCCESS;
}
{
/* error check */
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
+ SETTING_TRACE_BEGIN;
SettingProfileUG *ad = (SettingProfileUG *) cb;
+ if (ad->set_sound_idler) {
+ ecore_idler_del(ad->set_sound_idler);
+ ad->set_sound_idler = NULL;
+ }
+ if (ad->set_vib_idler) {
+ ecore_idler_del(ad->set_vib_idler);
+ ad->set_vib_idler = NULL;
+ }
- __setting_profile_ug_key_ungrab(ad);
+ if(ad->play_ringtone_idler)
+ {
+ ecore_idler_del(ad->play_ringtone_idler);
+ ad->play_ringtone_idler = NULL;
+ }
- if (ad->ly_main != NULL) {
- //Fix the memory leak,
- //Manage ad->sub_view[] separately, unset first, then delete in together
- if (ad->view_layout)
- {
- elm_object_part_content_unset(ad->view_layout, "elm.swallow.content");
- }
- int i = SETTING_PROF_VIEW_VOL;
- for (; i < SETTING_PROF_VIEW_MAX; i++ )
- {
- evas_object_del(ad->sub_view[i]);
- }
+ //__setting_profile_ug_key_ungrab(ad);
+ //__setting_profile_ug_menu_key_ungrab(ad);
+
+ if(ad->volume_popup)
+ {
+ evas_object_del(ad->volume_popup);
+ ad->volume_popup = NULL;
+ }
+ if(ad->sound_mode_popup)
+ {
+ evas_object_del(ad->sound_mode_popup);
+ ad->sound_mode_popup = NULL;
+ }
+ if (ad->ly_main != NULL) {
evas_object_del(ad->ly_main);
setting_view_profile_sound_main.is_create = FALSE;
}
static int setting_profile_sound_main_update(void *cb)
{
- SETTING_TRACE_BEGIN;
/* error check */
retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
if (ad->ly_main != NULL) {
evas_object_show(ad->ly_main);
}
-
- int volume = 0;
-
- sound_manager_get_volume(SOUND_TYPE_RINGTONE, &volume);
- SETTING_TRACE_DEBUG("ringtone volume is %d", volume);
- if(ad->data_call_volume && ad->data_call_volume->eo_check)
- elm_slider_value_set(ad->data_call_volume->eo_check, (double)volume);
-
return SETTING_RETURN_SUCCESS;
}
*
***************************************************/
-static void setting_profile_sound_main_click_softkey_cancel_cb(void *data,
- Evas_Object *obj,
- void *event_info)
+static Eina_Bool setting_profile_sound_main_click_softkey_cancel_cb(void *data, Elm_Object_Item *it)
{
/* error check */
- ret_if(data == NULL);
+ retv_if(data == NULL, EINA_FALSE);
SettingProfileUG *ad = (SettingProfileUG *) data;
+ SETTING_TRACE_BEGIN;
/* close mm plaer */
setting_profile_close_all_mm_players(ad);
/* close vibration */
if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
SETTING_TRACE("ERROR haptic_stop_all_effects");
- /* return; */
}
/* Send destroy request */
ug_destroy_me(ad->ug);
- return;
+ return EINA_FALSE;
}
static void setting_profile_sound_main_destroy_myfile_ug_cb(ui_gadget_h ug, void *priv)
{
+ SETTING_TRACE_BEGIN;
ret_if(priv == NULL);
SettingProfileUG *ad = (SettingProfileUG *) priv;
- __setting_profile_ug_key_grab(ad);
+ //__setting_profile_ug_key_grab(ad);
if (ug) {
- ug_destroy(ug);
+ setting_ug_destroy(ug);
ad->ug_loading = NULL;
}
}
static void
setting_profile_sound_main_result_myfile_ug_cb(ui_gadget_h ug,
- service_h result, void *priv)
+ app_control_h result, void *priv)
{
+ SETTING_TRACE_BEGIN;
ret_if(priv == NULL);
SettingProfileUG *ad = (SettingProfileUG *) priv;
char *ringtone_file = NULL;
char *ringtone_path = NULL;
- service_get_extra_data(result, "result", &ringtone_path);
+ app_control_get_extra_data(result, "result", &ringtone_path);
if(!ringtone_path)
return;
+ char *recommend_time = NULL;
+ app_control_get_extra_data(result, "position", &recommend_time);
+
SETTING_TRACE("ringtone_path:%s", ringtone_path);
if (ringtone_path != NULL) {
- ringtone_file = setting_file_basename(ringtone_path);
+ ringtone_file = setting_media_basename(ringtone_path);
SETTING_TRACE("ringtone_file:%s", ringtone_file);
- if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_CALL_RINGTONE)) {
+ if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_RINGTONES)) {
if (vconf_set_str
(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, ringtone_path) == 0) {
if (ad->data_call_alert_tone) {
elm_genlist_item_update(ad->data_call_alert_tone->item);
}
}
+ if(recommend_time)
+ {
+ char recommend_info[512] = {0,};
+ snprintf(recommend_info, 512, "%s; %smsec", ringtone_path, recommend_time);
+ SETTING_TRACE_DEBUG("%s", recommend_info);
+ vconf_set_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_WITH_RECOMMENDATION_TIME_STR, recommend_info);
+ }
} else if (0 ==
- safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_MSG_ALERT)) {
+ safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_NOTIFICATION_ALERT)) {
if (vconf_set_str
(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, ringtone_path) == 0) {
if (ad->data_msg_alert_tone) {
}
}
+ FREE(ringtone_path);
+ FREE(recommend_time);
G_FREE(ringtone_file);
return;
}
{
ret_if(priv == NULL);
- SettingProfileUG *ad = (SettingProfileUG *) priv;
+ //SettingProfileUG *ad = (SettingProfileUG *) priv;
Evas_Object *base;
base = (Evas_Object *) ug_get_layout(ug);
}
-static void setting_profile_sound_main_create_myfile_ug(SettingProfileUG *ad)
+static void setting_profile_sound_main_create_myfile_ug(SettingProfileUG *ad, char *titleID)
{
ret_if(ad == NULL);
cbs->destroy_cb = setting_profile_sound_main_destroy_myfile_ug_cb;
cbs->priv = (void *)ad;
- service_h svc;
- if (service_create(&svc)) {
+ app_control_h svc;
+ if (app_control_create(&svc)) {
FREE(cbs);
return;
}
const char *pa_cur_ringtone = NULL;
const char *dir_path = NULL;
- if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_CALL_RINGTONE)) {
+ if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_RINGTONES)) {
pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
if (pa_cur_ringtone == NULL)
{
- pa_cur_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
+ if(isEmulBin())
+ pa_cur_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE_SDK);
+ else
+ pa_cur_ringtone = (char *)strdup(SETTING_DEFAULT_CALL_TONE);
}
dir_path = SETTING_PROFILE_SOUND_RINGTONES_PATH;
- } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_MSG_ALERT)) {
+ } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_NOTIFICATION_ALERT)) {
pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
if (pa_cur_ringtone == NULL)
pa_cur_ringtone = (char *)strdup(SETTING_DEFAULT_MSG_TONE);
dir_path = SETTING_PROFILE_SOUND_ALERTS_PATH;
- } else if (0 == safeStrCmp(ad->ringtone_type, SETTING_SOUND_TEXT_EMAIL_ALERT)) {
- pa_cur_ringtone = vconf_get_str(VCONFKEY_SETAPPL_NOTI_EMAIL_RINGTONE_PATH_STR);
- if (pa_cur_ringtone == NULL)
- pa_cur_ringtone = (char *)strdup(SETTING_DEFAULT_EMAIL_TONE);
- dir_path = SETTING_PROFILE_SOUND_ALERTS_PATH;
}
SETTING_TRACE("pa_cur_ringtone:\t%s", pa_cur_ringtone);
SETTING_TRACE("dir_path:\t%s", dir_path);
- service_add_extra_data(svc, "marked_mode", pa_cur_ringtone);
- service_add_extra_data(svc, "path", dir_path);
- service_add_extra_data(svc, "select_type", "SINGLE_FILE");
- service_add_extra_data(svc, "file_type", "SOUND");
- service_add_extra_data(svc, "drm_type", "DRM_ALL");
-
+ app_control_add_extra_data(svc, "title", titleID);
+ app_control_add_extra_data(svc, "domain", SETTING_PACKAGE);
+ app_control_add_extra_data(svc, "path", dir_path);
+ app_control_add_extra_data(svc, "select_type", "SINGLE_FILE");
+ app_control_add_extra_data(svc, "file_type", "SOUND");
+ app_control_add_extra_data(svc, "drm_type", "DRM_ALL");
+ app_control_add_extra_data(svc, "silent", "silent show"); /* Show Silent item in the list */
+ if(safeStrCmp(pa_cur_ringtone, "silent") == 0)
+ app_control_add_extra_data(svc, "marked_mode", "silent"); /* Set radio on Silent item */
+ else
+ app_control_add_extra_data(svc, "marked_mode", pa_cur_ringtone);
+
+ elm_object_tree_focus_allow_set(ad->ly_main, EINA_FALSE);
SETTING_TRACE("ad->ug->layout:%p", (void *)ug_get_layout(ad->ug));
- ad->ug_loading = ug_create(ad->ug, "myfile-efl", UG_MODE_FULLVIEW, svc, cbs);
+ ad->ug_loading = setting_ug_create(ad->ug, "setting-ringtone-efl", UG_MODE_FULLVIEW, svc, cbs);
if (NULL == ad->ug_loading) { /* error handling */
SETTING_TRACE_ERROR("NULL == ad->ug_loading");
}
- service_destroy(svc);
+ app_control_destroy(svc);
FREE(cbs);
/** @todo verify it's valid */
if(pa_cur_ringtone) {
- free(pa_cur_ringtone);
+ free((void *)pa_cur_ringtone);
pa_cur_ringtone = NULL;
}
- __setting_profile_ug_key_ungrab(ad);
+ //__setting_profile_ug_key_ungrab(ad);
+ //__setting_profile_ug_menu_key_grab(ad);
return;
}
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
+
+ if(SETTING_RETURN_SUCCESS != setting_profile_close_all_mm_players(ad)){
+ SETTING_TRACE_ERROR("close player fail.");
+ }
int state = list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
/* restore the selected check status */
- list_item->chk_status = state;
- elm_check_state_set(list_item->eo_check, state);
+ setting_update_gl_item_chk_status(list_item, state);
if (!safeStrCmp(SETTING_SOUND_TEXT_SOUND, list_item->keyStr)) {
if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, list_item->chk_status) < 0) {
- list_item->chk_status = !state;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
+ setting_update_gl_item_chk_status(list_item, !state);
}
- if (list_item->chk_status) {
- setting_enable_genlist_item(ad->data_call_volume->item);
- setting_enable_genlist_item(ad->data_noti_volume->item);
- setting_enable_genlist_item(ad->data_media_volume->item);
- setting_enable_genlist_item(ad->data_touch_volume->item);
- } else {
+ if (!list_item->chk_status) {
setting_profile_close_all_mm_players(ad);
- setting_disable_genlist_item(ad->data_call_volume->item);
- setting_disable_genlist_item(ad->data_noti_volume->item);
- setting_disable_genlist_item(ad->data_media_volume->item);
- setting_disable_genlist_item(ad->data_touch_volume->item);
}
} else if (!safeStrCmp(SETTING_SOUND_TEXT_VIBRATION, list_item->keyStr)) {
if (vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, list_item->chk_status) < 0) {
- list_item->chk_status = !state;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
+ setting_update_gl_item_chk_status(list_item, !state);
}
if (list_item->chk_status) {
- setting_enable_genlist_item(ad->data_vib_volume->item);
- setting_enable_genlist_item(ad->data_touch_vib->item);
-
/* Play vib if vib turns on */
int err = 0;
- char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_NOTIFICATION_GENERAL, pattern_file, sizeof(pattern_file));
- haptic_stop_all_effects(ad->hnd_hpt);
- err = haptic_vibrate_file_with_detail(ad->hnd_hpt, pattern_file, 1, (int)(elm_slider_value_get(ad->data_vib_volume->eo_check)+0.5) * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ int noti_vib = 5;
+ if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
+ SETTING_TRACE("ERROR haptic_stop_all_effects");
+ }
+ if(ad->data_vib_volume && ad->data_vib_volume->eo_check)
+ noti_vib = (int)(elm_slider_value_get(ad->data_vib_volume->eo_check) + 0.5);
+ err = haptic_vibrate_file_with_detail(ad->hnd_hpt, SETTING_DEFAULT_NOTI_PREVIEW_VIB, 1, noti_vib * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
if (err < 0)
SETTING_TRACE("Failed to play haptic monotone");
if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
SETTING_TRACE("ERROR haptic_stop_all_effects");
}
- setting_disable_genlist_item(ad->data_vib_volume->item);
- setting_disable_genlist_item(ad->data_touch_vib->item);
}
}
/* additional items */
+ else if(!safeStrCmp(SETTING_SOUND_TEXT_VIBRATE_WHEN_RING, list_item->keyStr))
+ {
+ /* vibrate when ring*/
+ if(vconf_set_bool(VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL, list_item->chk_status) < 0)
+ {
+ setting_update_gl_item_chk_status(list_item, !state);
+ }
+ }
else if (!safeStrCmp(SETTING_SOUND_TEXT_LOCK_SOUND, list_item->keyStr)) {
if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, list_item->chk_status) < 0) {
- list_item->chk_status = !state;
- elm_check_state_set(list_item->eo_check, !state);
+ setting_update_gl_item_chk_status(list_item, !state);
+ }
+ }
+ else if (!safeStrCmp("IDS_ST_MBODY_DIALLING_KEYPAD_TONE", list_item->keyStr)) {
+ if (vconf_set_bool(VCONFKEY_SETAPPL_BUTTON_SOUNDS_BOOL, list_item->chk_status) < 0) {
+ setting_update_gl_item_chk_status(list_item, !state);
}
}
else if (!safeStrCmp("IDS_ST_BODY_TOUCH_SOUNDS", list_item->keyStr)) {
if (vconf_set_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, list_item->chk_status) < 0) {
- list_item->chk_status = !state;
- elm_check_state_set(list_item->eo_check, !state);
+ setting_update_gl_item_chk_status(list_item, !state);
+ }
+ }
+ else if (!safeStrCmp("IDS_SMEMO_MBODY_HAPTIC_FEEDBACK", list_item->keyStr)) {
+ if (vconf_set_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, list_item->chk_status) < 0) {
+ setting_update_gl_item_chk_status(list_item, !state);
}
}
/* end */
+ SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
+}
+
+static void __slider_popup_del_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ SETTING_TRACE(" REMOVE THE POPUP OBJECT BY THIS FUNCTION ");
+
+ SettingProfileUG *ad = data;
+ if(ad)
+ {
+ if(ad->volume_popup)
+ {
+ evas_object_del(ad->volume_popup);
+ ad->volume_popup = NULL;
+ }
+ ad->data_call_volume = NULL;
+ ad->data_noti_volume = NULL;
+ ad->data_media_volume = NULL;
+ ad->data_touch_volume = NULL;
+ //__setting_profile_ug_key_ungrab(ad);
+ setting_profile_close_all_mm_players(ad);
+ }
+ if(!safeStrCmp(ad->viewtype, "org.tizen.setting.volume"))
+ {
+ ug_destroy_me(ad->ug);
+ elm_exit();
+ }
+}
+
+static void setting_profile_sound_main_create_popup_with_sliders(void *data)
+{
+ ret_if(!data);
+ SettingProfileUG *ad = data;
+
+ int mm_value = 0;
+ int sound_value = 0;
+ char *left_icon = NULL;
+
+ Evas_Object *genlist;
+ Evas_Object *box;
+ Evas_Object *done_btn;
+
+ ad->volume_popup = elm_popup_add(ad->win_get);
+ ea_object_event_callback_add(ad->volume_popup, EA_CALLBACK_BACK, __slider_popup_del_cb, ad);
+ evas_object_size_hint_weight_set(ad->volume_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_text_set(ad->volume_popup, "title,text", _(VOLUME_STR));
+ //evas_object_smart_callback_add(popup, "block,clicked", __slider_popup_del_cb, ad);
+
+ /* Done button */
+ done_btn = elm_button_add(ad->volume_popup);
+ elm_object_text_set(done_btn, _("IDS_ST_SK3_DONE"));
+ elm_object_part_content_set(ad->volume_popup, "button1", done_btn);
+ elm_object_style_set(done_btn, "popup");
+ evas_object_smart_callback_add(done_btn, "clicked", __slider_popup_del_cb, ad);
+
+ box = elm_box_add(ad->volume_popup);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ genlist = elm_genlist_add(box);
+ elm_genlist_realization_mode_set(genlist, EINA_TRUE);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &sound_value) < 0)
+ sound_value = TRUE; /* default value of sound : on */
+
+ /* d.call volumn. */
+ if(sound_manager_get_volume(SOUND_TYPE_RINGTONE, &mm_value) < 0)
+ mm_value = SETTING_DEFAULT_RINGTONE_VOL_INT;
+ if(sound_value == FALSE)
+ mm_value = 0;
+
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_CALL, mm_value);
+
+ ADD_SLIDER_MENU(ad->data_call_volume, genlist, ad->itc_layout,
+ left_icon, NULL/*IMG_SLIDER_BTN_RING_VOLUME*/,
+ mm_value, SETTING_SOUND_TEXT_INCOMING_CALL, ad,
+ setting_profile_sound_main_call_ringtone_sound_slider_value_change_cb,
+ SETTING_SOUND_VOL_MAX,
+ __ringtone_start_change_cb, __volume_stop_change_cb,
+ SETTING_VOL_VIBRATION_GROUP, SETTING_GROUP_STYLE_TOP)
+
+ elm_genlist_item_select_mode_set(ad->data_call_volume->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* e.noti volumn */
+ if(sound_manager_get_volume(SOUND_TYPE_NOTIFICATION, &mm_value) < 0)
+ mm_value = SETTING_DEFAULT_NOTI_VOL_INT;
+ if(sound_value == FALSE)
+ mm_value = 0;
+
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_NOTI, mm_value);
+
+ ADD_SLIDER_MENU(ad->data_noti_volume, genlist, ad->itc_layout,
+ left_icon, NULL/*IMG_SLIDER_BTN_NOTI_VOLUME*/,
+ mm_value, SETTING_SOUND_TEXT_NOTIFICATION, ad,
+ setting_profile_sound_main_noti_sound_slider_value_change_cb,
+ SETTING_SOUND_VOL_MAX,
+ __noti_start_change_cb, __volume_stop_change_cb,
+ SETTING_VOL_SOUND_GROUP, SETTING_GROUP_STYLE_CENTER)
+
+ elm_genlist_item_select_mode_set(ad->data_noti_volume->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* g.media volume */
+ if(sound_manager_get_volume(SOUND_TYPE_MEDIA, &mm_value) < 0)
+ mm_value = SETTING_DEFAULT_MEDIA_VOL_INT;
+
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_MEDIA, mm_value);
+
+ ADD_SLIDER_MENU(ad->data_media_volume, genlist, ad->itc_layout,
+ left_icon, NULL/*IMG_SLIDER_BTN_VOLUME02*/,
+ mm_value, SETTING_SOUND_TEXT_MEDIA, ad,
+ setting_profile_sound_main_media_sound_slider_value_change_cb,
+ SETTING_SOUND_VOL_MAX,
+ __media_start_change_cb, __volume_stop_change_cb,
+ SETTING_VOL_VIBRATION_GROUP, SETTING_GROUP_STYLE_CENTER)
+
+ elm_genlist_item_select_mode_set(ad->data_media_volume->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ /* h.system volume */
+ if(sound_manager_get_volume(SOUND_TYPE_SYSTEM, &mm_value) < 0)
+ {
+ SETTING_TRACE_DEBUG("Fail to get volume");
+ mm_value = SETTING_DEFAULT_SYSTEM_VOL_INT;
+ }
+ if(sound_value == FALSE)
+ mm_value = 0;
+
+ left_icon = setting_profile_get_slider_icon(SND_SLIDER_SYSTEM, mm_value);
+
+ ADD_SLIDER_MENU(ad->data_touch_volume, genlist, ad->itc_layout,
+ left_icon, NULL/*IMG_SLIDER_BTN_SYSTEM_VOLUME*/,
+ mm_value, SETTING_SOUND_TEXT_SYSTEM, ad,
+ settings_profile_sound_main_sys_sound_slider_value_change_cb,
+ SETTING_SOUND_VOL_MAX,
+ __system_start_change_cb, __volume_stop_change_cb,
+ SETTING_VOL_SOUND_GROUP, SETTING_GROUP_STYLE_BOTTOM)
+ evas_object_show(genlist);
+ elm_box_pack_end(box, genlist);
+
+ int w = 0, h= 0;
+ elm_win_screen_size_get(ad->win_get, NULL, NULL, &w, &h);
+ //ecore_x_window_size_get(ecore_x_window_root_first_get(), &w,&h);
+ double popup_height = (double)h * ((double)470/(double)800);
+ SETTING_TRACE("popup_height : %d", (int)popup_height);
+ evas_object_size_hint_min_set(box, -1, (int)popup_height);
+
+ elm_object_content_set(ad->volume_popup, box);
+ evas_object_show(ad->volume_popup);
+
+ //__setting_profile_ug_key_grab(ad);
+}
+
+static void __sound_mode_item_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /* error check */
+ ret_if(data == NULL);
+ retm_if(event_info == NULL, "Invalid argument: event info is NULL");
+
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ elm_genlist_item_selected_set(item, 0);
+
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
+
+ SettingProfileUG *ad = data;
+
+ SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
+ if (!safeStrCmp("IDS_ST_HEADER_SOUND", list_item->keyStr))
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, TRUE);
+ elm_radio_value_set(ad->sound_mode_rdg, 0);
+ }
+ else if (!safeStrCmp("IDS_ST_BODY_CALLALERTTYPE_VIBRATION", list_item->keyStr))
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, TRUE);
+ elm_radio_value_set(ad->sound_mode_rdg, 1);
+ }
+ else if (!safeStrCmp("IDS_ST_BODY_MUTE", list_item->keyStr))
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
+ elm_radio_value_set(ad->sound_mode_rdg, 2);
+ }
+
+ if(ad->data_sound_mode && ad->data_sound_mode->item)
+ {
+ G_FREE(ad->data_sound_mode->sub_desc);
+ ad->data_sound_mode->sub_desc = __get_sound_mode_str();
+ elm_genlist_item_update(ad->data_sound_mode->item);
+ }
+
+ if(ad->sound_mode_popup)
+ {
+ evas_object_del(ad->sound_mode_popup);
+ ad->sound_mode_popup = NULL;
+ }
+}
+
+static void __sound_mode_chk_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ /* error check */
+ retm_if(event_info == NULL, "Invalid argument: event info is NULL");
+
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ elm_genlist_item_selected_set(item, 0);
+
+ int selected_value = elm_radio_value_get(obj);
+ SETTING_TRACE("selected radio : %d", selected_value);
+
+ if (selected_value == 0)
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, TRUE);
+ }
+ else if (selected_value == 1)
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, TRUE);
+ }
+ else if (selected_value == 2)
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
+ }
+
+ ret_if(data == NULL);
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *)data;
+ SettingProfileUG *ad = (SettingProfileUG *)list_item->userdata;
+ ret_if(ad == NULL);
+
+ if(ad->sound_mode_popup)
+ {
+ evas_object_del(ad->sound_mode_popup);
+ ad->sound_mode_popup = NULL;
+ }
+}
+
+static void __sound_mode_popup_del_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE(" REMOVE THE POPUP OBJECT BY THIS FUNCTION ");
+
+ SettingProfileUG *ad = data;
+ if(ad)
+ {
+ if(ad->sound_mode_popup)
+ {
+ evas_object_del(ad->sound_mode_popup);
+ ad->sound_mode_popup = NULL;
+ }
+ }
+}
+
+static void setting_profile_sound_main_create_sound_mode_popup(void *data)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(data == NULL, "data is NULL");
+
+ SettingProfileUG *ad = (SettingProfileUG *)data;
+
+ ad->sound_mode_popup = elm_popup_add(ad->win_get);
+ ea_object_event_callback_add(ad->sound_mode_popup, EA_CALLBACK_BACK, __sound_mode_popup_del_cb, ad);
+ evas_object_size_hint_weight_set(ad->sound_mode_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_smart_callback_add(ad->sound_mode_popup, "block,clicked", NULL, NULL);
+ elm_object_part_text_set(ad->sound_mode_popup, "title,text", _("IDS_ST_OPT_SOUND_MODE_ABB"));
+
+ Evas_Object *box = NULL;
+ box = elm_box_add(ad->sound_mode_popup);
+ evas_object_size_hint_weight_set(ad->sound_mode_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ Evas_Object *menu_glist = elm_genlist_add(box);
+ elm_genlist_mode_set(menu_glist, ELM_LIST_COMPRESS);
+ evas_object_size_hint_weight_set(menu_glist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(menu_glist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ Evas_Object *rdg = elm_radio_add(menu_glist);
+ elm_object_style_set(rdg, "list");
+ evas_object_propagate_events_set(rdg, EINA_TRUE);
+ elm_radio_state_value_set(rdg, -1);
+ evas_object_data_set(menu_glist, "radio", rdg);
+ ad->sound_mode_rdg = rdg;
+
+ setting_create_Gendial_field_1radio(menu_glist, &itc_1text_1icon,
+ __sound_mode_item_cb, ad,
+ SWALLOW_Type_1RADIO,
+ rdg, 0, "IDS_ST_HEADER_SOUND",
+ __sound_mode_chk_changed_cb);
+
+ setting_create_Gendial_field_1radio(menu_glist, &itc_1text_1icon,
+ __sound_mode_item_cb, ad,
+ SWALLOW_Type_1RADIO,
+ rdg, 1, "IDS_ST_BODY_CALLALERTTYPE_VIBRATION",
+ __sound_mode_chk_changed_cb);
+
+ setting_create_Gendial_field_1radio(menu_glist, &itc_1text_1icon,
+ __sound_mode_item_cb, ad,
+ SWALLOW_Type_1RADIO,
+ rdg, 2, "IDS_ST_BODY_MUTE",
+ __sound_mode_chk_changed_cb);
+
+ evas_object_show(menu_glist);
+ elm_box_pack_end(box, menu_glist);
+ evas_object_size_hint_min_set(box, -1, 288*elm_config_scale_get());
+ elm_object_content_set(ad->sound_mode_popup, box);
+ evas_object_show(ad->sound_mode_popup);
+
+ // update radio
+ int sound = 0;
+ int vibration = 0;
+ vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &sound);
+ vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vibration);
+
+ if(sound && !vibration)
+ elm_radio_value_set(rdg, 0);
+ else if(vibration && !sound)
+ elm_radio_value_set(rdg, 1);
+ else if(!vibration && !sound)
+ elm_radio_value_set(rdg, 2);
}
static void
Elm_Object_Item *item = (Elm_Object_Item *) event_info;
elm_genlist_item_selected_set(item, 0);
+ char *swip_happened = evas_object_data_get(obj, "swip_happened");
+ if(!safeStrCmp(swip_happened, "TRUE"))
+ {
+ evas_object_data_set(obj, "swip_happened", NULL);
+ return;
+ }
Setting_GenGroupItem_Data *list_item =
(Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
SettingProfileUG *ad = data;
- if(ad->hnd_hpt)
- haptic_stop_all_effects(ad->hnd_hpt);
+ if(SETTING_RETURN_SUCCESS != setting_profile_close_all_mm_players(ad)){
+ SETTING_TRACE_ERROR("close player fail.");
+ }
+
+ if (ad->hnd_hpt) {
+ int ret = haptic_stop_all_effects(ad->hnd_hpt);
+ if (ret != HAPTIC_ERROR_NONE) {
+ SETTING_TRACE_ERROR("haptic_stop_all_effects fail");
+ }
+ }
SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
- if (!safeStrCmp(SETTING_SOUND_TEXT_CALL_RINGTONE, list_item->keyStr)
- || !safeStrCmp(SETTING_SOUND_TEXT_MSG_ALERT, list_item->keyStr)
- || !safeStrCmp(SETTING_SOUND_TEXT_EMAIL_ALERT, list_item->keyStr)) {
+ if (!safeStrCmp(SETTING_SOUND_TEXT_RINGTONES, list_item->keyStr)
+ || !safeStrCmp(SETTING_SOUND_TEXT_NOTIFICATION_ALERT, list_item->keyStr))
+ {
ad->ringtone_type = list_item->keyStr;
- setting_profile_sound_main_create_myfile_ug(ad);
- } else if (!safeStrCmp(SETTING_SOUND_TEXT_SOUND, list_item->keyStr)) {
- int old_status = elm_check_state_get(list_item->eo_check);
- if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, !old_status) == 0) {
+ setting_profile_sound_main_create_myfile_ug(ad, list_item->keyStr);
+ }
+ else if(!safeStrCmp(VOLUME_STR, list_item->keyStr))
+ {
+ /* Create slider popup */
+ setting_profile_sound_main_create_popup_with_sliders(ad);
+ }
+ else if(!safeStrCmp("IDS_ST_OPT_SOUND_MODE_ABB", list_item->keyStr))
+ {
+ setting_profile_sound_main_create_sound_mode_popup(ad);
+ }
+ /* additional */
+ else if(!safeStrCmp(SETTING_SOUND_TEXT_VIBRATE_WHEN_RING, list_item->keyStr))
+ {
+ /* vibrate when ring*/
+ int old_status = list_item->chk_status;//elm_check_state_get(list_item->eo_check);
+ if (vconf_set_bool(VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL, !old_status) == 0) {
/* new status */
- list_item->chk_status = !old_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
- if (list_item->chk_status) {
- setting_enable_genlist_item(ad->data_call_volume->item);
- setting_enable_genlist_item(ad->data_noti_volume->item);
- setting_enable_genlist_item(ad->data_media_volume->item);
- setting_enable_genlist_item(ad->data_touch_volume->item);
- } else {
- setting_profile_close_all_mm_players(ad);
- setting_disable_genlist_item(ad->data_call_volume->item);
- setting_disable_genlist_item(ad->data_noti_volume->item);
- setting_disable_genlist_item(ad->data_media_volume->item);
- setting_disable_genlist_item(ad->data_touch_volume->item);
- }
+ setting_update_gl_item_chk_status(list_item, !old_status);
}
- return;
- } else if (!safeStrCmp(SETTING_SOUND_TEXT_VIBRATION, list_item->keyStr)) {
- int old_status = elm_check_state_get(list_item->eo_check);
- if (vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, !old_status) == 0) {
+ }
+ else if (!safeStrCmp(SETTING_SOUND_TEXT_LOCK_SOUND, list_item->keyStr))
+ {
+ int old_status = list_item->chk_status;//elm_check_state_get(list_item->eo_check);
+ if (vconf_set_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, !old_status) == 0) {
/* new status */
- list_item->chk_status = !old_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
- if (list_item->chk_status) {
- setting_enable_genlist_item(ad->data_vib_volume->item);
- setting_enable_genlist_item(ad->data_touch_vib->item);
-
- /* Play vib if vib turns on */
- int err = 0;
- char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_NOTIFICATION_GENERAL, pattern_file, sizeof(pattern_file));
- haptic_stop_all_effects(ad->hnd_hpt);
- err = haptic_vibrate_file_with_detail(ad->hnd_hpt, pattern_file, 1, (int)(elm_slider_value_get(ad->data_vib_volume->eo_check)+0.5) * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
-
- if (err < 0)
- SETTING_TRACE("Failed to play haptic monotone");
- } else {
- if (haptic_stop_all_effects(ad->hnd_hpt) != 0) {
- SETTING_TRACE("ERROR haptic_stop_all_effects");
- }
- setting_disable_genlist_item(ad->data_vib_volume->item);
- setting_disable_genlist_item(ad->data_touch_vib->item);
- }
+ setting_update_gl_item_chk_status(list_item, !old_status);
}
- return;
}
- else if (!safeStrCmp("IDS_ST_BODY_TOUCH_SOUNDS", list_item->keyStr)) {
- int old_status = elm_check_state_get(list_item->eo_check);
+ else if (!safeStrCmp("IDS_ST_MBODY_DIALLING_KEYPAD_TONE", list_item->keyStr))
+ {
+ int old_status = list_item->chk_status;//elm_check_state_get(list_item->eo_check);
+ /* To do : set vconfkey for touch sounds */
+ if (vconf_set_bool(VCONFKEY_SETAPPL_BUTTON_SOUNDS_BOOL, !old_status) == 0) {
+ /* new status */
+ setting_update_gl_item_chk_status(list_item, !old_status);
+ }
+ }
+ else if (!safeStrCmp("IDS_ST_BODY_TOUCH_SOUNDS", list_item->keyStr))
+ {
+ int old_status = list_item->chk_status;//elm_check_state_get(list_item->eo_check);
/* To do : set vconfkey for touch sounds */
if (vconf_set_bool(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, !old_status) == 0) {
/* new status */
- list_item->chk_status = !old_status;
- elm_check_state_set(list_item->eo_check, list_item->chk_status);
+ setting_update_gl_item_chk_status(list_item, !old_status);
+ }
+ }
+ else if (!safeStrCmp("IDS_SMEMO_MBODY_HAPTIC_FEEDBACK", list_item->keyStr))
+ {
+ int old_status = list_item->chk_status;//elm_check_state_get(list_item->eo_check);
+ /* To do : set vconfkey for touch sounds */
+ if (vconf_set_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, !old_status) == 0) {
+ /* new status */
+ setting_update_gl_item_chk_status(list_item, !old_status);
+ }
+ }
+ else if (!safeStrCmp(SETTING_SOUND_TEXT_MYSOUND, list_item->keyStr))
+ {
+ SETTING_TRACE_DEBUG("Click My sound");
+ bool running = false;
+
+ app_manager_is_running("org.tizen.call-eq-analyzer", &running);
+
+ if (running == true) {
+ app_context_h appcontext = NULL;
+
+ SETTING_TRACE_DEBUG("resume app");
+
+ app_manager_get_app_context("org.tizen.call-eq-analyzer", &appcontext);
+ ret_if(NULL == appcontext);
+
+ app_manager_resume_app(appcontext);
+ } else {
+ app_control_h service = NULL;
+ int result = 0;
+ result = app_control_create(&service);
+ if(result != APP_CONTROL_ERROR_NONE) {
+ SETTING_TRACE_DEBUG("service_create fail!! ret=%d", result);
+ return;
+ }
+ ret_if(NULL == service);
+
+ app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT);
+ app_control_set_app_id(service, "org.tizen.call-eq-analyzer");
+
+ SETTING_TRACE_DEBUG("launch app");
+ app_control_send_launch_request(service, NULL, NULL);
+ app_control_destroy(service);
}
}
/* end */
- else if (ad->data_msg_alert_repeat == list_item
- || ad->data_email_alert_repeat == list_item) {
+ else if (ad->data_msg_alert_repeat == list_item)
+ {
bool status = !elm_genlist_item_expanded_get(item);
elm_genlist_item_expanded_set(item, status);
}
+#if 0
+ else if (ad->data_call_alert_vib == list_item)
+ {
+ /* Create new view for incoming call vibration */
+ setting_view_change(&setting_view_profile_sound_main, &setting_view_profile_sound_call_vibration, ad);
+ __setting_profile_ug_key_ungrab(ad);
+ __setting_profile_ug_menu_key_grab(ad);
+ }
+#endif
}
static void
Evas_Object *obj,
void *event_info)
{
+ SETTING_TRACE_BEGIN;
+
/* error check */
ret_if(data == NULL);
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
-
- if(ad->mp_ringtone == NULL)
- return;
+ //SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
if(list_item->chk_status != (int)(val+0.5))
{
list_item->chk_status = (int)(val+0.5);
sound_manager_set_volume(SOUND_TYPE_RINGTONE, list_item->chk_status);
SETTING_TRACE_DEBUG("ringtone volume is %d, %f", list_item->chk_status, val);
+
+ appcore_measure_start();
+
+ if(list_item->chk_status == 0)
+ {
+ /* change to Vibration mode */
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, FALSE);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, TRUE);
+ }
+ else
+ {
+ if(!ad->sound_on)
+ {
+ vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, TRUE);
+ vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, FALSE);
+ }
+ }
+ setting_profile_update_slider_icon(list_item, SND_SLIDER_CALL);
+ SETTING_TRACE_DEBUG("[TIME] change sound mode : %d msec ", appcore_measure_time());
+ }
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+
+ if(ad->play_ringtone_idler)
+ {
+ ecore_idler_del(ad->play_ringtone_idler);
+ ad->play_ringtone_idler = NULL;
}
+ ad->play_ringtone_idler = ecore_idler_add(__play_ringtone_sound_idle_cb, list_item);
+
+ //SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
}
static void
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
-
- if(ad->mp_noti == NULL)
- return;
+ //SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
if(list_item->chk_status != (int)(val+0.5))
{
- list_item->chk_status = val;
+ list_item->chk_status = (int)(val+0.5);
sound_manager_set_volume(SOUND_TYPE_NOTIFICATION, list_item->chk_status);
SETTING_TRACE_DEBUG("notification volume is %d, %f", list_item->chk_status, val);
+
+ setting_profile_update_slider_icon(list_item, SND_SLIDER_NOTI);
+ }
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+
+ if(ad->mp_noti == NULL)
+ {
+ setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_NOTIFICATION);
+ if(list_item->chk_status > 0)
+ {
+ char *pa_tone_path = NULL;
+ pa_tone_path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
+ if(pa_tone_path == NULL)
+ {
+ pa_tone_path = (char *)strdup(SETTING_DEFAULT_MSG_TONE);
+
+ if(vconf_set_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, pa_tone_path) < 0) {
+ FREE(pa_tone_path);
+ return;
+ }
+ }
+ setting_profile_play_sound_origin(&(ad->mp_noti), ad, NULL,
+ pa_tone_path,
+ (float)list_item->chk_status,
+ SOUND_TYPE_NOTIFICATION);
+ }
+ }
+ else
+ {
+ player_state_e state;
+ player_get_state(*(ad->mp_noti), &state);
+ SETTING_TRACE("noti player status : %d", state);
+ if(state == PLAYER_STATE_PAUSED)
+ {
+ player_start(*(ad->mp_noti));
+ }
}
+ //SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
}
+
+#define MAX_SAFETY_VOLUME_LEVEL 10
static void
setting_profile_sound_main_media_sound_slider_value_change_cb(void *data,
Evas_Object *obj,
{
/* error check */
ret_if(data == NULL);
-
- double val = elm_slider_value_get(obj);
+ static bool safety_flag = FALSE;
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ //SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
- if(ad->mp_media == NULL)
- return;
- if(list_item->chk_status != (int)(val+0.5))
+ double val = elm_slider_value_get(obj);
+ int value = (int)(val+0.5);
+ if(list_item->chk_status != value)
{
- list_item->chk_status = val;
- sound_manager_set_volume(SOUND_TYPE_MEDIA, list_item->chk_status);
+ if(safety_flag && (value > MAX_SAFETY_VOLUME_LEVEL))
+ return;
+
+ list_item->chk_status = value;
+ //int ret = sound_manager_set_volume_with_safety(SOUND_TYPE_MEDIA, value);
+ int ret = sound_manager_set_volume(SOUND_TYPE_MEDIA, value);
+ SETTING_TRACE_DEBUG("ret : 0x%.8x", ret);
+#if 0
+ if(ret == SOUND_MANAGER_ERROR_NO_OPERATION
+ || ret == SOUND_MANAGER_ERROR_INTERNAL)
+ {
+ SETTING_TRACE_DEBUG("didn't set safety volume");
+ if(value > MAX_SAFETY_VOLUME_LEVEL)
+ {
+ ad->data_media_volume->chk_status = MAX_SAFETY_VOLUME_LEVEL;
+ elm_slider_value_set(obj, list_item->chk_status);
+ safety_flag = TRUE;
+ return;
+ }
+ }
+#endif
+ safety_flag = FALSE;
+
SETTING_TRACE_DEBUG("media volume is %d, %f", list_item->chk_status, val);
}
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+
+ if(ad->mp_media == NULL)
+ {
+ setting_profile_close_other_mm_players_but_type(ad, SOUND_TYPE_MEDIA);
+ if(list_item->chk_status > 0)
+ {
+ char *pa_tone_path = NULL;
+ if(isEmulBin())
+ pa_tone_path = (char*)strdup(SETTING_DEFAULT_CALL_TONE_SDK);
+ else
+ pa_tone_path = (char*)strdup(SETTING_DEFAULT_MEDIA_TONE);
+
+ sound_type_e type;
+ sound_manager_get_current_sound_type(&type);
+ if(type != SOUND_TYPE_MEDIA)
+ setting_profile_play_sound_origin(&(ad->mp_media), ad, NULL,
+ pa_tone_path,
+ (float)list_item->chk_status,
+ SOUND_TYPE_MEDIA);
+ FREE(pa_tone_path);
+ }
+ }
+ else
+ {
+ player_state_e state;
+ player_get_state(*(ad->mp_media), &state);
+ SETTING_TRACE("ringtone player status : %d", state);
+ if(state == PLAYER_STATE_PAUSED)
+ {
+ player_start(*(ad->mp_media));
+ }
+ }
+ //SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
}
static void
/* error check */
ret_if(data == NULL);
- double val = elm_slider_value_get(obj);
+
+ //---------------------------------------------
+ const char *sub_type = NULL;
+ sub_type = elm_object_widget_type_get(obj);
+ SETTING_TRACE(">>>> slider type :%s", sub_type);
+ //---------------------------------------------
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ //SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
- if(ad->mp_sys == NULL)
+ if (!ad || !ad->data_touch_volume || !ad->data_touch_volume->eo_check)
+ {
+ SETTING_TRACE_ERROR("!ad || !ad->data_touch_volume || !ad->data_touch_volume->eo_check");
return;
+ }
- if(list_item->chk_status != (int)(val+0.5))
+ setting_profile_close_all_mm_players(ad);
+
+ //Get the current real value of slider
+ double val = elm_slider_value_get(obj);
+ int value = (int)(val+0.5);
+ sound_manager_set_volume(SOUND_TYPE_SYSTEM, value);
+ SETTING_TRACE_DEBUG("system volume is %d, %f", value, val);
+
+ setting_profile_create_warning_popup_during_call(ad);
+ if(ad->no_play_popup)
+ return;
+
+ if(list_item->chk_status != value)
{
- list_item->chk_status = val;
- sound_manager_set_volume(SOUND_TYPE_SYSTEM, list_item->chk_status);
- SETTING_TRACE_DEBUG("system volume is %d, %f", list_item->chk_status, val);
+ if(feedback_initialize() == FEEDBACK_ERROR_NONE)
+ {
+ feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP);
+ feedback_deinitialize();
+ }
+ list_item->chk_status = value;
+ setting_profile_update_slider_icon(list_item, SND_SLIDER_SYSTEM);
}
- feedback_initialize();
- feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_SIP);
- feedback_deinitialize();
+ //SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
}
static void
-setting_profile_sound_main_vib_sound_slider_value_change_cb(void *data,
+setting_profile_sound_main_call_vib_sound_slider_value_change_cb(void *data,
Evas_Object *obj,
void *event_info)
{
- SETTING_TRACE_BEGIN;
/* error check */
ret_if(data == NULL);
- static double priv_val_db = 5.0;
static int priv_val_int = 0;
double val = elm_slider_value_get(obj);
- SETTING_TRACE("val = %f", val);
+ SETTING_TRACE_DEBUG("val = %f", val);
Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
- int value;
+ int slider_value;
int err;
- value = (int)(val + 0.5); /* to sync displayed value on slider */
- list_item->chk_status = value;
- if (value != priv_val_int) {
- vconf_set_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, value);
- SETTING_TRACE_DEBUG("current %d", value);
- char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_NOTIFICATION_GENERAL, pattern_file, sizeof(pattern_file));
- haptic_stop_all_effects(ad->hnd_hpt);
- err = haptic_vibrate_file_with_detail(ad->hnd_hpt, pattern_file, 1, list_item->chk_status * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ slider_value = (int)(val+0.5); /* to sync displayed value on slider */
+ list_item->chk_status = slider_value;
+ if (slider_value != priv_val_int) {
+ setting_profile_close_all_mm_players(ad);
+ priv_val_int = slider_value;
+ vconf_set_int(VCONFKEY_SETAPPL_CALL_VIBRATION_LEVEL_INT, slider_value);
+ if(slider_value != 0)
+ {
+ SETTING_TRACE_DEBUG("play_value %d", slider_value);
+ char *call_vib_pattern = vconf_get_str(VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_STR);
+ if(!call_vib_pattern)
+ call_vib_pattern = (char*)strdup(SETTING_DEFAULT_CALL_PREVIEW_VIB);
+
+ err = haptic_vibrate_file_with_detail(ad->hnd_hpt, call_vib_pattern,
+ 1, slider_value * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ if(err != 0)
+ SETTING_TRACE_DEBUG("haptic_vibrate_file_with_detail() failed");
- if (err < 0)
- SETTING_TRACE("Failed to play haptic monotone");
- priv_val_int = value;
+ FREE(call_vib_pattern);
+ }
+ else
+ {
+ if (ad->hnd_hpt && haptic_stop_all_effects(ad->hnd_hpt) != 0) {
+ SETTING_TRACE("ERROR haptic_stop_all_effects");
+ }
+ }
+
+ setting_profile_update_slider_icon(list_item, SND_SLIDER_CALL_VIB);
}
- priv_val_db = val;
+ SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
+}
+
+static void
+setting_profile_sound_main_vib_sound_slider_value_change_cb(void *data,
+ Evas_Object *obj,
+ void *event_info)
+{
+ /* error check */
+ ret_if(data == NULL);
+ static int priv_val_int = 0;
+ double val = elm_slider_value_get(obj);
+ SETTING_TRACE_DEBUG("val = %f", val);
+ Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
+ SettingProfileUG *ad = list_item->userdata;
+ SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
+
+ int slider_value;
+ int err;
+
+ slider_value = (int)(val+0.5); /* to sync displayed value on slider */
+ list_item->chk_status = slider_value;
+ if (slider_value != priv_val_int) {
+ setting_profile_close_all_mm_players(ad);
+ priv_val_int = slider_value;
+ vconf_set_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, slider_value);
+ if(slider_value != 0)
+ {
+ SETTING_TRACE_DEBUG("play_value %d", slider_value);
+ err = haptic_vibrate_file_with_detail(ad->hnd_hpt, SETTING_DEFAULT_NOTI_PREVIEW_VIB,
+ 1, slider_value * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ if(err != 0)
+ SETTING_TRACE_DEBUG("haptic_vibrate_file_with_detail() failed");
+ }
+
+ setting_profile_update_slider_icon(list_item, SND_SLIDER_NOTI_VIB);
+ }
+ SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
}
static void
obj, void
*event_info)
{
- SETTING_TRACE_BEGIN;
/* error check */
ret_if(data == NULL);
- static double priv_val_db = 3.0;
static int priv_val_int = 0;
double val = elm_slider_value_get(obj);
- SETTING_TRACE("val = %f", val);
+ SETTING_TRACE_DEBUG("val = %f", val);
Setting_GenGroupItem_Data *list_item =
(Setting_GenGroupItem_Data *) data;
SettingProfileUG *ad = list_item->userdata;
+ SWIP_EFFECT_DISABLE(ad->ly_main, ad->ctrl_bar);
- int value;
+ int slider_value;
int err;
- value = (int)(val + 0.5); /* to sync displayed value on slider */
- list_item->chk_status = value;
- if (value != priv_val_int) {
- vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
- SETTING_TRACE_DEBUG("current %d", value);
- char pattern_file[MAX_COMMON_BUFFER_LEN] = {0,};
- svi_get_path(SVI_TYPE_VIB, SVI_VIB_OPERATION_VIBRATION, pattern_file, sizeof(pattern_file));
- haptic_stop_all_effects(ad->hnd_hpt);
- err = haptic_vibrate_file_with_detail(ad->hnd_hpt, pattern_file, 1, list_item->chk_status * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
-
- if (err < 0)
- SETTING_TRACE("Failed to play haptic monotone");
- priv_val_int = value;
- }
- priv_val_db = val;
-}
+ slider_value = (int)(val+0.5); /* to sync displayed value on slider */
+ list_item->chk_status = slider_value;
+ if (slider_value != priv_val_int) {
+ setting_profile_close_all_mm_players(ad);
+ priv_val_int = slider_value;
+ vconf_set_int (VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, slider_value);
+ if(slider_value != 0)
+ {
+ SETTING_TRACE_DEBUG("play_value %d", slider_value);
+ err = haptic_vibrate_file_with_detail(ad->hnd_hpt, SETTING_DEFAULT_HAPTIC_PREVIEW_VIB,
+ 1, slider_value * SETTING_VIB_FEEDBACK_RATE, HAPTIC_PRIORITY_MIN, NULL);
+ if(err != 0)
+ SETTING_TRACE_DEBUG("haptic_vibrate_file_with_detail() failed");
+ }
+ setting_profile_update_slider_icon(list_item, SND_SLIDER_SYSTEM_VIB);
+ }
+ SWIP_EFFECT_ENABLE(ad->ly_main, ad->ctrl_bar);
+}