2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
21 #include <media_content.h>
22 #include <media_info_private.h>
27 filter_h g_filter = NULL;
28 filter_h g_filter_g = NULL; //filter for group like folder, tag, playlist, album, year ...
30 GMainLoop *g_loop = NULL;
32 static int g_media_cnt = 0;
34 #define test_audio_id "0f999626-6218-450c-a4ad-181a3bab6ebf"
35 #define test_video_id "c1a92494-cc5b-4d74-aa7d-253199234548"
36 #define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
38 bool get_audio_meta(audio_meta_h audio)
43 int ret = MEDIA_CONTENT_ERROR_NONE;
45 media_content_debug("=== audio meta ===");
47 ret = audio_meta_get_media_id(audio, &c_value);
48 if(ret != MEDIA_CONTENT_ERROR_NONE)
49 media_content_error("error when get meta : [%d]", ret);
50 media_content_debug("audio_id : [%s]", c_value);
53 ret = audio_meta_get_title(audio, &c_value);
54 if(ret != MEDIA_CONTENT_ERROR_NONE)
55 media_content_error("error when get meta : [%d]", ret);
56 media_content_debug("title : [%s]", c_value);
59 ret = audio_meta_get_album(audio, &c_value);
60 if(ret != MEDIA_CONTENT_ERROR_NONE)
61 media_content_error("error when get meta : [%d]", ret);
62 media_content_debug("album : [%s]", c_value);
65 ret = audio_meta_get_artist(audio, &c_value);
66 if(ret != MEDIA_CONTENT_ERROR_NONE)
67 media_content_error("error when get meta : [%d]", ret);
68 media_content_debug("artist : [%s]", c_value);
71 ret = audio_meta_get_genre(audio, &c_value);
72 if(ret != MEDIA_CONTENT_ERROR_NONE)
73 media_content_error("error when get meta : [%d]", ret);
74 media_content_debug("genre : [%s]", c_value);
77 ret = audio_meta_get_composer(audio, &c_value);
78 if(ret != MEDIA_CONTENT_ERROR_NONE)
79 media_content_error("error when get meta : [%d]", ret);
80 media_content_debug("composer : [%s]", c_value);
83 ret = audio_meta_get_year(audio, &c_value);
84 if(ret != MEDIA_CONTENT_ERROR_NONE)
85 media_content_error("error when get meta : [%d]", ret);
86 media_content_debug("year : [%s]", c_value);
89 ret = audio_meta_get_recorded_date(audio, &c_value);
90 if(ret != MEDIA_CONTENT_ERROR_NONE)
91 media_content_error("error when get meta : [%d]", ret);
92 media_content_debug("recorded_date : [%s]", c_value);
95 ret = audio_meta_get_copyright(audio, &c_value);
96 if(ret != MEDIA_CONTENT_ERROR_NONE)
97 media_content_error("error when get meta : [%d]", ret);
98 media_content_debug("copyright : [%s]", c_value);
101 ret = audio_meta_get_track_num(audio, &c_value);
102 if(ret != MEDIA_CONTENT_ERROR_NONE)
103 media_content_error("error when get meta : [%d]", ret);
104 media_content_debug("track_num : [%s]", c_value);
107 ret = audio_meta_get_bit_rate(audio, &i_value);
108 if(ret != MEDIA_CONTENT_ERROR_NONE)
109 media_content_error("error when get meta : [%d]", ret);
110 media_content_debug("bitrate : [%d]", i_value);
112 ret = audio_meta_get_sample_rate(audio, &i_value);
113 if(ret != MEDIA_CONTENT_ERROR_NONE)
114 media_content_error("error when get meta : [%d]", ret);
115 media_content_debug("samplerate : [%d]", i_value);
117 ret = audio_meta_get_channel(audio, &i_value);
118 if(ret != MEDIA_CONTENT_ERROR_NONE)
119 media_content_error("error when get meta : [%d]", ret);
120 media_content_debug("channel : [%d]", i_value);
122 ret = audio_meta_get_duration(audio, &i_value);
123 if(ret != MEDIA_CONTENT_ERROR_NONE)
124 media_content_error("error when get meta : [%d]", ret);
125 media_content_debug("duration : [%d]", i_value);
127 ret = audio_meta_get_played_count(audio, &i_value);
128 if(ret != MEDIA_CONTENT_ERROR_NONE)
129 media_content_error("error when get meta : [%d]", ret);
130 media_content_debug("played_count : [%d]", i_value);
132 ret = audio_meta_get_played_time(audio, &t_value);
133 if(ret != MEDIA_CONTENT_ERROR_NONE)
134 media_content_error("error when get meta : [%d]", ret);
135 media_content_debug("played_time : [%d]", t_value);
137 ret = audio_meta_get_played_position(audio, &i_value);
138 if(ret != MEDIA_CONTENT_ERROR_NONE)
139 media_content_error("error when get meta : [%d]", ret);
140 media_content_debug("played_position : [%d]", i_value);
145 bool get_video_meta(video_meta_h video)
147 char *c_value = NULL;
150 int ret = MEDIA_CONTENT_ERROR_NONE;
152 media_content_debug("=== video meta ===");
154 ret = video_meta_get_media_id(video, &c_value);
155 if(ret != MEDIA_CONTENT_ERROR_NONE)
156 media_content_error("error when get meta : [%d]", ret);
157 media_content_debug("video_id : [%s]", c_value);
160 ret = video_meta_get_title(video, &c_value);
161 if(ret != MEDIA_CONTENT_ERROR_NONE)
162 media_content_error("error when get meta : [%d]", ret);
163 media_content_debug("title : [%s]", c_value);
166 ret = video_meta_get_album(video, &c_value);
167 if(ret != MEDIA_CONTENT_ERROR_NONE)
168 media_content_error("error when get meta : [%d]", ret);
169 media_content_debug("album : [%s]", c_value);
172 ret = video_meta_get_artist(video, &c_value);
173 if(ret != MEDIA_CONTENT_ERROR_NONE)
174 media_content_error("error when get meta : [%d]", ret);
175 media_content_debug("artist : [%s]", c_value);
178 ret = video_meta_get_genre(video, &c_value);
179 if(ret != MEDIA_CONTENT_ERROR_NONE)
180 media_content_error("error when get meta : [%d]", ret);
181 media_content_debug("genre : [%s]", c_value);
184 ret = video_meta_get_composer(video, &c_value);
185 if(ret != MEDIA_CONTENT_ERROR_NONE)
186 media_content_error("error when get meta : [%d]", ret);
187 media_content_debug("omposer : [%s]", c_value);
190 ret = video_meta_get_year(video, &c_value);
191 if(ret != MEDIA_CONTENT_ERROR_NONE)
192 media_content_error("error when get meta : [%d]", ret);
193 media_content_debug("year : [%s]", c_value);
196 ret = video_meta_get_recorded_date(video, &c_value);
197 if(ret != MEDIA_CONTENT_ERROR_NONE)
198 media_content_error("error when get meta : [%d]", ret);
199 media_content_debug("recorded_date : [%s]", c_value);
202 ret = video_meta_get_copyright(video, &c_value);
203 if(ret != MEDIA_CONTENT_ERROR_NONE)
204 media_content_error("error when get meta : [%d]", ret);
205 media_content_debug("copyright : [%s]", c_value);
208 ret = video_meta_get_track_num(video, &c_value);
209 if(ret != MEDIA_CONTENT_ERROR_NONE)
210 media_content_error("error when get meta : [%d]", ret);
211 media_content_debug("track_num : [%s]", c_value);
214 ret = video_meta_get_bit_rate(video, &i_value);
215 if(ret != MEDIA_CONTENT_ERROR_NONE)
216 media_content_error("error when get meta : [%d]", ret);
217 media_content_debug("bitrate : [%d]", i_value);
219 ret = video_meta_get_duration(video, &i_value);
220 if(ret != MEDIA_CONTENT_ERROR_NONE)
221 media_content_error("error when get meta : [%d]", ret);
222 media_content_debug("duration : [%d]", i_value);
224 ret = video_meta_get_width(video, &i_value);
225 if(ret != MEDIA_CONTENT_ERROR_NONE)
226 media_content_error("error when get meta : [%d]", ret);
227 media_content_debug("width : [%d]", i_value);
229 ret = video_meta_get_height(video, &i_value);
230 if(ret != MEDIA_CONTENT_ERROR_NONE)
231 media_content_error("error when get meta : [%d]", ret);
232 media_content_debug("height : [%d]", i_value);
234 ret = video_meta_get_played_count(video, &i_value);
235 if(ret != MEDIA_CONTENT_ERROR_NONE)
236 media_content_error("error when get meta : [%d]", ret);
237 media_content_debug("played_count : [%d]", i_value);
239 ret = video_meta_get_played_time(video, &t_value);
240 if(ret != MEDIA_CONTENT_ERROR_NONE)
241 media_content_error("error when get meta : [%d]", ret);
242 media_content_debug("played_time : [%d]", t_value);
244 ret = video_meta_get_played_position(video, &i_value);
245 if(ret != MEDIA_CONTENT_ERROR_NONE)
246 media_content_error("error when get meta : [%d]", ret);
247 media_content_debug("played_position : [%d]", i_value);
252 bool gallery_folder_list_cb(media_folder_h folder, void *user_data)
254 media_folder_h new_folder = NULL;
255 media_folder_clone(&new_folder, folder);
257 GList **list = (GList**)user_data;
258 *list = g_list_append(*list, new_folder);
263 bool gallery_media_item_cb(media_info_h media, void *user_data)
265 media_info_h new_media = NULL;
266 media_info_clone(&new_media, media);
268 GList **list = (GList**)user_data;
269 *list = g_list_append(*list, new_media);
274 bool gallery_tag_item_cb(media_tag_h tag, void *user_data)
276 media_tag_h new_tag = NULL;
277 media_tag_clone(&new_tag, tag);
279 GList **list = (GList**)user_data;
280 *list = g_list_append(*list, new_tag);
285 bool gallery_bookmarks_cb(media_bookmark_h bookmark, void *user_data)
287 media_bookmark_h new_bm = NULL;
288 int ret = MEDIA_CONTENT_ERROR_NONE;
290 ret = media_bookmark_clone(&new_bm, bookmark);
291 if(ret != MEDIA_CONTENT_ERROR_NONE)
292 media_content_error("error media_bookmark_clone : [%d]", ret);
294 GList **list = (GList**)user_data;
295 *list = g_list_append(*list, new_bm);
300 bool media_item_cb(media_info_h media, void *user_data)
302 char *c_value = NULL;
303 char *media_id = NULL;
306 bool b_value = false;
307 media_content_type_e media_type = 0;
308 unsigned long long size = 0;
309 int ret = MEDIA_CONTENT_ERROR_NONE;
313 media_content_debug("NO Item");
317 ret = media_info_get_media_type(media, &media_type);
318 if(ret != MEDIA_CONTENT_ERROR_NONE)
319 media_content_error("error when get info : [%d]", ret);
320 media_content_debug("media_type : [%d]", media_type);
322 ret = media_info_get_media_id(media, &media_id);
323 if(ret != MEDIA_CONTENT_ERROR_NONE)
324 media_content_error("error when get info : [%d]", ret);
325 media_content_debug("media_id : [%s]", media_id);
328 if(media_type == MEDIA_CONTENT_TYPE_MUSIC)
332 if(media_info_get_audio(media, &audio) == MEDIA_CONTENT_ERROR_NONE)
334 get_audio_meta(audio);
335 ret = audio_meta_destroy(audio);
336 if(ret != MEDIA_CONTENT_ERROR_NONE)
337 media_content_error("error audio_meta_destroy : [%d]", ret);
340 media_content_error("[audio_error]");
343 else if(media_type == MEDIA_CONTENT_TYPE_IMAGE)
346 media_content_orientation_e orientation = 0;
348 if(media_info_get_image(media, &image) == MEDIA_CONTENT_ERROR_NONE)
350 ret = image_meta_get_orientation(image, &orientation);
351 if(ret != MEDIA_CONTENT_ERROR_NONE)
352 media_content_error("error image_meta_get_orientation : [%d]", ret);
354 media_content_debug("[image] orientation : %d", orientation);
356 ret = image_meta_destroy(image);
357 if(ret != MEDIA_CONTENT_ERROR_NONE)
358 media_content_error("error image_meta_destroy : [%d]", ret);
361 media_content_error("[image_error]");
364 else if(media_type == MEDIA_CONTENT_TYPE_VIDEO)
368 if(media_info_get_video(media, &video) == MEDIA_CONTENT_ERROR_NONE)
370 get_video_meta(video);
371 ret = video_meta_destroy(video);
372 if(ret != MEDIA_CONTENT_ERROR_NONE)
373 media_content_error("error video_meta_destroy : [%d]", ret);
376 media_content_error("[video_error]");
381 media_content_debug("Other Content");
384 media_content_debug("=== media_info ===");
385 ret = media_info_get_file_path(media, &c_value);
386 if(ret != MEDIA_CONTENT_ERROR_NONE)
387 media_content_error("error when get info : [%d]", ret);
388 media_content_debug("file_path : [%s]", c_value);
391 ret = media_info_get_display_name(media, &c_value);
392 if(ret != MEDIA_CONTENT_ERROR_NONE)
393 media_content_error("error when get info : [%d]", ret);
394 media_content_debug("display_name : [%s]", c_value);
397 ret = media_info_get_mime_type(media, &c_value);
398 if(ret != MEDIA_CONTENT_ERROR_NONE)
399 media_content_error("error when get info : [%d]", ret);
400 media_content_debug("mime_type : [%s]", c_value);
403 ret = media_info_get_thumbnail_path(media, &c_value);
404 if(ret != MEDIA_CONTENT_ERROR_NONE)
405 media_content_error("error when get info : [%d]", ret);
406 media_content_debug("thumbnail_path : [%s]", c_value);
409 ret = media_info_get_description(media, &c_value);
410 if(ret != MEDIA_CONTENT_ERROR_NONE)
411 media_content_error("error when get info : [%d]", ret);
412 media_content_debug("description : [%s]", c_value);
415 ret = media_info_get_author(media, &c_value);
416 if(ret != MEDIA_CONTENT_ERROR_NONE)
417 media_content_error("error when get info : [%d]", ret);
418 media_content_debug("author : [%s]", c_value);
421 ret = media_info_get_provider(media, &c_value);
422 if(ret != MEDIA_CONTENT_ERROR_NONE)
423 media_content_error("error when get info : [%d]", ret);
424 media_content_debug("provider : [%s]", c_value);
427 ret = media_info_get_content_name(media, &c_value);
428 if(ret != MEDIA_CONTENT_ERROR_NONE)
429 media_content_error("error when get info : [%d]", ret);
430 media_content_debug("content_name : [%s]", c_value);
433 ret = media_info_get_category(media, &c_value);
434 if(ret != MEDIA_CONTENT_ERROR_NONE)
435 media_content_error("error when get info : [%d]", ret);
436 media_content_debug("category : [%s]", c_value);
439 ret = media_info_get_location_tag(media, &c_value);
440 if(ret != MEDIA_CONTENT_ERROR_NONE)
441 media_content_error("error when get info : [%d]", ret);
442 media_content_debug("location_tag : [%s]", c_value);
445 ret = media_info_get_age_rating(media, &c_value);
446 if(ret != MEDIA_CONTENT_ERROR_NONE)
447 media_content_error("error when get info : [%d]", ret);
448 media_content_debug("age_rating : [%s]", c_value);
451 ret = media_info_get_keyword(media, &c_value);
452 if(ret != MEDIA_CONTENT_ERROR_NONE)
453 media_content_error("error when get info : [%d]", ret);
454 media_content_debug("keyword : [%s]", c_value);
457 ret = media_info_get_size(media, &size);
458 if(ret != MEDIA_CONTENT_ERROR_NONE)
459 media_content_error("error when get info : [%d]", ret);
460 media_content_debug("size : [%lld]", size);
462 ret = media_info_get_added_time(media, &t_value);
463 if(ret != MEDIA_CONTENT_ERROR_NONE)
464 media_content_error("error when get info : [%d]", ret);
465 media_content_debug("added_time : [%d]", t_value);
467 ret = media_info_get_modified_time(media, &t_value);
468 if(ret != MEDIA_CONTENT_ERROR_NONE)
469 media_content_error("error when get info : [%d]", ret);
470 media_content_debug("modified_time : [%d]", t_value);
472 ret = media_info_get_rating(media, &i_value);
473 if(ret != MEDIA_CONTENT_ERROR_NONE)
474 media_content_error("error when get info : [%d]", ret);
475 media_content_debug("rating : [%d]", i_value);
477 ret = media_info_get_favorite(media, &b_value);
478 if(ret != MEDIA_CONTENT_ERROR_NONE)
479 media_content_error("error when get info : [%d]", ret);
480 media_content_debug("favorite : [%d]", b_value);
482 ret = media_info_is_drm(media, &b_value);
483 if(ret != MEDIA_CONTENT_ERROR_NONE)
484 media_content_error("error when get info : [%d]", ret);
485 media_content_debug("is_drm : [%d]", b_value);
487 /* Media server can't update when another db handle holds DB connection by sqlite3_prepare */
488 //ret = media_info_set_location_tag(media, "Test location tag");
489 //media_info_update_to_db(media);
495 bool folder_list_cb(media_folder_h folder, void *user_data)
498 char *folder_id = NULL;
499 char *folder_path = NULL;
500 char *folder_name = NULL;
501 media_content_storage_e storage_type;
503 media_folder_h *_folder = (media_folder_h*)user_data;
507 media_folder_clone(_folder, folder);
509 if(media_folder_get_folder_id(folder, &folder_id) != MEDIA_CONTENT_ERROR_NONE)
511 media_content_error("[ERROR] media_folder_get_folder_id is failed");
514 media_content_debug("folder_id = [%s]", folder_id);
516 if(media_folder_get_path(folder, &folder_path) != MEDIA_CONTENT_ERROR_NONE)
518 SAFE_FREE(folder_id);
519 media_content_error("[ERROR] media_folder_get_path is failed");
522 media_content_debug("folder_path = [%s]", folder_path);
523 SAFE_FREE(folder_path);
525 if(media_folder_get_name(folder, &folder_name) != MEDIA_CONTENT_ERROR_NONE)
527 SAFE_FREE(folder_id);
528 SAFE_FREE(folder_path);
529 media_content_error("[ERROR] media_folder_get_name is failed");
532 media_content_debug("folder_name = [%s]", folder_name);
533 SAFE_FREE(folder_name);
535 if(media_folder_get_storage_type(folder, &storage_type) != MEDIA_CONTENT_ERROR_NONE)
537 SAFE_FREE(folder_id);
538 SAFE_FREE(folder_path);
539 SAFE_FREE(folder_name);
540 media_content_error("[ERROR] media_folder_get_storage_type is failed");
543 media_content_debug("storage_type = [%d]", storage_type);
545 if(media_folder_get_media_count_from_db(folder_id, g_filter, &item_count) != MEDIA_CONTENT_ERROR_NONE)
547 SAFE_FREE(folder_id);
548 SAFE_FREE(folder_path);
549 SAFE_FREE(folder_name);
550 media_content_error("[ERROR] media_folder_get_media_count_from_db is failed");
554 if(media_folder_foreach_media_from_db(folder_id, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
556 SAFE_FREE(folder_id);
557 SAFE_FREE(folder_path);
558 SAFE_FREE(folder_name);
559 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed");
563 SAFE_FREE(folder_id);
564 SAFE_FREE(folder_path);
565 SAFE_FREE(folder_name);
577 bool test_album_from_db(int album_id)
579 int ret = MEDIA_CONTENT_ERROR_NONE;
580 media_album_h album_h;
581 int test_album_id = 0;
582 char *album_name = NULL;
585 ret = media_album_get_album_from_db(album_id, &album_h);
586 if(ret != MEDIA_CONTENT_ERROR_NONE)
588 media_content_error("error when get album");
592 if(media_album_get_album_id(album_h, &test_album_id) != MEDIA_CONTENT_ERROR_NONE)
594 media_album_destroy(album_h);
598 media_content_debug("test_album_id : [%d]", test_album_id);
600 if(media_album_get_name(album_h, &album_name) != MEDIA_CONTENT_ERROR_NONE)
602 media_album_destroy(album_h);
606 media_content_debug("album_name : [%s]", album_name);
608 if(media_album_get_artist(album_h, &artist) != MEDIA_CONTENT_ERROR_NONE)
610 media_album_destroy(album_h);
614 media_content_debug("artist : [%s]", artist);
616 SAFE_FREE(album_name);
619 media_album_destroy(album_h);
624 bool playlist_list_cb(media_playlist_h playlist, void *user_data)
627 char *playlist_name = NULL;
628 media_playlist_h playlist_h;
630 media_content_debug("playlist_list_cb ======");
632 GList **list = (GList**)user_data;
636 media_content_debug(" playlist handle is NULL");
640 media_playlist_get_playlist_id(playlist, &playlist_id);
641 media_content_debug("playlist_id : %d", playlist_id);
643 if(user_data != NULL)
644 *list = g_list_append(*list, (gpointer)playlist_id);
646 media_playlist_get_name(playlist, &playlist_name);
647 media_content_debug("playlist_name : %s", playlist_name);
648 SAFE_FREE(playlist_name);
650 media_playlist_get_playlist_from_db(playlist_id, NULL, &playlist_h);
652 media_playlist_destroy(playlist_h);
657 bool tag_list_cb(media_tag_h tag, void *user_data)
660 char *tag_name = NULL;
661 int ret = MEDIA_CONTENT_ERROR_NONE;
665 media_content_debug(" tag handle is NULL");
669 ret = media_tag_get_tag_id(tag, &tag_id);
670 if(ret != MEDIA_CONTENT_ERROR_NONE)
671 media_content_error("error media_tag_get_tag_id : [%d]", ret);
673 media_content_debug("tag_id : %d", tag_id);
675 ret = media_tag_get_name(tag, &tag_name);
676 if(ret != MEDIA_CONTENT_ERROR_NONE)
677 media_content_error("error media_tag_get_name : [%d]", ret);
679 media_content_debug("tag_name : %s", tag_name);
685 bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
687 media_bookmark_h *_bookmark = (media_bookmark_h*)bookmark;
688 int ret = MEDIA_CONTENT_ERROR_NONE;
690 if(_bookmark != NULL)
696 ret = media_bookmark_get_bookmark_id(bookmark, &bookmark_id);
697 if(ret != MEDIA_CONTENT_ERROR_NONE)
698 media_content_error("error media_bookmark_get_bookmark_id : [%d]", ret);
700 media_content_debug("bookmark_id : %d", bookmark_id);
702 ret = media_bookmark_get_thumbnail_path(bookmark, &name);
703 if(ret != MEDIA_CONTENT_ERROR_NONE)
704 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
706 media_content_debug("bookmark thumbnail_path : %s", name);
709 ret = media_bookmark_get_marked_time(bookmark, &time);
710 if(ret != MEDIA_CONTENT_ERROR_NONE)
711 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
713 media_content_debug("bookmark marked_time : %d", time);
719 bool album_list_cb(media_album_h album, void *user_data)
722 char *album_name = NULL;
724 char *album_art = NULL;
726 int ret = MEDIA_CONTENT_ERROR_NONE;
727 filter_h filter = NULL;
730 char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
732 ret = media_filter_create(&filter);
733 if(ret != MEDIA_CONTENT_ERROR_NONE) {
734 media_content_error("Fail to create filter");
737 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
738 if(ret != MEDIA_CONTENT_ERROR_NONE) {
739 media_filter_destroy(filter);
740 media_content_error("Fail to set condition");
743 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
744 if(ret != MEDIA_CONTENT_ERROR_NONE) {
745 media_filter_destroy(filter);
746 media_content_error("Fail to set order");
752 if(media_album_get_album_id(album, &album_id) != MEDIA_CONTENT_ERROR_NONE)
754 media_filter_destroy(filter);
758 media_content_debug("album_id : [%d]", album_id);
760 if(media_album_get_name(album, &album_name) != MEDIA_CONTENT_ERROR_NONE)
762 media_filter_destroy(filter);
766 media_content_debug("album_name : [%s]", album_name);
768 if(media_album_get_artist(album, &artist) != MEDIA_CONTENT_ERROR_NONE)
770 media_filter_destroy(filter);
774 media_content_debug("artist : [%s]", artist);
776 if(media_album_get_album_art(album, &album_art) != MEDIA_CONTENT_ERROR_NONE)
778 media_filter_destroy(filter);
782 media_content_debug("album_art : [%s]", album_art);
784 SAFE_FREE(album_name);
786 SAFE_FREE(album_art);
788 if(media_album_get_media_count_from_db(album_id, filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
790 media_filter_destroy(filter);
794 media_content_debug("media_count : [%d]", media_count);
796 if(media_album_foreach_media_from_db(album_id, filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
798 media_filter_destroy(filter);
802 test_album_from_db(album_id);
806 media_content_error("album item not Found!!");
809 media_filter_destroy(filter);
814 bool group_list_cb(const char *group_name, void *user_data)
817 int *idx = user_data;
819 media_content_debug("group item : [%s] [%d]", group_name, *idx);
821 if(media_group_get_media_count_from_db(group_name, *idx, g_filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
824 media_content_debug("media_count : [%d]", media_count);
826 if(media_group_foreach_media_from_db(group_name, *idx, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
832 bool playlist_item_cb(int playlist_member_id, media_info_h media, void *user_data)
834 media_content_debug("playlist_member_id : [%d]", playlist_member_id);
836 GList **list = (GList**)user_data;
837 *list = g_list_append(*list, (gpointer)playlist_member_id);
839 //media_item_cb(media, user_data);
844 int test_filter_create(void)
846 media_content_debug("\n============Filter Create============\n\n");
848 int ret = MEDIA_CONTENT_ERROR_NONE;
850 /* Filter for media */
851 char *condition = "MEDIA_TYPE=0"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
852 //char *condition = "MEDIA_TYPE IS NOT 0 AND MEDIA_DESCRIPTION IS NOT NULL"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
854 ret = media_filter_create(&g_filter);
856 /* Set condition and collate
857 * Condition string : You can make where statement of sql.
858 * Colation : You can use collation when comparing.
859 * Ex) In case of FILE_NAME='Samsung' as condition string,
860 * if you want to compare with NOCASE collation,
861 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
862 * if you want to compare in case-sensitive,
863 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
865 ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
867 /* Collation of ordering
868 * If you want to get list, which is sorted by NOCASE,
869 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_NOCASE);
871 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
873 ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
875 /* Filter for group */
876 char *g_condition = "TAG_NAME like \"\%my\%\"";
877 //char *g_condition = "BOOKMARK_MARKED_TIME > 300";
879 ret = media_filter_create(&g_filter_g);
881 ret = media_filter_set_condition(g_filter_g, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
882 ret = media_filter_set_order(g_filter_g, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
887 int test_filter_destroy(void)
889 media_content_debug("\n============Filter Create============\n\n");
891 int ret = MEDIA_CONTENT_ERROR_NONE;
893 ret = media_filter_destroy(g_filter);
898 int test_connect_database(void)
900 int ret = MEDIA_CONTENT_ERROR_NONE;
902 media_content_debug("\n============DB Connection Test============\n\n");
904 ret = media_content_connect();
906 if(ret == MEDIA_CONTENT_ERROR_NONE)
908 media_content_debug("connection is success\n\n");
911 media_content_error("connection is failed\n\n");
916 int test_gallery_scenario(void)
918 int ret = MEDIA_CONTENT_ERROR_NONE;
920 filter_h filter = NULL;
923 GList *folder_list = NULL;
924 media_folder_h folder_handle = NULL;
926 /* First, Get folder list */
927 ret = media_folder_foreach_folder_from_db(filter, gallery_folder_list_cb, &folder_list);
928 if(ret != MEDIA_CONTENT_ERROR_NONE) {
929 media_content_error("media_folder_foreach_folder_from_db failed: %d", ret);
932 media_content_debug("media_folder_foreach_folder_from_db success!!");
933 char *folder_id = NULL;
934 char *folder_name = NULL;
935 char *folder_path = NULL;
937 for(i = 0; i < g_list_length(folder_list); i++) {
938 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
940 ret = media_folder_get_folder_id(folder_handle, &folder_id);
941 if(ret != MEDIA_CONTENT_ERROR_NONE)
942 media_content_error("media_folder_get_folder_id failed: %d", ret);
943 ret = media_folder_get_name(folder_handle, &folder_name);
944 if(ret != MEDIA_CONTENT_ERROR_NONE)
945 media_content_error("media_folder_get_name failed: %d", ret);
946 ret = media_folder_get_path(folder_handle, &folder_path);
947 if(ret != MEDIA_CONTENT_ERROR_NONE)
948 media_content_error("media_folder_get_path failed: %d", ret);
950 media_content_debug("folder_id [%d] : %s", i, folder_id);
951 media_content_debug("folder_name [%d] : %s", i, folder_name);
952 media_content_debug("folder_path [%d] : %s", i, folder_path);
955 ret = media_folder_get_media_count_from_db(folder_id, filter, &count);
956 /* User should free these string */
957 SAFE_FREE(folder_id);
958 SAFE_FREE(folder_name);
959 SAFE_FREE(folder_path);
960 if(ret != MEDIA_CONTENT_ERROR_NONE) {
961 media_content_error("media_folder_get_media_count_from_db failed: %d", ret);
964 media_content_debug("media count [%d] : %d", i, count);
969 /* To check performance */
970 struct timeval start, end;
971 gettimeofday(&start, NULL);
973 /* Second, Get all item list */
974 media_info_h media_handle = NULL;
975 GList *all_item_list = NULL;
977 media_content_collation_e collate_type = MEDIA_CONTENT_COLLATE_NOCASE;
978 media_content_order_e order_type = MEDIA_CONTENT_ORDER_DESC;
979 ret = media_filter_create(&filter);
980 if(ret != MEDIA_CONTENT_ERROR_NONE) {
981 media_content_error("Fail to create filter");
984 ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", collate_type);
985 if(ret != MEDIA_CONTENT_ERROR_NONE) {
986 media_filter_destroy(filter);
987 media_content_error("Fail to set condition");
990 ret = media_filter_set_order(filter, order_type, MEDIA_DISPLAY_NAME, collate_type);
991 if(ret != MEDIA_CONTENT_ERROR_NONE) {
992 media_filter_destroy(filter);
993 media_content_error("Fail to set order");
997 ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
998 if(ret != MEDIA_CONTENT_ERROR_NONE) {
999 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
1000 media_filter_destroy(filter);
1003 media_content_debug("media_info_foreach_media_from_db success");
1004 media_content_type_e media_type;
1005 char *media_id = NULL;
1006 char *media_name = NULL;
1007 char *media_path = NULL;
1009 for(i = 0; i < g_list_length(all_item_list); i++) {
1010 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1012 ret = media_info_get_media_id(media_handle, &media_id);
1013 if(ret != MEDIA_CONTENT_ERROR_NONE)
1014 media_content_error("media_info_get_media_id failed: %d", ret);
1015 ret = media_info_get_media_type(media_handle, &media_type);
1016 if(ret != MEDIA_CONTENT_ERROR_NONE)
1017 media_content_error("media_info_get_media_type failed: %d", ret);
1018 ret = media_info_get_display_name(media_handle, &media_name);
1019 if(ret != MEDIA_CONTENT_ERROR_NONE)
1020 media_content_error("media_info_get_display_name failed: %d", ret);
1021 ret = media_info_get_file_path(media_handle, &media_path);
1022 if(ret != MEDIA_CONTENT_ERROR_NONE)
1023 media_content_error("media_info_get_file_path failed: %d", ret);
1025 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1026 image_meta_h image_handle;
1027 int width = 0, height = 0;
1028 media_content_orientation_e orientation = 0;
1029 char *datetaken = NULL;
1031 ret = media_info_get_image(media_handle, &image_handle);
1032 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1033 media_content_error("media_info_get_image failed: %d", ret);
1035 ret = image_meta_get_width(image_handle, &width);
1036 if(ret != MEDIA_CONTENT_ERROR_NONE)
1037 media_content_error("error image_meta_get_width : [%d]", ret);
1038 ret = image_meta_get_height(image_handle, &height);
1039 if(ret != MEDIA_CONTENT_ERROR_NONE)
1040 media_content_error("error image_meta_get_height : [%d]", ret);
1041 ret = image_meta_get_orientation(image_handle, &orientation);
1042 if(ret != MEDIA_CONTENT_ERROR_NONE)
1043 media_content_error("error image_meta_get_orientation : [%d]", ret);
1044 ret = image_meta_get_date_taken(image_handle, &datetaken);
1045 if(ret != MEDIA_CONTENT_ERROR_NONE)
1046 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1048 media_content_debug("This is Image");
1049 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1052 SAFE_FREE(datetaken);
1053 ret = image_meta_destroy(image_handle);
1054 if(ret != MEDIA_CONTENT_ERROR_NONE)
1055 media_content_error("error image_meta_destroy : [%d]", ret);
1057 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1058 video_meta_h video_handle;
1059 char *title = NULL, *artist = NULL, *album = NULL;
1061 time_t time_played = 0;
1063 ret = media_info_get_video(media_handle, &video_handle);
1064 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1065 media_content_error("media_info_get_video failed: %d", ret);
1067 ret = video_meta_get_title(video_handle, &title);
1068 if(ret != MEDIA_CONTENT_ERROR_NONE)
1069 media_content_error("error video_meta_get_title : [%d]", ret);
1070 ret = video_meta_get_artist(video_handle, &artist);
1071 if(ret != MEDIA_CONTENT_ERROR_NONE)
1072 media_content_error("error video_meta_get_artist : [%d]", ret);
1073 ret = video_meta_get_album(video_handle, &album);
1074 if(ret != MEDIA_CONTENT_ERROR_NONE)
1075 media_content_error("error video_meta_get_album : [%d]", ret);
1076 ret = video_meta_get_duration(video_handle, &duration);
1077 if(ret != MEDIA_CONTENT_ERROR_NONE)
1078 media_content_error("error video_meta_get_duration : [%d]", ret);
1079 ret = video_meta_get_played_time(video_handle, &time_played);
1080 if(ret != MEDIA_CONTENT_ERROR_NONE)
1081 media_content_error("error video_meta_get_played_time : [%d]", ret);
1083 media_content_debug("This is Video");
1084 media_content_debug("Title: %s, Album: %s, Artist: %s\nDuration: %d, Played time: %d", title, artist, album, duration, time_played);
1091 ret = video_meta_destroy(video_handle);
1092 if(ret != MEDIA_CONTENT_ERROR_NONE)
1093 media_content_error("error video_meta_destroy : [%d]", ret);
1095 //media_content_debug("media_id [%d] : %s", i, media_id);
1096 //media_content_debug("media_name [%d] : %s", i, media_name);
1097 //media_content_debug("media_path [%d] : %s", i, media_path);
1099 SAFE_FREE(media_id);
1100 SAFE_FREE(media_name);
1101 SAFE_FREE(media_path);
1105 media_filter_destroy(filter);
1108 /* To check performance */
1109 gettimeofday(&end, NULL);
1110 long time = (end.tv_sec * 1000000 + end.tv_usec) - (start.tv_sec * 1000000 + start.tv_usec);
1111 printf("Time : %ld\n", time);
1113 /* Third, Get item list of a folder */
1114 GList *item_list = NULL;
1116 for(i = 0; i < g_list_length(folder_list); i++) {
1118 char *folder_id = NULL;
1119 char *folder_name = NULL;
1120 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1122 media_folder_get_folder_id(folder_handle, &folder_id);
1123 media_folder_get_name(folder_handle, &folder_name);
1125 ret = media_folder_foreach_media_from_db(folder_id, filter, gallery_media_item_cb, &item_list);
1126 SAFE_FREE(folder_id);
1127 SAFE_FREE(folder_name);
1129 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1130 media_content_error("media_folder_foreach_media_from_db failed: %d", ret);
1133 media_content_error("media_folder_foreach_media_from_db success!", ret);
1134 char *media_id = NULL;
1135 char *media_name = NULL;
1136 char *media_path = NULL;
1137 media_content_type_e media_type = 0;
1139 for(j = 0; j < g_list_length(item_list); j++) {
1140 media_handle = (media_info_h)g_list_nth_data(item_list, j);
1142 ret = media_info_get_media_id(media_handle, &media_id);
1143 if(ret != MEDIA_CONTENT_ERROR_NONE)
1144 media_content_error("media_info_get_media_id failed: %d", ret);
1145 ret = media_info_get_display_name(media_handle, &media_name);
1146 if(ret != MEDIA_CONTENT_ERROR_NONE)
1147 media_content_error("media_info_get_display_name failed: %d", ret);
1148 ret = media_info_get_file_path(media_handle, &media_path);
1149 if(ret != MEDIA_CONTENT_ERROR_NONE)
1150 media_content_error("media_info_get_file_path failed: %d", ret);
1151 ret = media_info_get_media_type(media_handle, &media_type);
1152 if(ret != MEDIA_CONTENT_ERROR_NONE)
1153 media_content_error("media_info_get_media_type failed: %d", ret);
1155 media_content_debug("[%s] media_id [%d] : %s", folder_name, j, media_id);
1156 media_content_debug("[%s] media_type [%d] : %d", folder_name, j, media_type);
1157 media_content_debug("[%s] media_name [%d] : %s", folder_name, j, media_name);
1158 media_content_debug("[%s] media_path [%d] : %s", folder_name, j, media_path);
1160 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1161 image_meta_h image_handle;
1162 int width = 0, height = 0;
1163 media_content_orientation_e orientation = 0;
1164 char *datetaken = NULL;
1166 ret = media_info_get_image(media_handle, &image_handle);
1167 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1168 media_content_error("media_info_get_image failed: %d", ret);
1170 ret = image_meta_get_width(image_handle, &width);
1171 if(ret != MEDIA_CONTENT_ERROR_NONE)
1172 media_content_error("error image_meta_get_width : [%d]", ret);
1173 ret = image_meta_get_height(image_handle, &height);
1174 if(ret != MEDIA_CONTENT_ERROR_NONE)
1175 media_content_error("error image_meta_get_height : [%d]", ret);
1176 ret = image_meta_get_orientation(image_handle, &orientation);
1177 if(ret != MEDIA_CONTENT_ERROR_NONE)
1178 media_content_error("error image_meta_get_orientation : [%d]", ret);
1179 ret = image_meta_get_date_taken(image_handle, &datetaken);
1180 if(ret != MEDIA_CONTENT_ERROR_NONE)
1181 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1183 media_content_debug("This is Image");
1184 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1187 SAFE_FREE(datetaken);
1188 ret = image_meta_destroy(image_handle);
1189 if(ret != MEDIA_CONTENT_ERROR_NONE)
1190 media_content_error("error image_meta_destroy : [%d]", ret);
1192 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1193 video_meta_h video_handle;
1194 char *title = NULL, *artist = NULL, *album = NULL;
1198 ret = media_info_get_video(media_handle, &video_handle);
1199 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1200 media_content_error("media_info_get_video failed: %d", ret);
1202 ret = video_meta_get_title(video_handle, &title);
1203 if(ret != MEDIA_CONTENT_ERROR_NONE)
1204 media_content_error("error video_meta_get_title : [%d]", ret);
1205 ret = video_meta_get_artist(video_handle, &artist);
1206 if(ret != MEDIA_CONTENT_ERROR_NONE)
1207 media_content_error("error video_meta_get_artist : [%d]", ret);
1208 ret = video_meta_get_album(video_handle, &album);
1209 if(ret != MEDIA_CONTENT_ERROR_NONE)
1210 media_content_error("error video_meta_get_album : [%d]", ret);
1211 ret = video_meta_get_duration(video_handle, &duration);
1212 if(ret != MEDIA_CONTENT_ERROR_NONE)
1213 media_content_error("error video_meta_get_duration : [%d]", ret);
1214 ret = video_meta_get_played_time(video_handle, &time_played);
1215 if(ret != MEDIA_CONTENT_ERROR_NONE)
1216 media_content_error("error video_meta_get_played_time : [%d]", ret);
1218 media_content_debug("This is Video");
1219 media_content_debug("Title: %s, Album: %s, Artist: %s\nDuration: %d, Played time: %d\n", title, artist, album, duration, time_played);
1226 ret = video_meta_destroy(video_handle);
1227 if(ret != MEDIA_CONTENT_ERROR_NONE)
1228 media_content_error("error video_meta_destroy : [%d]", ret);
1230 /* Get bookmar list in case of video */
1231 media_bookmark_h bm_handle;
1232 GList *bm_list = NULL;
1234 ret = media_info_foreach_bookmark_from_db(media_id, filter, gallery_bookmarks_cb, &bm_list);
1235 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1236 media_content_error("media_info_foreach_bookmark_from_db failed: %d", ret);
1238 media_content_debug("media_info_foreach_bookmark_from_db success");
1242 for(k = 0; k < g_list_length(bm_list); k++) {
1243 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, k);
1245 char *thumb_path = NULL;
1247 ret = media_bookmark_get_marked_time(bm_handle, &marked_time);
1248 if(ret != MEDIA_CONTENT_ERROR_NONE)
1249 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
1250 ret = media_bookmark_get_thumbnail_path(bm_handle, &thumb_path);
1251 if(ret != MEDIA_CONTENT_ERROR_NONE)
1252 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
1254 media_content_debug("Bookmark time : %d\nBookmar thumb: %s", marked_time, thumb_path);
1255 SAFE_FREE(thumb_path);
1258 /* Remove bookmark list */
1261 for(l = 0; l < g_list_length(bm_list); l++) {
1262 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, l);
1263 ret = media_bookmark_destroy(bm_handle);
1264 if(ret != MEDIA_CONTENT_ERROR_NONE)
1265 media_content_error("error media_bookmark_destroy : [%d]", ret);
1268 g_list_free(bm_list);
1274 SAFE_FREE(media_id);
1275 SAFE_FREE(media_name);
1276 SAFE_FREE(media_path);
1282 media_tag_h tag_handle = NULL;
1283 GList *tag_list = NULL;
1284 GList *media_list_in_tag = NULL;
1286 ret = media_tag_foreach_tag_from_db (filter, gallery_tag_item_cb, &tag_list);
1288 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1289 media_content_error("media_tag_foreach_tag_from_db failed: %d", ret);
1292 media_content_error("media_tag_foreach_tag_from_db success");
1293 char *tag_name = NULL;
1296 for(i = 0; i < g_list_length(tag_list); i++) {
1297 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1298 media_tag_get_tag_id(tag_handle, &tag_id);
1299 media_tag_get_name(tag_handle, &tag_name);
1301 printf("[%d] %s", tag_id, tag_name);
1303 ret = media_tag_foreach_media_from_db(tag_id, filter, gallery_media_item_cb, &media_list_in_tag);
1304 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1305 media_content_error("media_tag_foreach_media_from_db failed: %d", ret);
1308 media_content_error("media_tag_foreach_media_from_db success");
1310 media_info_h tag_media_handle;
1311 char *media_id = NULL;
1312 char *media_name = NULL;
1313 char *media_path = NULL;
1314 media_content_type_e media_type = 0;
1316 for(j = 0; j < g_list_length(media_list_in_tag); j++) {
1317 tag_media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, j);
1318 ret = media_info_get_media_id(tag_media_handle, &media_id);
1319 if(ret != MEDIA_CONTENT_ERROR_NONE)
1320 media_content_error("media_info_get_media_id failed: %d", ret);
1321 ret = media_info_get_display_name(tag_media_handle, &media_name);
1322 if(ret != MEDIA_CONTENT_ERROR_NONE)
1323 media_content_error("media_info_get_display_name failed: %d", ret);
1324 ret = media_info_get_file_path(tag_media_handle, &media_path);
1325 if(ret != MEDIA_CONTENT_ERROR_NONE)
1326 media_content_error("media_info_get_file_path failed: %d", ret);
1327 ret = media_info_get_media_type(tag_media_handle, &media_type);
1328 if(ret != MEDIA_CONTENT_ERROR_NONE)
1329 media_content_error("media_info_get_media_type failed: %d", ret);
1331 media_content_debug("[%s] media_id [%d] : %s", tag_name, j, media_id);
1332 media_content_debug("[%s] media_type [%d] : %d", tag_name, j, media_type);
1333 media_content_debug("[%s] media_name [%d] : %s", tag_name, j, media_name);
1334 media_content_debug("[%s] media_path [%d] : %s", tag_name, j, media_path);
1336 SAFE_FREE(media_id);
1337 SAFE_FREE(media_name);
1338 SAFE_FREE(media_path);
1340 SAFE_FREE(tag_name);
1344 /* Remove folder list */
1346 for(i = 0; i < g_list_length(folder_list); i++) {
1347 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1348 media_folder_destroy(folder_handle);
1351 g_list_free(folder_list);
1354 /* Remove all items list */
1356 for(i = 0; i < g_list_length(all_item_list); i++) {
1357 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1358 ret = media_info_destroy(media_handle);
1359 if(ret != MEDIA_CONTENT_ERROR_NONE)
1360 media_content_error("media_info_destroy failed: %d", ret);
1363 g_list_free(all_item_list);
1366 /* Remove items list */
1368 for(i = 0; i < g_list_length(item_list); i++) {
1369 media_handle = (media_info_h)g_list_nth_data(item_list, i);
1370 ret = media_info_destroy(media_handle);
1371 if(ret != MEDIA_CONTENT_ERROR_NONE)
1372 media_content_error("media_info_destroy failed: %d", ret);
1375 g_list_free(item_list);
1378 /* Remove tag list */
1380 for(i = 0; i < g_list_length(tag_list); i++) {
1381 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1382 ret = media_tag_destroy(tag_handle);
1383 if(ret != MEDIA_CONTENT_ERROR_NONE)
1384 media_content_error("error media_tag_destroy : [%d]", ret);
1387 g_list_free(tag_list);
1390 /* Remove media list in a tag */
1391 if(media_list_in_tag) {
1392 for(i = 0; i < g_list_length(media_list_in_tag); i++) {
1393 media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, i);
1394 ret = media_info_destroy(media_handle);
1395 if(ret != MEDIA_CONTENT_ERROR_NONE)
1396 media_content_error("media_info_destroy failed: %d", ret);
1399 g_list_free(media_list_in_tag);
1402 return MEDIA_CONTENT_ERROR_NONE;
1405 /*Get All Music file. sort by Title and not case sensitive*/
1406 int test_get_all_music_files(void)
1408 int ret = MEDIA_CONTENT_ERROR_NONE;
1409 int media_count = 0;
1413 char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1415 ret = media_filter_create(&filter);
1416 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1417 media_content_error("Fail to create filter");
1420 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1421 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1422 media_filter_destroy(filter);
1423 media_content_error("Fail to set condition");
1426 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
1427 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1428 media_filter_destroy(filter);
1429 media_content_error("Fail to set order");
1434 ret = media_info_get_media_count_from_db(filter, &media_count);
1435 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1436 media_filter_destroy(filter);
1437 media_content_error("Fail to get media count");
1441 media_content_debug("media_count : [%d]", media_count);
1443 ret = media_info_foreach_media_from_db(filter, media_item_cb, NULL);
1444 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1445 media_filter_destroy(filter);
1446 media_content_error("Fail to get media");
1450 ret = media_filter_destroy(filter);
1455 int test_media_info_operation(void)
1457 int ret = MEDIA_CONTENT_ERROR_NONE;
1458 int media_count = 0;
1460 media_content_debug("\n============Media info Test============\n\n");
1462 test_filter_create();
1464 ret = media_info_get_media_count_from_db(g_filter, &media_count);
1465 if(ret != MEDIA_CONTENT_ERROR_NONE)
1466 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
1468 media_content_debug("media_count : [%d]", media_count);
1470 ret = media_info_foreach_media_from_db(g_filter, media_item_cb, NULL);
1471 if(ret == MEDIA_CONTENT_ERROR_NONE)
1472 media_content_debug("media_info_foreach_media_from_db is success");
1474 media_content_error("media_info_foreach_media_from_db is failed");
1476 test_filter_destroy();
1481 int test_media_info_operation_2(void)
1483 int ret = MEDIA_CONTENT_ERROR_NONE;
1484 int bookmark_count = 0;
1486 media_content_debug("\n============Media info Test 2============\n\n");
1488 test_filter_create();
1492 char *thumbnail_path1 = "/opt/media/Images and videos/My video clips/teat11.jpg";
1493 media_bookmark_insert_to_db(test_video_id, 100, thumbnail_path1);
1494 media_bookmark_insert_to_db(test_video_id, 200, thumbnail_path1);
1496 media_info_get_bookmark_count_from_db(test_video_id, g_filter_g, &bookmark_count);
1498 media_content_debug("bookmark_count : [%d]", bookmark_count);
1500 ret = media_info_foreach_bookmark_from_db(test_video_id, g_filter_g, bookmarks_cb, NULL);
1504 ret = media_info_get_tag_count_from_db(test_audio_id, g_filter_g, &bookmark_count);
1505 if(ret != MEDIA_CONTENT_ERROR_NONE)
1506 media_content_error("media_info_get_tag_count_from_db failed: %d", ret);
1508 media_content_debug("tag_count : [%d]", bookmark_count);
1510 ret = media_info_foreach_tag_from_db(test_audio_id, g_filter_g, tag_list_cb, NULL);
1511 if(ret != MEDIA_CONTENT_ERROR_NONE)
1512 media_content_error("media_info_foreach_tag_from_db failed: %d", ret);
1514 test_filter_destroy();
1519 int test_folder_operation(void)
1521 int ret = MEDIA_CONTENT_ERROR_NONE;
1523 media_folder_h folder = NULL;
1524 char *folder_id = NULL;
1525 int folder_count = 0;
1527 media_content_debug("\n============Folder Test============\n\n");
1529 test_filter_create();
1531 ret = media_filter_create(&filter);
1532 if(ret != MEDIA_CONTENT_ERROR_NONE)
1534 media_content_error("[ERROR] media_folder_filter_create is failed");
1538 media_filter_set_condition(filter, "(MEDIA_TYPE = 0 or MEDIA_TYPE = 1) and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1539 media_filter_set_offset(filter, 0,5);
1540 media_filter_set_order(filter,MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1542 ret = media_folder_get_folder_count_from_db(filter, &folder_count);
1543 media_content_debug("Folder count : %d", folder_count);
1545 ret = media_folder_foreach_folder_from_db(filter, folder_list_cb, &folder);
1547 //test.3 get the media list in first folder
1548 filter_h m_filter = NULL;
1549 ret = media_filter_create(&m_filter);
1550 if(ret != MEDIA_CONTENT_ERROR_NONE)
1552 test_filter_destroy();
1553 media_filter_destroy(filter);
1554 media_content_error("[ERROR] media_info_filter_create is failed");
1558 media_filter_set_condition(m_filter, "MEDIA_TYPE=1 and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1559 media_filter_set_offset(m_filter, 0,5);
1560 media_filter_set_order(m_filter,MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1562 media_folder_get_folder_id(folder, &folder_id);
1563 media_content_debug("folder_id : %s", folder_id);
1565 ret = media_folder_foreach_media_from_db(folder_id, m_filter, media_item_cb, NULL);
1567 if(ret != MEDIA_CONTENT_ERROR_NONE)
1569 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed, error code : %d", ret);
1572 media_filter_destroy(filter);
1573 media_filter_destroy(m_filter);
1575 test_filter_destroy();
1580 int test_playlist_operation(void)
1582 int ret = MEDIA_CONTENT_ERROR_NONE;
1583 media_playlist_h playlist_1 = NULL;
1584 media_playlist_h playlist_2 = NULL;
1585 media_playlist_h playlist_3 = NULL;
1586 int playlist_id_1 = 0;
1587 int playlist_id_2 = 0;
1588 int playlist_id_3 = 0;
1589 char *playlist_name_1 = "myPlaylist_1";
1590 char *playlist_name_2 = "myPlaylist_2";
1591 char *playlist_name_3 = "myPlaylist_3";
1592 int playlist_count = 0;
1593 int media_count = 0;
1599 filter_h filter = NULL;
1600 filter_h m_filter = NULL;
1602 media_content_debug("\n============Playlist Test============\n\n");
1604 /* Filter for playlist */
1606 char *condition = "(MEDIA_TYPE=1 or MEDIA_TYPE=3)"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1608 ret = media_filter_create(&filter);
1609 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
1610 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
1612 /* Create Playlist */
1613 media_playlist_insert_to_db(playlist_name_1, &playlist_1);
1614 media_playlist_insert_to_db(playlist_name_2, &playlist_2);
1615 media_playlist_insert_to_db(playlist_name_3, &playlist_3);
1617 if(playlist_1 != NULL)
1619 /* Add media to Playlist */
1620 media_playlist_add_media(playlist_1, test_audio_id);
1621 media_playlist_add_media(playlist_1, test_audio_id);
1622 media_playlist_add_media(playlist_1, test_video_id);
1623 media_playlist_update_to_db(playlist_1);
1626 if(playlist_2 != NULL)
1628 media_playlist_add_media(playlist_2, test_audio_id);
1629 media_playlist_add_media(playlist_2, test_audio_id);
1630 media_playlist_update_to_db(playlist_2);
1633 /* Get Playlist Count*/
1634 media_playlist_get_playlist_count_from_db(filter, &playlist_count);
1635 media_content_debug("playlist_count [%d]", playlist_count);
1638 GList *playlist_id_list = NULL;
1639 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, &playlist_id_list);
1641 /* Get Playlist id*/
1642 playlist_id_1 = (int)g_list_nth_data(playlist_id_list, 0);
1643 playlist_id_2 = (int)g_list_nth_data(playlist_id_list, 1);
1644 playlist_id_3 = (int)g_list_nth_data(playlist_id_list, 2);
1645 media_content_debug("playlist_id_1 [%d]", playlist_id_1);
1646 media_content_debug("playlist_id_2 [%d]", playlist_id_2);
1647 media_content_debug("playlist_id_3 [%d]", playlist_id_3);
1649 /* Filter for media*/
1650 ret = media_filter_create(&m_filter);
1652 ret = media_filter_set_condition(m_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1654 ret = media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_DEFAULT);
1656 /* Get media count */
1657 media_playlist_get_media_count_from_db(playlist_id_1, m_filter, &media_count);
1658 media_content_debug("playlist_1_media_count [%d]", media_count);
1660 media_playlist_get_media_count_from_db(playlist_id_2, m_filter, &media_count);
1661 media_content_debug("playlist_2_media_count [%d]", media_count);
1663 media_playlist_get_media_count_from_db(playlist_id_3, m_filter, &media_count);
1664 media_content_debug("playlist_3_media_count [%d]", media_count);
1666 /* Get media of playlist */
1667 GList *playlist_member_id_list = NULL;
1668 GList *playlist_member_id_list_1 = NULL;
1670 media_playlist_foreach_media_from_db(playlist_id_1, m_filter, playlist_item_cb, &playlist_member_id_list);
1671 media_playlist_foreach_media_from_db(playlist_id_2, m_filter, playlist_item_cb, &playlist_member_id_list_1);
1673 int playlist_member_id_1_1 =0;
1674 int playlist_member_id_1_2 =0;
1675 int playlist_member_id_1_3 =0;
1676 int playlist_member_id_2_1 =0;
1677 int playlist_member_id_2_2 =0;
1679 playlist_member_id_1_1 = (int)g_list_nth_data(playlist_member_id_list, 0);
1680 playlist_member_id_1_2 = (int)g_list_nth_data(playlist_member_id_list, 1);
1681 playlist_member_id_1_3 = (int)g_list_nth_data(playlist_member_id_list, 2);
1682 playlist_member_id_2_1 = (int)g_list_nth_data(playlist_member_id_list_1, 0);
1683 playlist_member_id_2_2 = (int)g_list_nth_data(playlist_member_id_list_1, 1);
1685 media_content_debug("playlist_member_id_1_1 [%d]", playlist_member_id_1_1);
1686 media_content_debug("playlist_member_id_1_2 [%d]", playlist_member_id_1_2);
1687 media_content_debug("playlist_member_id_1_3 [%d]", playlist_member_id_1_3);
1688 media_content_debug("playlist_member_id_2_1 [%d]", playlist_member_id_2_1);
1689 media_content_debug("playlist_member_id_2_2 [%d]", playlist_member_id_2_2);
1691 media_playlist_get_play_order(playlist_1, playlist_member_id_1_1, &order_1);
1692 media_playlist_get_play_order(playlist_1, playlist_member_id_1_2, &order_2);
1693 media_playlist_get_play_order(playlist_1, playlist_member_id_1_3, &order_3);
1694 media_playlist_get_play_order(playlist_2, playlist_member_id_2_1, &order_4);
1695 media_playlist_get_play_order(playlist_2, playlist_member_id_2_2, &order_5);
1696 media_content_debug("order_1 [%d] order_2 [%d] order_3 [%d] order_4 [%d] order_5 [%d]", order_1, order_2, order_3, order_4, order_5);
1698 /* Update Playlist */
1699 media_playlist_remove_media(playlist_2, playlist_member_id_2_1);
1700 media_playlist_add_media(playlist_2, test_video_id);
1701 media_playlist_set_name(playlist_2, "test_playlist");
1702 media_playlist_set_play_order(playlist_2, playlist_member_id_2_2, order_5+100);
1703 media_playlist_update_to_db(playlist_2);
1705 /* Get Updated Playlist*/
1706 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, NULL);
1708 /* deletes the playlist */
1709 //media_playlist_delete_from_db(playlist_id_1);
1710 //media_playlist_delete_from_db(playlist_id_2);
1712 if(playlist_1 != NULL)
1713 media_playlist_destroy(playlist_1);
1714 if(playlist_2 != NULL)
1715 media_playlist_destroy(playlist_2);
1716 if(playlist_3 != NULL)
1717 media_playlist_destroy(playlist_3);
1719 g_list_free(playlist_id_list);
1720 g_list_free(playlist_member_id_list);
1721 g_list_free(playlist_member_id_list_1);
1724 ret = media_filter_destroy(filter);
1725 if(m_filter != NULL)
1726 ret = media_filter_destroy(m_filter);
1731 int test_tag_operation(void)
1733 int ret = MEDIA_CONTENT_ERROR_NONE;
1740 char *tag_name_1 = "myTag_1";
1741 char *tag_name_2 = "myTag_2";
1742 char *tag_name_3 = "myTag_3";
1744 int media_count = 0;
1747 media_content_debug("\n============Tag Test============\n\n");
1749 char *g_condition = "TAG_NAME like \"%%my%%\"";
1751 ret = media_filter_create(&filter);
1753 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1755 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
1758 ret = media_tag_insert_to_db(tag_name_1, &tag_1);
1759 if(ret != MEDIA_CONTENT_ERROR_NONE)
1760 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1761 ret = media_tag_insert_to_db(tag_name_2, &tag_2);
1762 if(ret != MEDIA_CONTENT_ERROR_NONE)
1763 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1764 ret = media_tag_insert_to_db(tag_name_3, &tag_3);
1765 if(ret != MEDIA_CONTENT_ERROR_NONE)
1766 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1768 /* Add media to Tag */
1769 ret = media_tag_add_media(tag_1, test_audio_id);
1770 if(ret != MEDIA_CONTENT_ERROR_NONE)
1771 media_content_error("error media_tag_add_media : [%d]", ret);
1772 ret = media_tag_add_media(tag_1, test_video_id);
1773 if(ret != MEDIA_CONTENT_ERROR_NONE)
1774 media_content_error("error media_tag_add_media : [%d]", ret);
1775 ret = media_tag_update_to_db(tag_1);
1776 if(ret != MEDIA_CONTENT_ERROR_NONE)
1777 media_content_error("error media_tag_update_to_db : [%d]", ret);
1779 ret = media_tag_add_media(tag_2, test_audio_id);
1780 if(ret != MEDIA_CONTENT_ERROR_NONE)
1781 media_content_error("error media_tag_add_media : [%d]", ret);
1782 ret = media_tag_update_to_db(tag_2);
1783 if(ret != MEDIA_CONTENT_ERROR_NONE)
1784 media_content_error("error media_tag_update_to_db : [%d]", ret);
1787 ret = media_tag_get_tag_count_from_db(filter, &tag_count);
1788 if(ret != MEDIA_CONTENT_ERROR_NONE)
1789 media_content_error("error media_tag_get_tag_count_from_db : [%d]", ret);
1791 media_content_debug("tag_count [%d]", tag_count);
1794 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1795 if(ret != MEDIA_CONTENT_ERROR_NONE)
1796 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1799 ret = media_tag_get_tag_id(tag_1, &tag_id_1);
1800 if(ret != MEDIA_CONTENT_ERROR_NONE)
1801 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1803 media_content_debug("tag_id_1 [%d]", tag_id_1);
1805 ret = media_tag_get_tag_id(tag_2, &tag_id_2);
1806 if(ret != MEDIA_CONTENT_ERROR_NONE)
1807 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1809 media_content_debug("tag_id_2 [%d]", tag_id_2);
1811 ret = media_tag_get_tag_id(tag_3, &tag_id_3);
1812 if(ret != MEDIA_CONTENT_ERROR_NONE)
1813 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1815 media_content_debug("tag_id_3 [%d]", tag_id_3);
1817 /* Get media count */
1818 ret = media_tag_get_media_count_from_db(tag_id_1, NULL, &media_count);
1819 if(ret != MEDIA_CONTENT_ERROR_NONE)
1820 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1822 media_content_debug("tag_1_media_count [%d]", media_count);
1824 ret = media_tag_get_media_count_from_db(tag_id_2, NULL, &media_count);
1825 if(ret != MEDIA_CONTENT_ERROR_NONE)
1826 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1828 media_content_debug("tag_2_media_count [%d]", media_count);
1830 /* Get media of Tag */
1831 ret = media_tag_foreach_media_from_db(tag_id_1, NULL, media_item_cb, NULL);
1832 if(ret != MEDIA_CONTENT_ERROR_NONE)
1833 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1835 ret = media_tag_foreach_media_from_db(tag_id_2, NULL, media_item_cb, NULL);
1836 if(ret != MEDIA_CONTENT_ERROR_NONE)
1837 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1840 ret = media_tag_add_media(tag_2, test_video_id);
1841 if(ret != MEDIA_CONTENT_ERROR_NONE)
1842 media_content_error("error media_tag_add_media : [%d]", ret);
1843 ret = media_tag_set_name(tag_2, "test_tag");
1844 if(ret != MEDIA_CONTENT_ERROR_NONE)
1845 media_content_error("error media_tag_set_name : [%d]", ret);
1846 ret = media_tag_update_to_db(tag_2);
1847 if(ret != MEDIA_CONTENT_ERROR_NONE)
1848 media_content_error("error media_tag_update_to_db : [%d]", ret);
1850 /* Get Updated Tag*/
1851 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1852 if(ret != MEDIA_CONTENT_ERROR_NONE)
1853 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1855 /* deletes the tag */
1856 ret = media_tag_delete_from_db(tag_id_1);
1857 if(ret != MEDIA_CONTENT_ERROR_NONE)
1858 media_content_error("error media_tag_delete_from_db : [%d]", ret);
1859 ret = media_tag_delete_from_db(tag_id_2);
1860 if(ret != MEDIA_CONTENT_ERROR_NONE)
1861 media_content_error("error media_tag_delete_from_db : [%d]", ret);
1863 ret = media_tag_destroy(tag_1);
1864 if(ret != MEDIA_CONTENT_ERROR_NONE)
1865 media_content_error("error media_tag_destroy : [%d]", ret);
1866 ret = media_tag_destroy(tag_2);
1867 if(ret != MEDIA_CONTENT_ERROR_NONE)
1868 media_content_error("error media_tag_destroy : [%d]", ret);
1869 ret = media_filter_destroy(filter);
1870 if(ret != MEDIA_CONTENT_ERROR_NONE)
1871 media_content_error("error media_filter_destroy : [%d]", ret);
1877 int test_bookmark_operation(void)
1879 //bookmark is only supported for video information.
1880 int ret = MEDIA_CONTENT_ERROR_NONE;
1881 int bookmark_count = 0;
1884 media_content_debug("\n============Bookmark Test============\n\n");
1886 char *g_condition = "BOOKMARK_MARKED_TIME > 300";
1888 ret = media_filter_create(&filter);
1889 if(ret != MEDIA_CONTENT_ERROR_NONE)
1890 media_content_error("error media_filter_create : [%d]", ret);
1892 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1893 if(ret != MEDIA_CONTENT_ERROR_NONE)
1894 media_content_error("error media_filter_set_condition : [%d]", ret);
1896 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, BOOKMARK_MARKED_TIME, MEDIA_CONTENT_COLLATE_DEFAULT);
1897 if(ret != MEDIA_CONTENT_ERROR_NONE)
1898 media_content_error("error media_filter_set_order : [%d]", ret);
1900 //insert bookmark to video
1901 char *thumbnail_path1 = "/opt/usr/media/Images and videos/My video clips/teat11.jpg";
1902 ret = media_bookmark_insert_to_db(test_video_id, 400, thumbnail_path1);
1903 if(ret != MEDIA_CONTENT_ERROR_NONE)
1904 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
1906 ret = media_bookmark_insert_to_db(test_video_id, 600, thumbnail_path1);
1907 if(ret != MEDIA_CONTENT_ERROR_NONE)
1908 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
1910 ret = media_bookmark_get_bookmark_count_from_db(filter, &bookmark_count);
1911 if(ret != MEDIA_CONTENT_ERROR_NONE)
1912 media_content_error("error media_bookmark_get_bookmark_count_from_db : [%d]", ret);
1914 media_content_debug("bookmark_count = [%d]", bookmark_count);
1916 ret = media_filter_destroy(filter);
1917 if(ret != MEDIA_CONTENT_ERROR_NONE)
1918 media_content_error("error media_filter_destroy : [%d]", ret);
1923 int test_album_list(void)
1925 media_content_debug("\n============Album Test============\n\n");
1927 int ret = MEDIA_CONTENT_ERROR_NONE;
1928 int album_count = 0;
1932 char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1934 ret = media_filter_create(&filter);
1935 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1936 media_content_error("Fail to create filter");
1939 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1940 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1941 media_filter_destroy(filter);
1942 media_content_error("Fail to set condition");
1945 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
1946 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1947 media_filter_destroy(filter);
1948 media_content_error("Fail to set order");
1952 ret = media_album_get_album_count_from_db(filter, &album_count);
1953 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1954 media_filter_destroy(filter);
1957 media_content_debug("album_count [%d]", album_count);
1960 ret = media_album_foreach_album_from_db(filter, album_list_cb, NULL);
1961 if(ret != MEDIA_CONTENT_ERROR_NONE)
1962 media_content_error("error media_album_foreach_album_from_db : [%d]", ret);
1964 ret = media_filter_destroy(filter);
1965 if(ret != MEDIA_CONTENT_ERROR_NONE)
1966 media_content_error("error media_filter_destroy : [%d]", ret);
1971 int test_group_operation(void)
1973 media_content_debug("\n============Group Test============\n\n");
1975 int ret = MEDIA_CONTENT_ERROR_NONE;
1976 int group_count = 0;
1979 ret = test_filter_create();
1980 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1981 media_content_error("[%d]error(0x%08x)", __LINE__, ret);
1985 for(idx = 0; idx <= MEDIA_CONTENT_GROUP_KEYWORD; idx++)
1987 ret = media_group_get_group_count_from_db(g_filter, idx, &group_count);
1988 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1989 test_filter_destroy();
1990 media_content_error("media_group_get_group_count_from_db fail. idx=[%d]", ret, idx);
1993 media_content_debug("[%2d]group_count [%d]", idx, group_count);
1996 ret = media_group_foreach_group_from_db(g_filter, idx, group_list_cb, &idx);
1998 ret = test_filter_destroy();
2003 int test_update_operation()
2005 int ret = MEDIA_CONTENT_ERROR_NONE;
2007 media_info_h media_handle = NULL;
2008 GList *all_item_list = NULL;
2010 /* Get all item list */
2011 ret = media_info_foreach_media_from_db(NULL, gallery_media_item_cb, &all_item_list);
2012 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2013 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
2016 media_content_debug("media_info_foreach_media_from_db success");
2017 char *media_id = NULL;
2018 char *media_path = NULL;
2019 media_content_type_e media_type = 0;
2021 for(i = 0; i < g_list_length(all_item_list); i++) {
2022 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
2024 ret = media_info_get_media_id(media_handle, &media_id);
2025 if(ret != MEDIA_CONTENT_ERROR_NONE)
2026 media_content_error("media_info_get_media_id failed: %d", ret);
2027 ret = media_info_get_file_path(media_handle, &media_path);
2028 if(ret != MEDIA_CONTENT_ERROR_NONE)
2029 media_content_error("media_info_get_file_path failed: %d", ret);
2030 ret = media_info_get_media_type(media_handle, &media_type);
2031 if(ret != MEDIA_CONTENT_ERROR_NONE)
2032 media_content_error("media_info_get_media_type failed: %d", ret);
2034 media_content_debug("media_id [%d] : %s", i, media_id);
2035 media_content_debug("media_type [%d] : %d", i, media_type);
2036 media_content_debug("media_path [%d] : %s", i, media_path);
2038 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
2039 image_meta_h image_handle;
2040 media_content_orientation_e orientation;
2042 ret = media_info_get_image(media_handle, &image_handle);
2043 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2044 media_content_error("media_info_get_image failed: %d", ret);
2046 media_content_debug("media_info_get_image success");
2049 orientation = MEDIA_CONTENT_ORIENTATION_ROT_180;
2050 image_meta_set_orientation(image_handle, orientation);
2052 ret = image_meta_update_to_db(image_handle);
2053 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2054 media_content_error("image_meta_update_to_db failed: %d", ret);
2056 media_content_debug("image_meta_update_to_db success");
2060 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
2061 video_meta_h video_handle;
2063 ret = media_info_get_video(media_handle, &video_handle);
2064 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2065 media_content_error("media_info_get_video failed: %d", ret);
2067 media_content_debug("media_info_get_video success");
2070 video_meta_set_played_count(video_handle,5);
2071 video_meta_set_played_time(video_handle,5);
2072 video_meta_set_played_position(video_handle,5);
2073 video_meta_update_to_db(video_handle);
2075 ret = video_meta_update_to_db(video_handle);
2076 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2077 media_content_error("video_meta_update_to_db failed: %d", ret);
2079 media_content_debug("video_meta_update_to_db success");
2082 } else if(media_type == MEDIA_CONTENT_TYPE_MUSIC) {//update audio meta
2083 audio_meta_h audio_handle = NULL;
2084 ret = media_info_get_audio(media_handle, &audio_handle);
2085 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2086 media_content_error("media_info_get_audio failed: %d", ret);
2088 media_content_debug("media_info_get_audio success");
2090 audio_meta_set_played_count(audio_handle,5);
2091 audio_meta_set_played_time(audio_handle,1000);
2092 audio_meta_set_played_position(audio_handle,180);
2094 ret = audio_meta_update_to_db(audio_handle);
2095 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2096 media_content_error("audio_meta_update_to_db failed: %d", ret);
2098 media_content_debug("audio_meta_update_to_db success");
2107 return MEDIA_CONTENT_ERROR_NONE;
2110 int test_insert(void)
2112 int ret = MEDIA_CONTENT_ERROR_NONE;
2113 //char *path = "/opt/media/Images/Default.jpg";
2114 char *path = "/opt/usr/media/Others/other.txt";
2115 //char *path = NULL;
2116 media_info_h media_item = NULL;
2117 media_content_debug("\n============DB Insert Test============\n\n");
2119 ret = media_info_insert_to_db(path, &media_item);
2121 if((ret == MEDIA_CONTENT_ERROR_NONE) && (media_item != NULL))
2123 media_content_debug("Insertion is success");
2127 media_content_error("Insertion is failed");
2128 ret = media_info_destroy(media_item);
2132 char *media_id = NULL;
2134 ret = media_info_get_media_id(media_item, &media_id);
2135 if(ret != MEDIA_CONTENT_ERROR_NONE)
2136 media_content_error("media_info_get_media_id failed: %d", ret);
2138 media_content_debug("Media ID: %s", media_id);
2140 SAFE_FREE(media_id);
2142 ret = media_info_update_to_db(media_item);
2143 if(ret == MEDIA_CONTENT_ERROR_NONE)
2144 media_content_debug("media_info_update_to_db is success");
2146 media_content_error("media_info_update_to_db is failed");
2148 ret = media_info_destroy(media_item);
2149 if(ret != MEDIA_CONTENT_ERROR_NONE)
2150 media_content_error("media_info_destroy failed: %d", ret);
2157 int ret = MEDIA_CONTENT_ERROR_NONE;
2158 const char *move_media_id = "60aea677-4742-408e-b5f7-f2628062d06d";
2159 char *dst_path = "/opt/usr/media/Images/XX/Default1.jpg";
2160 media_info_h move_media = NULL;
2162 ret = media_info_get_media_from_db(move_media_id, &move_media);
2163 if(ret == MEDIA_CONTENT_ERROR_NONE)
2164 media_content_debug("media_info_get_media_from_db success");
2166 media_content_error("media_info_get_media_from_db failed: %d", ret);
2168 media_content_debug("\n============DB Move Test============\n\n");
2171 ret = media_info_move_to_db(move_media, dst_path);
2173 if(ret == MEDIA_CONTENT_ERROR_NONE)
2174 media_content_debug("Move is success");
2176 media_content_error("Move is failed");
2178 ret = media_info_destroy(move_media);
2180 media_content_debug("There is no item : %s", move_media_id);
2186 void thumbnail_completed_cb(media_content_error_e error, const char *path, void *user_data)
2188 char *thumbnail_path = NULL;
2189 int ret = MEDIA_CONTENT_ERROR_NONE;
2192 media_content_debug("=================[%d][%d]", g_media_cnt, g_cnt);
2193 media_content_debug("error_code [%d]", error);
2194 media_content_debug("thumbnail_path [%s]", path);
2195 if(user_data != NULL)
2197 media_info_h media = (media_info_h)user_data;
2198 ret = media_info_get_thumbnail_path(media, &thumbnail_path);
2199 if(ret != MEDIA_CONTENT_ERROR_NONE)
2200 media_content_error("media_info_get_thumbnail_path failed: %d", ret);
2202 media_content_debug("thumbnail_path get from media[%s]", thumbnail_path);
2203 SAFE_FREE(thumbnail_path);
2204 ret = media_info_destroy(media);
2205 if(ret != MEDIA_CONTENT_ERROR_NONE)
2206 media_content_error("media_info_destroy failed: %d", ret);
2209 if(g_cnt == g_media_cnt)
2210 g_main_loop_quit(g_loop);
2215 bool thumbnail_create_cb(media_info_h media, void *user_data)
2217 char *media_id = NULL;
2218 media_info_h dst = NULL;
2219 int ret = MEDIA_CONTENT_ERROR_NONE;
2223 media_content_debug("NO Item");
2227 ret = media_info_get_media_id(media, &media_id);
2228 if(ret != MEDIA_CONTENT_ERROR_NONE)
2229 media_content_error("media_info_get_media_id failed: %d", ret);
2231 media_content_debug("media_id : [%s]", media_id);
2233 ret = media_info_clone(&dst, media);
2234 if(ret != MEDIA_CONTENT_ERROR_NONE)
2235 media_content_error("media_info_clone failed: %d", ret);
2238 ret = media_info_create_thumbnail(dst, thumbnail_completed_cb, dst);
2239 if(ret != MEDIA_CONTENT_ERROR_NONE)
2240 media_content_error("media_info_create_thumbnail failed: %d", ret);
2246 bool thumbnail_cancel_cb(media_info_h media, void *user_data)
2248 int ret = MEDIA_CONTENT_ERROR_NONE;
2250 char *media_id = NULL;
2251 media_info_h dst = NULL;
2257 media_content_debug("NO Item");
2261 ret = media_info_get_media_id(media, &media_id);
2262 if(ret != MEDIA_CONTENT_ERROR_NONE)
2263 media_content_error("media_info_get_media_id failed: %d", ret);
2265 media_content_debug("media_id : [%s]", media_id);
2267 ret = media_info_clone(&dst, media);
2268 if(ret != MEDIA_CONTENT_ERROR_NONE)
2269 media_content_error("media_info_clone failed: %d", ret);
2271 ret = media_info_cancel_thumbnail(dst);
2272 if(ret != MEDIA_CONTENT_ERROR_NONE)
2273 media_content_error("media_info_cancel_thumbnail failed: %d", ret);
2275 ret = media_info_destroy(dst);
2276 if(ret != MEDIA_CONTENT_ERROR_NONE)
2277 media_content_error("media_info_destroy failed: %d", ret);
2279 if(g_cnt == g_media_cnt)
2280 g_main_loop_quit(g_loop);
2285 gboolean create_thumbnail_start(gpointer data)
2287 int ret = MEDIA_CONTENT_ERROR_NONE;
2289 ret = media_info_foreach_media_from_db(g_filter, thumbnail_create_cb, NULL);
2291 if(ret == MEDIA_CONTENT_ERROR_NONE)
2292 media_content_debug("media_info_foreach_media_from_db is success");
2294 media_content_error("media_info_foreach_media_from_db is failed");
2299 gboolean cancel_thumbnail_start(gpointer data)
2301 int ret = MEDIA_CONTENT_ERROR_NONE;
2303 ret = media_info_foreach_media_from_db(g_filter, thumbnail_cancel_cb, NULL);
2305 if(ret == MEDIA_CONTENT_ERROR_NONE)
2306 media_content_debug("media_info_foreach_media_from_db is success");
2308 media_content_error("media_info_foreach_media_from_db is failed");
2313 int test_create_thumbnail(int cancel)
2315 int ret = MEDIA_CONTENT_ERROR_NONE;
2316 GSource *source = NULL;
2317 GMainContext *context = NULL;
2319 test_filter_create();
2321 ret = media_info_get_media_count_from_db(g_filter, &g_media_cnt);
2322 if(ret != MEDIA_CONTENT_ERROR_NONE)
2323 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
2325 media_content_debug("media_count : [%d]", g_media_cnt);
2327 g_loop = g_main_loop_new(NULL, FALSE);
2328 context = g_main_loop_get_context(g_loop);
2329 source = g_idle_source_new();
2330 g_source_set_callback (source, create_thumbnail_start, NULL, NULL);
2331 g_source_attach (source, context);
2333 /* Logic to cancel */
2335 GSource *cancel_src = NULL;
2336 cancel_src = g_idle_source_new();
2337 g_source_set_callback (cancel_src, cancel_thumbnail_start, NULL, NULL);
2338 g_source_attach (cancel_src, context);
2341 g_main_loop_run(g_loop);
2342 g_main_loop_unref(g_loop);
2344 test_filter_destroy();
2349 int test_disconnect_database(void)
2351 int ret = MEDIA_CONTENT_ERROR_NONE;
2352 media_content_debug("\n============DB Disconnection Test============\n\n");
2354 ret = media_content_disconnect();
2356 if(ret == MEDIA_CONTENT_ERROR_NONE)
2357 media_content_debug("disconnection is success");
2359 media_content_error("disconnection is failed");
2364 int test_request_update_db(void)
2366 int ret = MEDIA_CONTENT_ERROR_NONE;
2367 media_info_h media = NULL;
2369 //get the content of Over the horizon
2370 ret = media_info_get_media_from_db("0f999626-6218-450c-a4ad-181a3bab6ebf", &media);
2371 if(ret != MEDIA_CONTENT_ERROR_NONE)
2372 media_content_error("media_info_get_media_from_db failed: %d", ret);
2374 test_disconnect_database();
2376 ret = media_info_set_content_name(media, "TEST_content_name");
2377 if(ret != MEDIA_CONTENT_ERROR_NONE)
2378 media_content_error("media_info_set_content_name failed: %d", ret);
2380 ret = media_info_update_to_db(media);
2381 if(ret == MEDIA_CONTENT_ERROR_NONE)
2382 media_content_debug("media_info_update_to_db is success");
2384 media_content_error("media_info_update_to_db is failed");
2387 media_info_destroy(media);
2392 int g_total_photo_size = 0;
2393 int g_total_video_size = 0;
2394 int g_total_mp3_size = 0;
2395 int g_total_voice_memo_size = 0;
2397 bool dft_cb(media_info_h media, void *user_data)
2399 unsigned long long file_size = 0;
2400 media_content_type_e media_type = -1;
2401 char *mime_type = NULL;
2402 int ret = MEDIA_CONTENT_ERROR_NONE;
2409 ret = media_info_get_media_type(media, &media_type);
2410 if(ret != MEDIA_CONTENT_ERROR_NONE)
2411 media_content_error("media_info_get_media_type failed: %d", ret);
2412 ret = media_info_get_size(media, &file_size);
2413 if(ret != MEDIA_CONTENT_ERROR_NONE)
2414 media_content_error("media_info_get_size failed: %d", ret);
2415 ret = media_info_get_mime_type(media, &mime_type);
2416 if(ret != MEDIA_CONTENT_ERROR_NONE)
2417 media_content_error("media_info_get_mime_type failed: %d", ret);
2419 if(media_type == MEDIA_CONTENT_TYPE_IMAGE)
2421 g_total_photo_size += file_size;
2423 else if(media_type == MEDIA_CONTENT_TYPE_VIDEO)
2425 g_total_video_size += file_size;
2427 else if(media_type == MEDIA_CONTENT_TYPE_SOUND)
2429 g_total_voice_memo_size += file_size;
2431 else if(media_type == MEDIA_CONTENT_TYPE_MUSIC)
2433 if((mime_type != NULL) && (!strcmp("audio/mpeg", mime_type)))
2435 g_total_mp3_size += file_size;
2439 g_total_voice_memo_size += file_size;
2444 printf("invalid media_type");
2447 if(mime_type != NULL)
2456 int ret = MEDIA_CONTENT_ERROR_NONE;
2457 printf("\n============DFT_test============\n\n");
2459 filter_h filter = NULL;
2462 /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
2464 ret = media_filter_create(&filter);
2467 printf("[Internal Memory]\n");
2468 /*1. Photo ============================================================*/
2469 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2472 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2473 printf("Photo count = [%d]\n", media_cnt);
2476 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2477 printf("Photo size = [%d]\n", g_total_photo_size);
2479 /*2. Video ============================================================*/
2480 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2483 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2484 printf("Video count = [%d]\n", media_cnt);
2487 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2488 printf("Video size = [%d]\n", g_total_video_size);
2490 /*3. MP3 ============================================================*/
2491 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2494 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2495 printf("MP3 count = [%d]\n", media_cnt);
2498 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2499 printf("MP3 size = [%d]\n", g_total_mp3_size);
2501 /*4. Voice Memo ============================================================*/
2502 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND (MEDIA_MIME_TYPE=\"audio/AMR\" OR MEDIA_MIME_TYPE=\"audio/mp4\")", MEDIA_CONTENT_COLLATE_DEFAULT);
2504 /*Get Voice Memo Count*/
2505 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2506 printf("Voice Memo count = [%d]\n", media_cnt);
2508 /*Get Voice Memo Size*/
2509 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2510 printf("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2512 g_total_photo_size = 0;
2513 g_total_video_size = 0;
2514 g_total_mp3_size = 0;
2515 g_total_voice_memo_size = 0;
2518 printf("\n[External Memory]\n");
2519 /*1. Photo ============================================================*/
2520 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2523 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2524 printf("Photo count = [%d]\n", media_cnt);
2527 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2528 printf("Photo size = [%d]\n", g_total_photo_size);
2530 /*2. Video ============================================================*/
2531 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2534 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2535 printf("Video count = [%d]\n", media_cnt);
2538 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2539 printf("Video size = [%d]\n", g_total_video_size);
2541 /*3. MP3 ============================================================*/
2542 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2545 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2546 printf("MP3 count = [%d]\n", media_cnt);
2549 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2550 printf("MP3 size = [%d]\n", g_total_mp3_size);
2552 /*4. Voice Memo ============================================================*/
2553 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND (MEDIA_MIME_TYPE=\"audio/AMR\" OR MEDIA_MIME_TYPE=\"audio/mp4\")", MEDIA_CONTENT_COLLATE_DEFAULT);
2555 /*Get Voice Memo Count*/
2556 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2557 printf("Voice Memo count = [%d]\n", media_cnt);
2559 /*Get Voice Memo Size*/
2560 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2561 printf("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2562 ret = media_filter_destroy(filter);
2567 void insert_batch_cb(media_content_error_e error, void * user_data)
2569 printf("media_info_insert_batch_to_db completed!\n");
2572 int test_batch_operations()
2576 char *file_list[10];
2578 for (i = 0; i < 10; i++) {
2579 char filepath[255] = {0,};
2580 snprintf(filepath, sizeof(filepath), "%s%d.jpg", "/opt/usr/media/test/image", i+1);
2581 media_content_debug("File : %s\n", filepath);
2582 file_list[i] = strdup(filepath);
2585 ret = media_info_insert_batch_to_db((const char **)file_list, 10, insert_batch_cb, NULL);
2586 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2587 media_content_error("media_info_insert_batch_to_db failed : %d\n", ret);
2591 char *condition = "MEDIA_PATH LIKE \'/opt/usr/media/test/image%%jpg\'";
2593 ret = media_filter_create(&filter);
2594 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2595 media_content_error("Fail to create filter");
2599 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2600 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2601 media_filter_destroy(filter);
2602 media_content_error("Fail to set condition");
2606 ret = media_info_delete_batch_from_db(filter);
2607 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2608 media_filter_destroy(filter);
2609 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2613 ret = media_filter_destroy(filter);
2618 void _scan_cb(media_content_error_e err, void *user_data)
2620 printf("scan callback is called : %d\n", err);
2621 g_main_loop_quit(g_loop);
2626 int test_scan_file()
2630 const char *file_path = "/opt/usr/media/test/image1.jpg";
2632 ret = media_content_scan_file(file_path);
2633 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2634 media_content_error("Fail to media_content_scan_file : %d", ret);
2641 gboolean test_scan_dir_start(gpointer data)
2645 const char *dir_path = "/opt/usr/media";
2647 ret = media_content_scan_folder(dir_path, _scan_cb, NULL);
2649 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2650 media_content_error("Fail to media_content_scan_file : %d", ret);
2659 GSource *source = NULL;
2660 GMainContext *context = NULL;
2662 g_loop = g_main_loop_new(NULL, FALSE);
2663 context = g_main_loop_get_context(g_loop);
2664 source = g_idle_source_new();
2665 g_source_set_callback (source, test_scan_dir_start, NULL, NULL);
2666 g_source_attach (source, context);
2668 g_main_loop_run(g_loop);
2669 g_main_loop_unref(g_loop);
2674 int main(int argc, char *argv[])
2676 int ret = MEDIA_CONTENT_ERROR_NONE;
2678 media_content_debug("--- content manager test start ---\n\n");
2680 ret = test_connect_database();
2681 if(ret != MEDIA_CONTENT_ERROR_NONE)
2682 return MEDIA_CONTENT_ERROR_NONE;
2686 if(ret != MEDIA_CONTENT_ERROR_NONE)
2689 ret = test_gallery_scenario();
2690 if(ret != MEDIA_CONTENT_ERROR_NONE)
2693 ret = test_get_all_music_files();
2694 if(ret != MEDIA_CONTENT_ERROR_NONE)
2697 ret = test_media_info_operation();
2698 if(ret != MEDIA_CONTENT_ERROR_NONE)
2701 ret = test_folder_operation();
2702 if(ret != MEDIA_CONTENT_ERROR_NONE)
2705 ret = test_playlist_operation();
2706 if(ret != MEDIA_CONTENT_ERROR_NONE)
2709 ret = test_tag_operation();
2710 if(ret != MEDIA_CONTENT_ERROR_NONE)
2713 ret = test_bookmark_operation();
2714 if(ret != MEDIA_CONTENT_ERROR_NONE)
2717 ret = test_album_list();
2718 if(ret != MEDIA_CONTENT_ERROR_NONE)
2721 ret = test_group_operation();
2722 if(ret != MEDIA_CONTENT_ERROR_NONE)
2725 ret = test_update_operation();
2726 if(ret != MEDIA_CONTENT_ERROR_NONE)
2729 ret = test_insert();
2730 if(ret != MEDIA_CONTENT_ERROR_NONE)
2734 if(ret != MEDIA_CONTENT_ERROR_NONE)
2737 ret = test_create_thumbnail(TRUE);
2738 if(ret != MEDIA_CONTENT_ERROR_NONE)
2741 ret = test_request_update_db();
2742 if(ret != MEDIA_CONTENT_ERROR_NONE)
2746 if(ret != MEDIA_CONTENT_ERROR_NONE)
2749 ret = test_batch_operations();
2750 if(ret != MEDIA_CONTENT_ERROR_NONE)
2751 return MEDIA_CONTENT_ERROR_NONE;
2753 ret = test_scan_file();
2754 if(ret != MEDIA_CONTENT_ERROR_NONE)
2755 return MEDIA_CONTENT_ERROR_NONE;
2757 ret = test_scan_dir();
2758 if(ret != MEDIA_CONTENT_ERROR_NONE)
2759 return MEDIA_CONTENT_ERROR_NONE;
2762 ret = test_disconnect_database();
2763 if(ret != MEDIA_CONTENT_ERROR_NONE)
2766 media_content_debug("--- content manager test end ---\n");