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_content_internal.h>
23 #include <media_info_private.h>
27 #include <tzplatform_config.h>
29 filter_h g_filter = NULL;
30 filter_h g_filter_g = NULL; //filter for group like folder, tag, playlist, album, year ...
32 GMainLoop *g_loop = NULL;
34 static int g_media_cnt = 0;
36 #define test_audio_id "0f999626-6218-450c-a4ad-181a3bab6ebf"
37 #define test_video_id "c1a92494-cc5b-4d74-aa7d-253199234548"
38 #define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
39 media_folder_h g_folder = NULL;
41 bool get_audio_meta(audio_meta_h audio)
46 int ret = MEDIA_CONTENT_ERROR_NONE;
48 media_content_debug("=== audio meta ===");
50 ret = audio_meta_get_media_id(audio, &c_value);
51 if(ret != MEDIA_CONTENT_ERROR_NONE)
52 media_content_error("error when get meta : [%d]", ret);
53 media_content_debug("audio_id : [%s]", c_value);
56 ret = audio_meta_get_album(audio, &c_value);
57 if(ret != MEDIA_CONTENT_ERROR_NONE)
58 media_content_error("error when get meta : [%d]", ret);
59 media_content_debug("album : [%s]", c_value);
62 ret = audio_meta_get_artist(audio, &c_value);
63 if(ret != MEDIA_CONTENT_ERROR_NONE)
64 media_content_error("error when get meta : [%d]", ret);
65 media_content_debug("artist : [%s]", c_value);
68 ret = audio_meta_get_album_artist(audio, &c_value);
69 if(ret != MEDIA_CONTENT_ERROR_NONE)
70 media_content_error("error when get meta : [%d]", ret);
71 media_content_debug("album_artist : [%s]", c_value);
74 ret = audio_meta_get_genre(audio, &c_value);
75 if(ret != MEDIA_CONTENT_ERROR_NONE)
76 media_content_error("error when get meta : [%d]", ret);
77 media_content_debug("genre : [%s]", c_value);
80 ret = audio_meta_get_composer(audio, &c_value);
81 if(ret != MEDIA_CONTENT_ERROR_NONE)
82 media_content_error("error when get meta : [%d]", ret);
83 media_content_debug("composer : [%s]", c_value);
86 ret = audio_meta_get_year(audio, &c_value);
87 if(ret != MEDIA_CONTENT_ERROR_NONE)
88 media_content_error("error when get meta : [%d]", ret);
89 media_content_debug("year : [%s]", c_value);
92 ret = audio_meta_get_recorded_date(audio, &c_value);
93 if(ret != MEDIA_CONTENT_ERROR_NONE)
94 media_content_error("error when get meta : [%d]", ret);
95 media_content_debug("recorded_date : [%s]", c_value);
98 ret = audio_meta_get_copyright(audio, &c_value);
99 if(ret != MEDIA_CONTENT_ERROR_NONE)
100 media_content_error("error when get meta : [%d]", ret);
101 media_content_debug("copyright : [%s]", c_value);
104 ret = audio_meta_get_track_num(audio, &c_value);
105 if(ret != MEDIA_CONTENT_ERROR_NONE)
106 media_content_error("error when get meta : [%d]", ret);
107 media_content_debug("track_num : [%s]", c_value);
110 ret = audio_meta_get_bit_rate(audio, &i_value);
111 if(ret != MEDIA_CONTENT_ERROR_NONE)
112 media_content_error("error when get meta : [%d]", ret);
113 media_content_debug("bitrate : [%d]", i_value);
115 ret = audio_meta_get_sample_rate(audio, &i_value);
116 if(ret != MEDIA_CONTENT_ERROR_NONE)
117 media_content_error("error when get meta : [%d]", ret);
118 media_content_debug("samplerate : [%d]", i_value);
120 ret = audio_meta_get_channel(audio, &i_value);
121 if(ret != MEDIA_CONTENT_ERROR_NONE)
122 media_content_error("error when get meta : [%d]", ret);
123 media_content_debug("channel : [%d]", i_value);
125 ret = audio_meta_get_duration(audio, &i_value);
126 if(ret != MEDIA_CONTENT_ERROR_NONE)
127 media_content_error("error when get meta : [%d]", ret);
128 media_content_debug("duration : [%d]", i_value);
130 ret = audio_meta_get_played_count(audio, &i_value);
131 if(ret != MEDIA_CONTENT_ERROR_NONE)
132 media_content_error("error when get meta : [%d]", ret);
133 media_content_debug("played_count : [%d]", i_value);
135 ret = audio_meta_get_played_time(audio, &t_value);
136 if(ret != MEDIA_CONTENT_ERROR_NONE)
137 media_content_error("error when get meta : [%d]", ret);
138 media_content_debug("played_time : [%d]", t_value);
140 ret = audio_meta_get_played_position(audio, &i_value);
141 if(ret != MEDIA_CONTENT_ERROR_NONE)
142 media_content_error("error when get meta : [%d]", ret);
143 media_content_debug("played_position : [%d]", i_value);
148 bool get_video_meta(video_meta_h video)
150 char *c_value = NULL;
153 int ret = MEDIA_CONTENT_ERROR_NONE;
155 media_content_debug("=== video meta ===");
157 ret = video_meta_get_media_id(video, &c_value);
158 if(ret != MEDIA_CONTENT_ERROR_NONE)
159 media_content_error("error when get meta : [%d]", ret);
160 media_content_debug("video_id : [%s]", c_value);
163 ret = video_meta_get_album(video, &c_value);
164 if(ret != MEDIA_CONTENT_ERROR_NONE)
165 media_content_error("error when get meta : [%d]", ret);
166 media_content_debug("album : [%s]", c_value);
169 ret = video_meta_get_artist(video, &c_value);
170 if(ret != MEDIA_CONTENT_ERROR_NONE)
171 media_content_error("error when get meta : [%d]", ret);
172 media_content_debug("artist : [%s]", c_value);
175 ret = video_meta_get_album_artist(video, &c_value);
176 if(ret != MEDIA_CONTENT_ERROR_NONE)
177 media_content_error("error when get meta : [%d]", ret);
178 media_content_debug("album_artist : [%s]", c_value);
181 ret = video_meta_get_genre(video, &c_value);
182 if(ret != MEDIA_CONTENT_ERROR_NONE)
183 media_content_error("error when get meta : [%d]", ret);
184 media_content_debug("genre : [%s]", c_value);
187 ret = video_meta_get_composer(video, &c_value);
188 if(ret != MEDIA_CONTENT_ERROR_NONE)
189 media_content_error("error when get meta : [%d]", ret);
190 media_content_debug("omposer : [%s]", c_value);
193 ret = video_meta_get_year(video, &c_value);
194 if(ret != MEDIA_CONTENT_ERROR_NONE)
195 media_content_error("error when get meta : [%d]", ret);
196 media_content_debug("year : [%s]", c_value);
199 ret = video_meta_get_recorded_date(video, &c_value);
200 if(ret != MEDIA_CONTENT_ERROR_NONE)
201 media_content_error("error when get meta : [%d]", ret);
202 media_content_debug("recorded_date : [%s]", c_value);
205 ret = video_meta_get_copyright(video, &c_value);
206 if(ret != MEDIA_CONTENT_ERROR_NONE)
207 media_content_error("error when get meta : [%d]", ret);
208 media_content_debug("copyright : [%s]", c_value);
211 ret = video_meta_get_track_num(video, &c_value);
212 if(ret != MEDIA_CONTENT_ERROR_NONE)
213 media_content_error("error when get meta : [%d]", ret);
214 media_content_debug("track_num : [%s]", c_value);
217 ret = video_meta_get_bit_rate(video, &i_value);
218 if(ret != MEDIA_CONTENT_ERROR_NONE)
219 media_content_error("error when get meta : [%d]", ret);
220 media_content_debug("bitrate : [%d]", i_value);
222 ret = video_meta_get_duration(video, &i_value);
223 if(ret != MEDIA_CONTENT_ERROR_NONE)
224 media_content_error("error when get meta : [%d]", ret);
225 media_content_debug("duration : [%d]", i_value);
227 ret = video_meta_get_width(video, &i_value);
228 if(ret != MEDIA_CONTENT_ERROR_NONE)
229 media_content_error("error when get meta : [%d]", ret);
230 media_content_debug("width : [%d]", i_value);
232 ret = video_meta_get_height(video, &i_value);
233 if(ret != MEDIA_CONTENT_ERROR_NONE)
234 media_content_error("error when get meta : [%d]", ret);
235 media_content_debug("height : [%d]", i_value);
237 ret = video_meta_get_played_count(video, &i_value);
238 if(ret != MEDIA_CONTENT_ERROR_NONE)
239 media_content_error("error when get meta : [%d]", ret);
240 media_content_debug("played_count : [%d]", i_value);
242 ret = video_meta_get_played_time(video, &t_value);
243 if(ret != MEDIA_CONTENT_ERROR_NONE)
244 media_content_error("error when get meta : [%d]", ret);
245 media_content_debug("played_time : [%d]", t_value);
247 ret = video_meta_get_played_position(video, &i_value);
248 if(ret != MEDIA_CONTENT_ERROR_NONE)
249 media_content_error("error when get meta : [%d]", ret);
250 media_content_debug("played_position : [%d]", i_value);
255 bool gallery_folder_list_cb(media_folder_h folder, void *user_data)
257 media_folder_h new_folder = NULL;
258 media_folder_clone(&new_folder, folder);
260 GList **list = (GList**)user_data;
261 *list = g_list_append(*list, new_folder);
266 bool gallery_media_item_cb(media_info_h media, void *user_data)
268 media_info_h new_media = NULL;
269 media_info_clone(&new_media, media);
271 GList **list = (GList**)user_data;
272 *list = g_list_append(*list, new_media);
277 bool gallery_tag_item_cb(media_tag_h tag, void *user_data)
279 media_tag_h new_tag = NULL;
280 media_tag_clone(&new_tag, tag);
282 GList **list = (GList**)user_data;
283 *list = g_list_append(*list, new_tag);
288 bool gallery_bookmarks_cb(media_bookmark_h bookmark, void *user_data)
290 media_bookmark_h new_bm = NULL;
291 int ret = MEDIA_CONTENT_ERROR_NONE;
293 ret = media_bookmark_clone(&new_bm, bookmark);
294 if(ret != MEDIA_CONTENT_ERROR_NONE)
295 media_content_error("error media_bookmark_clone : [%d]", ret);
297 GList **list = (GList**)user_data;
298 *list = g_list_append(*list, new_bm);
303 bool media_item_cb(media_info_h media, void *user_data)
305 char *c_value = NULL;
306 char *media_id = NULL;
307 media_content_type_e media_type = 0;
308 int ret = MEDIA_CONTENT_ERROR_NONE;
312 media_content_debug("NO Item");
316 ret = media_info_get_media_type(media, &media_type);
317 if(ret != MEDIA_CONTENT_ERROR_NONE)
318 media_content_error("error when get info : [%d]", ret);
319 media_content_debug("media_type : [%d]", media_type);
321 ret = media_info_get_media_id(media, &media_id);
322 if(ret != MEDIA_CONTENT_ERROR_NONE)
323 media_content_error("error when get info : [%d]", ret);
324 media_content_debug("media_id : [%s]", media_id);
326 ret = media_info_get_file_path(media, &c_value);
327 if(ret != MEDIA_CONTENT_ERROR_NONE)
328 media_content_error("error when get info : [%d]", ret);
329 media_content_debug("file_path : [%s]", c_value);
335 bool b_value = false;
336 unsigned long long size = 0;
338 if(media_type == MEDIA_CONTENT_TYPE_MUSIC)
342 if(media_info_get_audio(media, &audio) == MEDIA_CONTENT_ERROR_NONE)
344 get_audio_meta(audio);
345 ret = audio_meta_destroy(audio);
346 if(ret != MEDIA_CONTENT_ERROR_NONE)
347 media_content_error("error audio_meta_destroy : [%d]", ret);
350 media_content_error("[audio_error]");
353 else if(media_type == MEDIA_CONTENT_TYPE_IMAGE)
356 media_content_orientation_e orientation = 0;
357 bool is_burst_shot = false;
358 char *burst_id = NULL;
359 char *weather = NULL;
361 if(media_info_get_image(media, &image) == MEDIA_CONTENT_ERROR_NONE)
363 ret = image_meta_get_orientation(image, &orientation);
364 if(ret != MEDIA_CONTENT_ERROR_NONE)
365 media_content_error("error image_meta_get_orientation : [%d]", ret);
367 media_content_debug("[image] orientation : %d", orientation);
369 ret = image_meta_is_burst_shot(image, &is_burst_shot);
370 if(ret != MEDIA_CONTENT_ERROR_NONE)
371 media_content_error("error image_meta_is_burst_shot : [%d]", ret);
374 ret = image_meta_get_burst_id(image, &burst_id);
375 if(ret != MEDIA_CONTENT_ERROR_NONE)
376 media_content_error("error image_meta_get_burst_id : [%d]", ret);
378 media_content_debug("[image] burst_id : [%s]", burst_id);
383 ret = image_meta_destroy(image);
384 if(ret != MEDIA_CONTENT_ERROR_NONE)
385 media_content_error("error image_meta_destroy : [%d]", ret);
388 media_content_error("[image_error]");
391 else if(media_type == MEDIA_CONTENT_TYPE_VIDEO)
395 if(media_info_get_video(media, &video) == MEDIA_CONTENT_ERROR_NONE)
397 get_video_meta(video);
398 ret = video_meta_destroy(video);
399 if(ret != MEDIA_CONTENT_ERROR_NONE)
400 media_content_error("error video_meta_destroy : [%d]", ret);
403 media_content_error("[video_error]");
408 media_content_debug("Other Content");
411 media_content_debug("=== media_info ===");
412 ret = media_info_get_file_path(media, &c_value);
413 if(ret != MEDIA_CONTENT_ERROR_NONE)
414 media_content_error("error when get info : [%d]", ret);
415 media_content_debug("file_path : [%s]", c_value);
418 ret = media_info_get_display_name(media, &c_value);
419 if(ret != MEDIA_CONTENT_ERROR_NONE)
420 media_content_error("error when get info : [%d]", ret);
421 media_content_debug("display_name : [%s]", c_value);
424 ret = media_info_get_mime_type(media, &c_value);
425 if(ret != MEDIA_CONTENT_ERROR_NONE)
426 media_content_error("error when get info : [%d]", ret);
427 media_content_debug("mime_type : [%s]", c_value);
430 ret = media_info_get_thumbnail_path(media, &c_value);
431 if(ret != MEDIA_CONTENT_ERROR_NONE)
432 media_content_error("error when get info : [%d]", ret);
433 media_content_debug("thumbnail_path : [%s]", c_value);
436 ret = media_info_get_description(media, &c_value);
437 if(ret != MEDIA_CONTENT_ERROR_NONE)
438 media_content_error("error when get info : [%d]", ret);
439 media_content_debug("description : [%s]", c_value);
442 ret = media_info_get_author(media, &c_value);
443 if(ret != MEDIA_CONTENT_ERROR_NONE)
444 media_content_error("error when get info : [%d]", ret);
445 media_content_debug("author : [%s]", c_value);
448 ret = media_info_get_provider(media, &c_value);
449 if(ret != MEDIA_CONTENT_ERROR_NONE)
450 media_content_error("error when get info : [%d]", ret);
451 media_content_debug("provider : [%s]", c_value);
454 ret = media_info_get_content_name(media, &c_value);
455 if(ret != MEDIA_CONTENT_ERROR_NONE)
456 media_content_error("error when get info : [%d]", ret);
457 media_content_debug("content_name : [%s]", c_value);
460 ret = media_info_get_category(media, &c_value);
461 if(ret != MEDIA_CONTENT_ERROR_NONE)
462 media_content_error("error when get info : [%d]", ret);
463 media_content_debug("category : [%s]", c_value);
466 ret = media_info_get_location_tag(media, &c_value);
467 if(ret != MEDIA_CONTENT_ERROR_NONE)
468 media_content_error("error when get info : [%d]", ret);
469 media_content_debug("location_tag : [%s]", c_value);
472 ret = media_info_get_age_rating(media, &c_value);
473 if(ret != MEDIA_CONTENT_ERROR_NONE)
474 media_content_error("error when get info : [%d]", ret);
475 media_content_debug("age_rating : [%s]", c_value);
478 ret = media_info_get_keyword(media, &c_value);
479 if(ret != MEDIA_CONTENT_ERROR_NONE)
480 media_content_error("error when get info : [%d]", ret);
481 media_content_debug("keyword : [%s]", c_value);
484 ret = media_info_get_size(media, &size);
485 if(ret != MEDIA_CONTENT_ERROR_NONE)
486 media_content_error("error when get info : [%d]", ret);
487 media_content_debug("size : [%lld]", size);
489 ret = media_info_get_added_time(media, &t_value);
490 if(ret != MEDIA_CONTENT_ERROR_NONE)
491 media_content_error("error when get info : [%d]", ret);
492 media_content_debug("added_time : [%d]", t_value);
494 ret = media_info_get_modified_time(media, &t_value);
495 if(ret != MEDIA_CONTENT_ERROR_NONE)
496 media_content_error("error when get info : [%d]", ret);
497 media_content_debug("modified_time : [%d]", t_value);
499 ret = media_info_get_timeline(media, &t_value);
500 if(ret != MEDIA_CONTENT_ERROR_NONE)
501 media_content_error("error when get info : [%d]", ret);
502 media_content_debug("timeline : [%d]", t_value);
504 ret = media_info_get_rating(media, &i_value);
505 if(ret != MEDIA_CONTENT_ERROR_NONE)
506 media_content_error("error when get info : [%d]", ret);
507 media_content_debug("rating : [%d]", i_value);
509 ret = media_info_get_favorite(media, &b_value);
510 if(ret != MEDIA_CONTENT_ERROR_NONE)
511 media_content_error("error when get info : [%d]", ret);
512 media_content_debug("favorite : [%d]", b_value);
514 ret = media_info_is_drm(media, &b_value);
515 if(ret != MEDIA_CONTENT_ERROR_NONE)
516 media_content_error("error when get info : [%d]", ret);
517 media_content_debug("is_drm : [%d]", b_value);
519 ret = media_info_set_weather(media, "Sunny");
520 if(ret != MEDIA_CONTENT_ERROR_NONE) {
521 media_content_error("Fail to set weather");
524 ret = media_info_get_weather(media, &c_value);
525 if(ret != MEDIA_CONTENT_ERROR_NONE)
526 media_content_error("error when get info : [%d]", ret);
527 media_content_debug("weather : [%s]", c_value);
530 /* Media server can't update when another db handle holds DB connection by sqlite3_prepare */
531 //ret = media_info_set_location_tag(media, "Test location tag");
532 //media_info_update_to_db(media);
539 bool folder_list_cb(media_folder_h folder, void *user_data)
542 char *folder_id = NULL;
543 char *str_val = NULL;
545 media_content_storage_e storage_type;
547 media_folder_h *_folder = (media_folder_h*)user_data;
549 media_content_debug("===========================");
553 media_folder_clone(_folder, folder);
555 if(media_folder_get_folder_id(folder, &folder_id) != MEDIA_CONTENT_ERROR_NONE)
557 media_content_error("[ERROR] media_folder_get_folder_id is failed");
560 media_content_debug("folder_id = [%s]", folder_id);
562 if(media_folder_get_parent_folder_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE)
564 media_content_error("[ERROR] media_folder_get_parent_folder_id is failed");
567 media_content_debug("parent_folder_id = [%s]", str_val);
569 if(media_folder_get_path(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE)
571 SAFE_FREE(folder_id);
572 media_content_error("[ERROR] media_folder_get_path is failed");
575 media_content_debug("folder_path = [%s]", str_val);
578 if(media_folder_get_name(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE)
580 SAFE_FREE(folder_id);
581 media_content_error("[ERROR] media_folder_get_name is failed");
584 media_content_debug("folder_name = [%s]", str_val);
587 if(media_folder_get_storage_type(folder, &storage_type) != MEDIA_CONTENT_ERROR_NONE)
589 SAFE_FREE(folder_id);
590 media_content_error("[ERROR] media_folder_get_storage_type is failed");
593 media_content_debug("storage_type = [%d]", storage_type);
595 if(media_folder_get_storage_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE)
597 SAFE_FREE(folder_id);
598 media_content_error("[ERROR] media_folder_get_name is failed");
601 media_content_debug("storage_id = [%s]", str_val);
603 if(media_folder_get_order(folder, &int_val) != MEDIA_CONTENT_ERROR_NONE)
605 media_content_error("[ERROR] media_folder_get_order is failed");
608 media_content_debug("folder_order = [%d]", int_val);
610 if(media_folder_get_media_count_from_db(folder_id, g_filter, &item_count) != MEDIA_CONTENT_ERROR_NONE)
612 SAFE_FREE(folder_id);
613 media_content_error("[ERROR] media_folder_get_media_count_from_db is failed");
617 if(media_folder_foreach_media_from_db(folder_id, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
619 SAFE_FREE(folder_id);
620 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed");
624 SAFE_FREE(folder_id);
635 bool test_album_from_db(int album_id)
637 int ret = MEDIA_CONTENT_ERROR_NONE;
638 media_album_h album_h;
639 int test_album_id = 0;
640 char *album_name = NULL;
643 ret = media_album_get_album_from_db(album_id, &album_h);
644 if(ret != MEDIA_CONTENT_ERROR_NONE)
646 media_content_error("error when get album");
650 if(media_album_get_album_id(album_h, &test_album_id) != MEDIA_CONTENT_ERROR_NONE)
652 media_album_destroy(album_h);
656 media_content_debug("test_album_id : [%d]", test_album_id);
658 if(media_album_get_name(album_h, &album_name) != MEDIA_CONTENT_ERROR_NONE)
660 media_album_destroy(album_h);
664 media_content_debug("album_name : [%s]", album_name);
666 if(media_album_get_artist(album_h, &artist) != MEDIA_CONTENT_ERROR_NONE)
668 media_album_destroy(album_h);
669 /* fix prevent: Resource Leak */
670 SAFE_FREE(album_name);
674 media_content_debug("artist : [%s]", artist);
676 SAFE_FREE(album_name);
679 media_album_destroy(album_h);
684 bool playlist_list_cb(media_playlist_h playlist, void *user_data)
687 char *playlist_name = NULL;
688 media_playlist_h playlist_h;
689 char *playlist_thumbnail_path = NULL;
691 media_content_debug("playlist_list_cb ======");
693 GList **list = (GList**)user_data;
698 media_content_debug(" playlist handle is NULL");
702 media_playlist_get_playlist_id(playlist, &playlist_id);
703 media_content_debug("playlist_id : %d", playlist_id);
704 /* 64bit build issue */
706 if(user_data != NULL)
707 *list = g_list_append(*list, (gpointer)playlist_id);
709 media_playlist_get_name(playlist, &playlist_name);
710 media_content_debug("playlist_name : %s", playlist_name);
711 SAFE_FREE(playlist_name);
713 media_playlist_get_thumbnail_path(playlist, &playlist_thumbnail_path);
714 media_content_debug("playlist_thumbnail_path : %s", playlist_thumbnail_path);
715 SAFE_FREE(playlist_thumbnail_path);
717 media_playlist_get_playlist_from_db(playlist_id, &playlist_h);
719 media_playlist_destroy(playlist_h);
724 bool tag_list_cb(media_tag_h tag, void *user_data)
727 char *tag_name = NULL;
728 int ret = MEDIA_CONTENT_ERROR_NONE;
732 media_content_debug(" tag handle is NULL");
736 ret = media_tag_get_tag_id(tag, &tag_id);
737 if(ret != MEDIA_CONTENT_ERROR_NONE)
738 media_content_error("error media_tag_get_tag_id : [%d]", ret);
740 media_content_debug("tag_id : %d", tag_id);
742 ret = media_tag_get_name(tag, &tag_name);
743 if(ret != MEDIA_CONTENT_ERROR_NONE)
744 media_content_error("error media_tag_get_name : [%d]", ret);
746 media_content_debug("tag_name : %s", tag_name);
752 bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
754 media_bookmark_h *_bookmark = (media_bookmark_h*)bookmark;
755 int ret = MEDIA_CONTENT_ERROR_NONE;
757 if(_bookmark != NULL)
763 ret = media_bookmark_get_bookmark_id(bookmark, &bookmark_id);
764 if(ret != MEDIA_CONTENT_ERROR_NONE)
765 media_content_error("error media_bookmark_get_bookmark_id : [%d]", ret);
767 media_content_debug("bookmark_id : %d", bookmark_id);
769 ret = media_bookmark_get_thumbnail_path(bookmark, &name);
770 if(ret != MEDIA_CONTENT_ERROR_NONE)
771 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
773 media_content_debug("bookmark thumbnail_path : %s", name);
776 ret = media_bookmark_get_marked_time(bookmark, &time);
777 if(ret != MEDIA_CONTENT_ERROR_NONE)
778 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
780 media_content_debug("bookmark marked_time : %d", time);
786 bool album_list_cb(media_album_h album, void *user_data)
789 char *album_name = NULL;
791 char *album_art = NULL;
793 int ret = MEDIA_CONTENT_ERROR_NONE;
794 filter_h filter = NULL;
797 const char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
799 ret = media_filter_create(&filter);
800 if(ret != MEDIA_CONTENT_ERROR_NONE) {
801 media_content_error("Fail to create filter");
804 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
805 if(ret != MEDIA_CONTENT_ERROR_NONE) {
806 media_filter_destroy(filter);
807 media_content_error("Fail to set condition");
810 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
811 if(ret != MEDIA_CONTENT_ERROR_NONE) {
812 media_filter_destroy(filter);
813 media_content_error("Fail to set order");
819 if(media_album_get_album_id(album, &album_id) != MEDIA_CONTENT_ERROR_NONE)
821 media_filter_destroy(filter);
825 media_content_debug("album_id : [%d]", album_id);
827 if(media_album_get_name(album, &album_name) != MEDIA_CONTENT_ERROR_NONE)
829 media_filter_destroy(filter);
833 media_content_debug("album_name : [%s]", album_name);
834 SAFE_FREE(album_name);
836 if(media_album_get_artist(album, &artist) != MEDIA_CONTENT_ERROR_NONE)
838 media_filter_destroy(filter);
842 media_content_debug("artist : [%s]", artist);
845 if(media_album_get_album_art(album, &album_art) != MEDIA_CONTENT_ERROR_NONE)
847 media_filter_destroy(filter);
851 media_content_debug("album_art : [%s]", album_art);
852 SAFE_FREE(album_art);
854 if(media_album_get_media_count_from_db(album_id, filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
856 media_filter_destroy(filter);
860 media_content_debug("media_count : [%d]", media_count);
862 if(media_album_foreach_media_from_db(album_id, filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
864 media_filter_destroy(filter);
868 test_album_from_db(album_id);
872 media_content_error("album item not Found!!");
875 media_filter_destroy(filter);
880 bool group_list_cb(const char *group_name, void *user_data)
883 int *idx = user_data;
885 media_content_debug("group item : [%s] [%d]", group_name, *idx);
887 if(media_group_get_media_count_from_db(group_name, *idx, g_filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
890 media_content_debug("media_count : [%d]", media_count);
892 if(media_group_foreach_media_from_db(group_name, *idx, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
898 bool playlist_item_cb(int playlist_member_id, media_info_h media, void *user_data)
900 media_content_debug("playlist_member_id : [%d]", playlist_member_id);
901 /* 64bit build issue */
903 GList **list = (GList**)user_data;
905 *list = g_list_append(*list, (gpointer)playlist_member_id);
907 //media_item_cb(media, user_data);
912 int test_filter_create(void)
914 media_content_debug("\n============Filter Create============\n\n");
916 int ret = MEDIA_CONTENT_ERROR_NONE;
918 /* Filter for media */
919 const char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
920 //const 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*/
922 ret = media_filter_create(&g_filter);
924 /* Set condition and collate
925 * Condition string : You can make where statement of sql.
926 * Colation : You can use collation when comparing.
927 * Ex) In case of FILE_NAME='Samsung' as condition string,
928 * if you want to compare with NOCASE collation,
929 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
930 * if you want to compare in case-sensitive,
931 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
933 ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
935 /* Collation of ordering
936 * If you want to get list, which is sorted by NOCASE,
937 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_NOCASE);
939 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
941 /* Able to set multi column to set order */
942 //ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, "MEDIA_MODIFIED_TIME, MEDIA_DISPLAY_NAME", MEDIA_CONTENT_COLLATE_DEFAULT);
943 //ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
944 //ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TRACK_NUM_INT, MEDIA_CONTENT_COLLATE_DEFAULT);
945 //ret = media_filter_set_storage(g_filter, "cfbf3d2c-71c5-4611-bccc-7cbac890146e");
947 /* Filter for group */
948 //const char *g_condition = "TAG_NAME like \"\%my\%\"";
949 //const char *g_condition = "BOOKMARK_MARKED_TIME > 300";
951 ret = media_filter_create(&g_filter_g);
953 //ret = media_filter_set_condition(g_filter_g, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
954 ret = media_filter_set_order(g_filter_g, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
959 int test_filter_destroy(void)
961 media_content_debug("\n============Filter Create============\n\n");
963 int ret = MEDIA_CONTENT_ERROR_NONE;
965 ret = media_filter_destroy(g_filter);
970 int test_connect_database(void)
972 int ret = MEDIA_CONTENT_ERROR_NONE;
974 media_content_debug("\n============DB Connection Test============\n\n");
976 ret = media_content_connect();
978 if(ret == MEDIA_CONTENT_ERROR_NONE)
980 media_content_debug("connection is success\n\n");
983 media_content_error("connection is failed\n\n");
988 int test_gallery_scenario(void)
990 int ret = MEDIA_CONTENT_ERROR_NONE;
992 filter_h filter = NULL;
995 GList *folder_list = NULL;
996 media_folder_h folder_handle = NULL;
998 /* First, Get folder list */
999 ret = media_folder_foreach_folder_from_db(filter, gallery_folder_list_cb, &folder_list);
1000 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1001 media_content_error("media_folder_foreach_folder_from_db failed: %d", ret);
1004 media_content_debug("media_folder_foreach_folder_from_db success!!");
1005 char *folder_id = NULL;
1006 char *folder_name = NULL;
1007 char *folder_path = NULL;
1009 for(i = 0; i < g_list_length(folder_list); i++) {
1010 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1012 ret = media_folder_get_folder_id(folder_handle, &folder_id);
1013 if(ret != MEDIA_CONTENT_ERROR_NONE)
1014 media_content_error("media_folder_get_folder_id failed: %d", ret);
1015 ret = media_folder_get_name(folder_handle, &folder_name);
1016 if(ret != MEDIA_CONTENT_ERROR_NONE)
1017 media_content_error("media_folder_get_name failed: %d", ret);
1018 ret = media_folder_get_path(folder_handle, &folder_path);
1019 if(ret != MEDIA_CONTENT_ERROR_NONE)
1020 media_content_error("media_folder_get_path failed: %d", ret);
1022 media_content_debug("folder_id [%d] : %s", i, folder_id);
1023 media_content_debug("folder_name [%d] : %s", i, folder_name);
1024 media_content_debug("folder_path [%d] : %s", i, folder_path);
1026 ret = media_folder_get_media_count_from_db(folder_id, filter, &count);
1027 /* User should free these string */
1028 SAFE_FREE(folder_id);
1029 SAFE_FREE(folder_name);
1030 SAFE_FREE(folder_path);
1031 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1032 media_content_error("media_folder_get_media_count_from_db failed: %d", ret);
1035 media_content_debug("media count [%d] : %d", i, count);
1040 /* To check performance */
1041 struct timeval start, end;
1042 gettimeofday(&start, NULL);
1044 /* Second, Get all item list */
1045 media_info_h media_handle = NULL;
1046 GList *all_item_list = NULL;
1048 media_content_collation_e collate_type = MEDIA_CONTENT_COLLATE_NOCASE;
1049 media_content_order_e order_type = MEDIA_CONTENT_ORDER_DESC;
1050 ret = media_filter_create(&filter);
1051 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1052 media_content_error("Fail to create filter");
1055 ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", collate_type);
1056 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1057 media_filter_destroy(filter);
1058 media_content_error("Fail to set condition");
1061 ret = media_filter_set_order(filter, order_type, MEDIA_DISPLAY_NAME, collate_type);
1062 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1063 media_filter_destroy(filter);
1064 media_content_error("Fail to set order");
1068 ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
1069 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1070 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
1071 media_filter_destroy(filter);
1074 media_content_debug("media_info_foreach_media_from_db success");
1075 media_content_type_e media_type;
1076 char *media_id = NULL;
1077 char *media_name = NULL;
1078 char *media_path = NULL;
1080 for(i = 0; i < g_list_length(all_item_list); i++) {
1081 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1083 ret = media_info_get_media_id(media_handle, &media_id);
1084 if(ret != MEDIA_CONTENT_ERROR_NONE)
1085 media_content_error("media_info_get_media_id failed: %d", ret);
1086 ret = media_info_get_media_type(media_handle, &media_type);
1087 if(ret != MEDIA_CONTENT_ERROR_NONE)
1088 media_content_error("media_info_get_media_type failed: %d", ret);
1089 ret = media_info_get_display_name(media_handle, &media_name);
1090 if(ret != MEDIA_CONTENT_ERROR_NONE)
1091 media_content_error("media_info_get_display_name failed: %d", ret);
1092 ret = media_info_get_file_path(media_handle, &media_path);
1093 if(ret != MEDIA_CONTENT_ERROR_NONE)
1094 media_content_error("media_info_get_file_path failed: %d", ret);
1096 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1097 image_meta_h image_handle;
1098 int width = 0, height = 0;
1099 media_content_orientation_e orientation = 0;
1100 char *datetaken = NULL;
1101 char *burst_id = NULL;
1103 ret = media_info_get_image(media_handle, &image_handle);
1104 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1105 media_content_error("media_info_get_image failed: %d", ret);
1107 ret = image_meta_get_width(image_handle, &width);
1108 if(ret != MEDIA_CONTENT_ERROR_NONE)
1109 media_content_error("error image_meta_get_width : [%d]", ret);
1110 ret = image_meta_get_height(image_handle, &height);
1111 if(ret != MEDIA_CONTENT_ERROR_NONE)
1112 media_content_error("error image_meta_get_height : [%d]", ret);
1113 ret = image_meta_get_orientation(image_handle, &orientation);
1114 if(ret != MEDIA_CONTENT_ERROR_NONE)
1115 media_content_error("error image_meta_get_orientation : [%d]", ret);
1116 ret = image_meta_get_date_taken(image_handle, &datetaken);
1117 if(ret != MEDIA_CONTENT_ERROR_NONE)
1118 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1119 ret = image_meta_get_burst_id(image_handle, &burst_id);
1120 if(ret != MEDIA_CONTENT_ERROR_NONE)
1121 media_content_error("error image_meta_get_burst_id : [%d]", ret);
1123 media_content_debug("This is Image");
1124 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1127 SAFE_FREE(datetaken);
1128 SAFE_FREE(burst_id);
1129 ret = image_meta_destroy(image_handle);
1130 if(ret != MEDIA_CONTENT_ERROR_NONE)
1131 media_content_error("error image_meta_destroy : [%d]", ret);
1133 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1134 video_meta_h video_handle;
1135 char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;
1137 time_t time_played = 0;
1139 ret = media_info_get_video(media_handle, &video_handle);
1140 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1141 media_content_error("media_info_get_video failed: %d", ret);
1143 ret = video_meta_get_artist(video_handle, &artist);
1144 if(ret != MEDIA_CONTENT_ERROR_NONE)
1145 media_content_error("error video_meta_get_artist : [%d]", ret);
1146 ret = video_meta_get_album(video_handle, &album);
1147 if(ret != MEDIA_CONTENT_ERROR_NONE)
1148 media_content_error("error video_meta_get_album : [%d]", ret);
1149 ret = video_meta_get_album_artist(video_handle, &album_artist);
1150 if(ret != MEDIA_CONTENT_ERROR_NONE)
1151 media_content_error("error video_meta_get_album_artist : [%d]", ret);
1152 ret = video_meta_get_duration(video_handle, &duration);
1153 if(ret != MEDIA_CONTENT_ERROR_NONE)
1154 media_content_error("error video_meta_get_duration : [%d]", ret);
1155 ret = video_meta_get_played_time(video_handle, &time_played);
1156 if(ret != MEDIA_CONTENT_ERROR_NONE)
1157 media_content_error("error video_meta_get_played_time : [%d]", ret);
1159 media_content_debug("This is Video");
1160 media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d, Played time: %d", title, album, artist, album_artist, duration, time_played);
1166 SAFE_FREE(album_artist);
1168 ret = video_meta_destroy(video_handle);
1169 if(ret != MEDIA_CONTENT_ERROR_NONE)
1170 media_content_error("error video_meta_destroy : [%d]", ret);
1172 //media_content_debug("media_id [%d] : %s", i, media_id);
1173 //media_content_debug("media_name [%d] : %s", i, media_name);
1174 //media_content_debug("media_path [%d] : %s", i, media_path);
1176 SAFE_FREE(media_id);
1177 SAFE_FREE(media_name);
1178 SAFE_FREE(media_path);
1182 media_filter_destroy(filter);
1185 /* To check performance */
1186 gettimeofday(&end, NULL);
1187 long time = (end.tv_sec * 1000000 + end.tv_usec) - (start.tv_sec * 1000000 + start.tv_usec);
1188 media_content_debug("Time : %ld\n", time);
1190 /* Third, Get item list of a folder */
1191 GList *item_list = NULL;
1193 for(i = 0; i < g_list_length(folder_list); i++) {
1195 char *folder_id = NULL;
1196 char *folder_name = NULL;
1197 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1199 media_folder_get_folder_id(folder_handle, &folder_id);
1200 media_folder_get_name(folder_handle, &folder_name);
1202 ret = media_folder_foreach_media_from_db(folder_id, filter, gallery_media_item_cb, &item_list);
1203 SAFE_FREE(folder_id);
1204 SAFE_FREE(folder_name);
1206 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1207 media_content_error("media_folder_foreach_media_from_db failed: %d", ret);
1210 media_content_error("media_folder_foreach_media_from_db success!", ret);
1211 char *media_id = NULL;
1212 char *media_name = NULL;
1213 char *media_path = NULL;
1214 media_content_type_e media_type = 0;
1216 for(j = 0; j < g_list_length(item_list); j++) {
1217 media_handle = (media_info_h)g_list_nth_data(item_list, j);
1219 ret = media_info_get_media_id(media_handle, &media_id);
1220 if(ret != MEDIA_CONTENT_ERROR_NONE)
1221 media_content_error("media_info_get_media_id failed: %d", ret);
1222 ret = media_info_get_display_name(media_handle, &media_name);
1223 if(ret != MEDIA_CONTENT_ERROR_NONE)
1224 media_content_error("media_info_get_display_name failed: %d", ret);
1225 ret = media_info_get_file_path(media_handle, &media_path);
1226 if(ret != MEDIA_CONTENT_ERROR_NONE)
1227 media_content_error("media_info_get_file_path failed: %d", ret);
1228 ret = media_info_get_media_type(media_handle, &media_type);
1229 if(ret != MEDIA_CONTENT_ERROR_NONE)
1230 media_content_error("media_info_get_media_type failed: %d", ret);
1232 media_content_debug("[%s] media_id [%d] : %s", folder_name, j, media_id);
1233 media_content_debug("[%s] media_type [%d] : %d", folder_name, j, media_type);
1234 media_content_debug("[%s] media_name [%d] : %s", folder_name, j, media_name);
1235 media_content_debug("[%s] media_path [%d] : %s", folder_name, j, media_path);
1237 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1238 image_meta_h image_handle;
1239 int width = 0, height = 0;
1240 media_content_orientation_e orientation = 0;
1241 char *datetaken = NULL;
1243 ret = media_info_get_image(media_handle, &image_handle);
1244 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1245 media_content_error("media_info_get_image failed: %d", ret);
1247 ret = image_meta_get_width(image_handle, &width);
1248 if(ret != MEDIA_CONTENT_ERROR_NONE)
1249 media_content_error("error image_meta_get_width : [%d]", ret);
1250 ret = image_meta_get_height(image_handle, &height);
1251 if(ret != MEDIA_CONTENT_ERROR_NONE)
1252 media_content_error("error image_meta_get_height : [%d]", ret);
1253 ret = image_meta_get_orientation(image_handle, &orientation);
1254 if(ret != MEDIA_CONTENT_ERROR_NONE)
1255 media_content_error("error image_meta_get_orientation : [%d]", ret);
1256 ret = image_meta_get_date_taken(image_handle, &datetaken);
1257 if(ret != MEDIA_CONTENT_ERROR_NONE)
1258 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1260 media_content_debug("This is Image");
1261 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1264 SAFE_FREE(datetaken);
1265 ret = image_meta_destroy(image_handle);
1266 if(ret != MEDIA_CONTENT_ERROR_NONE)
1267 media_content_error("error image_meta_destroy : [%d]", ret);
1269 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1270 video_meta_h video_handle;
1271 char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;;
1275 ret = media_info_get_video(media_handle, &video_handle);
1276 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1277 media_content_error("media_info_get_video failed: %d", ret);
1279 ret = video_meta_get_artist(video_handle, &artist);
1280 if(ret != MEDIA_CONTENT_ERROR_NONE)
1281 media_content_error("error video_meta_get_artist : [%d]", ret);
1282 ret = video_meta_get_album(video_handle, &album);
1283 if(ret != MEDIA_CONTENT_ERROR_NONE)
1284 media_content_error("error video_meta_get_album : [%d]", ret);
1285 ret = video_meta_get_album_artist(video_handle, &album_artist);
1286 if(ret != MEDIA_CONTENT_ERROR_NONE)
1287 media_content_error("error video_meta_get_album_artist : [%d]", ret);
1288 ret = video_meta_get_duration(video_handle, &duration);
1289 if(ret != MEDIA_CONTENT_ERROR_NONE)
1290 media_content_error("error video_meta_get_duration : [%d]", ret);
1291 ret = video_meta_get_played_time(video_handle, &time_played);
1292 if(ret != MEDIA_CONTENT_ERROR_NONE)
1293 media_content_error("error video_meta_get_played_time : [%d]", ret);
1295 media_content_debug("This is Video");
1296 media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d, Played time: %d\n", title, album, artist, album_artist, duration, time_played);
1302 SAFE_FREE(album_artist);
1304 ret = video_meta_destroy(video_handle);
1305 if(ret != MEDIA_CONTENT_ERROR_NONE)
1306 media_content_error("error video_meta_destroy : [%d]", ret);
1308 /* Get bookmar list in case of video */
1309 media_bookmark_h bm_handle;
1310 GList *bm_list = NULL;
1312 ret = media_info_foreach_bookmark_from_db(media_id, filter, gallery_bookmarks_cb, &bm_list);
1313 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1314 media_content_error("media_info_foreach_bookmark_from_db failed: %d", ret);
1316 media_content_debug("media_info_foreach_bookmark_from_db success");
1320 for(k = 0; k < g_list_length(bm_list); k++) {
1321 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, k);
1323 char *thumb_path = NULL;
1325 ret = media_bookmark_get_marked_time(bm_handle, &marked_time);
1326 if(ret != MEDIA_CONTENT_ERROR_NONE)
1327 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
1328 ret = media_bookmark_get_thumbnail_path(bm_handle, &thumb_path);
1329 if(ret != MEDIA_CONTENT_ERROR_NONE)
1330 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
1332 media_content_debug("Bookmark time : %d\nBookmar thumb: %s", marked_time, thumb_path);
1333 SAFE_FREE(thumb_path);
1336 /* Remove bookmark list */
1339 for(l = 0; l < g_list_length(bm_list); l++) {
1340 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, l);
1341 ret = media_bookmark_destroy(bm_handle);
1342 if(ret != MEDIA_CONTENT_ERROR_NONE)
1343 media_content_error("error media_bookmark_destroy : [%d]", ret);
1346 g_list_free(bm_list);
1352 SAFE_FREE(media_id);
1353 SAFE_FREE(media_name);
1354 SAFE_FREE(media_path);
1360 media_tag_h tag_handle = NULL;
1361 GList *tag_list = NULL;
1362 GList *media_list_in_tag = NULL;
1364 ret = media_tag_foreach_tag_from_db (filter, gallery_tag_item_cb, &tag_list);
1366 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1367 media_content_error("media_tag_foreach_tag_from_db failed: %d", ret);
1370 media_content_error("media_tag_foreach_tag_from_db success");
1371 char *tag_name = NULL;
1374 for(i = 0; i < g_list_length(tag_list); i++) {
1375 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1376 media_tag_get_tag_id(tag_handle, &tag_id);
1377 media_tag_get_name(tag_handle, &tag_name);
1379 media_content_debug("[%d] %s", tag_id, tag_name);
1381 ret = media_tag_foreach_media_from_db(tag_id, filter, gallery_media_item_cb, &media_list_in_tag);
1382 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1383 media_content_error("media_tag_foreach_media_from_db failed: %d", ret);
1386 media_content_error("media_tag_foreach_media_from_db success");
1388 media_info_h tag_media_handle;
1389 char *media_id = NULL;
1390 char *media_name = NULL;
1391 char *media_path = NULL;
1392 media_content_type_e media_type = 0;
1394 for(j = 0; j < g_list_length(media_list_in_tag); j++) {
1395 tag_media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, j);
1396 ret = media_info_get_media_id(tag_media_handle, &media_id);
1397 if(ret != MEDIA_CONTENT_ERROR_NONE)
1398 media_content_error("media_info_get_media_id failed: %d", ret);
1399 ret = media_info_get_display_name(tag_media_handle, &media_name);
1400 if(ret != MEDIA_CONTENT_ERROR_NONE)
1401 media_content_error("media_info_get_display_name failed: %d", ret);
1402 ret = media_info_get_file_path(tag_media_handle, &media_path);
1403 if(ret != MEDIA_CONTENT_ERROR_NONE)
1404 media_content_error("media_info_get_file_path failed: %d", ret);
1405 ret = media_info_get_media_type(tag_media_handle, &media_type);
1406 if(ret != MEDIA_CONTENT_ERROR_NONE)
1407 media_content_error("media_info_get_media_type failed: %d", ret);
1409 media_content_debug("[%s] media_id [%d] : %s", tag_name, j, media_id);
1410 media_content_debug("[%s] media_type [%d] : %d", tag_name, j, media_type);
1411 media_content_debug("[%s] media_name [%d] : %s", tag_name, j, media_name);
1412 media_content_debug("[%s] media_path [%d] : %s", tag_name, j, media_path);
1414 SAFE_FREE(media_id);
1415 SAFE_FREE(media_name);
1416 SAFE_FREE(media_path);
1418 SAFE_FREE(tag_name);
1422 /* Remove folder list */
1424 for(i = 0; i < g_list_length(folder_list); i++) {
1425 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1426 media_folder_destroy(folder_handle);
1429 g_list_free(folder_list);
1432 /* Remove all items list */
1434 for(i = 0; i < g_list_length(all_item_list); i++) {
1435 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1436 ret = media_info_destroy(media_handle);
1437 if(ret != MEDIA_CONTENT_ERROR_NONE)
1438 media_content_error("media_info_destroy failed: %d", ret);
1441 g_list_free(all_item_list);
1444 /* Remove items list */
1446 for(i = 0; i < g_list_length(item_list); i++) {
1447 media_handle = (media_info_h)g_list_nth_data(item_list, i);
1448 ret = media_info_destroy(media_handle);
1449 if(ret != MEDIA_CONTENT_ERROR_NONE)
1450 media_content_error("media_info_destroy failed: %d", ret);
1453 g_list_free(item_list);
1456 /* Remove tag list */
1458 for(i = 0; i < g_list_length(tag_list); i++) {
1459 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1460 ret = media_tag_destroy(tag_handle);
1461 if(ret != MEDIA_CONTENT_ERROR_NONE)
1462 media_content_error("error media_tag_destroy : [%d]", ret);
1465 g_list_free(tag_list);
1468 /* Remove media list in a tag */
1469 if(media_list_in_tag) {
1470 for(i = 0; i < g_list_length(media_list_in_tag); i++) {
1471 media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, i);
1472 ret = media_info_destroy(media_handle);
1473 if(ret != MEDIA_CONTENT_ERROR_NONE)
1474 media_content_error("media_info_destroy failed: %d", ret);
1477 g_list_free(media_list_in_tag);
1480 return MEDIA_CONTENT_ERROR_NONE;
1483 /*Get All Music file. sort by Title and not case sensitive*/
1484 int test_get_all_music_files(void)
1486 int ret = MEDIA_CONTENT_ERROR_NONE;
1487 int media_count = 0;
1491 const char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1493 ret = media_filter_create(&filter);
1494 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1495 media_content_error("Fail to create filter");
1498 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_LOCALIZED);
1499 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1500 media_filter_destroy(filter);
1501 media_content_error("Fail to set condition");
1504 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_LOCALIZED);
1505 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1506 media_filter_destroy(filter);
1507 media_content_error("Fail to set order");
1512 ret = media_info_get_media_count_from_db(filter, &media_count);
1513 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1514 media_filter_destroy(filter);
1515 media_content_error("Fail to get media count");
1519 media_content_debug("media_count : [%d]", media_count);
1521 ret = media_info_foreach_media_from_db(filter, media_item_cb, NULL);
1522 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1523 media_filter_destroy(filter);
1524 media_content_error("Fail to get media");
1528 ret = media_filter_destroy(filter);
1533 int test_media_info_operation(void)
1535 int ret = MEDIA_CONTENT_ERROR_NONE;
1536 int media_count = 0;
1538 media_content_debug("\n============Media info Test============\n\n");
1540 test_filter_create();
1542 ret = media_info_get_media_count_from_db(g_filter, &media_count);
1543 if(ret != MEDIA_CONTENT_ERROR_NONE)
1544 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
1546 media_content_debug("media_count : [%d]", media_count);
1548 ret = media_info_foreach_media_from_db(g_filter, media_item_cb, NULL);
1549 if(ret == MEDIA_CONTENT_ERROR_NONE)
1550 media_content_debug("media_info_foreach_media_from_db is success");
1552 media_content_error("media_info_foreach_media_from_db is failed");
1554 test_filter_destroy();
1559 int test_media_info_operation_2(void)
1561 int ret = MEDIA_CONTENT_ERROR_NONE;
1562 int bookmark_count = 0;
1564 media_content_debug("\n============Media info Test 2============\n\n");
1566 test_filter_create();
1570 char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg"));
1571 media_bookmark_insert_to_db(test_video_id, 100, thumbnail_path1);
1572 media_bookmark_insert_to_db(test_video_id, 200, thumbnail_path1);
1574 media_info_get_bookmark_count_from_db(test_video_id, g_filter_g, &bookmark_count);
1576 media_content_debug("bookmark_count : [%d]", bookmark_count);
1578 ret = media_info_foreach_bookmark_from_db(test_video_id, g_filter_g, bookmarks_cb, NULL);
1582 ret = media_info_get_tag_count_from_db(test_audio_id, g_filter_g, &bookmark_count);
1583 if(ret != MEDIA_CONTENT_ERROR_NONE)
1584 media_content_error("media_info_get_tag_count_from_db failed: %d", ret);
1586 media_content_debug("tag_count : [%d]", bookmark_count);
1588 ret = media_info_foreach_tag_from_db(test_audio_id, g_filter_g, tag_list_cb, NULL);
1589 if(ret != MEDIA_CONTENT_ERROR_NONE)
1590 media_content_error("media_info_foreach_tag_from_db failed: %d", ret);
1592 test_filter_destroy();
1597 int test_folder_operation(void)
1599 int ret = MEDIA_CONTENT_ERROR_NONE;
1600 filter_h filter = NULL;
1601 media_folder_h folder = NULL;
1602 char *folder_id = NULL;
1605 media_content_debug("\n============Folder Test============\n\n");
1607 test_filter_create();
1609 ret = media_filter_create(&filter);
1610 if(ret != MEDIA_CONTENT_ERROR_NONE)
1612 media_content_error("[ERROR] media_folder_filter_create is failed");
1616 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*/
1617 media_filter_set_offset(filter, 0,5);
1618 media_filter_set_order(filter,MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1619 media_filter_set_storage(filter, "cfbf3d2c-71c5-4611-bccc-7cbac890146e");
1621 ret = media_folder_get_folder_count_from_db(filter, &count);
1622 media_content_debug("Folder count : [%d]", count);
1624 ret = media_folder_foreach_folder_from_db(filter, folder_list_cb, &folder);
1626 //test.3 get the media list in first folder
1627 filter_h m_filter = NULL;
1629 ret = media_filter_create(&m_filter);
1630 if(ret != MEDIA_CONTENT_ERROR_NONE)
1632 test_filter_destroy();
1633 media_filter_destroy(filter);
1634 media_content_error("[ERROR] media_info_filter_create is failed");
1638 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*/
1639 media_filter_set_offset(m_filter, 0,5);
1640 media_filter_set_order(m_filter,MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1642 ret = media_folder_foreach_media_from_db(folder_id, m_filter, media_item_cb, NULL);
1643 if(ret != MEDIA_CONTENT_ERROR_NONE)
1644 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed, error code : %d", ret);
1646 media_filter_destroy(filter);
1647 media_filter_destroy(m_filter);
1649 test_filter_destroy();
1651 /* fix prevent: Resource Leak */
1652 SAFE_FREE(folder_id);
1657 bool folder_update_cb(media_folder_h folder, void *user_data)
1659 char *folder_id = NULL;
1660 char *folder_path = NULL;
1661 char *folder_name = NULL;
1662 int folder_order = -1;
1667 ret = media_folder_get_folder_id(folder, &folder_id);
1668 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1669 media_content_debug("folder_id = [%s]", folder_id);
1670 SAFE_FREE(folder_id);
1672 ret = media_folder_get_path(folder, &folder_path);
1673 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1674 media_content_debug("folder_path = [%s]", folder_path);
1675 SAFE_FREE(folder_path);
1677 ret = media_folder_get_name(folder, &folder_name);
1678 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1679 media_content_debug("folder_name = [%s]", folder_name);
1680 SAFE_FREE(folder_name);
1682 ret = media_folder_get_order(folder, &folder_order);
1683 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1684 media_content_debug("folder_order = [%d]", folder_order);
1686 ret = media_folder_clone(&g_folder, folder);
1687 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1700 int test_folder_update(void)
1702 int ret = MEDIA_CONTENT_ERROR_NONE;
1704 int folder_count = 0;
1706 media_content_debug("\n============Folder Update Test============\n\n");
1708 ret = media_filter_create(&filter);
1709 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1711 ret = media_filter_set_condition(filter, "MEDIA_TYPE=0 and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1712 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, FOLDER_ORDER, MEDIA_CONTENT_COLLATE_NOCASE);
1714 ret = media_folder_get_folder_count_from_db(filter, &folder_count);
1716 media_content_debug("Folder count : %d", folder_count);
1718 ret = media_folder_foreach_folder_from_db(filter, folder_update_cb, NULL);
1720 media_filter_destroy(filter);
1722 ret = media_folder_set_name(g_folder, "test_folder");
1724 ret = media_folder_set_order(g_folder, 200);
1726 ret = media_folder_update_to_db(g_folder);
1728 ret = media_folder_destroy(g_folder);
1733 int test_playlist_operation(void)
1735 int ret = MEDIA_CONTENT_ERROR_NONE;
1736 media_playlist_h playlist_1 = NULL;
1737 media_playlist_h playlist_2 = NULL;
1738 media_playlist_h playlist_3 = NULL;
1739 media_playlist_h playlist_4 = NULL;
1740 int playlist_id_1 = 0;
1741 int playlist_id_2 = 0;
1742 int playlist_id_3 = 0;
1743 const char *playlist_name_1 = "myPlaylist_1";
1744 const char *playlist_name_2 = "myPlaylist_2";
1745 const char *playlist_name_3 = "myPlaylist_3";
1746 int playlist_count = 0;
1747 int media_count = 0;
1753 filter_h filter = NULL;
1754 filter_h m_filter = NULL;
1756 media_content_debug("\n============Playlist Test============\n\n");
1758 /* Filter for playlist */
1760 const char *condition = "(MEDIA_TYPE=1 or MEDIA_TYPE=3)"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1762 ret = media_filter_create(&filter);
1763 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
1764 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
1766 /* Create Playlist */
1767 media_playlist_insert_to_db(playlist_name_1, &playlist_1);
1768 media_playlist_insert_to_db(playlist_name_2, &playlist_2);
1769 media_playlist_insert_to_db(playlist_name_3, &playlist_3);
1771 if(playlist_1 != NULL)
1773 /* Add media to Playlist */
1774 media_playlist_add_media(playlist_1, test_audio_id);
1775 media_playlist_add_media(playlist_1, test_audio_id);
1776 media_playlist_add_media(playlist_1, test_video_id);
1779 char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/Default.jpg"));
1780 media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
1783 media_playlist_update_to_db(playlist_1);
1786 if(playlist_2 != NULL)
1788 media_playlist_add_media(playlist_2, test_audio_id);
1789 media_playlist_add_media(playlist_2, test_audio_id);
1790 media_playlist_update_to_db(playlist_2);
1793 /* Get Playlist Count*/
1794 ret = media_playlist_get_playlist_count_from_db(filter, &playlist_count);
1796 media_content_debug("playlist_count [%d]", playlist_count);
1799 GList *playlist_id_list = NULL;
1800 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, &playlist_id_list);
1801 /* 64bit build issue */
1803 /* Get Playlist id*/
1804 playlist_id_1 = (int)g_list_nth_data(playlist_id_list, 0);
1805 playlist_id_2 = (int)g_list_nth_data(playlist_id_list, 1);
1806 playlist_id_3 = (int)g_list_nth_data(playlist_id_list, 2);
1808 media_content_debug("playlist_id_1 [%d]", playlist_id_1);
1809 media_content_debug("playlist_id_2 [%d]", playlist_id_2);
1810 media_content_debug("playlist_id_3 [%d]", playlist_id_3);
1812 /* Export and import playlist */
1813 media_playlist_export_to_file(playlist_3, "/opt/usr/media/Music/playlist.m3u");
1814 media_playlist_import_from_file( "/opt/usr/media/Music/playlist.m3u", "playlist_4", &playlist_4);
1816 /* Filter for media*/
1817 ret = media_filter_create(&m_filter);
1819 ret = media_filter_set_condition(m_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1821 ret = media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_DEFAULT);
1823 /* Get media count */
1824 media_playlist_get_media_count_from_db(playlist_id_1, m_filter, &media_count);
1825 media_content_debug("playlist_1_media_count [%d]", media_count);
1827 media_playlist_get_media_count_from_db(playlist_id_2, m_filter, &media_count);
1828 media_content_debug("playlist_2_media_count [%d]", media_count);
1830 media_playlist_get_media_count_from_db(playlist_id_3, m_filter, &media_count);
1831 media_content_debug("playlist_3_media_count [%d]", media_count);
1833 /* Get media of playlist */
1834 GList *playlist_member_id_list = NULL;
1835 GList *playlist_member_id_list_1 = NULL;
1837 media_playlist_foreach_media_from_db(playlist_id_1, m_filter, playlist_item_cb, &playlist_member_id_list);
1838 media_playlist_foreach_media_from_db(playlist_id_2, m_filter, playlist_item_cb, &playlist_member_id_list_1);
1840 int playlist_member_id_1_1 =0;
1841 int playlist_member_id_1_2 =0;
1842 int playlist_member_id_1_3 =0;
1843 int playlist_member_id_2_1 =0;
1844 int playlist_member_id_2_2 =0;
1845 /* 64bit build issue */
1847 playlist_member_id_1_1 = (int)g_list_nth_data(playlist_member_id_list, 0);
1848 playlist_member_id_1_2 = (int)g_list_nth_data(playlist_member_id_list, 1);
1849 playlist_member_id_1_3 = (int)g_list_nth_data(playlist_member_id_list, 2);
1850 playlist_member_id_2_1 = (int)g_list_nth_data(playlist_member_id_list_1, 0);
1851 playlist_member_id_2_2 = (int)g_list_nth_data(playlist_member_id_list_1, 1);
1853 media_content_debug("playlist_member_id_1_1 [%d]", playlist_member_id_1_1);
1854 media_content_debug("playlist_member_id_1_2 [%d]", playlist_member_id_1_2);
1855 media_content_debug("playlist_member_id_1_3 [%d]", playlist_member_id_1_3);
1856 media_content_debug("playlist_member_id_2_1 [%d]", playlist_member_id_2_1);
1857 media_content_debug("playlist_member_id_2_2 [%d]", playlist_member_id_2_2);
1859 media_playlist_get_play_order(playlist_1, playlist_member_id_1_1, &order_1);
1860 media_playlist_get_play_order(playlist_1, playlist_member_id_1_2, &order_2);
1861 media_playlist_get_play_order(playlist_1, playlist_member_id_1_3, &order_3);
1862 media_playlist_get_play_order(playlist_2, playlist_member_id_2_1, &order_4);
1863 media_playlist_get_play_order(playlist_2, playlist_member_id_2_2, &order_5);
1864 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);
1866 /* Update Playlist */
1867 media_playlist_remove_media(playlist_2, playlist_member_id_2_1);
1868 media_playlist_add_media(playlist_2, test_video_id);
1869 media_playlist_set_name(playlist_2, "test_playlist");
1870 media_playlist_set_play_order(playlist_2, playlist_member_id_2_2, order_5+100);
1871 media_playlist_update_to_db(playlist_2);
1873 /* Get Updated Playlist*/
1874 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, NULL);
1876 /* deletes the playlist */
1877 //media_playlist_delete_from_db(playlist_id_1);
1878 //media_playlist_delete_from_db(playlist_id_2);
1880 if(playlist_1 != NULL)
1881 media_playlist_destroy(playlist_1);
1882 if(playlist_2 != NULL)
1883 media_playlist_destroy(playlist_2);
1884 if(playlist_3 != NULL)
1885 media_playlist_destroy(playlist_3);
1886 if(playlist_4 != NULL)
1887 media_playlist_destroy(playlist_4);
1889 g_list_free(playlist_id_list);
1890 g_list_free(playlist_member_id_list);
1891 g_list_free(playlist_member_id_list_1);
1894 ret = media_filter_destroy(filter);
1895 if(m_filter != NULL)
1896 ret = media_filter_destroy(m_filter);
1901 int test_tag_operation(void)
1903 int ret = MEDIA_CONTENT_ERROR_NONE;
1910 const char *tag_name_1 = "myTag_1";
1911 const char *tag_name_2 = "myTag_2";
1912 const char *tag_name_3 = "myTag_3";
1914 int media_count = 0;
1917 media_content_debug("\n============Tag Test============\n\n");
1919 const char *g_condition = "TAG_NAME like \"%%my%%\"";
1921 ret = media_filter_create(&filter);
1923 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1925 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
1928 ret = media_tag_insert_to_db(tag_name_1, &tag_1);
1929 if(ret != MEDIA_CONTENT_ERROR_NONE)
1930 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1931 ret = media_tag_insert_to_db(tag_name_2, &tag_2);
1932 if(ret != MEDIA_CONTENT_ERROR_NONE)
1933 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1934 ret = media_tag_insert_to_db(tag_name_3, &tag_3);
1935 if(ret != MEDIA_CONTENT_ERROR_NONE)
1936 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1938 /* Add media to Tag */
1939 ret = media_tag_add_media(tag_1, test_audio_id);
1940 if(ret != MEDIA_CONTENT_ERROR_NONE)
1941 media_content_error("error media_tag_add_media : [%d]", ret);
1942 ret = media_tag_add_media(tag_1, test_video_id);
1943 if(ret != MEDIA_CONTENT_ERROR_NONE)
1944 media_content_error("error media_tag_add_media : [%d]", ret);
1945 ret = media_tag_update_to_db(tag_1);
1946 if(ret != MEDIA_CONTENT_ERROR_NONE)
1947 media_content_error("error media_tag_update_to_db : [%d]", ret);
1949 ret = media_tag_add_media(tag_2, test_audio_id);
1950 if(ret != MEDIA_CONTENT_ERROR_NONE)
1951 media_content_error("error media_tag_add_media : [%d]", ret);
1952 ret = media_tag_update_to_db(tag_2);
1953 if(ret != MEDIA_CONTENT_ERROR_NONE)
1954 media_content_error("error media_tag_update_to_db : [%d]", ret);
1957 ret = media_tag_get_tag_count_from_db(filter, &tag_count);
1958 if(ret != MEDIA_CONTENT_ERROR_NONE)
1959 media_content_error("error media_tag_get_tag_count_from_db : [%d]", ret);
1961 media_content_debug("tag_count [%d]", tag_count);
1964 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1965 if(ret != MEDIA_CONTENT_ERROR_NONE)
1966 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1969 ret = media_tag_get_tag_id(tag_1, &tag_id_1);
1970 if(ret != MEDIA_CONTENT_ERROR_NONE)
1971 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1973 media_content_debug("tag_id_1 [%d]", tag_id_1);
1975 ret = media_tag_get_tag_id(tag_2, &tag_id_2);
1976 if(ret != MEDIA_CONTENT_ERROR_NONE)
1977 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1979 media_content_debug("tag_id_2 [%d]", tag_id_2);
1981 ret = media_tag_get_tag_id(tag_3, &tag_id_3);
1982 if(ret != MEDIA_CONTENT_ERROR_NONE)
1983 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1985 media_content_debug("tag_id_3 [%d]", tag_id_3);
1987 /* Get media count */
1988 ret = media_tag_get_media_count_from_db(tag_id_1, NULL, &media_count);
1989 if(ret != MEDIA_CONTENT_ERROR_NONE)
1990 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1992 media_content_debug("tag_1_media_count [%d]", media_count);
1994 ret = media_tag_get_media_count_from_db(tag_id_2, NULL, &media_count);
1995 if(ret != MEDIA_CONTENT_ERROR_NONE)
1996 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1998 media_content_debug("tag_2_media_count [%d]", media_count);
2000 /* Get media of Tag */
2001 ret = media_tag_foreach_media_from_db(tag_id_1, NULL, media_item_cb, NULL);
2002 if(ret != MEDIA_CONTENT_ERROR_NONE)
2003 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
2005 ret = media_tag_foreach_media_from_db(tag_id_2, NULL, media_item_cb, NULL);
2006 if(ret != MEDIA_CONTENT_ERROR_NONE)
2007 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
2010 ret = media_tag_add_media(tag_2, test_video_id);
2011 if(ret != MEDIA_CONTENT_ERROR_NONE)
2012 media_content_error("error media_tag_add_media : [%d]", ret);
2013 ret = media_tag_set_name(tag_2, (char *)"test_tag");
2014 if(ret != MEDIA_CONTENT_ERROR_NONE)
2015 media_content_error("error media_tag_set_name : [%d]", ret);
2016 ret = media_tag_update_to_db(tag_2);
2017 if(ret != MEDIA_CONTENT_ERROR_NONE)
2018 media_content_error("error media_tag_update_to_db : [%d]", ret);
2020 /* Get Updated Tag*/
2021 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
2022 if(ret != MEDIA_CONTENT_ERROR_NONE)
2023 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
2025 /* deletes the tag */
2026 ret = media_tag_delete_from_db(tag_id_1);
2027 if(ret != MEDIA_CONTENT_ERROR_NONE)
2028 media_content_error("error media_tag_delete_from_db : [%d]", ret);
2029 ret = media_tag_delete_from_db(tag_id_2);
2030 if(ret != MEDIA_CONTENT_ERROR_NONE)
2031 media_content_error("error media_tag_delete_from_db : [%d]", ret);
2033 ret = media_tag_destroy(tag_1);
2034 if(ret != MEDIA_CONTENT_ERROR_NONE)
2035 media_content_error("error media_tag_destroy : [%d]", ret);
2036 ret = media_tag_destroy(tag_2);
2037 if(ret != MEDIA_CONTENT_ERROR_NONE)
2038 media_content_error("error media_tag_destroy : [%d]", ret);
2039 ret = media_filter_destroy(filter);
2040 if(ret != MEDIA_CONTENT_ERROR_NONE)
2041 media_content_error("error media_filter_destroy : [%d]", ret);
2047 int test_bookmark_operation(void)
2049 //bookmark is only supported for video information.
2050 int ret = MEDIA_CONTENT_ERROR_NONE;
2051 int bookmark_count = 0;
2054 media_content_debug("\n============Bookmark Test============\n\n");
2056 const char *g_condition = "BOOKMARK_MARKED_TIME > 300";
2058 ret = media_filter_create(&filter);
2059 if(ret != MEDIA_CONTENT_ERROR_NONE)
2060 media_content_error("error media_filter_create : [%d]", ret);
2062 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2063 if(ret != MEDIA_CONTENT_ERROR_NONE)
2064 media_content_error("error media_filter_set_condition : [%d]", ret);
2066 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, BOOKMARK_MARKED_TIME, MEDIA_CONTENT_COLLATE_DEFAULT);
2067 if(ret != MEDIA_CONTENT_ERROR_NONE)
2068 media_content_error("error media_filter_set_order : [%d]", ret);
2070 //insert bookmark to video
2071 const char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg");
2072 ret = media_bookmark_insert_to_db(test_video_id, 400, thumbnail_path1);
2073 if(ret != MEDIA_CONTENT_ERROR_NONE)
2074 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
2076 ret = media_bookmark_insert_to_db(test_video_id, 600, thumbnail_path1);
2077 if(ret != MEDIA_CONTENT_ERROR_NONE)
2078 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
2080 ret = media_bookmark_get_bookmark_count_from_db(filter, &bookmark_count);
2081 if(ret != MEDIA_CONTENT_ERROR_NONE)
2082 media_content_error("error media_bookmark_get_bookmark_count_from_db : [%d]", ret);
2084 media_content_debug("bookmark_count = [%d]", bookmark_count);
2086 ret = media_filter_destroy(filter);
2087 if(ret != MEDIA_CONTENT_ERROR_NONE)
2088 media_content_error("error media_filter_destroy : [%d]", ret);
2093 int test_album_list(void)
2095 media_content_debug("\n============Album Test============\n\n");
2097 int ret = MEDIA_CONTENT_ERROR_NONE;
2098 int album_count = 0;
2102 const char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
2104 ret = media_filter_create(&filter);
2105 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2106 media_content_error("Fail to create filter");
2109 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2110 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2111 media_filter_destroy(filter);
2112 media_content_error("Fail to set condition");
2115 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
2116 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2117 media_filter_destroy(filter);
2118 media_content_error("Fail to set order");
2122 ret = media_album_get_album_count_from_db(filter, &album_count);
2123 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2124 media_filter_destroy(filter);
2127 media_content_debug("album_count [%d]", album_count);
2130 ret = media_album_foreach_album_from_db(filter, album_list_cb, NULL);
2131 if(ret != MEDIA_CONTENT_ERROR_NONE)
2132 media_content_error("error media_album_foreach_album_from_db : [%d]", ret);
2134 ret = media_filter_destroy(filter);
2135 if(ret != MEDIA_CONTENT_ERROR_NONE)
2136 media_content_error("error media_filter_destroy : [%d]", ret);
2141 int test_group_operation(void)
2143 media_content_debug("\n============Group Test============\n\n");
2145 int ret = MEDIA_CONTENT_ERROR_NONE;
2146 int group_count = 0;
2149 ret = test_filter_create();
2150 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2151 media_content_error("[error(0x%08x)", ret);
2155 for(idx = 0; idx < MEDIA_CONTENT_GROUP_MAX; idx++)
2157 ret = media_group_get_group_count_from_db(g_filter, idx, &group_count);
2158 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2159 test_filter_destroy();
2160 media_content_error("media_group_get_group_count_from_db fail. idx=[%d]", ret, idx);
2163 media_content_debug("[%2d]group_count [%d]", idx, group_count);
2166 ret = media_group_foreach_group_from_db(g_filter, idx, group_list_cb, &idx);
2168 ret = test_filter_destroy();
2173 int test_update_operation()
2175 int ret = MEDIA_CONTENT_ERROR_NONE;
2177 media_info_h media_handle = NULL;
2178 GList *all_item_list = NULL;
2180 /* Get all item list */
2181 ret = media_info_foreach_media_from_db(NULL, gallery_media_item_cb, &all_item_list);
2182 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2183 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
2186 media_content_debug("media_info_foreach_media_from_db success");
2187 char *media_id = NULL;
2188 char *media_path = NULL;
2189 media_content_type_e media_type = 0;
2191 for(i = 0; i < g_list_length(all_item_list); i++) {
2192 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
2194 ret = media_info_get_media_id(media_handle, &media_id);
2195 if(ret != MEDIA_CONTENT_ERROR_NONE)
2196 media_content_error("media_info_get_media_id failed: %d", ret);
2197 ret = media_info_get_file_path(media_handle, &media_path);
2198 if(ret != MEDIA_CONTENT_ERROR_NONE)
2199 media_content_error("media_info_get_file_path failed: %d", ret);
2200 ret = media_info_get_media_type(media_handle, &media_type);
2201 if(ret != MEDIA_CONTENT_ERROR_NONE)
2202 media_content_error("media_info_get_media_type failed: %d", ret);
2204 media_content_debug("media_id [%d] : %s", i, media_id);
2205 media_content_debug("media_type [%d] : %d", i, media_type);
2206 media_content_debug("media_path [%d] : %s", i, media_path);
2208 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
2209 image_meta_h image_handle;
2210 media_content_orientation_e orientation;
2212 ret = media_info_get_image(media_handle, &image_handle);
2213 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2214 media_content_error("media_info_get_image failed: %d", ret);
2216 media_content_debug("media_info_get_image success");
2219 orientation = MEDIA_CONTENT_ORIENTATION_ROT_180;
2220 image_meta_set_orientation(image_handle, orientation);
2222 ret = image_meta_update_to_db(image_handle);
2223 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2224 media_content_error("image_meta_update_to_db failed: %d", ret);
2226 media_content_debug("image_meta_update_to_db success");
2230 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
2231 video_meta_h video_handle;
2233 ret = media_info_get_video(media_handle, &video_handle);
2234 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2235 media_content_error("media_info_get_video failed: %d", ret);
2237 media_content_debug("media_info_get_video success");
2240 video_meta_set_played_count(video_handle,5);
2241 video_meta_set_played_time(video_handle,5);
2242 video_meta_set_played_position(video_handle,5);
2243 video_meta_update_to_db(video_handle);
2245 ret = video_meta_update_to_db(video_handle);
2246 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2247 media_content_error("video_meta_update_to_db failed: %d", ret);
2249 media_content_debug("video_meta_update_to_db success");
2252 } else if(media_type == MEDIA_CONTENT_TYPE_MUSIC) {//update audio meta
2253 audio_meta_h audio_handle = NULL;
2254 ret = media_info_get_audio(media_handle, &audio_handle);
2255 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2256 media_content_error("media_info_get_audio failed: %d", ret);
2258 media_content_debug("media_info_get_audio success");
2260 audio_meta_set_played_count(audio_handle,5);
2261 audio_meta_set_played_time(audio_handle,1000);
2262 audio_meta_set_played_position(audio_handle,180);
2264 ret = audio_meta_update_to_db(audio_handle);
2265 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2266 media_content_error("audio_meta_update_to_db failed: %d", ret);
2268 media_content_debug("audio_meta_update_to_db success");
2276 /* fix prevent: Resource Leak */
2277 SAFE_FREE(media_id);
2278 SAFE_FREE(media_path);
2281 return MEDIA_CONTENT_ERROR_NONE;
2284 int test_insert(void)
2286 int ret = MEDIA_CONTENT_ERROR_NONE;
2287 const char *path = "/opt/usr/media/Images/Default.jpg";
2288 //const char *path = "/opt/usr/media/Others/other.txt";
2289 //char *path = NULL;
2290 media_info_h media_item = NULL;
2291 media_content_debug("\n============DB Insert Test============\n\n");
2293 ret = media_info_insert_to_db(path, &media_item);
2295 if((ret == MEDIA_CONTENT_ERROR_NONE) && (media_item != NULL))
2297 media_content_debug("Insertion is success");
2301 media_content_error("Insertion is failed");
2302 ret = media_info_destroy(media_item);
2306 char *media_id = NULL;
2308 ret = media_info_get_media_id(media_item, &media_id);
2309 if(ret != MEDIA_CONTENT_ERROR_NONE)
2310 media_content_error("media_info_get_media_id failed: %d", ret);
2312 media_content_debug("Media ID: %s", media_id);
2314 SAFE_FREE(media_id);
2316 ret = media_info_update_to_db(media_item);
2317 if(ret == MEDIA_CONTENT_ERROR_NONE)
2318 media_content_debug("media_info_update_to_db is success");
2320 media_content_error("media_info_update_to_db is failed");
2322 ret = media_info_destroy(media_item);
2323 if(ret != MEDIA_CONTENT_ERROR_NONE)
2324 media_content_error("media_info_destroy failed: %d", ret);
2331 int ret = MEDIA_CONTENT_ERROR_NONE;
2332 const char *move_media_id = "60aea677-4742-408e-b5f7-f2628062d06d";
2333 const char *dst_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/XX/Default1.jpg");
2334 media_info_h move_media = NULL;
2336 ret = media_info_get_media_from_db(move_media_id, &move_media);
2337 if(ret == MEDIA_CONTENT_ERROR_NONE)
2338 media_content_debug("media_info_get_media_from_db success");
2340 media_content_error("media_info_get_media_from_db failed: %d", ret);
2342 media_content_debug("\n============DB Move Test============\n\n");
2345 ret = media_info_move_to_db(move_media, dst_path);
2347 if(ret == MEDIA_CONTENT_ERROR_NONE)
2348 media_content_debug("Move is success");
2350 media_content_error("Move is failed");
2352 ret = media_info_destroy(move_media);
2354 media_content_debug("There is no item : %s", move_media_id);
2360 void thumbnail_completed_cb(media_content_error_e error, const char *path, void *user_data)
2362 char *thumbnail_path = NULL;
2363 int ret = MEDIA_CONTENT_ERROR_NONE;
2366 media_content_debug("=================[%d][%d]", g_media_cnt, g_cnt);
2367 media_content_debug("error_code [%d]", error);
2368 media_content_debug("thumbnail_path [%s]", path);
2369 if(user_data != NULL)
2371 media_info_h media = (media_info_h)user_data;
2372 ret = media_info_get_thumbnail_path(media, &thumbnail_path);
2373 if(ret != MEDIA_CONTENT_ERROR_NONE)
2374 media_content_error("media_info_get_thumbnail_path failed: %d", ret);
2376 media_content_debug("thumbnail_path get from media[%s]", thumbnail_path);
2377 SAFE_FREE(thumbnail_path);
2378 ret = media_info_destroy(media);
2379 if(ret != MEDIA_CONTENT_ERROR_NONE)
2380 media_content_error("media_info_destroy failed: %d", ret);
2383 if(g_cnt == g_media_cnt)
2384 g_main_loop_quit(g_loop);
2389 bool thumbnail_create_cb(media_info_h media, void *user_data)
2391 char *media_id = NULL;
2392 media_info_h dst = NULL;
2393 int ret = MEDIA_CONTENT_ERROR_NONE;
2397 media_content_debug("NO Item");
2401 ret = media_info_get_media_id(media, &media_id);
2402 if(ret != MEDIA_CONTENT_ERROR_NONE)
2403 media_content_error("media_info_get_media_id failed: %d", ret);
2405 media_content_debug("media_id : [%s]", media_id);
2407 ret = media_info_clone(&dst, media);
2408 if(ret != MEDIA_CONTENT_ERROR_NONE)
2409 media_content_error("media_info_clone failed: %d", ret);
2412 ret = media_info_create_thumbnail(dst, thumbnail_completed_cb, dst);
2413 if(ret != MEDIA_CONTENT_ERROR_NONE)
2414 media_content_error("media_info_create_thumbnail failed: %d", ret);
2417 /* fix prevent: Resource leak */
2418 SAFE_FREE(media_id);
2423 bool thumbnail_cancel_cb(media_info_h media, void *user_data)
2425 int ret = MEDIA_CONTENT_ERROR_NONE;
2427 char *media_id = NULL;
2428 media_info_h dst = NULL;
2434 media_content_debug("NO Item");
2438 ret = media_info_get_media_id(media, &media_id);
2439 if(ret != MEDIA_CONTENT_ERROR_NONE)
2440 media_content_error("media_info_get_media_id failed: %d", ret);
2442 media_content_debug("media_id : [%s]", media_id);
2444 ret = media_info_clone(&dst, media);
2445 if(ret != MEDIA_CONTENT_ERROR_NONE)
2446 media_content_error("media_info_clone failed: %d", ret);
2448 ret = media_info_cancel_thumbnail(dst);
2449 if(ret != MEDIA_CONTENT_ERROR_NONE)
2450 media_content_error("media_info_cancel_thumbnail failed: %d", ret);
2452 ret = media_info_destroy(dst);
2453 if(ret != MEDIA_CONTENT_ERROR_NONE)
2454 media_content_error("media_info_destroy failed: %d", ret);
2456 if(g_cnt == g_media_cnt)
2457 g_main_loop_quit(g_loop);
2459 /* fix prevent: Resource leak */
2460 SAFE_FREE(media_id);
2465 gboolean create_thumbnail_start(gpointer data)
2467 int ret = MEDIA_CONTENT_ERROR_NONE;
2469 ret = media_info_foreach_media_from_db(g_filter, thumbnail_create_cb, NULL);
2471 if(ret == MEDIA_CONTENT_ERROR_NONE)
2472 media_content_debug("media_info_foreach_media_from_db is success");
2474 media_content_error("media_info_foreach_media_from_db is failed");
2479 gboolean cancel_thumbnail_start(gpointer data)
2481 int ret = MEDIA_CONTENT_ERROR_NONE;
2483 ret = media_info_foreach_media_from_db(g_filter, thumbnail_cancel_cb, NULL);
2485 if(ret == MEDIA_CONTENT_ERROR_NONE)
2486 media_content_debug("media_info_foreach_media_from_db is success");
2488 media_content_error("media_info_foreach_media_from_db is failed");
2493 int test_create_thumbnail(int cancel)
2495 int ret = MEDIA_CONTENT_ERROR_NONE;
2496 GSource *source = NULL;
2497 GMainContext *context = NULL;
2499 test_filter_create();
2501 ret = media_info_get_media_count_from_db(g_filter, &g_media_cnt);
2502 if(ret != MEDIA_CONTENT_ERROR_NONE)
2503 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
2505 media_content_debug("media_count : [%d]", g_media_cnt);
2507 g_loop = g_main_loop_new(NULL, FALSE);
2508 context = g_main_loop_get_context(g_loop);
2509 source = g_idle_source_new();
2510 g_source_set_callback (source, create_thumbnail_start, NULL, NULL);
2511 g_source_attach (source, context);
2513 /* Logic to cancel */
2515 GSource *cancel_src = NULL;
2516 cancel_src = g_idle_source_new();
2517 g_source_set_callback (cancel_src, cancel_thumbnail_start, NULL, NULL);
2518 g_source_attach (cancel_src, context);
2521 g_main_loop_run(g_loop);
2522 g_main_loop_unref(g_loop);
2524 test_filter_destroy();
2529 int test_disconnect_database(void)
2531 int ret = MEDIA_CONTENT_ERROR_NONE;
2532 media_content_debug("\n============DB Disconnection Test============\n\n");
2534 ret = media_content_disconnect();
2536 if(ret == MEDIA_CONTENT_ERROR_NONE)
2537 media_content_debug("disconnection is success");
2539 media_content_error("disconnection is failed");
2544 int test_request_update_db(void)
2546 int ret = MEDIA_CONTENT_ERROR_NONE;
2547 media_info_h media = NULL;
2548 char *content_name = NULL;
2549 bool favorite = FALSE;
2551 //get the content of Over the horizon
2552 ret = media_info_get_media_from_db("71b19196-5b38-4ab1-ab34-bfe05c369614", &media);
2553 if(ret != MEDIA_CONTENT_ERROR_NONE)
2554 media_content_error("media_info_get_media_from_db failed: %d", ret);
2556 ret = media_info_set_content_name(media, "TEST_content_name");
2557 if(ret != MEDIA_CONTENT_ERROR_NONE)
2558 media_content_error("media_info_set_content_name failed: %d", ret);
2560 ret = media_info_set_favorite(media, TRUE);
2561 if(ret != MEDIA_CONTENT_ERROR_NONE)
2562 media_content_error("media_info_set_favorite failed: %d", ret);
2564 ret = media_info_update_to_db(media);
2565 if(ret == MEDIA_CONTENT_ERROR_NONE)
2566 media_content_debug("media_info_update_to_db is success");
2568 media_content_error("media_info_update_to_db is failed");
2571 media_info_destroy(media);
2573 /*get the updated value*/
2574 ret = media_info_get_media_from_db("71b19196-5b38-4ab1-ab34-bfe05c369614", &media);
2575 if(ret != MEDIA_CONTENT_ERROR_NONE)
2576 media_content_error("media_info_get_media_from_db failed: %d", ret);
2578 ret = media_info_get_content_name(media, &content_name);
2579 if(ret != MEDIA_CONTENT_ERROR_NONE)
2580 media_content_error("media_info_get_content_name failed: %d", ret);
2582 media_content_debug("content name [%s]", content_name);
2584 SAFE_FREE(content_name);
2586 ret = media_info_get_favorite(media, &favorite);
2587 if(ret != MEDIA_CONTENT_ERROR_NONE)
2588 media_content_error("media_info_get_favorite failed: %d", ret);
2590 media_content_debug("favorite [%d]", favorite);
2592 ret = media_info_destroy(media);
2597 int g_total_photo_size = 0;
2598 int g_total_video_size = 0;
2599 int g_total_mp3_size = 0;
2600 int g_total_voice_memo_size = 0;
2602 bool dft_cb(media_info_h media, void *user_data)
2604 unsigned long long file_size = 0;
2605 media_content_type_e media_type = -1;
2606 char *mime_type = NULL;
2607 int ret = MEDIA_CONTENT_ERROR_NONE;
2614 ret = media_info_get_media_type(media, &media_type);
2615 if(ret != MEDIA_CONTENT_ERROR_NONE)
2616 media_content_error("media_info_get_media_type failed: %d", ret);
2617 ret = media_info_get_size(media, &file_size);
2618 if(ret != MEDIA_CONTENT_ERROR_NONE)
2619 media_content_error("media_info_get_size failed: %d", ret);
2620 ret = media_info_get_mime_type(media, &mime_type);
2621 if(ret != MEDIA_CONTENT_ERROR_NONE)
2622 media_content_error("media_info_get_mime_type failed: %d", ret);
2624 if(media_type == MEDIA_CONTENT_TYPE_IMAGE)
2626 g_total_photo_size += file_size;
2628 else if(media_type == MEDIA_CONTENT_TYPE_VIDEO)
2630 g_total_video_size += file_size;
2632 else if(media_type == MEDIA_CONTENT_TYPE_SOUND)
2634 g_total_voice_memo_size += file_size;
2636 else if(media_type == MEDIA_CONTENT_TYPE_MUSIC)
2638 if((mime_type != NULL) && (!strcmp("audio/mpeg", mime_type)))
2640 g_total_mp3_size += file_size;
2644 g_total_voice_memo_size += file_size;
2649 media_content_debug("invalid media_type");
2652 if(mime_type != NULL)
2661 int ret = MEDIA_CONTENT_ERROR_NONE;
2662 media_content_debug("\n============DFT_test============\n\n");
2664 filter_h filter = NULL;
2667 /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
2669 ret = media_filter_create(&filter);
2672 media_content_debug("[Internal Memory]\n");
2673 /*1. Photo ============================================================*/
2674 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2677 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2678 media_content_debug("Photo count = [%d]\n", media_cnt);
2681 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2682 media_content_debug("Photo size = [%d]\n", g_total_photo_size);
2684 /*2. Video ============================================================*/
2685 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2688 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2689 media_content_debug("Video count = [%d]\n", media_cnt);
2692 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2693 media_content_debug("Video size = [%d]\n", g_total_video_size);
2695 /*3. MP3 ============================================================*/
2696 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2699 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2700 media_content_debug("MP3 count = [%d]\n", media_cnt);
2703 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2704 media_content_debug("MP3 size = [%d]\n", g_total_mp3_size);
2706 /*4. Voice Memo ============================================================*/
2707 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);
2709 /*Get Voice Memo Count*/
2710 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2711 media_content_debug("Voice Memo count = [%d]\n", media_cnt);
2713 /*Get Voice Memo Size*/
2714 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2715 media_content_debug("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2717 g_total_photo_size = 0;
2718 g_total_video_size = 0;
2719 g_total_mp3_size = 0;
2720 g_total_voice_memo_size = 0;
2723 media_content_debug("\n[External Memory]\n");
2724 /*1. Photo ============================================================*/
2725 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2728 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2729 media_content_debug("Photo count = [%d]\n", media_cnt);
2732 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2733 media_content_debug("Photo size = [%d]\n", g_total_photo_size);
2735 /*2. Video ============================================================*/
2736 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2739 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2740 media_content_debug("Video count = [%d]\n", media_cnt);
2743 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2744 media_content_debug("Video size = [%d]\n", g_total_video_size);
2746 /*3. MP3 ============================================================*/
2747 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2750 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2751 media_content_debug("MP3 count = [%d]\n", media_cnt);
2754 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2755 media_content_debug("MP3 size = [%d]\n", g_total_mp3_size);
2757 /*4. Voice Memo ============================================================*/
2758 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);
2760 /*Get Voice Memo Count*/
2761 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2762 media_content_debug("Voice Memo count = [%d]\n", media_cnt);
2764 /*Get Voice Memo Size*/
2765 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2766 media_content_debug("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2767 ret = media_filter_destroy(filter);
2772 void insert_batch_cb(media_content_error_e error, void * user_data)
2774 media_content_debug("media_info_insert_batch_to_db completed!\n");
2777 int test_batch_operations()
2781 char *file_list[10];
2783 for (i = 0; i < 10; i++) {
2784 char filepath[255] = {0,};
2785 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2786 media_content_debug("File : %s\n", filepath);
2787 file_list[i] = strdup(filepath);
2790 ret = media_info_insert_batch_to_db((const char **)file_list, 10, insert_batch_cb, NULL);
2791 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2792 media_content_error("media_info_insert_batch_to_db failed : %d\n", ret);
2796 char *condition = "MEDIA_PATH LIKE \'";
2797 strncat (condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
2798 ret = media_filter_create(&filter);
2799 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2800 media_content_error("Fail to create filter");
2804 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2805 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2806 media_filter_destroy(filter);
2807 media_content_error("Fail to set condition");
2811 ret = media_info_delete_batch_from_db(filter);
2812 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2813 media_filter_destroy(filter);
2814 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2818 ret = media_filter_destroy(filter);
2823 void insert_burst_shot_cb(media_content_error_e error, void * user_data)
2825 media_content_debug("media_info_insert_burst_shot_to_db completed![%d]\n", error);
2826 g_main_loop_quit(g_loop);
2829 gboolean test_insert_burst_shot_to_db_start(gpointer data)
2831 int ret = MEDIA_CONTENT_ERROR_NONE;
2833 char *file_list[10];
2835 for (i = 0; i < 10; i++) {
2836 char filepath[255] = {0,};
2837 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2838 media_content_debug("File : %s\n", filepath);
2839 file_list[i] = strdup(filepath);
2842 ret = media_info_insert_burst_shot_to_db((const char **)file_list, 10, insert_burst_shot_cb, NULL);
2843 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2844 media_content_error("media_info_insert_burst_shot_to_db failed : %d\n", ret);
2850 int test_insert_burst_shot_to_db(void)
2852 GSource *source = NULL;
2853 GMainContext *context = NULL;
2855 g_loop = g_main_loop_new(NULL, FALSE);
2856 context = g_main_loop_get_context(g_loop);
2857 source = g_idle_source_new();
2858 g_source_set_callback (source, test_insert_burst_shot_to_db_start, NULL, NULL);
2859 g_source_attach (source, context);
2861 g_main_loop_run(g_loop);
2862 g_main_loop_unref(g_loop);
2867 void _scan_cb(media_content_error_e err, void *user_data)
2869 media_content_debug("scan callback is called : %d\n", err);
2870 g_main_loop_quit(g_loop);
2875 int test_scan_file()
2879 const char *file_path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
2880 ret = media_content_scan_file(file_path);
2881 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2882 media_content_error("Fail to media_content_scan_file : %d", ret);
2889 gboolean test_scan_dir_start(gpointer data)
2893 const char *dir_path = tzplatform_getenv(TZ_USER_CONTENT);
2895 ret = media_content_scan_folder(dir_path, TRUE, _scan_cb, NULL);
2897 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2898 media_content_error("Fail to test_scan_dir_start : %d", ret);
2905 gboolean cancel_scan_dir_start(gpointer data)
2907 int ret = MEDIA_CONTENT_ERROR_NONE;
2909 const char *dir_path = "/opt/usr/media/Images";
2911 ret = media_content_cancel_scan_folder(dir_path);
2913 if(ret == MEDIA_CONTENT_ERROR_NONE)
2914 media_content_debug("media_content_cancel_scan_folder is success");
2916 media_content_error("media_content_cancel_scan_folder is failed");
2921 int test_scan_dir(int cancel)
2923 GSource *source = NULL;
2924 GMainContext *context = NULL;
2926 g_loop = g_main_loop_new(NULL, FALSE);
2927 context = g_main_loop_get_context(g_loop);
2928 source = g_idle_source_new();
2929 g_source_set_callback (source, test_scan_dir_start, NULL, NULL);
2930 g_source_attach (source, context);
2933 GSource *cancel_src = NULL;
2934 cancel_src = g_idle_source_new();
2935 g_source_set_callback (cancel_src, cancel_scan_dir_start, NULL, NULL);
2936 g_source_attach (cancel_src, context);
2939 g_main_loop_run(g_loop);
2940 g_main_loop_unref(g_loop);
2945 void _noti_cb(media_content_error_e error,
2947 media_content_db_update_item_type_e update_item,
2948 media_content_db_update_type_e update_type,
2949 media_content_type_e media_type,
2956 media_content_debug("noti success! : %d\n", error);
2958 media_content_debug("error occured! : %d\n", error);
2961 media_content_debug("Noti from PID(%d)\n", pid);
2963 if (update_item == MEDIA_ITEM_FILE) {
2964 media_content_debug("Noti item : MEDIA_ITEM_FILE\n");
2965 } else if (update_item == MEDIA_ITEM_DIRECTORY) {
2966 media_content_debug("Noti item : MEDIA_ITEM_DIRECTORY\n");
2969 if (update_type == MEDIA_CONTENT_INSERT) {
2970 media_content_debug("Noti type : MEDIA_CONTENT_INSERT\n");
2971 } else if (update_type == MEDIA_CONTENT_DELETE) {
2972 media_content_debug("Noti type : MEDIA_CONTENT_DELETE\n");
2973 } else if (update_type == MEDIA_CONTENT_UPDATE) {
2974 media_content_debug("Noti type : MEDIA_CONTENT_UPDATE\n");
2977 media_content_debug("content type : %d\n", media_type);
2980 media_content_debug("path : %s\n", path);
2982 media_content_debug("path not\n");
2985 media_content_debug("uuid : %s\n", uuid);
2987 media_content_debug("uuid not\n");
2990 media_content_debug("mime_type : %s\n", mime_type);
2992 media_content_debug("mime not\n");
2994 if (user_data) media_content_debug("String : %s\n", (char *)user_data);
2996 //g_main_loop_quit(g_loop);
3000 gboolean _send_noti_operations(gpointer data)
3002 int ret = MEDIA_CONTENT_ERROR_NONE;
3004 /* First of all, noti subscription */
3005 char *user_str = strdup("hi");
3006 media_content_set_db_updated_cb(_noti_cb, (void*)user_str);
3008 /* media_info_insert_to_db */
3009 media_info_h media_item = NULL;
3010 const char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
3012 ret = media_info_insert_to_db(path, &media_item);
3013 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3014 media_content_error("media_info_insert_to_db failed : %d", ret);
3015 media_info_destroy(media_item);
3019 media_content_debug("media_info_insert_to_db success");
3021 /* media_info_delete_batch_from_db */
3023 char *condition = "MEDIA_PATH LIKE \'";
3024 strncat (condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
3026 ret = media_filter_create(&filter);
3027 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3028 media_content_error("Fail to create filter");
3029 media_info_destroy(media_item);
3033 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
3034 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3035 media_filter_destroy(filter);
3036 media_info_destroy(media_item);
3037 media_content_error("Fail to set condition");
3040 ret = media_info_delete_batch_from_db(filter);
3041 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3042 media_filter_destroy(filter);
3043 media_info_destroy(media_item);
3044 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
3048 media_filter_destroy(filter);
3050 /* media_info_update_to_db */
3051 ret = media_info_update_to_db(media_item);
3052 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3053 media_content_error("media_info_update_to_db failed : %d\n", ret);
3054 media_info_destroy(media_item);
3058 media_info_destroy(media_item);
3065 int ret = MEDIA_CONTENT_ERROR_NONE;
3066 GSource *source = NULL;
3067 GMainContext *context = NULL;
3069 g_loop = g_main_loop_new(NULL, FALSE);
3070 context = g_main_loop_get_context(g_loop);
3071 source = g_idle_source_new();
3072 g_source_set_callback (source, _send_noti_operations, NULL, NULL);
3073 g_source_attach (source, context);
3075 g_main_loop_run(g_loop);
3076 g_main_loop_unref(g_loop);
3078 test_filter_destroy();
3079 media_content_unset_db_updated_cb();
3084 bool media_face_test_cb(media_face_h face, void *user_data)
3086 char *face_id = NULL;
3087 char *media_id = NULL;
3088 unsigned int rect_x = 0;
3089 unsigned int rect_y = 0;
3090 unsigned int rect_w = 0;
3091 unsigned int rect_h = 0;
3092 int orientation = 0;
3093 char *face_tag = NULL;
3095 media_face_get_face_id(face, &face_id);
3096 media_face_get_media_id(face, &media_id);
3097 media_face_get_face_rect(face, &rect_x, &rect_y, &rect_w, &rect_h);
3098 media_face_get_orientation(face, &orientation);
3099 media_face_get_tag(face, &face_tag);
3101 media_content_debug("face_id [%s] media_id [%s]", face_id, media_id);
3102 media_content_debug("rect_x [%d] rect_y [%d] rect_w [%d] rect_h [%d] orientation [%d]", rect_x, rect_y, rect_w, rect_h, orientation);
3103 media_content_debug("tag [%s]", face_tag);
3105 if (user_data != NULL) {
3106 media_face_h new_face = NULL;
3107 media_face_clone(&new_face, face);
3109 GList **list = (GList**)user_data;
3110 *list = g_list_append(*list, new_face);
3114 SAFE_FREE(media_id);
3115 SAFE_FREE(face_tag);
3122 int ret = MEDIA_CONTENT_ERROR_NONE;
3123 filter_h filter = NULL;
3124 GList *all_item_list = NULL;
3127 ret = media_filter_create(&filter);
3128 media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_filter_create");
3130 ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", MEDIA_CONTENT_COLLATE_DEFAULT);
3131 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3132 media_filter_destroy(filter);
3133 media_content_error("Fail to set condition");
3137 ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
3138 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3139 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
3140 media_filter_destroy(filter);
3144 for(i = 0; i < g_list_length(all_item_list); i++) {
3145 media_info_h media_handle = NULL;
3146 char *media_id = NULL;
3149 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
3151 ret = media_info_get_media_id(media_handle, &media_id);
3152 if(ret != MEDIA_CONTENT_ERROR_NONE)
3153 media_content_error("media_info_get_media_id failed: %d", ret);
3155 ret = media_info_get_face_count_from_db(media_id, filter, &face_count);
3156 if(ret != MEDIA_CONTENT_ERROR_NONE)
3157 media_content_error("media_info_get_face_count_from_db failed: %d", ret);
3159 media_content_error("media_id [%s] face_count [%d]", media_id, face_count);
3161 ret = media_info_foreach_face_from_db(media_id, filter, media_face_test_cb, NULL);
3162 if(ret != MEDIA_CONTENT_ERROR_NONE)
3163 media_content_error("media_info_foreach_face_from_db failed: %d", ret);
3165 media_info_destroy(media_handle);
3168 media_filter_destroy(filter);
3173 int test_face_add_del(void)
3175 int ret = MEDIA_CONTENT_ERROR_NONE;
3176 char *media_id = "ecca7366-e085-41d8-a12b-cbdfc2b9c5fc";
3179 media_face_h face = NULL;
3181 char *face_tag = "test_face_tag";
3183 ret = media_face_create_handle(&face);
3184 media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_face_create_handle");
3186 ret = media_face_set_media_id(face, media_id);
3187 ret = media_face_set_face_rect(face, 10, 12, 50, 100);
3188 ret = media_face_set_orientation(face, 5);
3189 ret = media_face_set_tag(face, face_tag);
3191 ret = media_face_insert_to_db(face);
3192 ret = media_face_destroy(face);
3195 GList *all_item_list = NULL;
3196 filter_h filter = NULL;
3197 ret = media_filter_create(&filter);
3198 media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_filter_create");
3200 ret = media_filter_set_condition(filter, "MEDIA_FACE_TAG IS NOT NULL", MEDIA_CONTENT_COLLATE_DEFAULT);
3201 if(ret != MEDIA_CONTENT_ERROR_NONE) {
3202 media_filter_destroy(filter);
3203 media_content_error("Fail to set condition");
3207 ret = media_info_foreach_face_from_db(media_id, filter, media_face_test_cb, &all_item_list);
3209 if (g_list_length(all_item_list) > 0 ) {
3210 media_face_h face_handle = NULL;
3211 face_handle = (media_face_h)g_list_nth_data(all_item_list, 0);
3213 ret = media_face_set_face_rect(face_handle, 20, 22, 70, 70);
3214 ret = media_face_set_orientation(face_handle, 3);
3215 ret = media_face_set_tag(face_handle, NULL);
3216 ret = media_face_update_to_db(face_handle);
3218 media_face_destroy(face_handle);
3221 media_filter_destroy(filter);
3224 char *face_id = "5e58a3a8-f0b2-4c29-b799-b49a70dc2313";
3227 ret = media_face_delete_from_db(face_id);
3232 int main(int argc, char *argv[])
3234 int ret = MEDIA_CONTENT_ERROR_NONE;
3236 media_content_debug("--- content manager test start ---\n\n");
3238 ret = test_connect_database();
3239 if(ret != MEDIA_CONTENT_ERROR_NONE)
3240 return MEDIA_CONTENT_ERROR_NONE;
3244 if(ret != MEDIA_CONTENT_ERROR_NONE)
3247 ret = test_gallery_scenario();
3248 if(ret != MEDIA_CONTENT_ERROR_NONE)
3251 ret = test_get_all_music_files();
3252 if(ret != MEDIA_CONTENT_ERROR_NONE)
3255 ret = test_media_info_operation();
3256 if(ret != MEDIA_CONTENT_ERROR_NONE)
3259 ret = test_folder_operation();
3260 if(ret != MEDIA_CONTENT_ERROR_NONE)
3263 ret = test_folder_update();
3264 if(ret != MEDIA_CONTENT_ERROR_NONE)
3267 ret = test_playlist_operation();
3268 if(ret != MEDIA_CONTENT_ERROR_NONE)
3271 ret = test_tag_operation();
3272 if(ret != MEDIA_CONTENT_ERROR_NONE)
3275 ret = test_bookmark_operation();
3276 if(ret != MEDIA_CONTENT_ERROR_NONE)
3279 ret = test_album_list();
3280 if(ret != MEDIA_CONTENT_ERROR_NONE)
3283 ret = test_group_operation();
3284 if(ret != MEDIA_CONTENT_ERROR_NONE)
3287 ret = test_update_operation();
3288 if(ret != MEDIA_CONTENT_ERROR_NONE)
3291 ret = test_insert();
3292 if(ret != MEDIA_CONTENT_ERROR_NONE)
3296 if(ret != MEDIA_CONTENT_ERROR_NONE)
3299 ret = test_create_thumbnail(TRUE);
3300 if(ret != MEDIA_CONTENT_ERROR_NONE)
3303 ret = test_request_update_db();
3304 if(ret != MEDIA_CONTENT_ERROR_NONE)
3308 if(ret != MEDIA_CONTENT_ERROR_NONE)
3311 ret = test_batch_operations();
3312 if(ret != MEDIA_CONTENT_ERROR_NONE)
3313 return MEDIA_CONTENT_ERROR_NONE;
3315 ret = test_insert_burst_shot_to_db();
3316 if(ret != MEDIA_CONTENT_ERROR_NONE)
3317 return MEDIA_CONTENT_ERROR_NONE;
3319 ret = test_scan_file();
3320 if(ret != MEDIA_CONTENT_ERROR_NONE)
3321 return MEDIA_CONTENT_ERROR_NONE;
3323 ret = test_scan_dir(true);
3324 if(ret != MEDIA_CONTENT_ERROR_NONE)
3325 return MEDIA_CONTENT_ERROR_NONE;
3328 if(ret != MEDIA_CONTENT_ERROR_NONE)
3329 return MEDIA_CONTENT_ERROR_NONE;
3332 ret = test_disconnect_database();
3333 if(ret != MEDIA_CONTENT_ERROR_NONE)
3336 media_content_debug("--- content manager test end ---\n");