initial upload for tizen 2.0 beta
[apps/home/gallery.git] / include / data / gl-data.h
1 /*\r
2   * Copyright 2012  Samsung Electronics Co., Ltd\r
3   *\r
4   * Licensed under the Flora License, Version 1.0 (the "License");\r
5   * you may not use this file except in compliance with the License.\r
6   * You may obtain a copy of the License at\r
7   *\r
8   *     http://www.tizenopensource.org/license\r
9   *\r
10   * Unless required by applicable law or agreed to in writing, software\r
11   * distributed under the License is distributed on an "AS IS" BASIS,\r
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13   * See the License for the specific language governing permissions and\r
14   * limitations under the License.\r
15   */\r
16 \r
17 #ifndef _GL_DATA_H_\r
18 #define _GL_DATA_H_\r
19 \r
20 #include <eina_list.h>\r
21 #include <glib.h>\r
22 #include <Elementary.h>\r
23 #include "gl-local-data.h"\r
24 \r
25 #ifdef _cplusplus\r
26 extern "C"\r
27 {\r
28 #endif\r
29 \r
30 #define GL_MAX_BYTES_FOR_CHAR 3\r
31 #define GL_FILE_PATH_LEN_MAX (4095 * GL_MAX_BYTES_FOR_CHAR + 1)\r
32 #define GL_FILE_NAME_LEN_MAX (255 * GL_MAX_BYTES_FOR_CHAR + 1)\r
33 #define GL_DIR_PATH_LEN_MAX GL_FILE_PATH_LEN_MAX\r
34 #define GL_ARRAY_LEN_MAX 256\r
35 #define GL_FILE_EXT_LEN_MAX 256\r
36 #define GL_FIRST_VIEW_START_POS 0\r
37 #define GL_FIRST_VIEW_END_POS 47        //27            /*maybe 2 pages(=48 medias) is better, especially select album then drag up immediately */\r
38 #define GL_GET_UNTIL_LAST_RECORD 65536  //-1      /* Fixme: Do not use 65536. */\r
39 #define GL_GET_ALL_RECORDS -1\r
40 #define GL_GET_ONE_RECORDS 1\r
41 #define GL_GET_ALL_RECORDS_ID NULL\r
42 /**\r
43 * Get a new mtype item from libmedia-info,\r
44 * if ID is NULL, libmedia-info just allocate memory for mtype item,\r
45 * then return it, instead of loading record from DB to initialize each field.\r
46 */\r
47 #define GL_NEW_RECORD_ID NULL\r
48 \r
49 #define GL_JPEG_FILE_EXT "jpg"\r
50 \r
51 typedef enum{\r
52         GL_SORT_BY_NONE,                        /**< No Sort */\r
53         GL_SORT_BY_NAME_DESC,           /**< Sort by display name descending */\r
54         GL_SORT_BY_NAME_ASC,            /**< Sort by display name ascending */\r
55         GL_SORT_BY_DATE_DESC,           /**< Sort by modified_date descending */\r
56         GL_SORT_BY_DATE_ASC,            /**< Sort by modified_date ascending */\r
57 } gl_sort_type_e;\r
58 \r
59 typedef struct\r
60 {\r
61         gl_album_s *cluster;\r
62         int index;\r
63         time_t item_mtime;\r
64         Elm_Object_Item *item;\r
65         bool checked;\r
66 \r
67         void *ad;               /* Save ad to prevent use global variable */\r
68         void *_reserved;\r
69 } gl_cluster;\r
70 \r
71 typedef struct\r
72 {\r
73         Eina_List *clist;\r
74         /* Editable albums count */\r
75         int edit_cnt;\r
76 } gl_cluster_list;\r
77 \r
78 typedef enum\r
79 {\r
80         GL_ICON_NORMAL,\r
81         GL_ICON_EXPIRED_DRM,\r
82         GL_ICON_CORRUPTED_FILE\r
83 }gl_icon_type;\r
84 \r
85 typedef struct _gl_item\r
86 {\r
87         gl_media_s *item;\r
88         Elm_Object_Item *elm_item;\r
89         Evas_Object *check_obj;\r
90         bool checked;\r
91         int sequence;\r
92         void *ad;               /* Save ad to prevent use global variable */\r
93         void *_reserved;\r
94 } gl_item;\r
95 \r
96 bool _gl_data_get_cluster_list(void *data);\r
97 int _gl_data_update_cluster_list(void *data);\r
98 int _gl_data_cluster_list_remove(void *data, gl_cluster *item);\r
99 int _gl_data_get_cluster_by_id(void *data, const char *cluster_id, gl_cluster **cluster);\r
100 int _gl_data_get_cluster_by_path(void *data, const char *path,\r
101                                  gl_cluster **cluster);\r
102 int _gl_data_get_item_cnt(void *data, const char *cluster_id, int album_type,\r
103                           int *item_cnt);\r
104 int _gl_data_update_item_cnt(gl_cluster *album);\r
105 int _gl_data_update_item_list(void *data);\r
106 int _gl_data_get_item_list(void *data, gl_cluster *album, int start_pos,\r
107                            int end_pos);\r
108 bool _gl_data_is_item_cnt_zero(void *data, media_content_type_e type);\r
109 int _gl_data_get_first_item(void *data, media_content_type_e type, gl_item **fitem);\r
110 int _gl_data_clear_default_item_list(void *data);\r
111 int _gl_data_get_first_several_items(gl_cluster *album, gl_item *items[], int *item_count, media_content_order_e sort_type);\r
112 gl_item *_gl_data_new_item_mitem(gl_media_s *mitem);\r
113 int _gl_data_destroy_item(gl_item *gitem);\r
114 int _gl_data_get_item_by_index(void *data, int idx, bool select_mode, gl_item **gitem);\r
115 int _gl_data_item_list_remove(void *data, gl_item *gitem);\r
116 int _gl_data_append_item(void *data, gl_item *gitem);\r
117 int _gl_data_remove_item(gl_item * gitem);\r
118 int _gl_data_selected_list_append(void *data, gl_item *gitem);\r
119 int _gl_data_selected_list_remove(void *data, gl_item *gitem);\r
120 gl_item *_gl_data_selected_list_get_nth(void *data, int idx);\r
121 int _gl_data_selected_list_finalize(void *data);\r
122 int _gl_data_selected_list_count(void *data);\r
123 bool _gl_data_is_albums_selected_empty(void *data);\r
124 int _gl_data_get_albums_selected_files_path_str(void *data, gchar sep_c,\r
125                                               char **path_str, int *sel_cnt);\r
126 int _gl_data_get_albums_selected_cnt(void *data);\r
127 bool _gl_data_is_albums_selected_list_empty(void *data);\r
128 int _gl_data_albums_selected_list_append(void *data, gl_cluster *item);\r
129 int _gl_data_albums_selected_list_remove(void *data, gl_cluster *item);\r
130 int _gl_data_finalize_albums_selected_list(void *data);\r
131 bool _gl_data_check_update(void *data, bool b_all);\r
132 int _gl_data_init();\r
133 int _gl_data_finalize(void *data);\r
134 gl_cluster *_gl_data_new_cluster(void);\r
135 gl_item *_gl_data_new_gitem(void *data, const char *item_id);\r
136 bool _gl_data_is_root_path(void *data, const char *path);\r
137 bool _gl_data_is_default_album(const char *match_folder, gl_album_s *album);\r
138 int gl_db_free_cluster(gl_cluster *gcluster);\r
139 int _gl_data_get_item_by_fullpath(void *data, char *path, gl_media_s **mitem);\r
140 int _gl_data_delete_media(void *data, gl_media_s *media_item);\r
141 \r
142 #ifdef _cplusplus\r
143 }\r
144 #endif\r
145 #endif /* _GL_DATA_H_ */\r
146 \r