tizen 2.3.1 release
[apps/home/settings.git] / setting-profile / include / setting-profile.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
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
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
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.
19  *
20  */
21 #ifndef __SETTING_PROFILE_H__
22 #define __SETTING_PROFILE_H__
23
24 #include <stdio.h>
25 #include <math.h>
26
27 #include <Elementary.h>
28 /*#include <eina_list.h> */
29 #include <glib-object.h>
30
31 #include <player.h>
32 #include <sound_manager.h>
33 #include <dd-haptic.h>
34 #include <setting-common-general-func.h>
35 #include <setting-common-draw-widget.h>
36 #include <setting-common-view.h>
37 #include <pthread.h>
38 #include <cairo.h>
39 /*#include <pango/pango.h> */
40 #include <efl_assist.h>
41 #include <feedback.h>
42
43 #define PLAY_FEEDBACK(f_type, f_pattern)\
44         {\
45                 if(feedback_initialize() == FEEDBACK_ERROR_NONE)\
46                 {\
47                         feedback_play_type(f_type, f_pattern);\
48                         feedback_deinitialize();\
49                 }\
50         }
51
52
53 #define VOLUME_APP_NAME "org.tizen.setting.volume"
54 #define MAX_SAFETY_VOLUME_LEVEL 10
55 #define SETTING_PROFILE_SOUND_ALERTS_PATH   "/opt/usr/share/settings/Alerts"
56 #define SETTING_PROFILE_SOUND_RINGTONES_PATH    "/opt/usr/share/settings/Ringtones"
57 #define SETTING_PROFILE_MMC_PATH        "/opt/storage/sdcard"
58 #define SUPPORT_PLAYER_ASYNC 1
59
60
61 /*Call ringtone:3 icon status */
62 #define ICON_CALL_VIB           SETTING_ICON_PATH_CFG"B04_slider_icon_vibrate.png"
63 #define ICON_CALL_NORMAL        SETTING_ICON_PATH_CFG"B04_slider_icon_ring.png"
64 #define ICON_CALL_MUTE          SETTING_ICON_PATH_CFG"B04_volume_icon_mute.png"
65
66 /*Notification: 2 icon status */
67 #define ICON_NOTI_MUTE          SETTING_ICON_PATH_CFG"B04_slider_icon_notification_mute.png"
68 #define ICON_NOTI_NORMAL        SETTING_ICON_PATH_CFG"B04_slider_icon_notification.png"
69
70 /*Media: 2 icon status */
71 #define ICON_MEDIA_MUTE         SETTING_ICON_PATH_CFG"sound_slider_icon_volume_mute.png"
72 #define ICON_MEDIA_NORMAL       SETTING_ICON_PATH_CFG"sound_slider_icon_volume.png"
73
74 /*System:2 icon status */
75 #define ICON_SYSTEM_MUTE        SETTING_ICON_PATH_CFG"B04_slider_icon_system_mute.png"
76 #define ICON_SYSTEM_NORMAL      SETTING_ICON_PATH_CFG"B04_slider_icon_system.png"
77
78
79 #define SUPPORT_HAPTIC_MENU     0
80 #define SUPPORT_PLAYER_ASYNC 1
81
82
83 #define HAPTIC_TEST_ITERATION 1
84 #define VOLUME_DEN (15.0)       /* ie equals float(SETTING_SOUND_VOL_MAX) */
85
86 #define SETTING_SOUND_TEXT_REPEAT_ONCE                  "IDS_ST_BODY_ONCE"
87 #define SETTING_SOUND_TEXT_REPEAT_2MIN                  "IDS_ST_BODY_EVERY_2MIN"
88 #define SETTING_SOUND_TEXT_REPEAT_5MIN                  "IDS_ST_BODY_EVERY_5MIN"
89 #define SETTING_SOUND_TEXT_REPEAT_10MIN                 "IDS_ST_BODY_EVERY_10MINUTES"
90
91 #define SETTING_SOUND_VIBRATION_TAB_CREATE              "IDS_ST_BUTTON_TAP_TO_CREATE"
92 #define SETTING_SOUND_VIBRATION_IVT_DEFAULT             "IDS_ST_BODY_MYTHEME_DEFAULT"
93
94 #define VOLUME_STR                      "IDS_ST_BODY_VOLUME"
95 #define RINGTONE_STR            "IDS_COM_BODY_RINGTONES"
96
97 #define SOUND_DESC "IDS_ST_BODY_ADJUST_VOLUME_AND_INTENSITY_FOR_SOUNDS_WHEN_MSG"
98
99 /* Important !! : After below key is added completely to vconf-internal-keys package, should remove. */
100 #ifndef VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL
101 #define VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL "db/setting/sound/haptic_feedback_on"
102 #endif
103
104
105 #define SETTING_SOUND_REPEAT_TYPE_LEN 4
106
107 typedef enum {
108     SETTING_PROF_VIEW_VOL = 0,
109     SETTING_PROF_VIEW_RTN,
110     SETTING_PROF_VIEW_MAX
111 } setting_profile_types;
112
113 typedef enum {
114     SETTING_VOL_TYPE_RINGTONE = 0,
115     SETTING_VOL_TYPE_NOTIFICATION,
116     SETTING_VOL_TYPE_MEDIA,
117     SETTING_VOL_TYPE_SYSTEM,
118     SETTING_VOL_TYPE_NOTI_VIB,
119     SETTING_VOL_TYPE_HAPTIC_VIB,
120     SETTING_VOL_TYPE_MAX
121 } setting_volume_types;
122
123 typedef enum {
124     SND_SLIDER_CALL = 0,
125     SND_SLIDER_NOTI,
126     SND_SLIDER_MEDIA,
127     SND_SLIDER_SYSTEM,
128     SND_SLIDER_CALL_VIB,
129     SND_SLIDER_NOTI_VIB,
130     SND_SLIDER_SYSTEM_VIB,
131     SND_SLIDER_MAX,
132 } SoundType;
133
134
135 typedef enum {
136     SETTING_VOL_SOUND_GROUP = 0,
137     SETTING_VOL_VIBRATION_GROUP,
138     SETTING_VOL_GROUP_MAX
139 } setting_volume_groups;
140
141 typedef enum {
142     SETTING_PROF_CALLER_SETTING = 0,
143     SETTING_PROF_CALLER_PHONE,
144     SETTING_PROF_CALLER_MAX
145 } setting_profile_callers;
146
147 #define SETTING_VIB_VOL_MAX 5
148 #define SETTING_VIB_VOL_MIN 1
149 #define SETTING_SOUND_VOL_MAX 15
150 #define SETTING_SOUND_VOL_MIN 1
151 #define SETTING_SYSTEM_VOL_MAX 15
152 #define SETTING_SYSTEM_VOL_MIN 0
153 #define SETTING_SOUND_CONTROLBAR_ITEM_LEN 10
154
155 #define SETTING_DEFAULT_RINGTONE_VOL_INT        11
156 #define SETTING_DEFAULT_NOTI_VOL_INT            11
157 #define SETTING_DEFAULT_MEDIA_VOL_INT           9
158 #define SETTING_DEFAULT_SYSTEM_VOL_INT          9
159 #define SETTING_DEFAULT_CALL_VIB_INT            5
160 #define SETTING_DEFAULT_NOTI_VIB_INT            5
161 #define SETTING_DEFAULT_HAPTIC_VIB_INT          3
162 #define SETTING_DEFAULT_ALERT_REPEAT_TYPE_INT   0
163 #define SETTING_SOUND_VIB_TYPE_LEN 5
164
165 #define SETTING_DEFAULT_RINGTONE_PATH   "/opt/usr/share/settings/Ringtones"
166 #define SETTING_DEFAULT_ALERT_PATH              "/opt/usr/share/settings/Alerts"
167 #define SETTING_DEFAULT_PREVIEW_PATH    "/opt/usr/share/settings/Previews"
168 #define SETTING_PROFILE_MMC_PATH                "/opt/storage/sdcard"
169 #define SETTING_DEFAULT_VIB_PATH                "/opt/usr/share/settings/Vibrations/haptic/default/"
170 #define SETTING_CUSTOM_VIB_PATH         "/opt/usr/share/feedback/haptic/custom/"
171 #define SETTING_VIB_EXT_NAME_STR        ".ivt"
172 #define SETTING_VIB_EXT_SIZE_INT        4
173 #define SETTING_VIB_TYPE_CUSTOM         1
174 #define SETTING_VIB_TYPE_DEFAULT        0
175
176 #define SETTING_DEFAULT_LED_PLAYING_PATH  "/usr/share/feedback/led/default/"
177 #define SETTING_CUSTOM_LED_PLAYING_PATH   "/opt/usr/share/feedback/led/custom/"
178 #define SETTING_LED_EXT_NAME_STR          ".led"
179 #define SETTING_LED_PLAY_PATH_MAX       512
180
181 #define SETTING_VIB_FEEDBACK_RATE       20
182
183 #define DELIM           "/"
184
185 #define SETTING_DEFAULT_MSG_TONE                SETTING_DEFAULT_ALERT_PATH""DELIM"Whistle.ogg"
186 #define SETTING_DEFAULT_EMAIL_TONE              SETTING_DEFAULT_MSG_TONE
187 #define SETTING_DEFAULT_MEDIA_TONE              SETTING_DEFAULT_PREVIEW_PATH""DELIM"Media_preview_Over_the_horizon.ogg"
188 #define SETTING_DEFAULT_SYSTEM_TONE             SETTING_DEFAULT_PREVIEW_PATH""DELIM"touch.wav"
189 #define SETTING_DEFAULT_CALL_PREVIEW_VIB                "/opt/usr/share/settings/Vibrations/haptic/default/Tictoc.ivt"
190 #define SETTING_DEFAULT_NOTI_PREVIEW_VIB                "/opt/usr/share/settings/Vibrations/message.ivt"
191 #define SETTING_DEFAULT_HAPTIC_PREVIEW_VIB              "/opt/usr/share/settings/Vibrations/touch.ivt"
192 #define SETTING_DEFAULT_COMPACT_CALL_VIB               SETTING_DEFAULT_VIB_PATH"Default.ivt"
193
194 #define IMG_CTRL_ICON_RINGTONE          SETTING_ICON_PATH_CFG"A01-1_controlbar_icon_ringtones.png"
195 #define IMG_CTRL_ICON_VOLUME            SETTING_ICON_PATH_CFG"A01-1_controlbar_icon_volume.png"
196
197 #define IMG_VIB_PLAY            SETTING_ICON_PATH_CFG"personal_vibration/A01-1_Vibration_icon_play.png"
198 #define IMG_VIB_STOP            SETTING_ICON_PATH_CFG"personal_vibration/A01-1_Vibration_icon_stop.png"
199
200 #define IMG_CALL_VIB_PLAY_WHITE         SETTING_ICON_PATH_CFG"myfile_icon_control_play.png"
201 #define IMG_CALL_VIB_PAUSE_WHITE        SETTING_ICON_PATH_CFG"myfile_icon_control_pause.png"
202 #define IMG_CALL_VIB_PLAY_WHITE_PRESS   SETTING_ICON_PATH_CFG"myfile_icon_control_play_press.png"
203 #define IMG_CALL_VIB_PAUSE_WHITE_PRESS  SETTING_ICON_PATH_CFG"myfile_icon_control_pause_press.png"
204
205 #define IMG_CALL_VIB_MENU_CREATE        SETTING_ICON_PATH_CFG"A01-1_icon_vibration_menu_create.png"
206 #define IMG_CALL_VIB_MENU_DELETE        SETTING_ICON_PATH_CFG"A01-1_icon_vibration_menu_delete.png"
207
208 #define PERSONAL_VIBRATION_IVT_BUFFER_SIZE 14096
209
210 #define PERSONAL_VIBRATION_IVT_PORTRAIT_PERCENT (1.0)
211 #define PERSONAL_VIBRATION_IVT_LANDSCAPE_PERCENT (0.7)
212
213 #define PERSONAL_VIBRATION_SECONDS 12
214 #define PERSONAL_VIBRATION_TIMER_INTERVAL (0.04)
215 #define PERSONAL_VIBRATION_TIMER_RATE (1 / PERSONAL_VIBRATION_TIMER_INTERVAL)
216 #define PERSONAL_VIBRATION_MAX_TIMES (PERSONAL_VIBRATION_SECONDS * PERSONAL_VIBRATION_TIMER_RATE)
217
218 #define PERSONAL_VIBRATION_POPUP_WIDTH          ((int)650 * WIDGET_SCALE_FACTOR)
219 #define PERSONAL_VIBRATION_POPUP_HEIGHT         ((int)150 * WIDGET_SCALE_FACTOR)
220
221 #define SETTING_PROFILE_CONTACT_CALLER_STR              "org.tizen.contacts"
222 #define SETTING_PROFILE_CALL_SETTING_CALLER_STR "setting-call-efl"
223
224 #define EXP 0.001
225
226
227 typedef struct _Pie_Object Pie_Object;
228
229 typedef struct _Pie_Slice Pie_Slice;
230
231 typedef enum _Pie_Flag {
232     Pie_Flag_No_Type = 0,
233     Pie_Flag_Record_Start = 1,
234     Pie_Flag_Record_End,
235     Pie_Flag_Play_Start,
236     Pie_Flag_Play_End,
237     Pie_Flag_Max
238 } Pie_Flag;
239
240 struct _Pie_Object {
241         Evas_Object     *clip;
242
243         Evas_Coord      x, y, w, h;
244         double          bgcolor_red;
245         double          bgcolor_green;
246         double          bgcolor_blue;
247
248         Pie_Slice       *pie_slice;
249
250         Evas_Object     *pie_image_object; /* for cairo... */
251         cairo_surface_t *cairo_surface;
252         cairo_surface_t *circle_center_surface;
253         cairo_t         *cr;
254
255         double          scale;
256         Evas_Object     *btn_img;
257         Evas_Object     *btn_ef_img;
258         Evas_Object     *rec_img;
259         Evas_Object     *play_img;
260         Evas_Object     *play_press_img;
261         Evas_Object     *stop_img;
262
263         Eina_List *time_slices;
264         Pie_Flag flag;
265         int             cairo_w;
266         int             cairo_h;
267
268         bool            bcycleflag;
269         bool            cairo_move_flag;
270 };
271
272 struct _Pie_Slice {
273         char            *color;
274         double          size;
275 };
276
277 typedef struct _Ctxpopup_Data {
278         Evas_Object *ctx;
279         Evas_Object *btn;
280 } Ctxpopup_Data;
281
282 typedef struct _VibInfoItem {
283         char *name;
284         int belongs_to;
285 } VibInfoItem;
286
287 typedef struct _SliderIcons {
288         int index;
289         char mute[256];
290         char volume[256];
291 } SliderIcons;
292
293
294 typedef struct _SettingProfileUG SettingProfileUG;
295
296 /**
297  * Setting Profile UG context
298  * all UG function has void* as an agument. this is casted back to SettingProfileUG
299  * and the functions access app context.
300  */
301 struct _SettingProfileUG {
302         ui_gadget_h ug;
303         ui_gadget_h ug_loading;
304
305         Ea_Theme_Color_Table *color_table;
306         char *viewtype;
307
308         /* add more variables here (move your appdata to here) */
309         Evas *evas;
310         Evas_Object *win_main_layout;
311         Evas_Object *win_get;
312         Evas_Object *navi_bar;
313         Evas_Object *ctrl_bar;
314         Evas_Object *view_layout;
315         Evas_Object *ly_main;
316         Evas_Object *gl_lite_main;
317         Evas_Object *sub_view[SETTING_PROF_VIEW_MAX];
318         Elm_Object_Item *ctrl_item[SETTING_SOUND_CONTROLBAR_ITEM_LEN];
319         Evas_Object *volume_popup;
320         Evas_Object *sound_mode_popup;
321         Evas_Object *sound_mode_rdg;
322
323         Elm_Genlist_Item_Class itc_1text_1icon;
324         Elm_Genlist_Item_Class itc_group_item;
325         Elm_Genlist_Item_Class itc_2text_2;
326         Elm_Genlist_Item_Class itc_layout;
327         Elm_Genlist_Item_Class itc_layout_1icon;
328         Elm_Genlist_Item_Class itc_bg_1icon;
329         Elm_Genlist_Item_Class itc_name_editfield;
330         Elm_Genlist_Item_Class itc_2text_3_parent;
331         Elm_Genlist_Item_Class itc_1icon_1text_sub;
332
333         /* Volume tab */
334         Setting_GenGroupItem_Data *data_sound;
335         Setting_GenGroupItem_Data *data_vibration;
336         Setting_GenGroupItem_Data *data_sound_mode;
337         Setting_GenGroupItem_Data *data_sound_when_ring;
338         Setting_GenGroupItem_Data *data_vibration_when_notification;
339         Setting_GenGroupItem_Data *data_call_volume;
340         Setting_GenGroupItem_Data *data_noti_volume;
341         Setting_GenGroupItem_Data *data_call_vib_volume;
342         Setting_GenGroupItem_Data *data_vib_volume;
343         Setting_GenGroupItem_Data *data_touch_volume;
344         Setting_GenGroupItem_Data *data_touch_vib;
345         Setting_GenGroupItem_Data *data_media_volume;
346         Setting_GenGroupItem_Data *data_adapt_sound;
347         Setting_GenGroupItem_Data *data_haptic_feedback;
348         setting_profile_types view_type;
349
350         player_h *mp_ringtone;
351         player_h *mp_noti;
352         player_h *mp_sys;
353         player_h *mp_media;
354         player_h *mp_prepare_async;
355
356         Ecore_Timer *volume_timer;
357         setting_volume_types cur_vol_type;
358
359         haptic_device_h hnd_hpt;
360         haptic_effect_h effect_hnd_hpt;
361         bool unset_contents;
362         bool sound_on;
363         bool vibration_on;
364         int playing_volume;
365         char *song_playing;
366         char *ringtone_type;
367         bool is_dock_on;
368         Ecore_Job *sound_slider_job;
369         Ecore_Job *vib_slider_job;
370
371         Ecore_Idler *set_sound_idler;
372         Ecore_Idler *set_vib_idler;
373         Ecore_Idler *handle_sound_on_idler;
374         Ecore_Idler *play_ringtone_idler; /* for performance of incoming call ringtone slider */
375
376         Ecore_Event_Handler *keydown_handler;
377         Ecore_Event_Handler *keyup_handler;
378         bool is_pressing;
379         Ecore_Timer *updown_timer;
380
381         /* Ringtone tab */
382         Setting_GenGroupItem_Data *data_call_alert_tone;
383         Setting_GenGroupItem_Data *data_call_alert_vib;
384         Setting_GenGroupItem_Data *data_msg_alert_tone;
385         Setting_GenGroupItem_Data *data_email_alert_tone;
386         Setting_GenGroupItem_Data *data_msg_alert_repeat;
387         Setting_GenGroupItem_Data *data_email_alert_repeat;
388         Setting_GenGroupItem_Data *data_lock_sound;
389         Setting_GenGroupItem_Data *data_button_sounds;
390         Setting_GenGroupItem_Data *data_touch_sounds;
391         Setting_GenGroupItem_Data *data_name_edit_filed;
392
393         Setting_GenGroupItem_Data *data_sound_text_repeat_once;
394         Setting_GenGroupItem_Data *data_sound_text_repeat_2min;
395         Setting_GenGroupItem_Data *data_sound_text_repeat_5min;
396         Setting_GenGroupItem_Data *data_sound_text_repeat_10min;
397
398         Setting_GenGroupItem_Data *default_item;
399
400         Setting_GenGroupItem_Data *cur_play_item; /* used in incoming call vibration */
401
402         Eina_List *call_vib_list_default;
403         Eina_List *call_vib_list_custom;
404         Eina_List *all_vib_list;
405
406         Elm_Genlist_Item_Class itc_1text_3icon;
407         Elm_Genlist_Item_Class itc_1text_2icon;
408         Evas_Object *vib_radio;
409         Evas_Object *vib_scroller;
410         Evas_Object *vib_controlbar;
411         Evas_Point   vib_point_down;
412         Elm_Object_Item *vib_mouse_down_selected_item;
413         Eina_Bool personal_vib_down_press_flag;
414         Eina_Bool personal_vib_checkbox_down_press_flag;
415
416         Evas_Object *title_delete_button;
417         Evas_Object *more_popup;
418         Ctxpopup_Data ctx_data;
419         Elm_Object_Item *set_btn;
420         Elm_Object_Item *cancel_btn;
421
422         Evas_Object *no_play_popup; /* Unable to pre-listening during a call */
423
424         Eina_Bool personal_vib_cancel_flag;
425
426         Setting_GenGroupItem_Data *data_vib;
427         char *vib_caller;
428         char *vib_caller_selected;
429         app_control_h source_svc;
430         char *vib_caller_title;
431         Ecore_Idler *vib_update_idler;
432         int vib_play_state;
433         int vib_selected;
434         Elm_Object_Item *curitem;
435         Elm_Object_Item *preitem;
436         Ecore_Timer *play_stoper;
437         Ecore_Timer *vib_play_timer;
438         Elm_Object_Item *vib_navi_it;
439
440
441         /* personal vibration begin */
442         Evas_Object *bg_icon;
443         Evas_Object *bg_icon_02;
444         Evas_Object *recording_icon;
445         Evas_Object *ly_personal_vib;
446         Evas_Object *personal_vib_popup;
447         Evas_Object *personal_vib_btn_icon;
448         Evas_Object *personal_vib_rec_icon;
449         Evas_Object *personal_vib_play_icon;
450         Evas_Object *personal_vib_play_press_icon;
451         Evas_Object *personal_vib_stop_icon;
452         Evas_Object *personal_vib_second_icon;
453         Eina_Bool personal_vib_rec_flag;
454         Ecore_Timer *personal_vib_timer;
455         Ecore_Timer *personal_vib_timer_pause;
456         Ecore_Timer *personal_popup_del_timer;
457         int personal_vib_second;
458         Evas_Object *personal_vib_pie;
459
460         Evas_Object *personal_vib_entry;
461         Evas_Object *personal_vib_cancel_button;
462         Evas_Object *personal_vib_save_button;
463         Elm_Object_Item *personal_vib_navi_it;
464
465         Eina_Bool personal_vib_keyboard_hide;
466         Eina_Bool personal_vib_popup_close;
467         Eina_Bool personal_vib_press_flag;
468         Eina_Bool personal_vib_done_flag;
469         Eina_Bool personal_vib_mouse_event_flag;
470
471         Eina_Bool personal_vib_pause_flag;
472         Eina_Bool personal_vib_playing_flag;
473
474         char *personal_vib_save_filename;
475         /*Eina_Bool app_pause; */
476
477         Ecore_Timer *resume_pause_timer;
478         /*Evas_Object *popup_max_len; */
479         Evas_Object *popup_filename_check;
480         Evas_Object *popup_vib_delete;
481
482         unsigned char ivt_buffer[PERSONAL_VIBRATION_IVT_BUFFER_SIZE];
483         int personal_vib_effect_handle;
484
485         Evas_Object *controlbar;
486         Evas_Object *personal_vib_toolbar;
487         Elm_Object_Item *personal_vib_toolbar_done_btn;
488         Elm_Object_Item *personal_vib_toolbar_cancel_btn;
489         Eina_Bool       personal_vib_done_to_save;
490         /* personal vibration end */
491
492         Evas_Object *ly_vib_delete;
493         Elm_Object_Item *vib_delete_navi_it;
494         Setting_Done_List_Data custom_vib_del_list;
495         Elm_Object_Item *vib_delete_done_btn;
496         Elm_Object_Item *vib_delete_cancel_btn;
497
498         setting_profile_callers caller;
499
500         Evas_Object *vib_player_btn;
501         /*for customized styles */
502         Elm_Theme *theme;
503
504         char *play_btn_show_icon;
505
506         Evas_Object *calling_popup; /* Unable to pre-listening during a call */
507 };
508
509 extern setting_view setting_view_profile_sound_main;
510 /*extern setting_view setting_view_profile_sound_call_vibration; */
511 /*extern setting_view setting_view_profile_sound_personal_vib; */
512 /*extern setting_view setting_view_profile_sound_vibration_delete; */
513
514 void setting_profile_play_sound_origin(player_h **mp_handle, void *data,
515                                        void *cb, char *ringtone_file, float vol,
516                                        sound_type_e sound_type);
517 int setting_profile_check_file_exist(void *data, const char *file_path);
518
519 player_h *setting_profile_play_sound(void *data, void *cb,
520                                      char *ringtone_file,
521                                      int vol,
522                                      sound_type_e sound_type);
523
524 /*int __close_player(void *data, setting_volume_types type); */
525 int __close_player2(void *data, SoundType type);
526
527 int setting_profile_stop_sound(void *data, player_h *player);
528 void setting_profile_change_player_volume(player_h **mp_handle, float vol);
529 int setting_profile_close_other_mm_players_but_type(void *data,
530                                                     sound_type_e type);
531 int setting_profile_close_all_mm_players(void *data);
532
533 void setting_init_call_vib_list(void *data);
534
535 void __setting_profile_ug_key_grab(SettingProfileUG *ad);
536 void __setting_profile_ug_key_ungrab(SettingProfileUG *ad);
537 void __setting_profile_ug_menu_key_grab(SettingProfileUG *ad);
538 void __setting_profile_ug_menu_key_ungrab(SettingProfileUG *ad);
539
540 void __setting_profile_sound_persional_vib_record_pause_play(void *data, bool bpause);
541 void __setting_profile_sound_personal_vib_update_tap_string(void *data, app_device_orientation_e m);
542 void setting_profile_sound_personal_vib_pie_graph_relocate(void *data);
543 char *__setting_profile_sound_personal_vib_file_default_name_get();
544 char *setting_media_basename(char *path);
545 void _gl_hide_play_btn(Elm_Object_Item *obj);
546 void setting_profile_sound_personal_vib_stop_by_homekey_press(void *data);
547
548 void setting_profile_create_warning_popup_during_call(void *data);
549
550 void setting_profile_ug_update_volume_sliders(void *data);
551 Eina_Bool __vib_play_stop_timer_cb(void *data);
552
553
554 char *setting_profile_get_slider_icon(int type, int volume);
555
556 #endif