summaryrefslogtreecommitdiff
path: root/src/include/mf-ug-fs-util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/mf-ug-fs-util.h')
-rwxr-xr-xsrc/include/mf-ug-fs-util.h257
1 files changed, 257 insertions, 0 deletions
diff --git a/src/include/mf-ug-fs-util.h b/src/include/mf-ug-fs-util.h
new file mode 100755
index 0000000..1e3e08f
--- /dev/null
+++ b/src/include/mf-ug-fs-util.h
@@ -0,0 +1,257 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.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://www.tizenopensource.org/license
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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.
+ */
+
+
+
+
+
+#ifndef __DEF_MF_UG_FS_UTIL_H_
+#define __DEF_MF_UG_FS_UTIL_H_
+
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <stdlib.h>
+#include <dirent.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <linux/fs.h>
+#include <Eina.h>
+
+#include <Elementary.h>
+#include <visual-svc.h>
+#include <media-svc.h>
+
+#include "mf-ug-dlog.h"
+
+
+/* File system related value definition */
+#define FILE_EXT_LEN_MAX 8
+#define MYFILE_DIR_PATH_LEN_MAX 4096
+#define MYFILE_FILE_NAME_LEN_MAX 256
+#define MYFILE_FILE_PATH_LEN_MAX MYFILE_DIR_PATH_LEN_MAX + MYFILE_FILE_NAME_LEN_MAX
+
+
+/* File system related String definition */
+#define PHONE_FOLDER "/opt/media"
+#define MEMORY_FOLDER "/opt/storage/sdcard"
+#define DEBUG_FOLDER "SLP_debug"
+
+#define MYFILE_NAME_PATTERN "[\\:;*\"<>|?/]"
+
+#define IMAGE_AND_VIDEO "Images and videos"
+#define SOUND_AND_MUSIC "Sounds and music"
+#define DOWNLOADS "Downloads"
+#define CAMERA_SHOTS "Camera shots"
+
+
+#define WALLPAPER "Wallpapers"
+#define MY_PHOTO_CLIPS "My photo clips"
+#define MY_ALBUM "My album" /*/_("IDS_MF_BODY_ACCESS_MORE_MY_ALBUM") */
+#define MY_VIDEO_CLIPS "My video clips" /*/_("IDS_MF_BODY_MY_VIDEO_CLIPS") */
+
+#define FM_RADIO "FM Radio" /*/dgettext("sys_string", "IDS_COM_HEADER_FMRADIO") */
+#define MUSIC "Music" /*/_("IDS_MF_BODY_MUSIC") */
+#define RINGTONES "Ringtones"
+#define VOICE_RECORDER "Voice recorder" /*/dgettext("sys_string", "IDS_COM_BODY_VOICE_RECORDER") */
+#define ALERTS "Alerts"
+#define OTHERS "Others" /*/dgettext("sys_string","IDS_COM_BODY_OTHERS") */
+
+/* File system define default folder */
+
+/* compile option */
+#define UG_DEBUG_FOLDER_OPTION
+
+#ifndef UG_ICON_PATH
+#define UG_ICON_PATH "/opt/ug/res/images/ug-myfile-efl"
+#endif
+
+#ifndef UG_DEFAULT_ICON
+#define UG_DEFAULT_ICON UG_ICON_PATH"/60_myfiles_file_etc.png"
+#endif
+
+#define UG_ICON_FOLDER UG_ICON_PATH"/47_myfiles_icon_folder.png"
+#define UG_ICON_IMAGE UG_ICON_PATH"/60_myfiles_icon_images.png"
+#define UG_ICON_VIDEO UG_ICON_PATH"/47_myfiles_icon_video.png"
+#define UG_ICON_MUSIC UG_ICON_PATH"/47_myfiles_icon_music.png"
+#define UG_ICON_SOUND UG_ICON_PATH"/60_myfiles_icon_music_default.png"
+#define UG_ICON_PDF UG_ICON_PATH"/47_myfiles_icon_pdf.png"
+#define UG_ICON_DOC UG_ICON_PATH"/47_myfiles_icon_word.png"
+#define UG_ICON_PPT UG_ICON_PATH"/47_myfiles_icon_ppt.png"
+#define UG_ICON_EXCEL UG_ICON_PATH"/47_myfiles_icon_excel.png"
+#define UG_ICON_VOICE UG_ICON_PATH"/60_myfiles_file_amr.png"
+#define UG_ICON_HTML UG_ICON_PATH"/47_myfiles_icon_html.png"
+#define UG_ICON_FLASH UG_ICON_PATH"/47_myfiles_icon_swf.png"
+#define UG_ICON_TXT UG_ICON_PATH"/47_myfiles_icon_text.png"
+#define UG_ICON_VCONTACT UG_ICON_PATH"/60_myfiles_icon_vcard.png"
+#define UG_ICON_VCALENDAR UG_ICON_PATH"/60_myfiles_icon_vcalender.png"
+#define UG_ICON_VNOTE UG_ICON_PATH"/60_myfiles_icon_vText.png"
+#define UG_ICON_RSS UG_ICON_PATH"/47_myfiles_icon_rss.png"
+#define UG_ICON_JAVA UG_ICON_PATH"/60_myfiles_icon_java.png"
+#define UG_ICON_MEMORY_SUB UG_ICON_PATH"/60_myfiles_memorycard_sub.png"
+#define UG_ICON_MUSIC_PLAY UG_ICON_PATH"/34_control_play.png"
+#define UG_ICON_MUSIC_PAUSE UG_ICON_PATH"/34_control_pause.png"
+#define UG_ICON_MUSIC_PLAY_WHITE UG_ICON_PATH"/47_myfiles_icon_play_focus.png"
+#define UG_ICON_MUSIC_PAUSE_WHITE UG_ICON_PATH"/47_myfiles_icon_pause_focus.png"
+#define UG_ICON_UPPER UG_ICON_PATH"/47_myfiles_icon_upper_folder_white_theme.png"
+
+#define UG_ICON_FOLDER_CREATED UG_ICON_PATH"/47_myfiles_icon_folder_created.png"
+#define UG_ICON_FOLDER_SINCED UG_ICON_PATH"/47_myfiles_icon_folder_sinced.png"
+#define UG_ICON_PHONE UG_ICON_PATH"/60_myfiles_phone.png"
+#define UG_ICON_MEMORY UG_ICON_PATH"/60_myfiles_memorycard.png"
+
+typedef enum _mf_ug_fs_file_type mf_ug_fs_file_type;
+
+enum _mf_ug_fs_file_type {
+ UG_FILE_TYPE_NONE = 0,
+ UG_FILE_TYPE_DIR, /**< Folder category */
+ UG_FILE_TYPE_FILE, /**< File category */
+ UG_FILE_TYPE_IMAGE, /**< Image category */
+ UG_FILE_TYPE_VIDEO, /**< Video category */
+ UG_FILE_TYPE_MUSIC, /**< Music category */
+ UG_FILE_TYPE_SOUND, /**< Sound category */
+ UG_FILE_TYPE_PDF, /**< Pdf category */
+ UG_FILE_TYPE_DOC, /**< Word category */
+ UG_FILE_TYPE_PPT, /**< Powerpoint category */
+ UG_FILE_TYPE_EXCEL, /**< Excel category */
+ UG_FILE_TYPE_VOICE, /**< Voice category */
+ UG_FILE_TYPE_HTML, /**< Html category */
+ UG_FILE_TYPE_FLASH, /**< Flash category */
+ UG_FILE_TYPE_GAME, /**< Game category */
+ UG_FILE_TYPE_APP, /**< Application category */
+ UG_FILE_TYPE_THEME, /**< Theme category */
+ UG_FILE_TYPE_TXT, /**< Txt category */
+ UG_FILE_TYPE_VCONTACT, /**< Vcontact category */
+ UG_FILE_TYPE_VCALENDAR, /**< Vcalendar category */
+ UG_FILE_TYPE_VNOTE, /**< Vnote category */
+ UG_FILE_TYPE_VBOOKMARK, /**< Vbookmark category */
+ UG_FILE_TYPE_VIDEO_PROJECT, /**< Video editor project category */
+ UG_FILE_TYPE_RADIO_RECORDED, /**< radio recorded clips category */
+ UG_FILE_TYPE_MOVIE_MAKER, /**< Movie maker project category */
+ UG_FILE_TYPE_SVG, /**< Svg category */
+ UG_FILE_TYPE_RSS, /**< Rss reader file, *.opml */
+ UG_FILE_TYPE_CERTIFICATION, /**< certification file, *.pem */
+ UG_FILE_TYPE_JAVA, /**< java file, *.jad, *.jar */
+ UG_FILE_TYPE_WGT, /**< wrt , *.wgt, *.wgt */
+ UG_FILE_TYPE_ETC, /**< Other files category */
+ UG_FILE_TYPE_MAX
+};
+
+typedef enum _mf_ug_iter_category_filter_t mf_ug_iter_category_filter_t;
+enum _mf_ug_iter_category_filter_t {
+ UG_FILTER_CATEGORY_NONE = 0x00000000, /**< Default */
+ UG_FILTER_CATEGORY_IMAGE = 0x00000001, /**< Image category */
+ UG_FILTER_CATEGORY_VIDEO = 0x00000002, /**< Video category */
+ UG_FILTER_CATEGORY_SOUND = 0x00000004, /**< Sound category */
+ UG_FILTER_CATEGORY_VOICE = 0x00000008, /**< Voice category */
+ UG_FILTER_CATEGORY_MUSIC = 0x00000010, /**< Music category */
+ UG_FILTER_CATEGORY_HTML = 0x00000020, /**< Html category */
+ UG_FILTER_CATEGORY_FLASH = 0x00000040, /**< Flash category */
+ UG_FILTER_CATEGORY_GAME = 0x00000080, /**< Game category */
+ UG_FILTER_CATEGORY_APP = 0x00000100, /**< Application category */
+ UG_FILTER_CATEGORY_THEME = 0x00000200, /**< Theme category */
+ UG_FILTER_CATEGORY_DOC = 0x00000400, /**< Word category */
+ UG_FILTER_CATEGORY_EXCEL = 0x00000800, /**< Excel category */
+ UG_FILTER_CATEGORY_PPT = 0x00001000, /**< Powerpoint category */
+ UG_FILTER_CATEGORY_PDF = 0x00002000, /**< Pdf category */
+ UG_FILTER_CATEGORY_TXT = 0x00004000, /**< Txt category */
+ UG_FILTER_CATEGORY_VCONTACT = 0x00008000, /**< Vcontact category */
+ UG_FILTER_CATEGORY_VCALENDAR = 0x00010000, /**< Vcalendar category */
+ UG_FILTER_CATEGORY_VNOTE = 0x00020000, /**< Vnote category */
+ UG_FILTER_CATEGORY_VBOOKMARK = 0x00040000, /**< Vbookmark category */
+ UG_FILTER_CATEGORY_VIDEO_PROJECT = 0x00080000, /**< Video editor project category */
+ UG_FILTER_CATEGORY_SVG = 0x00100000, /**< SVG category */
+ UG_FILTER_CATEGORY_RSS = 0x00200000, /**< RSS category */
+ UG_FILTER_CATEGORY_ETC = 0x00400000, /**< Other files category */
+
+};
+
+typedef enum _mf_ug_storage_type mf_ug_storage_type;
+enum _mf_ug_storage_type {
+ MF_UG_NONE,
+ MF_UG_PHONE,
+ MF_UG_MMC,
+ MF_UG_MAX
+};
+
+
+/* File operation error check options definition */
+#define MF_ERROR_CHECK_SRC_ARG_VALID 0x0001
+#define MF_ERROR_CHECK_SRC_EXIST 0x0002
+#define MF_ERROR_CHECK_SRC_PATH_VALID 0x0004
+
+/* File system error definition */
+#define MF_ERROR_MASKL16 0xFFFF
+
+#define MF_ERROR_SET(X) (X & MF_ERROR_MASKL16)
+
+#define MID_CONTENTS_MGR_ERROR 0
+
+#define MYFILE_ERR_NONE (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x00)) /**< No error */
+
+/*/1-10*/
+#define MYFILE_ERR_SRC_ARG_INVALID (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x01)) /**< invalid src argument */
+#define MYFILE_ERR_DST_ARG_INVALID (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x02)) /**< invalid dst argument */
+#define MYFILE_ERR_DIR_OPEN_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x03)) /**< exception of dir open*/
+#define MYFILE_ERR_INVALID_DIR_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x04)) /**< exception of invalid dir path */
+#define MYFILE_ERR_INVALID_FILE_NAME (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x05)) /**< exception of invalid file name */
+#define MYFILE_ERR_INVALID_FILE_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x06)) /**< exception of invalid file path */
+#define MYFILE_ERR_SRC_NOT_EXIST (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x08)) /**< source not found */
+#define MYFILE_ERR_STORAGE_TYPE_ERROR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x09)) /**< storage type error */
+#define MYFILE_ERR_EXT_GET_ERROR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0a)) /**< get ext type failed */
+#define MYFILE_ERR_GET_STAT_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0b)) /**< get stat failed */
+#define MYFILE_ERR_GET_CATEGORY_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0c)) /**< get file category failed */
+#define MYFILE_ERR_GET_VCONF_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0d)) /**< get vconf value failed */
+#define MYFILE_ERR_INVALID_ARG (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0e)) /**< argument of function is not valid */
+#define MYFILE_ERR_ALLOCATE_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x0f))
+#define MYFILE_ERR_LIST_PLAY_FAIL (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x10))
+#define MYFILE_ERR_INVALID_PATH (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x11)) /**< invalid path string */
+#define MYFILE_ERR_GET_THUMBNAIL_FAILED (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x12)) /**<get thumbnail failed */
+#define MYFILE_ERR_UNKNOW_ERROR (MID_CONTENTS_MGR_ERROR - MF_ERROR_SET(0x13)) /**<unknow error */
+/* File system related callback definition */
+
+typedef struct _ugFsNodeInfo ugFsNodeInfo;
+struct _ugFsNodeInfo {
+ char path[MYFILE_DIR_PATH_LEN_MAX];
+ char name[MYFILE_FILE_NAME_LEN_MAX];
+ time_t date;
+ mf_ug_fs_file_type type;
+ char ext[FILE_EXT_LEN_MAX];
+ unsigned int size;
+};
+
+
+/********** File Attribute Related **********/
+int mf_ug_file_attr_get_file_stat(const char *filename, ugFsNodeInfo ** node);
+
+int mf_ug_file_attr_get_file_category(const char *filepath, mf_ug_fs_file_type * category);
+int mf_ug_file_attr_is_dir(const char *filepath);
+int mf_ug_file_attr_get_store_type_by_full(const char *filepath, mf_ug_storage_type * store_type);
+int mf_ug_file_attr_get_file_ext(const char *filepath, char *file_ext);
+int mf_ug_file_attr_is_right_dir_path(const char *dir_path);
+int mf_ug_file_attr_is_right_file_path(const char *file_path);
+
+/********** File Operation Related **********/
+int mf_ug_fs_oper_read_dir(const char *path, Eina_List **dir_list, Eina_List **file_list);
+int mf_ug_fs_oper_list_filter(Eina_List *in_list, Eina_List **out_list, int option);
+int mf_ug_fs_oper_list_filter_by_extension(Eina_List *in_list, Eina_List **out_list, char *ext);
+char *mf_ug_file_attr_get_file_icon(MediaSvcHandle *handle, const char *file_path, int *error_code);
+int mf_ug_file_attr_is_system_dir(char *fullpath, bool * result);
+mf_ug_fs_file_type mf_ug_file_attr_get_file_type_by_mime(const char *file_path);
+
+#endif