4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
21 #ifndef __SETTING_PROFILE_H__
22 #define __SETTING_PROFILE_H__
27 #include <Elementary.h>
28 #include <glib-object.h>
31 #include <sound_manager.h>
33 #include <devman_haptic.h>
36 #include <setting-common-draw-widget.h>
37 #include <setting-common-view.h>
40 #define HAPTIC_TEST_ITERATION 1
41 #define VOLUME_DEN (15.0) /* ie equals float(SETTING_SOUND_VOL_MAX) */
44 SETTING_PROF_VIEW_VOL = 0,
45 SETTING_PROF_VIEW_RTN,
47 } setting_profile_types;
50 SETTING_VOL_TYPE_RINGTONE = 0,
51 SETTING_VOL_TYPE_NOTIFICATION,
52 SETTING_VOL_TYPE_MEDIA,
53 SETTING_VOL_TYPE_SYSTEM,
54 SETTING_VOL_TYPE_NOTI_VIB,
55 SETTING_VOL_TYPE_HAPTIC_VIB,
57 } setting_volume_types;
60 SETTING_VOL_SOUND_GROUP = 0,
61 SETTING_VOL_VIBRATION_GROUP,
63 } setting_volume_groups;
65 #define SETTING_VIB_VOL_MAX 5
66 #define SETTING_VIB_VOL_MIN 1
67 #define SETTING_SOUND_VOL_MAX 15
68 #define SETTING_SOUND_VOL_MIN 1
69 #define SETTING_SYSTEM_VOL_MAX 15
70 #define SETTING_SYSTEM_VOL_MIN 0
71 #define SETTING_SOUND_CONTROLBAR_ITEM_LEN 10
73 #define SETTING_DEFAULT_RINGTONE_VOL_INT 13
74 #define SETTING_DEFAULT_NOTI_VOL_INT 7
75 #define SETTING_DEFAULT_MEDIA_VOL_INT 7
76 #define SETTING_DEFAULT_SYSTEM_VOL_INT 5
77 #define SETTING_DEFAULT_NOTI_VIB_INT 5
78 #define SETTING_DEFAULT_HAPTIC_VIB_INT 3
79 #define SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT 0
81 #define SETTING_DEFAULT_RINGTONE_PATH "/opt/share/settings/Ringtones"
82 #define SETTING_DEFAULT_ALERT_PATH "/opt/share/settings/Alerts"
83 #define SETTING_PROFILE_MMC_PATH "/opt/storage/sdcard/"
87 #define SETTING_DEFAULT_CALL_TONE SETTING_DEFAULT_RINGTONE_PATH""DELIM"ringtone_sdk.mp3"
88 #define SETTING_DEFAULT_MSG_TONE SETTING_DEFAULT_ALERT_PATH""DELIM"General notification_sdk.wav"
89 #define SETTING_DEFAULT_EMAIL_TONE SETTING_DEFAULT_MSG_TONE
90 #define SETTING_DEFAULT_MEDIA_TONE SETTING_DEFAULT_CALL_TONE
92 typedef struct _SettingProfileUG SettingProfileUG;
95 * Setting Profile UG context
96 * all UG function has void* as an agument. this is casted back to SettingProfileUG
97 * and the functions access app context.
99 struct _SettingProfileUG {
101 ui_gadget_h ug_loading;
103 /* add more variables here (move your appdata to here) */
105 Evas_Object *win_main_layout;
106 Evas_Object *win_get;
107 Evas_Object *navi_bar;
108 Evas_Object *ctrl_bar;
109 Evas_Object *view_layout;
110 Evas_Object *ly_main;
111 Evas_Object *sub_view[SETTING_PROF_VIEW_MAX];
112 Elm_Object_Item *ctrl_item[SETTING_SOUND_CONTROLBAR_ITEM_LEN];
114 Elm_Genlist_Item_Class itc_1text_1icon;
115 Elm_Genlist_Item_Class itc_group_item;
116 Elm_Genlist_Item_Class itc_2text_2;
117 Elm_Genlist_Item_Class itc_layout;
118 Elm_Genlist_Item_Class itc_seperator;
119 Elm_Genlist_Item_Class itc_bg_1icon;
120 Elm_Genlist_Item_Class itc_2text_3_parent;
121 Elm_Genlist_Item_Class itc_1icon_1text_sub;
124 Setting_GenGroupItem_Data *data_sound;
125 Setting_GenGroupItem_Data *data_vibration;
126 Setting_GenGroupItem_Data *data_call_volume;
127 Setting_GenGroupItem_Data *data_noti_volume;
128 Setting_GenGroupItem_Data *data_vib_volume;
129 Setting_GenGroupItem_Data *data_touch_volume;
130 Setting_GenGroupItem_Data *data_touch_vib;
131 Setting_GenGroupItem_Data *data_media_volume;
133 player_h *mp_ringtone;
138 Ecore_Timer *volume_timer;
139 setting_volume_types cur_vol_type;
147 Setting_GenGroupItem_Data *data_call_alert_tone;
148 Setting_GenGroupItem_Data *data_call_alert_vib;
149 Setting_GenGroupItem_Data *data_msg_alert_tone;
150 Setting_GenGroupItem_Data *data_email_alert_tone;
151 Setting_GenGroupItem_Data *data_msg_alert_repeat;
152 Setting_GenGroupItem_Data *data_email_alert_repeat;
153 Setting_GenGroupItem_Data *data_lock_sound;
154 Setting_GenGroupItem_Data *data_touch_sounds;
158 extern setting_view setting_view_profile_sound_main;
160 void setting_profile_play_sound_origin(player_h **mp_handle, void *data,
161 void *cb, char *ringtone_file, float vol,
162 sound_type_e sound_type);
163 int setting_profile_check_file_exist(void *data, const char *file_path);
165 player_h *setting_profile_play_sound(void *data, void *cb,
168 sound_type_e sound_type);
170 int setting_profile_stop_sound(void *data, player_h *player);
171 void setting_profile_change_player_volume(player_h **mp_handle, float vol);
172 int setting_profile_close_other_mm_players_but_type(void *data,
174 int setting_profile_close_all_mm_players(void *data);
175 void setting_profile_play_vibration(void *data, int value);
177 int setting_profile_get_call_playing_vib_by_vconf_value(int call_vib_value);