4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Hyunjun Ko <zzoon.ko@samsung.com>, Haejeong Kim <backto.kim@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
24 #ifndef _MEDIA_SVC_ENV_H_
25 #define _MEDIA_SVC_ENV_H_
28 #include <media-util.h>
29 #include <tzplatform_config.h>
39 #define MEDIA_SVC_DB_NAME MEDIA_DB_NAME /**< media db name*/
40 #define LATEST_VERSION_NUMBER 2
43 * DB table information
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*/
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*/
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"
83 #define MEDIA_SVC_DB_COLUMN_THUMBNAIL "thumbnail_path"
84 #define MEDIA_SVC_DB_COLUMN_MAP_ID "_id"
90 #define MEDIA_SVC_DB_TYPE_TEXT "TEXT"
91 #define MEDIA_SVC_DB_TYPE_INT "INTEGER"
92 #define MEDIA_SVC_DB_TYPE_DOUBLE "DOUBLE"
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;"
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*/
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 */
128 #define MEDIA_SVC_DEFAULT_GPS_VALUE -200 /**< Default GPS Value*/
129 #define THUMB_EXT "jpg"
131 enum Exif_Orientation {
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;
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;
164 typedef struct table_inform {
171 typedef struct column_inform {
189 #endif /*_MEDIA_SVC_ENV_H_*/