2 * Copyright 2013 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 #ifndef _MYFILE_FILESYSTEM_UTIL_H_
21 #define _MYFILE_FILESYSTEM_UTIL_H_
30 #include <sys/types.h>
35 #include <unicode/udat.h>
36 #include <unicode/ustring.h>
37 #include <unicode/uloc.h>
38 #include <unicode/ucal.h>
39 #include <unicode/udatpg.h>
40 #include <unicode/utmscale.h>
41 #include <media_content.h>
45 /* File system related value definition */
46 #define MYFILE_FILE_NAME_LEN_MAX 255 /*charactor based, use g_utf8_strlen to check length*/
47 #define MYFILE_FILE_PATH_LEN_MAX 4096 /*charactor based, use g_utf8_strlen to check length*/
48 #define MYFILE_REPORT_SIZE 16384
50 #define MYFILE_FOLDER_SIZE 0;
52 /* File system related String definition */
53 #define PHONE_FOLDER "/opt/usr/media"
54 #define MEMORY_FOLDER "/opt/storage/sdcard"
55 #define PHONE_PARENT "/opt/usr"
56 #define PHONE_NAME "media"
57 #define STORAGE_PARENT "/opt/storage"
58 #define MMC_NAME "sdcard"
61 #define OTG_FOLDER "/opt/storage/usb"
62 #define OTG_NAME "usb"
64 #define DEBUG_FOLDER "SLP_debug"
66 #define MYFILE_NAME_PATTERN "[\\:;*\"<>|?/]"
68 /* File system define default folder */
70 #define DEFAULT_FOLDER_CAMERA_SHOTS "Camera shots"
71 #define DEFAULT_FOLDER_DOWNLOADS "Downloads"
73 #define DEFAULT_FOLDER_IMAGE "Images"
74 #define SUB_FODER_WALLPAPER "Wallpapers"
76 #define DEFAULT_FOLDER_VIDEO "Videos"
78 #define DEFAULT_FOLDER_MUSIC "Music"
79 #define SUB_FODER_FM "FM radio"
80 #define SUB_FODER_VOICE_RECORD "Voice recorder"
82 #define DEFAULT_FOLDER_ALERTS_AND_RINGTONES "Alerts and ringtones"
83 #define SUB_FODER_ALERTS "Alerts"
84 #define SUB_FODER_RINGTONES "Ringtones"
86 #define DEFAULT_FOLDER_BOOKMARK "Bookmark"
87 #define DEFAULT_FOLDER_RSS "RSS"
90 #define ICON_PATH "/usr/apps/org.tizen.myfile/res/images"
94 #define DEFAULT_ICON ICON_PATH"/myfile_icon_etc.png"
97 #define MF_ICON_FOLDER ICON_PATH"/myfile_icon_folder.png"
98 #define MF_ICON_FOLDER_OPEN ICON_PATH"/myfile_icon_folder_open.png"
99 #define MF_ICON_IMAGE ICON_PATH"/myfile_icon_images.png"
100 #define MF_ICON_VIDEO ICON_PATH"/myfile_icon_video.png"
101 #define MF_ICON_MUSIC ICON_PATH"/myfile_icon_music.png"
102 #define MF_ICON_SOUND ICON_PATH"/myfile_icon_music.png"
103 #define MF_ICON_PDF ICON_PATH"/myfile_icon_pdf.png"
104 #define MF_ICON_DOC ICON_PATH"/myfile_icon_word.png"
105 #define MF_ICON_PPT ICON_PATH"/myfile_icon_ppt.png"
106 #define MF_ICON_EXCEL ICON_PATH"/myfile_icon_excel.png"
107 #define MF_ICON_VOICE ICON_PATH"/myfile_icon_music.png"
108 #define MF_ICON_HTML ICON_PATH"/myfile_icon_html.png"
109 #define MF_ICON_FLASH ICON_PATH"/myfile_icon_swf.png"
110 #define MF_ICON_TXT ICON_PATH"/myfile_icon_text.png"
111 #define MF_ICON_VCONTACT ICON_PATH"/myfile_icon_svg.png"
112 #define MF_ICON_VCALENDAR ICON_PATH"/myfile_icon_svg.png"
113 #define MF_ICON_VNOTE ICON_PATH"/myfile_icon_text.png"
114 #define MF_ICON_RSS ICON_PATH"/myfile_icon_rss.png"
115 #define MF_ICON_JAVA ICON_PATH"/myfile_icon_java.png"
116 #define MF_ICON_MEMORY_SUB ICON_PATH"/myfile_icon_mmc_sub.png"
117 #define MF_ICON_MUSIC_PLAY ICON_PATH"/myfile_icon_control_play.png"
118 #define MF_ICON_MUSIC_PAUSE ICON_PATH"/myfile_icon_control_pause.png"
119 #define MF_ICON_PHONE ICON_PATH"/myfile_icon_phone.png"
120 #define MF_ICON_MEMORY ICON_PATH"/myfile_icon_mmc.png"
121 #define MF_ICON_EXTERNAL_DEVICE ICON_PATH"/myfile_icon_USB.png"
122 #define MF_ICON_VIDEO_PLAY ICON_PATH"/myfile_icon_video_play.png"
123 #define MF_ICON_ENTRY_FOLDER ICON_PATH"/myfile_icon_entry_folder.png"
124 #define MF_ICON_ENTRY_FOLDER_PRESS ICON_PATH"/myfile_icon_entry_folder_press.png"
127 #define MF_ICON_THUMBNAIL_EXCEL ICON_PATH"/myfile_thumbnail_icon_excel.png"
128 #define MF_ICON_THUMBNAIL_FOLDER ICON_PATH"/myfile_thumbnail_icon_folder.png"
129 #define MF_ICON_THUMBNAIL_FOLDER_OPEN ICON_PATH"/myfile_thumbnail_icon_folder_open.png"
130 #define MF_ICON_THUMBNAIL_HTML ICON_PATH"/myfile_thumbnail_icon_html.png"
131 #define MF_ICON_THUMBNAIL_MUSIC ICON_PATH"/myfile_thumbnail_icon_music.png"
132 #define MF_ICON_THUMBNAIL_PDF ICON_PATH"/myfile_thumbnail_icon_pdf.png"
133 #define MF_ICON_THUMBNAIL_PPT ICON_PATH"/myfile_thumbnail_icon_ppt.png"
134 #define MF_ICON_THUMBNAIL_RINGTONE ICON_PATH"/myfile_thumbnail_icon_ring tone.png"
135 #define MF_ICON_THUMBNAIL_RSS ICON_PATH"/myfile_thumbnail_icon_rss.png"
136 #define MF_ICON_THUMBNAIL_FLASH ICON_PATH"/myfile_thumbnail_icon_swf.png"
137 #define MF_ICON_THUMBNAIL_TXT ICON_PATH"/myfile_thumbnail_icon_text.png"
138 #define MF_ICON_THUMBNAIL_VIDEO ICON_PATH"/myfile_thumbnail_icon_video.png"
139 #define MF_ICON_THUMBNAIL_DOC ICON_PATH"/myfile_thumbnail_icon_word.png"
140 #define MF_ICON_THUMBNAIL_VIDEO_PLAY ICON_PATH"/myfile_thumbnail_icon_video_play.png"
141 #define MF_ICON_THUMBNAIL_UNKOWN ICON_PATH"/myfile_thumbnail_icon_unkown.png"
143 #define MF_ICON_ITEM_PHONE ICON_PATH"/U01_1st_icon_phone.png"
144 #define MF_ICON_ITEM_MMC ICON_PATH"/U01_1st_icon_memory_card.png"
145 #define MF_ICON_ITEM_OTG ICON_PATH"/U01_1st_icon_external_storage.png"
146 #define MF_ICON_ITEM_DB ICON_PATH"/U01_1st_icon_dropbox.png"
148 typedef enum _SORT_OPTION fsSortOption;
151 MYFILE_SORT_BY_NONE = 0, /**< Sort by default */
152 MYFILE_SORT_BY_NAME_A2Z, /**< Sort by file name ascending */
153 MYFILE_SORT_BY_SIZE_S2L, /**< Sort by file size ascending */
154 MYFILE_SORT_BY_DATE_O2R, /**< Sort by file date ascending */
155 MYFILE_SORT_BY_TYPE_A2Z, /**< Sort by file type ascending */
156 MYFILE_SORT_BY_NAME_Z2A, /**< Sort by file name descending */
157 MYFILE_SORT_BY_SIZE_L2S, /**< Sort by file size descending */
158 MYFILE_SORT_BY_DATE_R2O, /**< Sort by file date descending */
159 MYFILE_SORT_BY_TYPE_Z2A, /**< Sort by file type descending */
163 typedef enum _mf_extension_state_e mf_extension_state_e;
165 enum _mf_extension_state_e {
166 MF_EXTENSION_NONE = 0,
172 typedef enum _FILE_TYPE fsFileType;
176 FILE_TYPE_DIR, /**< Folder category */
177 FILE_TYPE_FILE, /**< File category */
178 FILE_TYPE_IMAGE, /**< Image category */
179 FILE_TYPE_VIDEO, /**< Video category */
180 FILE_TYPE_MUSIC, /**< Music category */
181 FILE_TYPE_SOUND, /**< Sound category */
182 FILE_TYPE_PDF, /**< Pdf category */
183 FILE_TYPE_DOC, /**< Word category */
184 FILE_TYPE_PPT, /**< Powerpoint category */
185 FILE_TYPE_EXCEL, /**< Excel category */
186 FILE_TYPE_VOICE, /**< Voice category */
187 FILE_TYPE_HTML, /**< Html category */
188 FILE_TYPE_FLASH, /**< Flash category */
189 FILE_TYPE_GAME, /**< Game category */
190 FILE_TYPE_APP, /**< Application category */
191 FILE_TYPE_THEME, /**< Theme category */
192 FILE_TYPE_TXT, /**< Txt category */
193 FILE_TYPE_VCONTACT, /**< Vcontact category */
194 FILE_TYPE_VCALENDAR, /**< Vcalendar category */
195 FILE_TYPE_VNOTE, /**< Vnote category */
196 FILE_TYPE_VBOOKMARK, /**< Vbookmark category */
197 FILE_TYPE_VIDEO_PROJECT, /**< Video editor project category */
198 FILE_TYPE_RADIO_RECORDED, /**< radio recorded clips category */
199 FILE_TYPE_MOVIE_MAKER, /**< Movie maker project category */
200 FILE_TYPE_SVG, /**< Svg category */
201 FILE_TYPE_RSS, /**< Rss reader file, *.opml */
202 FILE_TYPE_CERTIFICATION, /**< certification file, *.pem */
203 FILE_TYPE_JAVA, /**< java file, *.jad, *.jar */
204 FILE_TYPE_WGT, /**< wrt , *.wgt, *.wgt */
205 FILE_TYPE_DRM, /**< drm file , *.dcf */
206 FILE_TYPE_ETC, /**< Other files category */
210 typedef enum _STORAGE MF_STORAGE;
221 typedef enum _SIZE_TYPE MF_SIZE_TYPE;
229 typedef enum __MF_SORT_BY_PRIORITY_SEQUENCE MF_SORT_BY_PRIORITY_SEQUENCE;
230 enum __MF_SORT_BY_PRIORITY_SEQUENCE {
231 MF_SORT_BY_PRIORITY_TYPE_A2Z,
232 MF_SORT_BY_PRIORITY_TYPE_Z2A,
233 MF_SORT_BY_PRIORITY_DATE_O2R,
234 MF_SORT_BY_PRIORITY_DATE_R2O,
235 MF_SORT_BY_PRIORITY_SIZE_S2L,
236 MF_SORT_BY_PRIORITY_SIZE_L2S,
239 /* File operation error check options definition */
240 #define MF_ERROR_CHECK_SRC_ARG_VALID 0x0001
241 #define MF_ERROR_CHECK_DST_ARG_VALID 0x0002
242 #define MF_ERROR_CHECK_SRC_EXIST 0x0004
243 #define MF_ERROR_CHECK_DST_EXIST 0x0008
244 #define MF_ERROR_CHECK_SRC_PATH_VALID 0x0010
245 #define MF_ERROR_CHECK_DST_PATH_VALID 0x0020
246 #define MF_ERROR_CHECK_SRC_PARENT_DIR_EXIST 0x0040
247 #define MF_ERROR_CHECK_DST_PARENT_DIR_EXIST 0x0080
248 #define MF_ERROR_CHECK_DUPLICATED 0x0100
250 /* File system error definition */
251 #define MF_ERROR_MASKL16 0xFFFF
253 #define MF_ERROR_SET(X) (X & MF_ERROR_MASKL16)
255 #define MID_CONTENTS_MGR_ERROR 0
257 #define MYFILE_ERR_NONE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x00)) /**< No error */
260 #define MYFILE_ERR_SRC_ARG_INVALID (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x01)) /**< invalid src argument */
261 #define MYFILE_ERR_DST_ARG_INVALID (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x02)) /**< invalid dst argument */
262 #define MYFILE_ERR_FILE_DELETE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x03)) /**< exception of delete file */
263 #define MYFILE_ERR_FILE_MOVE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x04)) /**< exception of move file */
264 #define MYFILE_ERR_FILE_COPY_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x05)) /**< exception of copy file */
265 #define MYFILE_ERR_FILE_WRITE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x06)) /**< exception of read file */
266 #define MYFILE_ERR_RENAME_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x07)) /**< exception of rename file */
267 #define MYFILE_ERR_FILE_NOT_FOUND (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x08)) /**< exception of file doesn't exist*/
268 #define MYFILE_ERR_DIR_OPEN_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x09)) /**< exception of dir open*/
269 #define MYFILE_ERR_DIR_CREATE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0a)) /**< exception of create dir */
272 #define MYFILE_ERR_DIR_DELETE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0b)) /**< exception of delete dir */
273 #define MYFILE_ERR_FILE_OPEN_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0c)) /**< exception of rename dir */
274 #define MYFILE_ERR_DIR_COPY_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0d)) /**< exception of copy dir */
275 #define MYFILE_ERR_DIR_MOVE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0e)) /**< exception of move dir */
276 #define MYFILE_ERR_DIR_FULL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0f)) /**< exception of dir full */
277 #define MYFILE_ERR_DIR_TOO_DEEP (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x10)) /**< exception of too deep dir */
278 #define MYFILE_ERR_DIR_NOT_FOUND (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x11)) /**< exception of dir doesn't exist*/
279 #define MYFILE_ERR_INVALID_DIR_NAME (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x12)) /**< exception of invalid dir name */
280 #define MYFILE_ERR_INVALID_DIR_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x13)) /**< exception of invalid dir path */
281 #define MYFILE_ERR_INVALID_FILE_NAME (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x14)) /**< exception of invalid file name */
284 #define MYFILE_ERR_INVALID_FILE_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x15)) /**< exception of invalid file path */
285 #define MYFILE_ERR_GET_MEMORY_STATUS_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x16)) /**< exception of statfs */
286 #define MYFILE_ERR_DUPLICATED_NAME (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x17)) /**< exception of duplicated dir name*/
287 #define MYFILE_ERR_SYSTEM_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x18)) /**< exception of operating on system dir.*/
288 #define MYFILE_ERR_DIR_RECUR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x19)) /**< exception of copy/move a dir to its child */
289 #define MYFILE_ERR_ALLOCATE_MEMORY_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x1a)) /**< exception of memory allocation */
290 #define MYFILE_ERR_OUT_OF_RANGE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x1b))
291 #define MYFILE_ERR_INVALID_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x1c)) /**< invalid path string */
292 #define MYFILE_ERR_ROOT_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x1d)) /**< root path */
293 #define MYFILE_ERR_DCM_ENGINE_APPEND (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x1e)) /**< fail to append dcm data */
296 #define MYFILE_ERR_NOT_MMF_FILE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x1f)) /**< isn't mmf file */
297 #define MYFILE_ERR_SMAF_PERMISSION_DENY (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x20)) /**< smaf lock prohibits copy/move from mmc to phone */
298 #define MYFILE_ERR_DRM_PERMISSION_DENY (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x21)) /**< can't copy/move drm file because of permission */
299 #define MYFILE_ERR_COPY_TO_SRC_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x22)) /**< can't copy dir to source place*/
300 #define MYFILE_ERR_COPY_ROOT_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x23)) /**< can't copy root dir*/
301 #define MYFILE_ERR_COPY_TO_SRC_FILE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x24)) /**< can't copy file to source place*/
302 #define MYFILE_ERR_MOVE_TO_SRC_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x25)) /**< can't move dir to source place */
303 #define MYFILE_ERR_MOVE_ROOT_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x26)) /**< can't move root dir */
304 #define MYFILE_ERR_MOVE_TO_SRC_FILE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x27)) /**< can't move file to source place*/
305 #define MYFILE_ERR_MOVE_FILE_USING (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x28)) /**< can't move the file is being used*/
308 #define MYFILE_ERR_DELETE_ROOT_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x29)) /**< can't delete root dir */
309 #define MYFILE_ERR_DELETE_SYSTEM_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x2a)) /**< can't delete system dir */
310 #define MYFILE_ERR_RENAME_ROOT_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x2b)) /**< can't rename root dir */
311 #define MYFILE_ERR_RENAME_SYSTEM_DIR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x2c)) /**< can't rename system dir */
312 #define MYFILE_ERR_EXCEED_MAX_LENGTH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x2d)) /**< length of file/dir path exceeds maximum length*/
313 #define MYFILE_ERR_LOW_MEMORY (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x2e)) /**< low memory*/
314 #define MYFILE_ERR_UNKNOWN_ERROR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x2f)) /**< unknow error*/
315 #define MYFILE_ERR_WRONG_FILE_TYPE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x30)) /**< wrong file type */
316 #define MYFILE_ERR_FILE_IS_BEING_USED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x31)) /**< file is being used */
317 #define MYFILE_ERR_SRC_NOT_EXIST (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x32)) /**< source not found */
320 #define MYFILE_ERR_DST_NOT_EXIST (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x33)) /**< destination not found */
321 #define MYFILE_ERR_CREATE_TEMP_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x34)) /**< create temp file failed */
322 #define MYFILE_ERR_GET_LOGIC_PATH_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x35)) /**< get logical path failed */
323 #define MYFILE_ERR_STORAGE_TYPE_ERROR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x36)) /**< storage type error */
324 #define MYFILE_ERR_EXT_GET_ERROR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x37)) /**< get ext type failed */
325 #define MYFILE_ERR_GET_PARENT_PATH_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x38)) /**< get parent path failed */
326 #define MYFILE_ERR_GET_STAT_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x39)) /**< get stat failed */
327 #define MYFILE_ERR_GENERATE_NAME_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x3a)) /**< generate name failed */
328 #define MYFILE_ERR_GET_CATEGORY_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x3b)) /**< get file category failed */
329 #define MYFILE_ERR_GET_VCONF_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x3c)) /**< get vconf value failed */
332 #define MYFILE_ERR_SETTING_RESET_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x3d)) /**< setting item reset failed */
333 #define MYFILE_ERR_DIR_CLEAR_FAILED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x3e)) /**< dir not clearly deleted */
334 #define MYFILE_ERR_SETTING_DELETE_FAILED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x3f)) /**< delete setting item failed */
335 #define MYFILE_ERR_GET_THUMBNAIL_FAILED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x40)) /**< get file thumbnail failed */
336 #define MYFILE_ERR_CANCEL_PRESSED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x41)) /**< cancel pressed while copy/move */
337 #define MYFILE_ERR_ACCESS_MODE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x42)) /**< access mode not satisfied */
338 #define MYFILE_ERR_FILE_READ_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x43)) /**< exception of read file */
339 #define MYFILE_ERR_INVALID_ARG (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x44)) /**< argument of function is not valid */
340 #define MYFILE_ERR_NO_FREE_SPACE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x45)) /**< get free space failed */
341 #define MYFILE_ERR_GET_NAVI_FAILED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x46)) /**< get navigation bar failed */
344 #define MYFILE_ERR_STORAGE_INUSE_REMOVED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x47)) /**< get navigation bar failed */
345 #define MYFILE_ERR_VCONF_GET_FAILED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x48)) /**< get vconf value failed */
347 /* File system related callback definition */
348 typedef int (*myfile_operation_cb) (const char *current_path,
349 const char *destination, int copied_size, FILE * fSource, FILE * fDestination, void *data);
351 typedef struct _FS_NODE_INFO fsNodeInfo;
353 struct _FS_NODE_INFO {
363 int mf_fs_oper_error(const char *src, const char *dst, int check_option);
364 void mf_fs_oper_print_node(fsNodeInfo *pNode);
365 /********** File Attribute Related **********/
366 int mf_file_attr_get_file_stat(const char *filename, fsNodeInfo **node);
368 int mf_file_attr_get_file_category(const char *filepath, fsFileType *category);
369 fsFileType mf_file_attr_get_file_type_by_mime(const char *file_path);
371 int mf_file_attr_is_dir(const char *filepath);
372 int mf_file_attr_get_store_type_by_full(const char *filepath, MF_STORAGE *store_type);
373 int mf_file_attr_get_file_ext(const char *filepath, char **file_ext);
374 int mf_file_attr_is_duplicated_name(const char *dir, const char *name);
375 int mf_file_attr_is_valid_name(const char *filename);
376 int mf_file_attr_is_right_dir_path(const char *dir_path);
377 int mf_file_attr_is_right_file_path(const char *file_path);
378 int mf_file_attr_get_parent_path(const char *path, char **parent_path);
379 int mf_file_attr_get_logical_path_by_full(const char *full_path, char **path);
380 void mf_file_attr_get_file_size_info(char **file_size, fsNodeInfo *pNode);
382 /********** File Operation Related **********/
383 int mf_fs_oper_read_dir(const char *path, Eina_List **dir_list, Eina_List **file_list);
384 void mf_fs_oper_sort_list(Eina_List **list, int sort_opt);
385 int mf_fs_oper_create_dir(const char *dir);
386 int mf_fs_oper_rename_file(const char *src, const char *dst);
387 int mf_file_attr_get_file_icon(const char *file_path, int *error_code, int view_type, const char **thumbnail, media_info_h *media_info);
388 const char *mf_file_attr_get_default_icon_by_type(fsFileType ftype);
389 const char *mf_file_attr_get_default_thumbnail_by_type(fsFileType ftype);
390 int mf_file_attr_get_path_level(const char *fullpath, int *level);
391 int mf_file_attr_is_system_dir(char *fullpath, bool *result);
392 int mf_file_attr_is_disk_link(const char *fullpath, bool *result);