update code by Tizen coding convention
[platform/core/multimedia/libmedia-service.git] / src / include / common / media-svc-env.h
1 /*
2  * libmedia-service
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Hyunjun Ko <zzoon.ko@samsung.com>, Haejeong Kim <backto.kim@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23
24 #ifndef _MEDIA_SVC_ENV_H_
25 #define _MEDIA_SVC_ENV_H_
26
27 #include <time.h>
28 #include <media-util.h>
29 #include <tzplatform_config.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 /**
36  * DB information
37  */
38
39 #define MEDIA_SVC_DB_NAME                                               MEDIA_DB_NAME           /**<  media db name*/
40 #define LATEST_VERSION_NUMBER                                   2
41
42 /**
43  * DB table information
44  */
45
46 /**
47  * Table Name
48  */
49 #define MEDIA_SVC_DB_TABLE_MEDIA                                "media"                         /**<  media table*/
50 #define MEDIA_SVC_DB_TABLE_FOLDER                               "folder"                        /**<  media_folder table*/
51 #define MEDIA_SVC_DB_TABLE_PLAYLIST                             "playlist"                      /**<  playlist table*/
52 #define MEDIA_SVC_DB_TABLE_PLAYLIST_MAP                 "playlist_map"          /**<  playlist_map table*/
53 #define MEDIA_SVC_DB_TABLE_ALBUM                                "album"                         /**<  album table*/
54 #define MEDIA_SVC_DB_TABLE_TAG                                  "tag"                           /**<  tag table*/
55 #define MEDIA_SVC_DB_TABLE_TAG_MAP                              "tag_map"                       /**<  tag_map table*/
56 #define MEDIA_SVC_DB_TABLE_BOOKMARK                             "bookmark"                      /**<  bookmark table*/
57 #define MEDIA_SVC_DB_TABLE_CUSTOM                               "custom"                                /**<  custom table*/
58 #define MEDIA_SVC_DB_TABLE_STORAGE                              "storage"                       /**<  storage table*/
59
60 /**
61  * View Name
62  */
63 #define MEDIA_SVC_DB_VIEW_MEDIA                                 "media_view"            /**<  media_view*/
64 #define MEDIA_SVC_DB_VIEW_PLAYLIST                              "playlist_view"         /**<  playlist_view*/
65 #define MEDIA_SVC_DB_VIEW_TAG                                   "tag_view"              /**<  tag_view*/
66
67 /**
68  * Trigger Name
69  */
70 #define MEDIA_SVC_DB_TRIGGER_FOLDER                             "folder_cleanup"
71 #define MEDIA_SVC_DB_TRIGGER_PLAYLIST_MAP                       "playlist_map_cleanup"          /**<  media to map*/
72 #define MEDIA_SVC_DB_TRIGGER_PLAYLIST_MAP1                      "playlist_map_cleanup_1"        /**<  playlist to map*/
73 #define MEDIA_SVC_DB_TRIGGER_ALBUM                              "album_cleanup"
74 #define MEDIA_SVC_DB_TRIGGER_TAG_MAP                    "tag_map_cleanup"               /**<  media to map*/
75 #define MEDIA_SVC_DB_TRIGGER_TAG_MAP1                   "tag_map_cleanup_1"             /**<  tag to map*/
76 #define MEDIA_SVC_DB_TRIGGER_BOOKMARK                   "bookmark_cleanup"
77 #define MEDIA_SVC_DB_TRIGGER_STORAGE                    "storage_folder_cleanup"
78 #define MEDIA_SVC_DB_TRIGGER_CUSTOM                     "custom_cleanup"
79
80 /**
81  * Trigger Name
82  */
83 #define MEDIA_SVC_DB_COLUMN_THUMBNAIL                   "thumbnail_path"
84 #define MEDIA_SVC_DB_COLUMN_MAP_ID                              "_id"
85
86
87 /**
88  * option
89  */
90 #define MEDIA_SVC_DB_TYPE_TEXT                                  "TEXT"
91 #define MEDIA_SVC_DB_TYPE_INT                                   "INTEGER"
92 #define MEDIA_SVC_DB_TYPE_DOUBLE                                "DOUBLE"
93
94 /**
95  * Query form
96  */
97 #define MEDIA_SVC_DB_QUERY_TABLE_WITH_UNIQUE    "CREATE TABLE IF NOT EXISTS '%s' (%s, unique(%s));"
98 #define MEDIA_SVC_DB_QUERY_TABLE                                "CREATE TABLE IF NOT EXISTS '%s' (%s);"
99 #define MEDIA_SVC_DB_QUERY_INDEX                                "CREATE INDEX IF NOT EXISTS %s on '%s' (%s);"
100 #define MEDIA_SVC_DB_QUERY_TRIGGER                              "CREATE TRIGGER IF NOT EXISTS %s DELETE ON %s BEGIN DELETE FROM %s WHERE %s=old.%s;END;"
101 #define MEDIA_SVC_DB_QUERY_TRIGGER_WITH_COUNT   "CREATE TRIGGER IF NOT EXISTS %s DELETE ON %s BEGIN DELETE FROM %s WHERE (SELECT count(*) FROM %s WHERE %s=old.%s)=1 AND %s=old.%s;END;"
102 #define MEDIA_SVC_DB_QUERY_VIEW_MEDIA                   "CREATE VIEW IF NOT EXISTS %s AS SELECT * from %s;"
103 #define MEDIA_SVC_DB_QUERY_VIEW_PLAYLIST                "CREATE VIEW IF NOT EXISTS %s AS SELECT %s FROM playlist \
104                                                                                                 LEFT OUTER JOIN playlist_map ON playlist.playlist_id = playlist_map.playlist_id \
105                                                                                                 LEFT OUTER JOIN media ON (playlist_map.media_uuid = media.media_uuid AND media.validity=1) \
106 LEFT OUTER JOIN (SELECT count(playlist_id) as media_count, playlist_id FROM playlist_map group by playlist_id) as cnt_tbl ON (cnt_tbl.playlist_id=playlist_map.playlist_id AND media.validity=1);"
107 #define MEDIA_SVC_DB_QUERY_VIEW_TAG                             "CREATE VIEW IF NOT EXISTS %s AS SELECT %s FROM tag \
108                                                                                                 LEFT OUTER JOIN tag_map ON tag.tag_id=tag_map.tag_id \
109                                                                                                 LEFT OUTER JOIN media ON (tag_map.media_uuid = media.media_uuid AND media.validity=1) \
110 LEFT OUTER JOIN (SELECT count(tag_id) as media_count, tag_id FROM tag_map group by tag_id) as cnt_tbl ON (cnt_tbl.tag_id=tag_map.tag_id AND media.validity=1);"
111 #define MEDIA_SVC_DB_QUERY_ALTER_TABLE                  "ALTER TABLE %s ADD COLUMN %s;"
112 #define MEDIA_SVC_DB_QUERY_DROP_VIEW                    "DROP VIEW IF EXISTS %s;"
113
114
115
116 #define MEDIA_SVC_METADATA_LEN_MAX                      128                                             /**<  Length of metadata*/
117 #define MEDIA_SVC_METADATA_DESCRIPTION_MAX      512                                             /**<  Length of description*/
118 #define MEDIA_SVC_PATHNAME_SIZE                         4096                                    /**<  Length of Path name. */
119 #define MEDIA_SVC_UUID_SIZE                                             36                                              /**< Length of UUID*/
120
121 #define MEDIA_SVC_TAG_UNKNOWN                           "Unknown"
122 #define MEDIA_SVC_MEDIA_PATH                            tzplatform_mkpath(TZ_USER_DATA, "file-manager-service")                 /**<  Media path*/
123 #define MEDIA_SVC_THUMB_PATH_PREFIX                     tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb")                  /**< Thumbnail path prefix*/
124 #define MEDIA_SVC_THUMB_INTERNAL_PATH           tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb/phone")    /**<  Phone thumbnail path*/
125 #define MEDIA_SVC_THUMB_EXTERNAL_PATH           tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb/mmc")              /**<  MMC thumbnail path*/
126 #define MEDIA_SVC_THUMB_DEFAULT_PATH            tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb/thumb_default.png") /** default thumbnail */
127
128 #define MEDIA_SVC_DEFAULT_GPS_VALUE                     -200                    /**<  Default GPS Value*/
129 #define THUMB_EXT       "jpg"
130
131 enum Exif_Orientation {
132         NOT_AVAILABLE = 0,
133         NORMAL  = 1,
134         HFLIP   = 2,
135         ROT_180 = 3,
136         VFLIP   = 4,
137         TRANSPOSE   = 5,
138         ROT_90  = 6,
139         TRANSVERSE  = 7,
140         ROT_270 = 8
141 };
142
143 typedef enum {
144         MEDIA_SVC_QUERY_INSERT_ITEM,
145         MEDIA_SVC_QUERY_SET_ITEM_VALIDITY,
146         MEDIA_SVC_QUERY_MOVE_ITEM,
147         MEDIA_SVC_QUERY_UPDATE_ITEM
148 } media_svc_query_type_e;
149
150 typedef enum {
151         MEDIA_SVC_DB_LIST_MEDIA                 = 0,
152         MEDIA_SVC_DB_LIST_FOLDER                = 1,
153         MEDIA_SVC_DB_LIST_PLAYLIST_MAP = 2,
154         MEDIA_SVC_DB_LIST_PLAYLIST      = 3,
155         MEDIA_SVC_DB_LIST_ALBUM         = 4,
156         MEDIA_SVC_DB_LIST_TAG_MAP               = 5,
157         MEDIA_SVC_DB_LIST_TAG                   = 6,
158         MEDIA_SVC_DB_LIST_BOOKMARK      = 7,
159         MEDIA_SVC_DB_LIST_STORAGE               = 8,
160         MEDIA_SVC_DB_LIST_CUSTOM                = 9,
161         MEDIA_SVC_DB_LIST_MAX                   = 10,
162 } media_svc_table_slist_e;
163
164 typedef struct table_inform {
165         char *triggerName;
166         char *viewName;
167         char *eventTable;
168         char *actionTable;
169 } table_info;
170
171 typedef struct column_inform {
172         char *name;
173         char *type;
174         bool hasOption;
175         char *option;
176         int version;
177         bool isIndex;
178         char *indexName;
179         bool isUnique;
180         bool isTrigger;
181         bool isView;
182 } column_info;
183
184
185 #ifdef __cplusplus
186 }
187 #endif
188
189 #endif /*_MEDIA_SVC_ENV_H_*/