initial upload for tizen 2.0 beta
[apps/home/gallery.git] / include / util / gl-util.h
1 /*
2   * Copyright 2012  Samsung Electronics Co., Ltd
3   *
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
7   *
8   *     http://www.tizenopensource.org/license
9   *
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.
15   */
16
17 #ifndef _GL_UTIL_H_
18 #define _GL_UTIL_H_
19
20 #include "gl-data.h"
21 #include "gallery.h"
22
23 #define GL_FILE_EXISTS(path) \
24         ((1 == ecore_file_exists(path)) && (ecore_file_size(path) > 0))
25
26 #define GL_IF_DEL_TIMER(timer) if(timer){ecore_timer_del(timer); timer = NULL;}
27 #define GL_IF_DEL_IDLER(idler) if(idler){ecore_idler_del(idler); idler = NULL;}
28 #define GL_IF_DEL_OBJ(obj) if(obj){evas_object_del(obj); obj = NULL;}
29 #define GL_IF_FREE_MEM(mem) if(mem){free(mem); mem = NULL;}
30 #define GL_FREE_MEM(mem) if(mem){free(mem); mem = NULL;}
31
32
33 typedef enum
34 {
35         GL_MMC_STATE_NONE,
36         GL_MMC_STATE_ADDED,
37         GL_MMC_STATE_ADDED_MOVING,      /* Move medias to MMC or from MMC */
38         GL_MMC_STATE_ADDING_MOVING,     /* Insert MMC while operate medias */
39         GL_MMC_STATE_REMOVED,
40         GL_MMC_STATE_REMOVED_MOVING,    /* Remove MMC while move medias to MMC or from MMC */
41 } gl_mmc_state_mode;
42
43 typedef enum
44 {
45         GL_UPDATE_VIEW_NONE,
46         GL_UPDATE_VIEW_NORMAL,
47         GL_UPDATE_VIEW_MMC_REMOVED,     /* Update view when MMC removed */
48         GL_UPDATE_VIEW_MMC_ADDED,       /* Update view when MMC inserted */
49 } gl_update_view_mode;
50
51 typedef enum
52 {
53         GL_MEDIA_OP_NONE,
54         GL_MEDIA_OP_MOVE,
55         GL_MEDIA_OP_DELETE,
56 #ifdef _USE_ROTATE_BG
57         GL_MEDIA_OP_ROTATING_LEFT,
58         GL_MEDIA_OP_ROTATING_RIGHT,
59 #endif
60 } gl_media_op_mode;
61
62 typedef enum
63 {
64         GL_POPUP_OP_NONE,
65         GL_POPUP_OP_SAME_ALBUM,
66         GL_POPUP_OP_DUPLICATED_NAME,
67         GL_POPUP_OP_PROTECTED_FILE,
68 } gl_popup_op_mode;
69
70 typedef enum
71 {
72         GL_SHARE_NONE,
73         GL_SHARE_DRM,                   /* DRM file selected, disable share option */
74         GL_SHARE_IMAGE_ONE,             /* One image selection */
75         GL_SHARE_IMAGE_ONE_JPEG,                /* One jpeg image selection */
76         GL_SHARE_IMAGE_MULTI,   /* Multiple images selection */
77         GL_SHARE_IMAGE_MULTI_JPEG,      /* Multiple jpeg images selection */
78         GL_SHARE_IMAGE_VIDEO,   /* Image(s) and Video(s) selection */
79         GL_SHARE_VIDEO_ONE,             /* One video selection */
80         GL_SHARE_VIDEO_MULTI,   /* Multiple videos selection */
81 } gl_share_mode;
82
83 typedef enum
84 {
85         GL_INVALID_NONE,
86         GL_INVALID_RENAME_ALBUM,
87         GL_INVALID_NEW_ENTRY,
88         GL_INVALID_NEW_ENTRY_NOC,       /* Show nocontents view */
89 } gl_invalid_mode;
90
91 int gl_get_view_mode(void *data);
92 int gl_set_view_mode(void *data, int mode);
93 int gl_move_media_item(gl_item * gitem, char *new_dir_name, bool is_full_path, int *popup_op);
94 int gl_move_selected(void *data);
95 int gl_move_to_album(void *data);
96 int gl_move_root_album(void* data, gl_cluster* cur_album, char* dest_path);
97 int gl_update_move_view(void *data);
98 int gl_del_medias(void *data);
99 int gl_del_selected(void *data);
100 int _gl_del_video(void *data);
101 int gl_update_del_view(void *data);
102 int _gl_share_select_album(void *data);
103 int gl_share_select_item(void *data);
104 int gl_check_mmc_state(void *data, char *dest_folder);
105 int gl_del_albums(void *data);
106 int gl_refresh_albums_list(void *data);
107 int gl_reg_db_update_noti(void *data);
108 int gl_dereg_db_update_noti(void);
109 void gl_set_mmc_notifd(int fd);
110 Eina_Bool gl_update_view(void *data, int mode);
111 int gl_get_default_images_path(char *directory_path);
112 int gl_get_selected_files_path_str(void *data, gchar sep_c, char **path_str, int *sel_cnt);
113 int gl_make_dir(const char *dir_full_path);
114 int gl_make_new_album(const char *name);
115 bool gl_check_gallery_empty(void* data);
116 bool gl_is_rotation_locked(void);
117 bool gl_is_image_valid(void *data, char *filepath);
118 #ifdef _USE_ROTATE_BG
119 int _gl_rotate_images(void *data, bool b_left);
120 int _gl_rotate_selected(void *data, int op_type);
121 int _gl_update_rotate_view(void *data);
122 #endif
123 bool gl_validate_album_name(const char *new_name);
124 int gl_get_entry_text(Evas_Object * entry, char *entry_text, int len_max);
125 int gl_set_entry_text(Evas_Object *entry, char *entry_text);
126 int gl_get_share_mode(void *data);
127 int gl_del_invalid_widgets(void *data, int invalid_m);
128 int _gl_destroy_albums_edit_view(void *data);
129 int _gl_destroy_thumbs_edit_view(void *data);
130 int gl_destroy_thumbs_view(void *data);
131 int gl_pop_to_ctrlbar_ly(void *data, bool b_update_albums_list);
132 int gl_play_vibration(void *data);
133
134 char *_gl_get_duration_string(unsigned int v_dur);
135 int _gl_get_thumb(void *data, const char *file_path, char **thumb_path);
136
137 #endif /* _GL_UTIL_H_ */