3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.1 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 #ifndef __SETTING_STORAGE_H__
18 #define __SETTING_STORAGE_H__
21 #include <Elementary.h>
23 #include <glib-object.h>
25 #include <setting-common-draw-widget.h>
26 #include <setting-common-view.h>
28 #include <sys/statvfs.h>
30 #include <sys/mount.h>
33 #include <glib/gprintf.h>
36 #include <media_content.h>
37 #include <media_content_type.h>
39 #define SUPPORT_SD_CARD_FORMAT 1
41 #define SETTING_STORAGE_PROGRESSBAR_TIMEOUT 10
42 #define SETTING_STORAGE_POPUP_TIMER 2
44 #define SETTING_STORAGE_MAX_STR_LEN 30
46 #define SETTING_STORAGE_DIR_PATH_LEN_MAX 4096
47 #define SETTING_STORAGE_FILE_NAME_LEN_MAX 256
48 #define SETTING_STORAGE_CHILDPATH_LEN 512
50 #define SETTING_STORAGE_KILOBYTE_VALUE 1024
51 #define SETTING_STORAGE_MEGABYTE_VALUE 1048576
52 #define SETTING_STORAGE_GIGABYTE_VALUE 1073741824
54 #define SETTING_STORAGE_FORMAT_ASK_MSG "This action will erase the external storage in the phone. You will lose ALL data on the card! Format?"
56 #define SETTING_STORAGE_SD_CARD_MOUNT_ALREADY_DESC "Already mount"
58 #define SETTING_STORAGE_DEFAULT_STORAGE_STR "IDS_ST_BODY_DEFAULT_STORAGE"
59 #define SETTING_STORAGE_INTERNAL_STORAGE_STR "IDS_ST_BODY_DEVICE_MEMORY"
61 #define SETTING_STORAGE_AUDIO_STR "IDS_COM_BODY_AUDIO"
63 #define SETTING_STORAGE_PICS_STR "IDS_ST_BODY_PICTURES_VIDEOS"
64 #define SETTING_STORAGE_MISCES_STR "IDS_ST_BODY_MISCELLANEOUS_FILES"
65 #define SETTING_STORAGE_AVAIL_STR "IDS_ST_BODY_AVAILABLE"
66 #define SETTING_STORAGE_FORMAT_STR "IDS_ST_BODY_FORMAT_USB_STORAGE"
67 #define SETTING_STORAGE_FORMAT_DESC_STR "Erases all data on the internal USB storage, such as music and photos"
68 #define SETTING_STORAGE_MOUNT_STR "IDS_ST_BODY_MOUNT_SD_CARD"
69 #define SETTING_STORAGE_INSERT_STR "IDS_ST_BODY_INSERT_SD_CARD"
71 #define SETTING_STORAGE_APPS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_applications.png"
72 #define SETTING_STORAGE_PICS_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_pictures.png"
73 #define SETTING_STORAGE_AUDIO_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_Audio.png"
74 #define SETTING_STORAGE_MISCES_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_miscellaneous_files.png"
75 #define SETTING_STORAGE_AVAIL_ICON_PATH SETTING_ICON_PATH"/A01-1_icon_color_available.png"
77 #define SETTING_STORAGE_ICON_LANDSCAPE_WIDTH ((int)1200 * WIDGET_SCALE_FACTOR)
78 #define SETTING_STORAGE_ICON_WIDTH ((int)640 * WIDGET_SCALE_FACTOR)
79 #define SETTING_STORAGE_ICON_HEIGHT ((int)16 * WIDGET_SCALE_FACTOR)
81 #define SETTING_STORAGE_OPT_USR_PATH "/opt/usr"
82 #define SETTING_STORAGE_MMC_PATH "/opt/storage/sdcard"
83 #define SETTING_STORAGE_MMC_PARENT_PATH "/opt/storage/sdcard/.."
85 #define PATH1 "/opt/usr/media/.tmp_download"
86 #define PATH2 "/opt/usr/media/.video-hub"
87 #define PATH3 "/opt/usr/media/Camera"
88 #define PATH4 "/opt/usr/media/Downloads"
89 #define PATH5 "/opt/usr/media/Images"
90 #define PATH6 "/opt/usr/media/Others"
91 #define PATH7 "/opt/usr/media/Sounds"
92 #define PATH8 "/opt/usr/media/Videos"
93 #define PATH9 "/opt/usr/media/lost+found"
96 SETTING_STORAGE_SYSMAN_REQUEST_MOUNT_ALREADY = -2,
97 SETTING_STORAGE_SYSMAN_REQUEST_SUCCESS = 0
101 SETTING_STORAGE_SLEEP = -1,
102 SETTING_STORAGE_REUPDATE = 0,
103 SETTING_STORAGE_PICTURES_VIDEO = 1,
104 SETTING_STORAGE_AUDIO,
105 SETTING_STORAGE_MISCELLANEOUS,
106 SETTING_STORAGE_APPLICATIONS,
110 typedef void (*setting_storage_mmc_cb) (int val, void *data);
112 typedef struct _Setting_Storage_Status {
115 } Setting_Storage_Status;
117 typedef struct _Node_Info Node_Info;
124 typedef struct _app_info_t {
130 typedef struct _update_info_t {
135 typedef struct _SettingStorageUG SettingStorageUG;
138 * Setting Storage UG context
139 * all UG function has void* as an agument. this is casted back to SettingStorageUG
140 * and the functions access app context.
142 struct _SettingStorageUG {
145 /* add more variables here (move your appdata to here) */
147 Evas_Object *win_main_layout;
148 Evas_Object *win_get;
150 Evas_Object *ly_main;
152 Evas_Object *genlist;
153 Evas_Object *navibar;
155 /* storage setting */
157 Elm_Genlist_Item_Class itc_2text_3_parent;
158 Elm_Genlist_Item_Class itc_1icon_1text_sub;
159 Elm_Genlist_Item_Class itc_1text_1icon_2;
160 Elm_Genlist_Item_Class itc_2text_2;
161 Elm_Genlist_Item_Class itc_group_item;
162 Elm_Genlist_Item_Class itc_bg_1icon;
163 Elm_Genlist_Item_Class itc_seperator;
164 Elm_Genlist_Item_Class itc_2text_1icon_3;
165 Elm_Genlist_Item_Class itc_1text;
166 Elm_Genlist_Item_Class itc_2text_1icon_4;
167 Elm_Genlist_Item_Class itc_1text_1icon;
169 Setting_Storage_Status internal_status;
170 Setting_Storage_Status apps_status;
171 Setting_Storage_Status pics_videos_status;
172 Setting_Storage_Status audio_status;
173 Setting_Storage_Status others_status;
175 Setting_GenGroupItem_Data *internal;
176 Setting_GenGroupItem_Data *apps;
177 Setting_GenGroupItem_Data *pics_videos;
178 Setting_GenGroupItem_Data *audio;
179 Setting_GenGroupItem_Data *others;
180 Setting_GenGroupItem_Data *avail;
182 Setting_GenGroupItem_Data *sd_mount;
183 Setting_GenGroupItem_Data *sd_total;
184 Setting_GenGroupItem_Data *sd_available;
185 #if SUPPORT_SD_CARD_FORMAT
186 Setting_GenGroupItem_Data *sd_format;
188 struct mmc_contents *mmc_content;
190 /* default storage */
192 Setting_GenGroupItem_Data *data_wap;
194 Setting_GenGroupItem_Data *data_bt;
195 Setting_GenGroupItem_Data *data_cmr;
196 Setting_GenGroupItem_Data *data_vrec;
198 Setting_GenGroupItem_Data *data_rdo;
199 Setting_GenGroupItem_Data *data_dvb_h;
201 Setting_Done_List_Data miscellaneous_list; /* miscellaneous files list */
202 Eina_Bool back_from_misc; /* if true, means back from miscellaneous view*/
210 pthread_mutex_t exit_mutex;
211 pthread_mutex_t update_mutex;
212 pthread_cond_t wait_cond;
214 Eina_List *files_list;
215 Evas_Object *popup_progressbar;
219 extern setting_view setting_view_storage_main;
220 extern setting_view setting_view_storage_default_storage;
221 extern setting_view setting_view_storage_miscellaneous_files;
223 #endif /* __SETTING_STORAGE_H__ */