Update face related code
[platform/core/api/media-content.git] / src / media_bookmark.c
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
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
18 #include <media_info_private.h>
19
20
21 int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path)
22 {
23         int ret = MEDIA_CONTENT_ERROR_NONE;
24         char *sql = NULL;
25
26         if(STRING_VALID(media_id))
27         {
28                 sql = sqlite3_mprintf(INSERT_BOOKMARK_TO_BOOKMARK, media_id, time, thumbnail_path);
29                 ret = _content_query_sql(sql);
30                 SQLITE3_SAFE_FREE(sql);
31         }
32         else
33         {
34                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
35                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
36         }
37
38         return ret;
39 }
40
41 int media_bookmark_delete_from_db(int bookmark_id)
42 {
43         int ret = MEDIA_CONTENT_ERROR_NONE;
44         char *query_str = NULL;
45
46         if(bookmark_id < 0)
47         {
48                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
49                 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
50         }
51
52         query_str = sqlite3_mprintf(DELETE_BOOKMARK_FROM_BOOKMARK, bookmark_id);
53
54         ret = _content_query_sql(query_str);
55
56         SQLITE3_SAFE_FREE(query_str);
57
58         return ret;
59 }
60
61 int media_bookmark_get_bookmark_count_from_db(filter_h filter, int *bookmark_count)
62 {
63         int ret = MEDIA_CONTENT_ERROR_NONE;
64
65         if (bookmark_count == NULL)
66         {
67                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
68                 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
69         }
70
71         ret = _media_db_get_group_count(filter, MEDIA_GROUP_BOOKMARK, bookmark_count);
72
73         return ret;
74 }
75
76 int media_bookmark_destroy(media_bookmark_h bookmark)
77 {
78         int ret = MEDIA_CONTENT_ERROR_NONE;
79         media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
80
81         if(_bookmark)
82         {
83                 SAFE_FREE(_bookmark->media_id);
84                 SAFE_FREE(_bookmark->thumbnail_path);
85                 free(_bookmark);
86                 ret = MEDIA_CONTENT_ERROR_NONE;
87         }
88         else
89         {
90                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
91                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
92         }
93
94         return ret;
95 }
96 int media_bookmark_clone(media_bookmark_h *dst, media_bookmark_h src)
97 {
98         int ret = MEDIA_CONTENT_ERROR_NONE;
99
100         if((src != NULL))
101         {
102                 media_bookmark_s *_src = (media_bookmark_s*)src;
103                 media_bookmark_s *_dst = (media_bookmark_s*)calloc(1, sizeof(media_bookmark_s));
104                 media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
105
106                 _dst->bookmark_id = _src->bookmark_id;
107
108                 if(STRING_VALID(_src->media_id))
109                 {
110                         _dst->media_id = (char*)strdup(_src->media_id);
111                         if(_dst->media_id == NULL)
112                         {
113                                 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
114                                 media_bookmark_destroy((media_bookmark_h)_dst);
115                                 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
116                         }
117                 }
118
119                 _dst->marked_time = _src->marked_time;
120
121                 if(STRING_VALID(_src->thumbnail_path))
122                 {
123                         _dst->thumbnail_path = (char*)strdup(_src->thumbnail_path);
124                         if(_dst->thumbnail_path == NULL)
125                         {
126                                 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
127                                 media_bookmark_destroy((media_bookmark_h)_dst);
128                                 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
129                         }
130                 }
131
132                 *dst = (media_bookmark_h)_dst;
133
134                 ret = MEDIA_CONTENT_ERROR_NONE;
135         }
136         else
137         {
138                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
139                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
140         }
141
142         return ret;
143 }
144
145 int media_bookmark_get_bookmark_id(media_bookmark_h bookmark, int *bookmark_id)
146 {
147         int ret = MEDIA_CONTENT_ERROR_NONE;
148         media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
149
150         if(_bookmark)
151         {
152                 *bookmark_id = _bookmark->bookmark_id;
153                 ret = MEDIA_CONTENT_ERROR_NONE;
154         }
155         else
156         {
157                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
158                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
159         }
160
161         return ret;
162 }
163
164 int media_bookmark_get_marked_time(media_bookmark_h bookmark, time_t* marked_time)
165 {
166         int ret = MEDIA_CONTENT_ERROR_NONE;
167         media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
168
169         if(_bookmark)
170         {
171                 *marked_time = _bookmark->marked_time;
172                 ret = MEDIA_CONTENT_ERROR_NONE;
173         }
174         else
175         {
176                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
177                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
178         }
179
180         return ret;
181 }
182
183 int media_bookmark_get_thumbnail_path(media_bookmark_h bookmark, char **path)
184 {
185         int ret = MEDIA_CONTENT_ERROR_NONE;
186         media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
187
188         if(_bookmark)
189         {
190                 if(STRING_VALID(_bookmark->thumbnail_path))
191                 {
192                         *path = strdup(_bookmark->thumbnail_path);
193                         media_content_retvm_if(*path == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
194                 }
195                 else
196                 {
197                         *path = NULL;
198                 }
199
200                 ret = MEDIA_CONTENT_ERROR_NONE;
201         }
202         else
203         {
204                 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
205                 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
206         }
207
208         return ret;
209 }