2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
21 #include <media_content.h>
22 #include <media_info_private.h>
26 #include <tzplatform_config.h>
28 filter_h g_filter = NULL;
29 filter_h g_filter_g = NULL; //filter for group like folder, tag, playlist, album, year ...
31 GMainLoop *g_loop = NULL;
33 static int g_media_cnt = 0;
35 #define test_audio_id "0f999626-6218-450c-a4ad-181a3bab6ebf"
36 #define test_video_id "c1a92494-cc5b-4d74-aa7d-253199234548"
37 #define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
39 bool get_audio_meta(audio_meta_h audio)
44 int ret = MEDIA_CONTENT_ERROR_NONE;
46 media_content_debug("=== audio meta ===");
48 ret = audio_meta_get_media_id(audio, &c_value);
49 if(ret != MEDIA_CONTENT_ERROR_NONE)
50 media_content_error("error when get meta : [%d]", ret);
51 media_content_debug("audio_id : [%s]", c_value);
54 ret = audio_meta_get_title(audio, &c_value);
55 if(ret != MEDIA_CONTENT_ERROR_NONE)
56 media_content_error("error when get meta : [%d]", ret);
57 media_content_debug("title : [%s]", c_value);
60 ret = audio_meta_get_album(audio, &c_value);
61 if(ret != MEDIA_CONTENT_ERROR_NONE)
62 media_content_error("error when get meta : [%d]", ret);
63 media_content_debug("album : [%s]", c_value);
66 ret = audio_meta_get_artist(audio, &c_value);
67 if(ret != MEDIA_CONTENT_ERROR_NONE)
68 media_content_error("error when get meta : [%d]", ret);
69 media_content_debug("artist : [%s]", c_value);
72 ret = audio_meta_get_genre(audio, &c_value);
73 if(ret != MEDIA_CONTENT_ERROR_NONE)
74 media_content_error("error when get meta : [%d]", ret);
75 media_content_debug("genre : [%s]", c_value);
78 ret = audio_meta_get_composer(audio, &c_value);
79 if(ret != MEDIA_CONTENT_ERROR_NONE)
80 media_content_error("error when get meta : [%d]", ret);
81 media_content_debug("composer : [%s]", c_value);
84 ret = audio_meta_get_year(audio, &c_value);
85 if(ret != MEDIA_CONTENT_ERROR_NONE)
86 media_content_error("error when get meta : [%d]", ret);
87 media_content_debug("year : [%s]", c_value);
90 ret = audio_meta_get_recorded_date(audio, &c_value);
91 if(ret != MEDIA_CONTENT_ERROR_NONE)
92 media_content_error("error when get meta : [%d]", ret);
93 media_content_debug("recorded_date : [%s]", c_value);
96 ret = audio_meta_get_copyright(audio, &c_value);
97 if(ret != MEDIA_CONTENT_ERROR_NONE)
98 media_content_error("error when get meta : [%d]", ret);
99 media_content_debug("copyright : [%s]", c_value);
102 ret = audio_meta_get_track_num(audio, &c_value);
103 if(ret != MEDIA_CONTENT_ERROR_NONE)
104 media_content_error("error when get meta : [%d]", ret);
105 media_content_debug("track_num : [%s]", c_value);
108 ret = audio_meta_get_bit_rate(audio, &i_value);
109 if(ret != MEDIA_CONTENT_ERROR_NONE)
110 media_content_error("error when get meta : [%d]", ret);
111 media_content_debug("bitrate : [%d]", i_value);
113 ret = audio_meta_get_sample_rate(audio, &i_value);
114 if(ret != MEDIA_CONTENT_ERROR_NONE)
115 media_content_error("error when get meta : [%d]", ret);
116 media_content_debug("samplerate : [%d]", i_value);
118 ret = audio_meta_get_channel(audio, &i_value);
119 if(ret != MEDIA_CONTENT_ERROR_NONE)
120 media_content_error("error when get meta : [%d]", ret);
121 media_content_debug("channel : [%d]", i_value);
123 ret = audio_meta_get_duration(audio, &i_value);
124 if(ret != MEDIA_CONTENT_ERROR_NONE)
125 media_content_error("error when get meta : [%d]", ret);
126 media_content_debug("duration : [%d]", i_value);
128 ret = audio_meta_get_played_count(audio, &i_value);
129 if(ret != MEDIA_CONTENT_ERROR_NONE)
130 media_content_error("error when get meta : [%d]", ret);
131 media_content_debug("played_count : [%d]", i_value);
133 ret = audio_meta_get_played_time(audio, &t_value);
134 if(ret != MEDIA_CONTENT_ERROR_NONE)
135 media_content_error("error when get meta : [%d]", ret);
136 media_content_debug("played_time : [%d]", t_value);
138 ret = audio_meta_get_played_position(audio, &i_value);
139 if(ret != MEDIA_CONTENT_ERROR_NONE)
140 media_content_error("error when get meta : [%d]", ret);
141 media_content_debug("played_position : [%d]", i_value);
146 bool get_video_meta(video_meta_h video)
148 char *c_value = NULL;
151 int ret = MEDIA_CONTENT_ERROR_NONE;
153 media_content_debug("=== video meta ===");
155 ret = video_meta_get_media_id(video, &c_value);
156 if(ret != MEDIA_CONTENT_ERROR_NONE)
157 media_content_error("error when get meta : [%d]", ret);
158 media_content_debug("video_id : [%s]", c_value);
161 ret = video_meta_get_title(video, &c_value);
162 if(ret != MEDIA_CONTENT_ERROR_NONE)
163 media_content_error("error when get meta : [%d]", ret);
164 media_content_debug("title : [%s]", c_value);
167 ret = video_meta_get_album(video, &c_value);
168 if(ret != MEDIA_CONTENT_ERROR_NONE)
169 media_content_error("error when get meta : [%d]", ret);
170 media_content_debug("album : [%s]", c_value);
173 ret = video_meta_get_artist(video, &c_value);
174 if(ret != MEDIA_CONTENT_ERROR_NONE)
175 media_content_error("error when get meta : [%d]", ret);
176 media_content_debug("artist : [%s]", c_value);
179 ret = video_meta_get_genre(video, &c_value);
180 if(ret != MEDIA_CONTENT_ERROR_NONE)
181 media_content_error("error when get meta : [%d]", ret);
182 media_content_debug("genre : [%s]", c_value);
185 ret = video_meta_get_composer(video, &c_value);
186 if(ret != MEDIA_CONTENT_ERROR_NONE)
187 media_content_error("error when get meta : [%d]", ret);
188 media_content_debug("omposer : [%s]", c_value);
191 ret = video_meta_get_year(video, &c_value);
192 if(ret != MEDIA_CONTENT_ERROR_NONE)
193 media_content_error("error when get meta : [%d]", ret);
194 media_content_debug("year : [%s]", c_value);
197 ret = video_meta_get_recorded_date(video, &c_value);
198 if(ret != MEDIA_CONTENT_ERROR_NONE)
199 media_content_error("error when get meta : [%d]", ret);
200 media_content_debug("recorded_date : [%s]", c_value);
203 ret = video_meta_get_copyright(video, &c_value);
204 if(ret != MEDIA_CONTENT_ERROR_NONE)
205 media_content_error("error when get meta : [%d]", ret);
206 media_content_debug("copyright : [%s]", c_value);
209 ret = video_meta_get_track_num(video, &c_value);
210 if(ret != MEDIA_CONTENT_ERROR_NONE)
211 media_content_error("error when get meta : [%d]", ret);
212 media_content_debug("track_num : [%s]", c_value);
215 ret = video_meta_get_bit_rate(video, &i_value);
216 if(ret != MEDIA_CONTENT_ERROR_NONE)
217 media_content_error("error when get meta : [%d]", ret);
218 media_content_debug("bitrate : [%d]", i_value);
220 ret = video_meta_get_duration(video, &i_value);
221 if(ret != MEDIA_CONTENT_ERROR_NONE)
222 media_content_error("error when get meta : [%d]", ret);
223 media_content_debug("duration : [%d]", i_value);
225 ret = video_meta_get_width(video, &i_value);
226 if(ret != MEDIA_CONTENT_ERROR_NONE)
227 media_content_error("error when get meta : [%d]", ret);
228 media_content_debug("width : [%d]", i_value);
230 ret = video_meta_get_height(video, &i_value);
231 if(ret != MEDIA_CONTENT_ERROR_NONE)
232 media_content_error("error when get meta : [%d]", ret);
233 media_content_debug("height : [%d]", i_value);
235 ret = video_meta_get_played_count(video, &i_value);
236 if(ret != MEDIA_CONTENT_ERROR_NONE)
237 media_content_error("error when get meta : [%d]", ret);
238 media_content_debug("played_count : [%d]", i_value);
240 ret = video_meta_get_played_time(video, &t_value);
241 if(ret != MEDIA_CONTENT_ERROR_NONE)
242 media_content_error("error when get meta : [%d]", ret);
243 media_content_debug("played_time : [%d]", t_value);
245 ret = video_meta_get_played_position(video, &i_value);
246 if(ret != MEDIA_CONTENT_ERROR_NONE)
247 media_content_error("error when get meta : [%d]", ret);
248 media_content_debug("played_position : [%d]", i_value);
253 bool gallery_folder_list_cb(media_folder_h folder, void *user_data)
255 media_folder_h new_folder = NULL;
256 media_folder_clone(&new_folder, folder);
258 GList **list = (GList**)user_data;
259 *list = g_list_append(*list, new_folder);
264 bool gallery_media_item_cb(media_info_h media, void *user_data)
266 media_info_h new_media = NULL;
267 media_info_clone(&new_media, media);
269 GList **list = (GList**)user_data;
270 *list = g_list_append(*list, new_media);
275 bool gallery_tag_item_cb(media_tag_h tag, void *user_data)
277 media_tag_h new_tag = NULL;
278 media_tag_clone(&new_tag, tag);
280 GList **list = (GList**)user_data;
281 *list = g_list_append(*list, new_tag);
286 bool gallery_bookmarks_cb(media_bookmark_h bookmark, void *user_data)
288 media_bookmark_h new_bm = NULL;
289 int ret = MEDIA_CONTENT_ERROR_NONE;
291 ret = media_bookmark_clone(&new_bm, bookmark);
292 if(ret != MEDIA_CONTENT_ERROR_NONE)
293 media_content_error("error media_bookmark_clone : [%d]", ret);
295 GList **list = (GList**)user_data;
296 *list = g_list_append(*list, new_bm);
301 bool media_item_cb(media_info_h media, void *user_data)
303 char *c_value = NULL;
304 char *media_id = NULL;
307 bool b_value = false;
308 media_content_type_e media_type = 0;
309 unsigned long long size = 0;
310 int ret = MEDIA_CONTENT_ERROR_NONE;
314 media_content_debug("NO Item");
318 ret = media_info_get_media_type(media, &media_type);
319 if(ret != MEDIA_CONTENT_ERROR_NONE)
320 media_content_error("error when get info : [%d]", ret);
321 media_content_debug("media_type : [%d]", media_type);
323 ret = media_info_get_media_id(media, &media_id);
324 if(ret != MEDIA_CONTENT_ERROR_NONE)
325 media_content_error("error when get info : [%d]", ret);
326 media_content_debug("media_id : [%s]", media_id);
329 if(media_type == MEDIA_CONTENT_TYPE_MUSIC)
333 if(media_info_get_audio(media, &audio) == MEDIA_CONTENT_ERROR_NONE)
335 get_audio_meta(audio);
336 ret = audio_meta_destroy(audio);
337 if(ret != MEDIA_CONTENT_ERROR_NONE)
338 media_content_error("error audio_meta_destroy : [%d]", ret);
341 media_content_error("[audio_error]");
344 else if(media_type == MEDIA_CONTENT_TYPE_IMAGE)
347 media_content_orientation_e orientation = 0;
348 bool is_burst_shot = false;
349 char *burst_id = NULL;
351 if(media_info_get_image(media, &image) == MEDIA_CONTENT_ERROR_NONE)
353 ret = image_meta_get_orientation(image, &orientation);
354 if(ret != MEDIA_CONTENT_ERROR_NONE)
355 media_content_error("error image_meta_get_orientation : [%d]", ret);
357 media_content_debug("[image] orientation : %d", orientation);
359 ret = image_meta_is_burst_shot(image, &is_burst_shot);
360 if(ret != MEDIA_CONTENT_ERROR_NONE)
361 media_content_error("error image_meta_is_burst_shot : [%d]", ret);
364 ret = image_meta_get_burst_id(image, &burst_id);
365 if(ret != MEDIA_CONTENT_ERROR_NONE)
366 media_content_error("error image_meta_get_burst_id : [%d]", ret);
368 media_content_debug("[image] burst_id : [%s]", burst_id);
373 ret = image_meta_destroy(image);
374 if(ret != MEDIA_CONTENT_ERROR_NONE)
375 media_content_error("error image_meta_destroy : [%d]", ret);
378 media_content_error("[image_error]");
381 else if(media_type == MEDIA_CONTENT_TYPE_VIDEO)
385 if(media_info_get_video(media, &video) == MEDIA_CONTENT_ERROR_NONE)
387 get_video_meta(video);
388 ret = video_meta_destroy(video);
389 if(ret != MEDIA_CONTENT_ERROR_NONE)
390 media_content_error("error video_meta_destroy : [%d]", ret);
393 media_content_error("[video_error]");
398 media_content_debug("Other Content");
401 media_content_debug("=== media_info ===");
402 ret = media_info_get_file_path(media, &c_value);
403 if(ret != MEDIA_CONTENT_ERROR_NONE)
404 media_content_error("error when get info : [%d]", ret);
405 media_content_debug("file_path : [%s]", c_value);
408 ret = media_info_get_display_name(media, &c_value);
409 if(ret != MEDIA_CONTENT_ERROR_NONE)
410 media_content_error("error when get info : [%d]", ret);
411 media_content_debug("display_name : [%s]", c_value);
414 ret = media_info_get_mime_type(media, &c_value);
415 if(ret != MEDIA_CONTENT_ERROR_NONE)
416 media_content_error("error when get info : [%d]", ret);
417 media_content_debug("mime_type : [%s]", c_value);
420 ret = media_info_get_thumbnail_path(media, &c_value);
421 if(ret != MEDIA_CONTENT_ERROR_NONE)
422 media_content_error("error when get info : [%d]", ret);
423 media_content_debug("thumbnail_path : [%s]", c_value);
426 ret = media_info_get_description(media, &c_value);
427 if(ret != MEDIA_CONTENT_ERROR_NONE)
428 media_content_error("error when get info : [%d]", ret);
429 media_content_debug("description : [%s]", c_value);
432 ret = media_info_get_author(media, &c_value);
433 if(ret != MEDIA_CONTENT_ERROR_NONE)
434 media_content_error("error when get info : [%d]", ret);
435 media_content_debug("author : [%s]", c_value);
438 ret = media_info_get_provider(media, &c_value);
439 if(ret != MEDIA_CONTENT_ERROR_NONE)
440 media_content_error("error when get info : [%d]", ret);
441 media_content_debug("provider : [%s]", c_value);
444 ret = media_info_get_content_name(media, &c_value);
445 if(ret != MEDIA_CONTENT_ERROR_NONE)
446 media_content_error("error when get info : [%d]", ret);
447 media_content_debug("content_name : [%s]", c_value);
450 ret = media_info_get_category(media, &c_value);
451 if(ret != MEDIA_CONTENT_ERROR_NONE)
452 media_content_error("error when get info : [%d]", ret);
453 media_content_debug("category : [%s]", c_value);
456 ret = media_info_get_location_tag(media, &c_value);
457 if(ret != MEDIA_CONTENT_ERROR_NONE)
458 media_content_error("error when get info : [%d]", ret);
459 media_content_debug("location_tag : [%s]", c_value);
462 ret = media_info_get_age_rating(media, &c_value);
463 if(ret != MEDIA_CONTENT_ERROR_NONE)
464 media_content_error("error when get info : [%d]", ret);
465 media_content_debug("age_rating : [%s]", c_value);
468 ret = media_info_get_keyword(media, &c_value);
469 if(ret != MEDIA_CONTENT_ERROR_NONE)
470 media_content_error("error when get info : [%d]", ret);
471 media_content_debug("keyword : [%s]", c_value);
474 ret = media_info_get_size(media, &size);
475 if(ret != MEDIA_CONTENT_ERROR_NONE)
476 media_content_error("error when get info : [%d]", ret);
477 media_content_debug("size : [%lld]", size);
479 ret = media_info_get_added_time(media, &t_value);
480 if(ret != MEDIA_CONTENT_ERROR_NONE)
481 media_content_error("error when get info : [%d]", ret);
482 media_content_debug("added_time : [%d]", t_value);
484 ret = media_info_get_modified_time(media, &t_value);
485 if(ret != MEDIA_CONTENT_ERROR_NONE)
486 media_content_error("error when get info : [%d]", ret);
487 media_content_debug("modified_time : [%d]", t_value);
489 ret = media_info_get_rating(media, &i_value);
490 if(ret != MEDIA_CONTENT_ERROR_NONE)
491 media_content_error("error when get info : [%d]", ret);
492 media_content_debug("rating : [%d]", i_value);
494 ret = media_info_get_favorite(media, &b_value);
495 if(ret != MEDIA_CONTENT_ERROR_NONE)
496 media_content_error("error when get info : [%d]", ret);
497 media_content_debug("favorite : [%d]", b_value);
499 ret = media_info_is_drm(media, &b_value);
500 if(ret != MEDIA_CONTENT_ERROR_NONE)
501 media_content_error("error when get info : [%d]", ret);
502 media_content_debug("is_drm : [%d]", b_value);
504 /* Media server can't update when another db handle holds DB connection by sqlite3_prepare */
505 //ret = media_info_set_location_tag(media, "Test location tag");
506 //media_info_update_to_db(media);
512 bool folder_list_cb(media_folder_h folder, void *user_data)
515 char *folder_id = NULL;
516 char *folder_path = NULL;
517 char *folder_name = NULL;
518 media_content_storage_e storage_type;
520 media_folder_h *_folder = (media_folder_h*)user_data;
524 media_folder_clone(_folder, folder);
526 if(media_folder_get_folder_id(folder, &folder_id) != MEDIA_CONTENT_ERROR_NONE)
528 media_content_error("[ERROR] media_folder_get_folder_id is failed");
531 media_content_debug("folder_id = [%s]", folder_id);
533 if(media_folder_get_path(folder, &folder_path) != MEDIA_CONTENT_ERROR_NONE)
535 SAFE_FREE(folder_id);
536 media_content_error("[ERROR] media_folder_get_path is failed");
539 media_content_debug("folder_path = [%s]", folder_path);
540 SAFE_FREE(folder_path);
542 if(media_folder_get_name(folder, &folder_name) != MEDIA_CONTENT_ERROR_NONE)
544 SAFE_FREE(folder_id);
545 SAFE_FREE(folder_path);
546 media_content_error("[ERROR] media_folder_get_name is failed");
549 media_content_debug("folder_name = [%s]", folder_name);
550 SAFE_FREE(folder_name);
552 if(media_folder_get_storage_type(folder, &storage_type) != MEDIA_CONTENT_ERROR_NONE)
554 SAFE_FREE(folder_id);
555 SAFE_FREE(folder_path);
556 SAFE_FREE(folder_name);
557 media_content_error("[ERROR] media_folder_get_storage_type is failed");
560 media_content_debug("storage_type = [%d]", storage_type);
562 if(media_folder_get_media_count_from_db(folder_id, g_filter, &item_count) != MEDIA_CONTENT_ERROR_NONE)
564 SAFE_FREE(folder_id);
565 SAFE_FREE(folder_path);
566 SAFE_FREE(folder_name);
567 media_content_error("[ERROR] media_folder_get_media_count_from_db is failed");
571 if(media_folder_foreach_media_from_db(folder_id, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
573 SAFE_FREE(folder_id);
574 SAFE_FREE(folder_path);
575 SAFE_FREE(folder_name);
576 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed");
580 SAFE_FREE(folder_id);
581 SAFE_FREE(folder_path);
582 SAFE_FREE(folder_name);
594 bool test_album_from_db(int album_id)
596 int ret = MEDIA_CONTENT_ERROR_NONE;
597 media_album_h album_h;
598 int test_album_id = 0;
599 char *album_name = NULL;
602 ret = media_album_get_album_from_db(album_id, &album_h);
603 if(ret != MEDIA_CONTENT_ERROR_NONE)
605 media_content_error("error when get album");
609 if(media_album_get_album_id(album_h, &test_album_id) != MEDIA_CONTENT_ERROR_NONE)
611 media_album_destroy(album_h);
615 media_content_debug("test_album_id : [%d]", test_album_id);
617 if(media_album_get_name(album_h, &album_name) != MEDIA_CONTENT_ERROR_NONE)
619 media_album_destroy(album_h);
623 media_content_debug("album_name : [%s]", album_name);
625 if(media_album_get_artist(album_h, &artist) != MEDIA_CONTENT_ERROR_NONE)
627 media_album_destroy(album_h);
631 media_content_debug("artist : [%s]", artist);
633 SAFE_FREE(album_name);
636 media_album_destroy(album_h);
641 bool playlist_list_cb(media_playlist_h playlist, void *user_data)
644 char *playlist_name = NULL;
645 media_playlist_h playlist_h;
646 char *playlist_thumbnail_path = NULL;
648 media_content_debug("playlist_list_cb ======");
650 GList **list = (GList**)user_data;
654 media_content_debug(" playlist handle is NULL");
658 media_playlist_get_playlist_id(playlist, &playlist_id);
659 media_content_debug("playlist_id : %d", playlist_id);
661 if(user_data != NULL)
662 *list = g_list_append(*list, (gpointer)playlist_id);
664 media_playlist_get_name(playlist, &playlist_name);
665 media_content_debug("playlist_name : %s", playlist_name);
666 SAFE_FREE(playlist_name);
668 media_playlist_get_thumbnail_path(playlist, &playlist_thumbnail_path);
669 media_content_debug("playlist_thumbnail_path : %s", playlist_thumbnail_path);
670 SAFE_FREE(playlist_thumbnail_path);
672 media_playlist_get_playlist_from_db(playlist_id, &playlist_h);
674 media_playlist_destroy(playlist_h);
679 bool tag_list_cb(media_tag_h tag, void *user_data)
682 char *tag_name = NULL;
683 int ret = MEDIA_CONTENT_ERROR_NONE;
687 media_content_debug(" tag handle is NULL");
691 ret = media_tag_get_tag_id(tag, &tag_id);
692 if(ret != MEDIA_CONTENT_ERROR_NONE)
693 media_content_error("error media_tag_get_tag_id : [%d]", ret);
695 media_content_debug("tag_id : %d", tag_id);
697 ret = media_tag_get_name(tag, &tag_name);
698 if(ret != MEDIA_CONTENT_ERROR_NONE)
699 media_content_error("error media_tag_get_name : [%d]", ret);
701 media_content_debug("tag_name : %s", tag_name);
707 bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
709 media_bookmark_h *_bookmark = (media_bookmark_h*)bookmark;
710 int ret = MEDIA_CONTENT_ERROR_NONE;
712 if(_bookmark != NULL)
718 ret = media_bookmark_get_bookmark_id(bookmark, &bookmark_id);
719 if(ret != MEDIA_CONTENT_ERROR_NONE)
720 media_content_error("error media_bookmark_get_bookmark_id : [%d]", ret);
722 media_content_debug("bookmark_id : %d", bookmark_id);
724 ret = media_bookmark_get_thumbnail_path(bookmark, &name);
725 if(ret != MEDIA_CONTENT_ERROR_NONE)
726 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
728 media_content_debug("bookmark thumbnail_path : %s", name);
731 ret = media_bookmark_get_marked_time(bookmark, &time);
732 if(ret != MEDIA_CONTENT_ERROR_NONE)
733 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
735 media_content_debug("bookmark marked_time : %d", time);
741 bool album_list_cb(media_album_h album, void *user_data)
744 char *album_name = NULL;
746 char *album_art = NULL;
748 int ret = MEDIA_CONTENT_ERROR_NONE;
749 filter_h filter = NULL;
752 char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
754 ret = media_filter_create(&filter);
755 if(ret != MEDIA_CONTENT_ERROR_NONE) {
756 media_content_error("Fail to create filter");
759 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
760 if(ret != MEDIA_CONTENT_ERROR_NONE) {
761 media_filter_destroy(filter);
762 media_content_error("Fail to set condition");
765 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
766 if(ret != MEDIA_CONTENT_ERROR_NONE) {
767 media_filter_destroy(filter);
768 media_content_error("Fail to set order");
774 if(media_album_get_album_id(album, &album_id) != MEDIA_CONTENT_ERROR_NONE)
776 media_filter_destroy(filter);
780 media_content_debug("album_id : [%d]", album_id);
782 if(media_album_get_name(album, &album_name) != MEDIA_CONTENT_ERROR_NONE)
784 media_filter_destroy(filter);
788 media_content_debug("album_name : [%s]", album_name);
790 if(media_album_get_artist(album, &artist) != MEDIA_CONTENT_ERROR_NONE)
792 media_filter_destroy(filter);
796 media_content_debug("artist : [%s]", artist);
798 if(media_album_get_album_art(album, &album_art) != MEDIA_CONTENT_ERROR_NONE)
800 media_filter_destroy(filter);
804 media_content_debug("album_art : [%s]", album_art);
806 SAFE_FREE(album_name);
808 SAFE_FREE(album_art);
810 if(media_album_get_media_count_from_db(album_id, filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
812 media_filter_destroy(filter);
816 media_content_debug("media_count : [%d]", media_count);
818 if(media_album_foreach_media_from_db(album_id, filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
820 media_filter_destroy(filter);
824 test_album_from_db(album_id);
828 media_content_error("album item not Found!!");
831 media_filter_destroy(filter);
836 bool group_list_cb(const char *group_name, void *user_data)
839 int *idx = user_data;
841 media_content_debug("group item : [%s] [%d]", group_name, *idx);
843 if(media_group_get_media_count_from_db(group_name, *idx, g_filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
846 media_content_debug("media_count : [%d]", media_count);
848 if(media_group_foreach_media_from_db(group_name, *idx, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
854 bool playlist_item_cb(int playlist_member_id, media_info_h media, void *user_data)
856 media_content_debug("playlist_member_id : [%d]", playlist_member_id);
858 GList **list = (GList**)user_data;
859 *list = g_list_append(*list, (gpointer)playlist_member_id);
861 //media_item_cb(media, user_data);
866 int test_filter_create(void)
868 media_content_debug("\n============Filter Create============\n\n");
870 int ret = MEDIA_CONTENT_ERROR_NONE;
872 /* Filter for media */
873 char *condition = "MEDIA_TYPE=0"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
874 //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*/
876 ret = media_filter_create(&g_filter);
878 /* Set condition and collate
879 * Condition string : You can make where statement of sql.
880 * Colation : You can use collation when comparing.
881 * Ex) In case of FILE_NAME='Samsung' as condition string,
882 * if you want to compare with NOCASE collation,
883 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
884 * if you want to compare in case-sensitive,
885 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
887 ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
889 /* Collation of ordering
890 * If you want to get list, which is sorted by NOCASE,
891 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_NOCASE);
893 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
895 ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
897 /* Filter for group */
898 char *g_condition = "TAG_NAME like \"\%my\%\"";
899 //char *g_condition = "BOOKMARK_MARKED_TIME > 300";
901 ret = media_filter_create(&g_filter_g);
903 ret = media_filter_set_condition(g_filter_g, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
904 ret = media_filter_set_order(g_filter_g, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
909 int test_filter_destroy(void)
911 media_content_debug("\n============Filter Create============\n\n");
913 int ret = MEDIA_CONTENT_ERROR_NONE;
915 ret = media_filter_destroy(g_filter);
920 int test_connect_database(void)
922 int ret = MEDIA_CONTENT_ERROR_NONE;
924 media_content_debug("\n============DB Connection Test============\n\n");
926 ret = media_content_connect();
928 if(ret == MEDIA_CONTENT_ERROR_NONE)
930 media_content_debug("connection is success\n\n");
933 media_content_error("connection is failed\n\n");
938 int test_gallery_scenario(void)
940 int ret = MEDIA_CONTENT_ERROR_NONE;
942 filter_h filter = NULL;
945 GList *folder_list = NULL;
946 media_folder_h folder_handle = NULL;
948 /* First, Get folder list */
949 ret = media_folder_foreach_folder_from_db(filter, gallery_folder_list_cb, &folder_list);
950 if(ret != MEDIA_CONTENT_ERROR_NONE) {
951 media_content_error("media_folder_foreach_folder_from_db failed: %d", ret);
954 media_content_debug("media_folder_foreach_folder_from_db success!!");
955 char *folder_id = NULL;
956 char *folder_name = NULL;
957 char *folder_path = NULL;
959 for(i = 0; i < g_list_length(folder_list); i++) {
960 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
962 ret = media_folder_get_folder_id(folder_handle, &folder_id);
963 if(ret != MEDIA_CONTENT_ERROR_NONE)
964 media_content_error("media_folder_get_folder_id failed: %d", ret);
965 ret = media_folder_get_name(folder_handle, &folder_name);
966 if(ret != MEDIA_CONTENT_ERROR_NONE)
967 media_content_error("media_folder_get_name failed: %d", ret);
968 ret = media_folder_get_path(folder_handle, &folder_path);
969 if(ret != MEDIA_CONTENT_ERROR_NONE)
970 media_content_error("media_folder_get_path failed: %d", ret);
972 media_content_debug("folder_id [%d] : %s", i, folder_id);
973 media_content_debug("folder_name [%d] : %s", i, folder_name);
974 media_content_debug("folder_path [%d] : %s", i, folder_path);
977 ret = media_folder_get_media_count_from_db(folder_id, filter, &count);
978 /* User should free these string */
979 SAFE_FREE(folder_id);
980 SAFE_FREE(folder_name);
981 SAFE_FREE(folder_path);
982 if(ret != MEDIA_CONTENT_ERROR_NONE) {
983 media_content_error("media_folder_get_media_count_from_db failed: %d", ret);
986 media_content_debug("media count [%d] : %d", i, count);
991 /* To check performance */
992 struct timeval start, end;
993 gettimeofday(&start, NULL);
995 /* Second, Get all item list */
996 media_info_h media_handle = NULL;
997 GList *all_item_list = NULL;
999 media_content_collation_e collate_type = MEDIA_CONTENT_COLLATE_NOCASE;
1000 media_content_order_e order_type = MEDIA_CONTENT_ORDER_DESC;
1001 ret = media_filter_create(&filter);
1002 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1003 media_content_error("Fail to create filter");
1006 ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", collate_type);
1007 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1008 media_filter_destroy(filter);
1009 media_content_error("Fail to set condition");
1012 ret = media_filter_set_order(filter, order_type, MEDIA_DISPLAY_NAME, collate_type);
1013 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1014 media_filter_destroy(filter);
1015 media_content_error("Fail to set order");
1019 ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
1020 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1021 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
1022 media_filter_destroy(filter);
1025 media_content_debug("media_info_foreach_media_from_db success");
1026 media_content_type_e media_type;
1027 char *media_id = NULL;
1028 char *media_name = NULL;
1029 char *media_path = NULL;
1031 for(i = 0; i < g_list_length(all_item_list); i++) {
1032 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1034 ret = media_info_get_media_id(media_handle, &media_id);
1035 if(ret != MEDIA_CONTENT_ERROR_NONE)
1036 media_content_error("media_info_get_media_id failed: %d", ret);
1037 ret = media_info_get_media_type(media_handle, &media_type);
1038 if(ret != MEDIA_CONTENT_ERROR_NONE)
1039 media_content_error("media_info_get_media_type failed: %d", ret);
1040 ret = media_info_get_display_name(media_handle, &media_name);
1041 if(ret != MEDIA_CONTENT_ERROR_NONE)
1042 media_content_error("media_info_get_display_name failed: %d", ret);
1043 ret = media_info_get_file_path(media_handle, &media_path);
1044 if(ret != MEDIA_CONTENT_ERROR_NONE)
1045 media_content_error("media_info_get_file_path failed: %d", ret);
1047 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1048 image_meta_h image_handle;
1049 int width = 0, height = 0;
1050 media_content_orientation_e orientation = 0;
1051 char *datetaken = NULL;
1052 char *burst_id = NULL;
1054 ret = media_info_get_image(media_handle, &image_handle);
1055 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1056 media_content_error("media_info_get_image failed: %d", ret);
1058 ret = image_meta_get_width(image_handle, &width);
1059 if(ret != MEDIA_CONTENT_ERROR_NONE)
1060 media_content_error("error image_meta_get_width : [%d]", ret);
1061 ret = image_meta_get_height(image_handle, &height);
1062 if(ret != MEDIA_CONTENT_ERROR_NONE)
1063 media_content_error("error image_meta_get_height : [%d]", ret);
1064 ret = image_meta_get_orientation(image_handle, &orientation);
1065 if(ret != MEDIA_CONTENT_ERROR_NONE)
1066 media_content_error("error image_meta_get_orientation : [%d]", ret);
1067 ret = image_meta_get_date_taken(image_handle, &datetaken);
1068 if(ret != MEDIA_CONTENT_ERROR_NONE)
1069 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1070 ret = image_meta_get_burst_id(image_handle, &burst_id);
1071 if(ret != MEDIA_CONTENT_ERROR_NONE)
1072 media_content_error("error image_meta_get_burst_id : [%d]", ret);
1074 media_content_debug("This is Image");
1075 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1078 SAFE_FREE(datetaken);
1079 SAFE_FREE(burst_id);
1080 ret = image_meta_destroy(image_handle);
1081 if(ret != MEDIA_CONTENT_ERROR_NONE)
1082 media_content_error("error image_meta_destroy : [%d]", ret);
1084 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1085 video_meta_h video_handle;
1086 char *title = NULL, *artist = NULL, *album = NULL;
1088 time_t time_played = 0;
1090 ret = media_info_get_video(media_handle, &video_handle);
1091 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1092 media_content_error("media_info_get_video failed: %d", ret);
1094 ret = video_meta_get_title(video_handle, &title);
1095 if(ret != MEDIA_CONTENT_ERROR_NONE)
1096 media_content_error("error video_meta_get_title : [%d]", ret);
1097 ret = video_meta_get_artist(video_handle, &artist);
1098 if(ret != MEDIA_CONTENT_ERROR_NONE)
1099 media_content_error("error video_meta_get_artist : [%d]", ret);
1100 ret = video_meta_get_album(video_handle, &album);
1101 if(ret != MEDIA_CONTENT_ERROR_NONE)
1102 media_content_error("error video_meta_get_album : [%d]", ret);
1103 ret = video_meta_get_duration(video_handle, &duration);
1104 if(ret != MEDIA_CONTENT_ERROR_NONE)
1105 media_content_error("error video_meta_get_duration : [%d]", ret);
1106 ret = video_meta_get_played_time(video_handle, &time_played);
1107 if(ret != MEDIA_CONTENT_ERROR_NONE)
1108 media_content_error("error video_meta_get_played_time : [%d]", ret);
1110 media_content_debug("This is Video");
1111 media_content_debug("Title: %s, Album: %s, Artist: %s\nDuration: %d, Played time: %d", title, artist, album, duration, time_played);
1118 ret = video_meta_destroy(video_handle);
1119 if(ret != MEDIA_CONTENT_ERROR_NONE)
1120 media_content_error("error video_meta_destroy : [%d]", ret);
1122 //media_content_debug("media_id [%d] : %s", i, media_id);
1123 //media_content_debug("media_name [%d] : %s", i, media_name);
1124 //media_content_debug("media_path [%d] : %s", i, media_path);
1126 SAFE_FREE(media_id);
1127 SAFE_FREE(media_name);
1128 SAFE_FREE(media_path);
1132 media_filter_destroy(filter);
1135 /* To check performance */
1136 gettimeofday(&end, NULL);
1137 long time = (end.tv_sec * 1000000 + end.tv_usec) - (start.tv_sec * 1000000 + start.tv_usec);
1138 printf("Time : %ld\n", time);
1140 /* Third, Get item list of a folder */
1141 GList *item_list = NULL;
1143 for(i = 0; i < g_list_length(folder_list); i++) {
1145 char *folder_id = NULL;
1146 char *folder_name = NULL;
1147 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1149 media_folder_get_folder_id(folder_handle, &folder_id);
1150 media_folder_get_name(folder_handle, &folder_name);
1152 ret = media_folder_foreach_media_from_db(folder_id, filter, gallery_media_item_cb, &item_list);
1153 SAFE_FREE(folder_id);
1154 SAFE_FREE(folder_name);
1156 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1157 media_content_error("media_folder_foreach_media_from_db failed: %d", ret);
1160 media_content_error("media_folder_foreach_media_from_db success!", ret);
1161 char *media_id = NULL;
1162 char *media_name = NULL;
1163 char *media_path = NULL;
1164 media_content_type_e media_type = 0;
1166 for(j = 0; j < g_list_length(item_list); j++) {
1167 media_handle = (media_info_h)g_list_nth_data(item_list, j);
1169 ret = media_info_get_media_id(media_handle, &media_id);
1170 if(ret != MEDIA_CONTENT_ERROR_NONE)
1171 media_content_error("media_info_get_media_id failed: %d", ret);
1172 ret = media_info_get_display_name(media_handle, &media_name);
1173 if(ret != MEDIA_CONTENT_ERROR_NONE)
1174 media_content_error("media_info_get_display_name failed: %d", ret);
1175 ret = media_info_get_file_path(media_handle, &media_path);
1176 if(ret != MEDIA_CONTENT_ERROR_NONE)
1177 media_content_error("media_info_get_file_path failed: %d", ret);
1178 ret = media_info_get_media_type(media_handle, &media_type);
1179 if(ret != MEDIA_CONTENT_ERROR_NONE)
1180 media_content_error("media_info_get_media_type failed: %d", ret);
1182 media_content_debug("[%s] media_id [%d] : %s", folder_name, j, media_id);
1183 media_content_debug("[%s] media_type [%d] : %d", folder_name, j, media_type);
1184 media_content_debug("[%s] media_name [%d] : %s", folder_name, j, media_name);
1185 media_content_debug("[%s] media_path [%d] : %s", folder_name, j, media_path);
1187 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1188 image_meta_h image_handle;
1189 int width = 0, height = 0;
1190 media_content_orientation_e orientation = 0;
1191 char *datetaken = NULL;
1193 ret = media_info_get_image(media_handle, &image_handle);
1194 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1195 media_content_error("media_info_get_image failed: %d", ret);
1197 ret = image_meta_get_width(image_handle, &width);
1198 if(ret != MEDIA_CONTENT_ERROR_NONE)
1199 media_content_error("error image_meta_get_width : [%d]", ret);
1200 ret = image_meta_get_height(image_handle, &height);
1201 if(ret != MEDIA_CONTENT_ERROR_NONE)
1202 media_content_error("error image_meta_get_height : [%d]", ret);
1203 ret = image_meta_get_orientation(image_handle, &orientation);
1204 if(ret != MEDIA_CONTENT_ERROR_NONE)
1205 media_content_error("error image_meta_get_orientation : [%d]", ret);
1206 ret = image_meta_get_date_taken(image_handle, &datetaken);
1207 if(ret != MEDIA_CONTENT_ERROR_NONE)
1208 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1210 media_content_debug("This is Image");
1211 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1214 SAFE_FREE(datetaken);
1215 ret = image_meta_destroy(image_handle);
1216 if(ret != MEDIA_CONTENT_ERROR_NONE)
1217 media_content_error("error image_meta_destroy : [%d]", ret);
1219 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1220 video_meta_h video_handle;
1221 char *title = NULL, *artist = NULL, *album = NULL;
1225 ret = media_info_get_video(media_handle, &video_handle);
1226 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1227 media_content_error("media_info_get_video failed: %d", ret);
1229 ret = video_meta_get_title(video_handle, &title);
1230 if(ret != MEDIA_CONTENT_ERROR_NONE)
1231 media_content_error("error video_meta_get_title : [%d]", ret);
1232 ret = video_meta_get_artist(video_handle, &artist);
1233 if(ret != MEDIA_CONTENT_ERROR_NONE)
1234 media_content_error("error video_meta_get_artist : [%d]", ret);
1235 ret = video_meta_get_album(video_handle, &album);
1236 if(ret != MEDIA_CONTENT_ERROR_NONE)
1237 media_content_error("error video_meta_get_album : [%d]", ret);
1238 ret = video_meta_get_duration(video_handle, &duration);
1239 if(ret != MEDIA_CONTENT_ERROR_NONE)
1240 media_content_error("error video_meta_get_duration : [%d]", ret);
1241 ret = video_meta_get_played_time(video_handle, &time_played);
1242 if(ret != MEDIA_CONTENT_ERROR_NONE)
1243 media_content_error("error video_meta_get_played_time : [%d]", ret);
1245 media_content_debug("This is Video");
1246 media_content_debug("Title: %s, Album: %s, Artist: %s\nDuration: %d, Played time: %d\n", title, artist, album, duration, time_played);
1253 ret = video_meta_destroy(video_handle);
1254 if(ret != MEDIA_CONTENT_ERROR_NONE)
1255 media_content_error("error video_meta_destroy : [%d]", ret);
1257 /* Get bookmar list in case of video */
1258 media_bookmark_h bm_handle;
1259 GList *bm_list = NULL;
1261 ret = media_info_foreach_bookmark_from_db(media_id, filter, gallery_bookmarks_cb, &bm_list);
1262 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1263 media_content_error("media_info_foreach_bookmark_from_db failed: %d", ret);
1265 media_content_debug("media_info_foreach_bookmark_from_db success");
1269 for(k = 0; k < g_list_length(bm_list); k++) {
1270 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, k);
1272 char *thumb_path = NULL;
1274 ret = media_bookmark_get_marked_time(bm_handle, &marked_time);
1275 if(ret != MEDIA_CONTENT_ERROR_NONE)
1276 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
1277 ret = media_bookmark_get_thumbnail_path(bm_handle, &thumb_path);
1278 if(ret != MEDIA_CONTENT_ERROR_NONE)
1279 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
1281 media_content_debug("Bookmark time : %d\nBookmar thumb: %s", marked_time, thumb_path);
1282 SAFE_FREE(thumb_path);
1285 /* Remove bookmark list */
1288 for(l = 0; l < g_list_length(bm_list); l++) {
1289 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, l);
1290 ret = media_bookmark_destroy(bm_handle);
1291 if(ret != MEDIA_CONTENT_ERROR_NONE)
1292 media_content_error("error media_bookmark_destroy : [%d]", ret);
1295 g_list_free(bm_list);
1301 SAFE_FREE(media_id);
1302 SAFE_FREE(media_name);
1303 SAFE_FREE(media_path);
1309 media_tag_h tag_handle = NULL;
1310 GList *tag_list = NULL;
1311 GList *media_list_in_tag = NULL;
1313 ret = media_tag_foreach_tag_from_db (filter, gallery_tag_item_cb, &tag_list);
1315 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1316 media_content_error("media_tag_foreach_tag_from_db failed: %d", ret);
1319 media_content_error("media_tag_foreach_tag_from_db success");
1320 char *tag_name = NULL;
1323 for(i = 0; i < g_list_length(tag_list); i++) {
1324 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1325 media_tag_get_tag_id(tag_handle, &tag_id);
1326 media_tag_get_name(tag_handle, &tag_name);
1328 printf("[%d] %s", tag_id, tag_name);
1330 ret = media_tag_foreach_media_from_db(tag_id, filter, gallery_media_item_cb, &media_list_in_tag);
1331 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1332 media_content_error("media_tag_foreach_media_from_db failed: %d", ret);
1335 media_content_error("media_tag_foreach_media_from_db success");
1337 media_info_h tag_media_handle;
1338 char *media_id = NULL;
1339 char *media_name = NULL;
1340 char *media_path = NULL;
1341 media_content_type_e media_type = 0;
1343 for(j = 0; j < g_list_length(media_list_in_tag); j++) {
1344 tag_media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, j);
1345 ret = media_info_get_media_id(tag_media_handle, &media_id);
1346 if(ret != MEDIA_CONTENT_ERROR_NONE)
1347 media_content_error("media_info_get_media_id failed: %d", ret);
1348 ret = media_info_get_display_name(tag_media_handle, &media_name);
1349 if(ret != MEDIA_CONTENT_ERROR_NONE)
1350 media_content_error("media_info_get_display_name failed: %d", ret);
1351 ret = media_info_get_file_path(tag_media_handle, &media_path);
1352 if(ret != MEDIA_CONTENT_ERROR_NONE)
1353 media_content_error("media_info_get_file_path failed: %d", ret);
1354 ret = media_info_get_media_type(tag_media_handle, &media_type);
1355 if(ret != MEDIA_CONTENT_ERROR_NONE)
1356 media_content_error("media_info_get_media_type failed: %d", ret);
1358 media_content_debug("[%s] media_id [%d] : %s", tag_name, j, media_id);
1359 media_content_debug("[%s] media_type [%d] : %d", tag_name, j, media_type);
1360 media_content_debug("[%s] media_name [%d] : %s", tag_name, j, media_name);
1361 media_content_debug("[%s] media_path [%d] : %s", tag_name, j, media_path);
1363 SAFE_FREE(media_id);
1364 SAFE_FREE(media_name);
1365 SAFE_FREE(media_path);
1367 SAFE_FREE(tag_name);
1371 /* Remove folder list */
1373 for(i = 0; i < g_list_length(folder_list); i++) {
1374 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1375 media_folder_destroy(folder_handle);
1378 g_list_free(folder_list);
1381 /* Remove all items list */
1383 for(i = 0; i < g_list_length(all_item_list); i++) {
1384 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1385 ret = media_info_destroy(media_handle);
1386 if(ret != MEDIA_CONTENT_ERROR_NONE)
1387 media_content_error("media_info_destroy failed: %d", ret);
1390 g_list_free(all_item_list);
1393 /* Remove items list */
1395 for(i = 0; i < g_list_length(item_list); i++) {
1396 media_handle = (media_info_h)g_list_nth_data(item_list, i);
1397 ret = media_info_destroy(media_handle);
1398 if(ret != MEDIA_CONTENT_ERROR_NONE)
1399 media_content_error("media_info_destroy failed: %d", ret);
1402 g_list_free(item_list);
1405 /* Remove tag list */
1407 for(i = 0; i < g_list_length(tag_list); i++) {
1408 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1409 ret = media_tag_destroy(tag_handle);
1410 if(ret != MEDIA_CONTENT_ERROR_NONE)
1411 media_content_error("error media_tag_destroy : [%d]", ret);
1414 g_list_free(tag_list);
1417 /* Remove media list in a tag */
1418 if(media_list_in_tag) {
1419 for(i = 0; i < g_list_length(media_list_in_tag); i++) {
1420 media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, i);
1421 ret = media_info_destroy(media_handle);
1422 if(ret != MEDIA_CONTENT_ERROR_NONE)
1423 media_content_error("media_info_destroy failed: %d", ret);
1426 g_list_free(media_list_in_tag);
1429 return MEDIA_CONTENT_ERROR_NONE;
1432 /*Get All Music file. sort by Title and not case sensitive*/
1433 int test_get_all_music_files(void)
1435 int ret = MEDIA_CONTENT_ERROR_NONE;
1436 int media_count = 0;
1440 char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1442 ret = media_filter_create(&filter);
1443 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1444 media_content_error("Fail to create filter");
1447 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1448 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1449 media_filter_destroy(filter);
1450 media_content_error("Fail to set condition");
1453 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
1454 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1455 media_filter_destroy(filter);
1456 media_content_error("Fail to set order");
1461 ret = media_info_get_media_count_from_db(filter, &media_count);
1462 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1463 media_filter_destroy(filter);
1464 media_content_error("Fail to get media count");
1468 media_content_debug("media_count : [%d]", media_count);
1470 ret = media_info_foreach_media_from_db(filter, media_item_cb, NULL);
1471 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1472 media_filter_destroy(filter);
1473 media_content_error("Fail to get media");
1477 ret = media_filter_destroy(filter);
1482 int test_media_info_operation(void)
1484 int ret = MEDIA_CONTENT_ERROR_NONE;
1485 int media_count = 0;
1487 media_content_debug("\n============Media info Test============\n\n");
1489 test_filter_create();
1491 ret = media_info_get_media_count_from_db(g_filter, &media_count);
1492 if(ret != MEDIA_CONTENT_ERROR_NONE)
1493 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
1495 media_content_debug("media_count : [%d]", media_count);
1497 ret = media_info_foreach_media_from_db(g_filter, media_item_cb, NULL);
1498 if(ret == MEDIA_CONTENT_ERROR_NONE)
1499 media_content_debug("media_info_foreach_media_from_db is success");
1501 media_content_error("media_info_foreach_media_from_db is failed");
1503 test_filter_destroy();
1508 int test_media_info_operation_2(void)
1510 int ret = MEDIA_CONTENT_ERROR_NONE;
1511 int bookmark_count = 0;
1513 media_content_debug("\n============Media info Test 2============\n\n");
1515 test_filter_create();
1519 char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg"));
1520 media_bookmark_insert_to_db(test_video_id, 100, thumbnail_path1);
1521 media_bookmark_insert_to_db(test_video_id, 200, thumbnail_path1);
1523 media_info_get_bookmark_count_from_db(test_video_id, g_filter_g, &bookmark_count);
1525 media_content_debug("bookmark_count : [%d]", bookmark_count);
1527 ret = media_info_foreach_bookmark_from_db(test_video_id, g_filter_g, bookmarks_cb, NULL);
1531 ret = media_info_get_tag_count_from_db(test_audio_id, g_filter_g, &bookmark_count);
1532 if(ret != MEDIA_CONTENT_ERROR_NONE)
1533 media_content_error("media_info_get_tag_count_from_db failed: %d", ret);
1535 media_content_debug("tag_count : [%d]", bookmark_count);
1537 ret = media_info_foreach_tag_from_db(test_audio_id, g_filter_g, tag_list_cb, NULL);
1538 if(ret != MEDIA_CONTENT_ERROR_NONE)
1539 media_content_error("media_info_foreach_tag_from_db failed: %d", ret);
1541 test_filter_destroy();
1546 int test_folder_operation(void)
1548 int ret = MEDIA_CONTENT_ERROR_NONE;
1550 media_folder_h folder = NULL;
1551 char *folder_id = NULL;
1552 int folder_count = 0;
1554 media_content_debug("\n============Folder Test============\n\n");
1556 test_filter_create();
1558 ret = media_filter_create(&filter);
1559 if(ret != MEDIA_CONTENT_ERROR_NONE)
1561 media_content_error("[ERROR] media_folder_filter_create is failed");
1565 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*/
1566 media_filter_set_offset(filter, 0,5);
1567 media_filter_set_order(filter,MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1569 ret = media_folder_get_folder_count_from_db(filter, &folder_count);
1570 media_content_debug("Folder count : %d", folder_count);
1572 ret = media_folder_foreach_folder_from_db(filter, folder_list_cb, &folder);
1574 //test.3 get the media list in first folder
1575 filter_h m_filter = NULL;
1576 ret = media_filter_create(&m_filter);
1577 if(ret != MEDIA_CONTENT_ERROR_NONE)
1579 test_filter_destroy();
1580 media_filter_destroy(filter);
1581 media_content_error("[ERROR] media_info_filter_create is failed");
1585 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*/
1586 media_filter_set_offset(m_filter, 0,5);
1587 media_filter_set_order(m_filter,MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1589 media_folder_get_folder_id(folder, &folder_id);
1590 media_content_debug("folder_id : %s", folder_id);
1592 ret = media_folder_foreach_media_from_db(folder_id, m_filter, media_item_cb, NULL);
1594 if(ret != MEDIA_CONTENT_ERROR_NONE)
1596 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed, error code : %d", ret);
1599 media_filter_destroy(filter);
1600 media_filter_destroy(m_filter);
1602 test_filter_destroy();
1607 int test_playlist_operation(void)
1609 int ret = MEDIA_CONTENT_ERROR_NONE;
1610 media_playlist_h playlist_1 = NULL;
1611 media_playlist_h playlist_2 = NULL;
1612 media_playlist_h playlist_3 = NULL;
1613 int playlist_id_1 = 0;
1614 int playlist_id_2 = 0;
1615 int playlist_id_3 = 0;
1616 char *playlist_name_1 = "myPlaylist_1";
1617 char *playlist_name_2 = "myPlaylist_2";
1618 char *playlist_name_3 = "myPlaylist_3";
1619 int playlist_count = 0;
1620 int media_count = 0;
1626 filter_h filter = NULL;
1627 filter_h m_filter = NULL;
1629 media_content_debug("\n============Playlist Test============\n\n");
1631 /* Filter for playlist */
1633 char *condition = "(MEDIA_TYPE=1 or MEDIA_TYPE=3)"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1635 ret = media_filter_create(&filter);
1636 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
1637 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
1639 /* Create Playlist */
1640 media_playlist_insert_to_db(playlist_name_1, &playlist_1);
1641 media_playlist_insert_to_db(playlist_name_2, &playlist_2);
1642 media_playlist_insert_to_db(playlist_name_3, &playlist_3);
1644 if(playlist_1 != NULL)
1646 /* Add media to Playlist */
1647 media_playlist_add_media(playlist_1, test_audio_id);
1648 media_playlist_add_media(playlist_1, test_audio_id);
1649 media_playlist_add_media(playlist_1, test_video_id);
1652 char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/Default.jpg"));
1653 media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
1656 media_playlist_update_to_db(playlist_1);
1659 if(playlist_2 != NULL)
1661 media_playlist_add_media(playlist_2, test_audio_id);
1662 media_playlist_add_media(playlist_2, test_audio_id);
1663 media_playlist_update_to_db(playlist_2);
1666 /* Get Playlist Count*/
1667 ret = media_playlist_get_playlist_count_from_db(filter, &playlist_count);
1669 media_content_debug("playlist_count [%d]", playlist_count);
1672 GList *playlist_id_list = NULL;
1673 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, &playlist_id_list);
1675 /* Get Playlist id*/
1676 playlist_id_1 = (int)g_list_nth_data(playlist_id_list, 0);
1677 playlist_id_2 = (int)g_list_nth_data(playlist_id_list, 1);
1678 playlist_id_3 = (int)g_list_nth_data(playlist_id_list, 2);
1679 media_content_debug("playlist_id_1 [%d]", playlist_id_1);
1680 media_content_debug("playlist_id_2 [%d]", playlist_id_2);
1681 media_content_debug("playlist_id_3 [%d]", playlist_id_3);
1683 /* Filter for media*/
1684 ret = media_filter_create(&m_filter);
1686 ret = media_filter_set_condition(m_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1688 ret = media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_DEFAULT);
1690 /* Get media count */
1691 media_playlist_get_media_count_from_db(playlist_id_1, m_filter, &media_count);
1692 media_content_debug("playlist_1_media_count [%d]", media_count);
1694 media_playlist_get_media_count_from_db(playlist_id_2, m_filter, &media_count);
1695 media_content_debug("playlist_2_media_count [%d]", media_count);
1697 media_playlist_get_media_count_from_db(playlist_id_3, m_filter, &media_count);
1698 media_content_debug("playlist_3_media_count [%d]", media_count);
1700 /* Get media of playlist */
1701 GList *playlist_member_id_list = NULL;
1702 GList *playlist_member_id_list_1 = NULL;
1704 media_playlist_foreach_media_from_db(playlist_id_1, m_filter, playlist_item_cb, &playlist_member_id_list);
1705 media_playlist_foreach_media_from_db(playlist_id_2, m_filter, playlist_item_cb, &playlist_member_id_list_1);
1707 int playlist_member_id_1_1 =0;
1708 int playlist_member_id_1_2 =0;
1709 int playlist_member_id_1_3 =0;
1710 int playlist_member_id_2_1 =0;
1711 int playlist_member_id_2_2 =0;
1713 playlist_member_id_1_1 = (int)g_list_nth_data(playlist_member_id_list, 0);
1714 playlist_member_id_1_2 = (int)g_list_nth_data(playlist_member_id_list, 1);
1715 playlist_member_id_1_3 = (int)g_list_nth_data(playlist_member_id_list, 2);
1716 playlist_member_id_2_1 = (int)g_list_nth_data(playlist_member_id_list_1, 0);
1717 playlist_member_id_2_2 = (int)g_list_nth_data(playlist_member_id_list_1, 1);
1719 media_content_debug("playlist_member_id_1_1 [%d]", playlist_member_id_1_1);
1720 media_content_debug("playlist_member_id_1_2 [%d]", playlist_member_id_1_2);
1721 media_content_debug("playlist_member_id_1_3 [%d]", playlist_member_id_1_3);
1722 media_content_debug("playlist_member_id_2_1 [%d]", playlist_member_id_2_1);
1723 media_content_debug("playlist_member_id_2_2 [%d]", playlist_member_id_2_2);
1725 media_playlist_get_play_order(playlist_1, playlist_member_id_1_1, &order_1);
1726 media_playlist_get_play_order(playlist_1, playlist_member_id_1_2, &order_2);
1727 media_playlist_get_play_order(playlist_1, playlist_member_id_1_3, &order_3);
1728 media_playlist_get_play_order(playlist_2, playlist_member_id_2_1, &order_4);
1729 media_playlist_get_play_order(playlist_2, playlist_member_id_2_2, &order_5);
1730 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);
1732 /* Update Playlist */
1733 media_playlist_remove_media(playlist_2, playlist_member_id_2_1);
1734 media_playlist_add_media(playlist_2, test_video_id);
1735 media_playlist_set_name(playlist_2, "test_playlist");
1736 media_playlist_set_play_order(playlist_2, playlist_member_id_2_2, order_5+100);
1737 media_playlist_update_to_db(playlist_2);
1739 /* Get Updated Playlist*/
1740 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, NULL);
1742 /* deletes the playlist */
1743 //media_playlist_delete_from_db(playlist_id_1);
1744 //media_playlist_delete_from_db(playlist_id_2);
1746 if(playlist_1 != NULL)
1747 media_playlist_destroy(playlist_1);
1748 if(playlist_2 != NULL)
1749 media_playlist_destroy(playlist_2);
1750 if(playlist_3 != NULL)
1751 media_playlist_destroy(playlist_3);
1753 g_list_free(playlist_id_list);
1754 g_list_free(playlist_member_id_list);
1755 g_list_free(playlist_member_id_list_1);
1758 ret = media_filter_destroy(filter);
1759 if(m_filter != NULL)
1760 ret = media_filter_destroy(m_filter);
1765 int test_tag_operation(void)
1767 int ret = MEDIA_CONTENT_ERROR_NONE;
1774 char *tag_name_1 = "myTag_1";
1775 char *tag_name_2 = "myTag_2";
1776 char *tag_name_3 = "myTag_3";
1778 int media_count = 0;
1781 media_content_debug("\n============Tag Test============\n\n");
1783 char *g_condition = "TAG_NAME like \"%%my%%\"";
1785 ret = media_filter_create(&filter);
1787 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1789 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
1792 ret = media_tag_insert_to_db(tag_name_1, &tag_1);
1793 if(ret != MEDIA_CONTENT_ERROR_NONE)
1794 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1795 ret = media_tag_insert_to_db(tag_name_2, &tag_2);
1796 if(ret != MEDIA_CONTENT_ERROR_NONE)
1797 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1798 ret = media_tag_insert_to_db(tag_name_3, &tag_3);
1799 if(ret != MEDIA_CONTENT_ERROR_NONE)
1800 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1802 /* Add media to Tag */
1803 ret = media_tag_add_media(tag_1, test_audio_id);
1804 if(ret != MEDIA_CONTENT_ERROR_NONE)
1805 media_content_error("error media_tag_add_media : [%d]", ret);
1806 ret = media_tag_add_media(tag_1, test_video_id);
1807 if(ret != MEDIA_CONTENT_ERROR_NONE)
1808 media_content_error("error media_tag_add_media : [%d]", ret);
1809 ret = media_tag_update_to_db(tag_1);
1810 if(ret != MEDIA_CONTENT_ERROR_NONE)
1811 media_content_error("error media_tag_update_to_db : [%d]", ret);
1813 ret = media_tag_add_media(tag_2, test_audio_id);
1814 if(ret != MEDIA_CONTENT_ERROR_NONE)
1815 media_content_error("error media_tag_add_media : [%d]", ret);
1816 ret = media_tag_update_to_db(tag_2);
1817 if(ret != MEDIA_CONTENT_ERROR_NONE)
1818 media_content_error("error media_tag_update_to_db : [%d]", ret);
1821 ret = media_tag_get_tag_count_from_db(filter, &tag_count);
1822 if(ret != MEDIA_CONTENT_ERROR_NONE)
1823 media_content_error("error media_tag_get_tag_count_from_db : [%d]", ret);
1825 media_content_debug("tag_count [%d]", tag_count);
1828 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1829 if(ret != MEDIA_CONTENT_ERROR_NONE)
1830 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1833 ret = media_tag_get_tag_id(tag_1, &tag_id_1);
1834 if(ret != MEDIA_CONTENT_ERROR_NONE)
1835 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1837 media_content_debug("tag_id_1 [%d]", tag_id_1);
1839 ret = media_tag_get_tag_id(tag_2, &tag_id_2);
1840 if(ret != MEDIA_CONTENT_ERROR_NONE)
1841 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1843 media_content_debug("tag_id_2 [%d]", tag_id_2);
1845 ret = media_tag_get_tag_id(tag_3, &tag_id_3);
1846 if(ret != MEDIA_CONTENT_ERROR_NONE)
1847 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1849 media_content_debug("tag_id_3 [%d]", tag_id_3);
1851 /* Get media count */
1852 ret = media_tag_get_media_count_from_db(tag_id_1, NULL, &media_count);
1853 if(ret != MEDIA_CONTENT_ERROR_NONE)
1854 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1856 media_content_debug("tag_1_media_count [%d]", media_count);
1858 ret = media_tag_get_media_count_from_db(tag_id_2, NULL, &media_count);
1859 if(ret != MEDIA_CONTENT_ERROR_NONE)
1860 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1862 media_content_debug("tag_2_media_count [%d]", media_count);
1864 /* Get media of Tag */
1865 ret = media_tag_foreach_media_from_db(tag_id_1, NULL, media_item_cb, NULL);
1866 if(ret != MEDIA_CONTENT_ERROR_NONE)
1867 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1869 ret = media_tag_foreach_media_from_db(tag_id_2, NULL, media_item_cb, NULL);
1870 if(ret != MEDIA_CONTENT_ERROR_NONE)
1871 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1874 ret = media_tag_add_media(tag_2, test_video_id);
1875 if(ret != MEDIA_CONTENT_ERROR_NONE)
1876 media_content_error("error media_tag_add_media : [%d]", ret);
1877 ret = media_tag_set_name(tag_2, "test_tag");
1878 if(ret != MEDIA_CONTENT_ERROR_NONE)
1879 media_content_error("error media_tag_set_name : [%d]", ret);
1880 ret = media_tag_update_to_db(tag_2);
1881 if(ret != MEDIA_CONTENT_ERROR_NONE)
1882 media_content_error("error media_tag_update_to_db : [%d]", ret);
1884 /* Get Updated Tag*/
1885 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1886 if(ret != MEDIA_CONTENT_ERROR_NONE)
1887 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1889 /* deletes the tag */
1890 ret = media_tag_delete_from_db(tag_id_1);
1891 if(ret != MEDIA_CONTENT_ERROR_NONE)
1892 media_content_error("error media_tag_delete_from_db : [%d]", ret);
1893 ret = media_tag_delete_from_db(tag_id_2);
1894 if(ret != MEDIA_CONTENT_ERROR_NONE)
1895 media_content_error("error media_tag_delete_from_db : [%d]", ret);
1897 ret = media_tag_destroy(tag_1);
1898 if(ret != MEDIA_CONTENT_ERROR_NONE)
1899 media_content_error("error media_tag_destroy : [%d]", ret);
1900 ret = media_tag_destroy(tag_2);
1901 if(ret != MEDIA_CONTENT_ERROR_NONE)
1902 media_content_error("error media_tag_destroy : [%d]", ret);
1903 ret = media_filter_destroy(filter);
1904 if(ret != MEDIA_CONTENT_ERROR_NONE)
1905 media_content_error("error media_filter_destroy : [%d]", ret);
1911 int test_bookmark_operation(void)
1913 //bookmark is only supported for video information.
1914 int ret = MEDIA_CONTENT_ERROR_NONE;
1915 int bookmark_count = 0;
1918 media_content_debug("\n============Bookmark Test============\n\n");
1920 char *g_condition = "BOOKMARK_MARKED_TIME > 300";
1922 ret = media_filter_create(&filter);
1923 if(ret != MEDIA_CONTENT_ERROR_NONE)
1924 media_content_error("error media_filter_create : [%d]", ret);
1926 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1927 if(ret != MEDIA_CONTENT_ERROR_NONE)
1928 media_content_error("error media_filter_set_condition : [%d]", ret);
1930 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, BOOKMARK_MARKED_TIME, MEDIA_CONTENT_COLLATE_DEFAULT);
1931 if(ret != MEDIA_CONTENT_ERROR_NONE)
1932 media_content_error("error media_filter_set_order : [%d]", ret);
1934 //insert bookmark to video
1935 char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg");
1937 ret = media_bookmark_insert_to_db(test_video_id, 400, thumbnail_path1);
1938 if(ret != MEDIA_CONTENT_ERROR_NONE)
1939 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
1941 ret = media_bookmark_insert_to_db(test_video_id, 600, thumbnail_path1);
1942 if(ret != MEDIA_CONTENT_ERROR_NONE)
1943 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
1945 ret = media_bookmark_get_bookmark_count_from_db(filter, &bookmark_count);
1946 if(ret != MEDIA_CONTENT_ERROR_NONE)
1947 media_content_error("error media_bookmark_get_bookmark_count_from_db : [%d]", ret);
1949 media_content_debug("bookmark_count = [%d]", bookmark_count);
1951 ret = media_filter_destroy(filter);
1952 if(ret != MEDIA_CONTENT_ERROR_NONE)
1953 media_content_error("error media_filter_destroy : [%d]", ret);
1958 int test_album_list(void)
1960 media_content_debug("\n============Album Test============\n\n");
1962 int ret = MEDIA_CONTENT_ERROR_NONE;
1963 int album_count = 0;
1967 char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1969 ret = media_filter_create(&filter);
1970 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1971 media_content_error("Fail to create filter");
1974 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1975 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1976 media_filter_destroy(filter);
1977 media_content_error("Fail to set condition");
1980 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
1981 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1982 media_filter_destroy(filter);
1983 media_content_error("Fail to set order");
1987 ret = media_album_get_album_count_from_db(filter, &album_count);
1988 if(ret != MEDIA_CONTENT_ERROR_NONE) {
1989 media_filter_destroy(filter);
1992 media_content_debug("album_count [%d]", album_count);
1995 ret = media_album_foreach_album_from_db(filter, album_list_cb, NULL);
1996 if(ret != MEDIA_CONTENT_ERROR_NONE)
1997 media_content_error("error media_album_foreach_album_from_db : [%d]", ret);
1999 ret = media_filter_destroy(filter);
2000 if(ret != MEDIA_CONTENT_ERROR_NONE)
2001 media_content_error("error media_filter_destroy : [%d]", ret);
2006 int test_group_operation(void)
2008 media_content_debug("\n============Group Test============\n\n");
2010 int ret = MEDIA_CONTENT_ERROR_NONE;
2011 int group_count = 0;
2014 ret = test_filter_create();
2015 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2016 media_content_error("[%d]error(0x%08x)", __LINE__, ret);
2020 for(idx = 0; idx <= MEDIA_CONTENT_GROUP_KEYWORD; idx++)
2022 ret = media_group_get_group_count_from_db(g_filter, idx, &group_count);
2023 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2024 test_filter_destroy();
2025 media_content_error("media_group_get_group_count_from_db fail. idx=[%d]", ret, idx);
2028 media_content_debug("[%2d]group_count [%d]", idx, group_count);
2031 ret = media_group_foreach_group_from_db(g_filter, idx, group_list_cb, &idx);
2033 ret = test_filter_destroy();
2038 int test_update_operation()
2040 int ret = MEDIA_CONTENT_ERROR_NONE;
2042 media_info_h media_handle = NULL;
2043 GList *all_item_list = NULL;
2045 /* Get all item list */
2046 ret = media_info_foreach_media_from_db(NULL, gallery_media_item_cb, &all_item_list);
2047 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2048 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
2051 media_content_debug("media_info_foreach_media_from_db success");
2052 char *media_id = NULL;
2053 char *media_path = NULL;
2054 media_content_type_e media_type = 0;
2056 for(i = 0; i < g_list_length(all_item_list); i++) {
2057 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
2059 ret = media_info_get_media_id(media_handle, &media_id);
2060 if(ret != MEDIA_CONTENT_ERROR_NONE)
2061 media_content_error("media_info_get_media_id failed: %d", ret);
2062 ret = media_info_get_file_path(media_handle, &media_path);
2063 if(ret != MEDIA_CONTENT_ERROR_NONE)
2064 media_content_error("media_info_get_file_path failed: %d", ret);
2065 ret = media_info_get_media_type(media_handle, &media_type);
2066 if(ret != MEDIA_CONTENT_ERROR_NONE)
2067 media_content_error("media_info_get_media_type failed: %d", ret);
2069 media_content_debug("media_id [%d] : %s", i, media_id);
2070 media_content_debug("media_type [%d] : %d", i, media_type);
2071 media_content_debug("media_path [%d] : %s", i, media_path);
2073 if(media_type == MEDIA_CONTENT_TYPE_IMAGE) {
2074 image_meta_h image_handle;
2075 media_content_orientation_e orientation;
2077 ret = media_info_get_image(media_handle, &image_handle);
2078 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2079 media_content_error("media_info_get_image failed: %d", ret);
2081 media_content_debug("media_info_get_image success");
2084 orientation = MEDIA_CONTENT_ORIENTATION_ROT_180;
2085 image_meta_set_orientation(image_handle, orientation);
2087 ret = image_meta_update_to_db(image_handle);
2088 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2089 media_content_error("image_meta_update_to_db failed: %d", ret);
2091 media_content_debug("image_meta_update_to_db success");
2095 } else if(media_type == MEDIA_CONTENT_TYPE_VIDEO) {
2096 video_meta_h video_handle;
2098 ret = media_info_get_video(media_handle, &video_handle);
2099 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2100 media_content_error("media_info_get_video failed: %d", ret);
2102 media_content_debug("media_info_get_video success");
2105 video_meta_set_played_count(video_handle,5);
2106 video_meta_set_played_time(video_handle,5);
2107 video_meta_set_played_position(video_handle,5);
2108 video_meta_update_to_db(video_handle);
2110 ret = video_meta_update_to_db(video_handle);
2111 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2112 media_content_error("video_meta_update_to_db failed: %d", ret);
2114 media_content_debug("video_meta_update_to_db success");
2117 } else if(media_type == MEDIA_CONTENT_TYPE_MUSIC) {//update audio meta
2118 audio_meta_h audio_handle = NULL;
2119 ret = media_info_get_audio(media_handle, &audio_handle);
2120 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2121 media_content_error("media_info_get_audio failed: %d", ret);
2123 media_content_debug("media_info_get_audio success");
2125 audio_meta_set_played_count(audio_handle,5);
2126 audio_meta_set_played_time(audio_handle,1000);
2127 audio_meta_set_played_position(audio_handle,180);
2129 ret = audio_meta_update_to_db(audio_handle);
2130 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2131 media_content_error("audio_meta_update_to_db failed: %d", ret);
2133 media_content_debug("audio_meta_update_to_db success");
2142 return MEDIA_CONTENT_ERROR_NONE;
2145 int test_insert(void)
2147 int ret = MEDIA_CONTENT_ERROR_NONE;
2148 //char *path = "/opt/media/Images/Default.jpg";
2149 char *path = tzplatform_mkpath(TZ_USER_CONTENT, "Others/other.txt");
2150 //char *path = NULL;
2151 media_info_h media_item = NULL;
2152 media_content_debug("\n============DB Insert Test============\n\n");
2154 ret = media_info_insert_to_db(path, &media_item);
2156 if((ret == MEDIA_CONTENT_ERROR_NONE) && (media_item != NULL))
2158 media_content_debug("Insertion is success");
2162 media_content_error("Insertion is failed");
2163 ret = media_info_destroy(media_item);
2167 char *media_id = NULL;
2169 ret = media_info_get_media_id(media_item, &media_id);
2170 if(ret != MEDIA_CONTENT_ERROR_NONE)
2171 media_content_error("media_info_get_media_id failed: %d", ret);
2173 media_content_debug("Media ID: %s", media_id);
2175 SAFE_FREE(media_id);
2177 ret = media_info_update_to_db(media_item);
2178 if(ret == MEDIA_CONTENT_ERROR_NONE)
2179 media_content_debug("media_info_update_to_db is success");
2181 media_content_error("media_info_update_to_db is failed");
2183 ret = media_info_destroy(media_item);
2184 if(ret != MEDIA_CONTENT_ERROR_NONE)
2185 media_content_error("media_info_destroy failed: %d", ret);
2192 int ret = MEDIA_CONTENT_ERROR_NONE;
2193 const char *move_media_id = "60aea677-4742-408e-b5f7-f2628062d06d";
2194 char *dst_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/XX/Default1.jpg");
2195 media_info_h move_media = NULL;
2197 ret = media_info_get_media_from_db(move_media_id, &move_media);
2198 if(ret == MEDIA_CONTENT_ERROR_NONE)
2199 media_content_debug("media_info_get_media_from_db success");
2201 media_content_error("media_info_get_media_from_db failed: %d", ret);
2203 media_content_debug("\n============DB Move Test============\n\n");
2206 ret = media_info_move_to_db(move_media, dst_path);
2208 if(ret == MEDIA_CONTENT_ERROR_NONE)
2209 media_content_debug("Move is success");
2211 media_content_error("Move is failed");
2213 ret = media_info_destroy(move_media);
2215 media_content_debug("There is no item : %s", move_media_id);
2221 void thumbnail_completed_cb(media_content_error_e error, const char *path, void *user_data)
2223 char *thumbnail_path = NULL;
2224 int ret = MEDIA_CONTENT_ERROR_NONE;
2227 media_content_debug("=================[%d][%d]", g_media_cnt, g_cnt);
2228 media_content_debug("error_code [%d]", error);
2229 media_content_debug("thumbnail_path [%s]", path);
2230 if(user_data != NULL)
2232 media_info_h media = (media_info_h)user_data;
2233 ret = media_info_get_thumbnail_path(media, &thumbnail_path);
2234 if(ret != MEDIA_CONTENT_ERROR_NONE)
2235 media_content_error("media_info_get_thumbnail_path failed: %d", ret);
2237 media_content_debug("thumbnail_path get from media[%s]", thumbnail_path);
2238 SAFE_FREE(thumbnail_path);
2239 ret = media_info_destroy(media);
2240 if(ret != MEDIA_CONTENT_ERROR_NONE)
2241 media_content_error("media_info_destroy failed: %d", ret);
2244 if(g_cnt == g_media_cnt)
2245 g_main_loop_quit(g_loop);
2250 bool thumbnail_create_cb(media_info_h media, void *user_data)
2252 char *media_id = NULL;
2253 media_info_h dst = NULL;
2254 int ret = MEDIA_CONTENT_ERROR_NONE;
2258 media_content_debug("NO Item");
2262 ret = media_info_get_media_id(media, &media_id);
2263 if(ret != MEDIA_CONTENT_ERROR_NONE)
2264 media_content_error("media_info_get_media_id failed: %d", ret);
2266 media_content_debug("media_id : [%s]", media_id);
2268 ret = media_info_clone(&dst, media);
2269 if(ret != MEDIA_CONTENT_ERROR_NONE)
2270 media_content_error("media_info_clone failed: %d", ret);
2273 ret = media_info_create_thumbnail(dst, thumbnail_completed_cb, dst);
2274 if(ret != MEDIA_CONTENT_ERROR_NONE)
2275 media_content_error("media_info_create_thumbnail failed: %d", ret);
2281 bool thumbnail_cancel_cb(media_info_h media, void *user_data)
2283 int ret = MEDIA_CONTENT_ERROR_NONE;
2285 char *media_id = NULL;
2286 media_info_h dst = NULL;
2292 media_content_debug("NO Item");
2296 ret = media_info_get_media_id(media, &media_id);
2297 if(ret != MEDIA_CONTENT_ERROR_NONE)
2298 media_content_error("media_info_get_media_id failed: %d", ret);
2300 media_content_debug("media_id : [%s]", media_id);
2302 ret = media_info_clone(&dst, media);
2303 if(ret != MEDIA_CONTENT_ERROR_NONE)
2304 media_content_error("media_info_clone failed: %d", ret);
2306 ret = media_info_cancel_thumbnail(dst);
2307 if(ret != MEDIA_CONTENT_ERROR_NONE)
2308 media_content_error("media_info_cancel_thumbnail failed: %d", ret);
2310 ret = media_info_destroy(dst);
2311 if(ret != MEDIA_CONTENT_ERROR_NONE)
2312 media_content_error("media_info_destroy failed: %d", ret);
2314 if(g_cnt == g_media_cnt)
2315 g_main_loop_quit(g_loop);
2320 gboolean create_thumbnail_start(gpointer data)
2322 int ret = MEDIA_CONTENT_ERROR_NONE;
2324 ret = media_info_foreach_media_from_db(g_filter, thumbnail_create_cb, NULL);
2326 if(ret == MEDIA_CONTENT_ERROR_NONE)
2327 media_content_debug("media_info_foreach_media_from_db is success");
2329 media_content_error("media_info_foreach_media_from_db is failed");
2334 gboolean cancel_thumbnail_start(gpointer data)
2336 int ret = MEDIA_CONTENT_ERROR_NONE;
2338 ret = media_info_foreach_media_from_db(g_filter, thumbnail_cancel_cb, NULL);
2340 if(ret == MEDIA_CONTENT_ERROR_NONE)
2341 media_content_debug("media_info_foreach_media_from_db is success");
2343 media_content_error("media_info_foreach_media_from_db is failed");
2348 int test_create_thumbnail(int cancel)
2350 int ret = MEDIA_CONTENT_ERROR_NONE;
2351 GSource *source = NULL;
2352 GMainContext *context = NULL;
2354 test_filter_create();
2356 ret = media_info_get_media_count_from_db(g_filter, &g_media_cnt);
2357 if(ret != MEDIA_CONTENT_ERROR_NONE)
2358 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
2360 media_content_debug("media_count : [%d]", g_media_cnt);
2362 g_loop = g_main_loop_new(NULL, FALSE);
2363 context = g_main_loop_get_context(g_loop);
2364 source = g_idle_source_new();
2365 g_source_set_callback (source, create_thumbnail_start, NULL, NULL);
2366 g_source_attach (source, context);
2368 /* Logic to cancel */
2370 GSource *cancel_src = NULL;
2371 cancel_src = g_idle_source_new();
2372 g_source_set_callback (cancel_src, cancel_thumbnail_start, NULL, NULL);
2373 g_source_attach (cancel_src, context);
2376 g_main_loop_run(g_loop);
2377 g_main_loop_unref(g_loop);
2379 test_filter_destroy();
2384 int test_disconnect_database(void)
2386 int ret = MEDIA_CONTENT_ERROR_NONE;
2387 media_content_debug("\n============DB Disconnection Test============\n\n");
2389 ret = media_content_disconnect();
2391 if(ret == MEDIA_CONTENT_ERROR_NONE)
2392 media_content_debug("disconnection is success");
2394 media_content_error("disconnection is failed");
2399 int test_request_update_db(void)
2401 int ret = MEDIA_CONTENT_ERROR_NONE;
2402 media_info_h media = NULL;
2404 //get the content of Over the horizon
2405 ret = media_info_get_media_from_db("0f999626-6218-450c-a4ad-181a3bab6ebf", &media);
2406 if(ret != MEDIA_CONTENT_ERROR_NONE)
2407 media_content_error("media_info_get_media_from_db failed: %d", ret);
2409 test_disconnect_database();
2411 ret = media_info_set_content_name(media, "TEST_content_name");
2412 if(ret != MEDIA_CONTENT_ERROR_NONE)
2413 media_content_error("media_info_set_content_name failed: %d", ret);
2415 ret = media_info_update_to_db(media);
2416 if(ret == MEDIA_CONTENT_ERROR_NONE)
2417 media_content_debug("media_info_update_to_db is success");
2419 media_content_error("media_info_update_to_db is failed");
2422 media_info_destroy(media);
2427 int g_total_photo_size = 0;
2428 int g_total_video_size = 0;
2429 int g_total_mp3_size = 0;
2430 int g_total_voice_memo_size = 0;
2432 bool dft_cb(media_info_h media, void *user_data)
2434 unsigned long long file_size = 0;
2435 media_content_type_e media_type = -1;
2436 char *mime_type = NULL;
2437 int ret = MEDIA_CONTENT_ERROR_NONE;
2444 ret = media_info_get_media_type(media, &media_type);
2445 if(ret != MEDIA_CONTENT_ERROR_NONE)
2446 media_content_error("media_info_get_media_type failed: %d", ret);
2447 ret = media_info_get_size(media, &file_size);
2448 if(ret != MEDIA_CONTENT_ERROR_NONE)
2449 media_content_error("media_info_get_size failed: %d", ret);
2450 ret = media_info_get_mime_type(media, &mime_type);
2451 if(ret != MEDIA_CONTENT_ERROR_NONE)
2452 media_content_error("media_info_get_mime_type failed: %d", ret);
2454 if(media_type == MEDIA_CONTENT_TYPE_IMAGE)
2456 g_total_photo_size += file_size;
2458 else if(media_type == MEDIA_CONTENT_TYPE_VIDEO)
2460 g_total_video_size += file_size;
2462 else if(media_type == MEDIA_CONTENT_TYPE_SOUND)
2464 g_total_voice_memo_size += file_size;
2466 else if(media_type == MEDIA_CONTENT_TYPE_MUSIC)
2468 if((mime_type != NULL) && (!strcmp("audio/mpeg", mime_type)))
2470 g_total_mp3_size += file_size;
2474 g_total_voice_memo_size += file_size;
2479 printf("invalid media_type");
2482 if(mime_type != NULL)
2491 int ret = MEDIA_CONTENT_ERROR_NONE;
2492 printf("\n============DFT_test============\n\n");
2494 filter_h filter = NULL;
2497 /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
2499 ret = media_filter_create(&filter);
2502 printf("[Internal Memory]\n");
2503 /*1. Photo ============================================================*/
2504 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2507 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2508 printf("Photo count = [%d]\n", media_cnt);
2511 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2512 printf("Photo size = [%d]\n", g_total_photo_size);
2514 /*2. Video ============================================================*/
2515 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2518 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2519 printf("Video count = [%d]\n", media_cnt);
2522 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2523 printf("Video size = [%d]\n", g_total_video_size);
2525 /*3. MP3 ============================================================*/
2526 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2529 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2530 printf("MP3 count = [%d]\n", media_cnt);
2533 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2534 printf("MP3 size = [%d]\n", g_total_mp3_size);
2536 /*4. Voice Memo ============================================================*/
2537 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);
2539 /*Get Voice Memo Count*/
2540 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2541 printf("Voice Memo count = [%d]\n", media_cnt);
2543 /*Get Voice Memo Size*/
2544 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2545 printf("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2547 g_total_photo_size = 0;
2548 g_total_video_size = 0;
2549 g_total_mp3_size = 0;
2550 g_total_voice_memo_size = 0;
2553 printf("\n[External Memory]\n");
2554 /*1. Photo ============================================================*/
2555 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2558 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2559 printf("Photo count = [%d]\n", media_cnt);
2562 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2563 printf("Photo size = [%d]\n", g_total_photo_size);
2565 /*2. Video ============================================================*/
2566 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2569 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2570 printf("Video count = [%d]\n", media_cnt);
2573 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2574 printf("Video size = [%d]\n", g_total_video_size);
2576 /*3. MP3 ============================================================*/
2577 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2580 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2581 printf("MP3 count = [%d]\n", media_cnt);
2584 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2585 printf("MP3 size = [%d]\n", g_total_mp3_size);
2587 /*4. Voice Memo ============================================================*/
2588 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);
2590 /*Get Voice Memo Count*/
2591 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2592 printf("Voice Memo count = [%d]\n", media_cnt);
2594 /*Get Voice Memo Size*/
2595 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2596 printf("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2597 ret = media_filter_destroy(filter);
2602 void insert_batch_cb(media_content_error_e error, void * user_data)
2604 printf("media_info_insert_batch_to_db completed!\n");
2607 int test_batch_operations()
2611 char *file_list[10];
2613 for (i = 0; i < 10; i++) {
2614 char filepath[255] = {0,};
2615 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2616 media_content_debug("File : %s\n", filepath);
2617 file_list[i] = strdup(filepath);
2620 ret = media_info_insert_batch_to_db((const char **)file_list, 10, insert_batch_cb, NULL);
2621 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2622 media_content_error("media_info_insert_batch_to_db failed : %d\n", ret);
2626 char *condition = "MEDIA_PATH LIKE \'";
2627 strncat (condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
2628 ret = media_filter_create(&filter);
2629 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2630 media_content_error("Fail to create filter");
2634 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2635 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2636 media_filter_destroy(filter);
2637 media_content_error("Fail to set condition");
2641 ret = media_info_delete_batch_from_db(filter);
2642 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2643 media_filter_destroy(filter);
2644 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2648 ret = media_filter_destroy(filter);
2653 void insert_burst_shot_cb(media_content_error_e error, void * user_data)
2655 printf("media_info_insert_burst_shot_to_db completed![%d]\n", error);
2656 g_main_loop_quit(g_loop);
2659 gboolean test_insert_burst_shot_to_db_start(gpointer data)
2661 int ret = MEDIA_CONTENT_ERROR_NONE;
2663 char *file_list[10];
2665 for (i = 0; i < 10; i++) {
2666 char filepath[255] = {0,};
2667 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2668 media_content_debug("File : %s\n", filepath);
2669 file_list[i] = strdup(filepath);
2672 ret = media_info_insert_burst_shot_to_db((const char **)file_list, 10, insert_burst_shot_cb, NULL);
2673 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2674 media_content_error("media_info_insert_burst_shot_to_db failed : %d\n", ret);
2680 int test_insert_burst_shot_to_db(void)
2682 GSource *source = NULL;
2683 GMainContext *context = NULL;
2685 g_loop = g_main_loop_new(NULL, FALSE);
2686 context = g_main_loop_get_context(g_loop);
2687 source = g_idle_source_new();
2688 g_source_set_callback (source, test_insert_burst_shot_to_db_start, NULL, NULL);
2689 g_source_attach (source, context);
2691 g_main_loop_run(g_loop);
2692 g_main_loop_unref(g_loop);
2697 void _scan_cb(media_content_error_e err, void *user_data)
2699 printf("scan callback is called : %d\n", err);
2700 g_main_loop_quit(g_loop);
2705 int test_scan_file()
2709 const char *file_path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
2710 ret = media_content_scan_file(file_path);
2711 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2712 media_content_error("Fail to media_content_scan_file : %d", ret);
2719 gboolean test_scan_dir_start(gpointer data)
2723 const char *dir_path = tzplatform_getenv(TZ_USER_CONTENT);
2725 ret = media_content_scan_folder(dir_path, TRUE, _scan_cb, NULL);
2727 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2728 media_content_error("Fail to media_content_scan_file : %d", ret);
2737 GSource *source = NULL;
2738 GMainContext *context = NULL;
2740 g_loop = g_main_loop_new(NULL, FALSE);
2741 context = g_main_loop_get_context(g_loop);
2742 source = g_idle_source_new();
2743 g_source_set_callback (source, test_scan_dir_start, NULL, NULL);
2744 g_source_attach (source, context);
2746 g_main_loop_run(g_loop);
2747 g_main_loop_unref(g_loop);
2752 void _noti_cb(media_content_error_e error,
2754 media_content_db_update_item_type_e update_item,
2755 media_content_db_update_type_e update_type,
2756 media_content_type_e media_type,
2763 printf("noti success! : %d\n", error);
2765 printf("error occured! : %d\n", error);
2768 printf("Noti from PID(%d)\n", pid);
2770 if (update_item == MEDIA_ITEM_FILE) {
2771 printf("Noti item : MEDIA_ITEM_FILE\n");
2772 } else if (update_item == MEDIA_ITEM_DIRECTORY) {
2773 printf("Noti item : MEDIA_ITEM_DIRECTORY\n");
2776 if (update_type == MEDIA_CONTENT_INSERT) {
2777 printf("Noti type : MEDIA_CONTENT_INSERT\n");
2778 } else if (update_type == MEDIA_CONTENT_DELETE) {
2779 printf("Noti type : MEDIA_CONTENT_DELETE\n");
2780 } else if (update_type == MEDIA_CONTENT_UPDATE) {
2781 printf("Noti type : MEDIA_CONTENT_UPDATE\n");
2784 printf("content type : %d\n", media_type);
2787 printf("path : %s\n", path);
2789 printf("path not\n");
2792 printf("uuid : %s\n", uuid);
2794 printf("uuid not\n");
2797 printf("mime_type : %s\n", mime_type);
2799 printf("mime not\n");
2801 if (user_data) printf("String : %s\n", (char *)user_data);
2803 //g_main_loop_quit(g_loop);
2807 gboolean _send_noti_operations(gpointer data)
2809 int ret = MEDIA_CONTENT_ERROR_NONE;
2811 /* First of all, noti subscription */
2812 char *user_str = strdup("hi");
2813 media_content_set_db_updated_cb(_noti_cb, (void*)user_str);
2815 /* media_info_insert_to_db */
2816 media_info_h media_item = NULL;
2817 char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
2819 ret = media_info_insert_to_db(path, &media_item);
2820 if (ret < MEDIA_CONTENT_ERROR_NONE) {
2821 media_content_error("media_info_insert_to_db failed : %d", ret);
2822 media_info_destroy(media_item);
2826 media_content_debug("media_info_insert_to_db success");
2828 /* media_info_delete_batch_from_db */
2830 char *condition = "MEDIA_PATH LIKE \'";
2831 strncat (condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
2833 ret = media_filter_create(&filter);
2834 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2835 media_content_error("Fail to create filter");
2836 media_info_destroy(media_item);
2840 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2841 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2842 media_filter_destroy(filter);
2843 media_info_destroy(media_item);
2844 media_content_error("Fail to set condition");
2847 ret = media_info_delete_batch_from_db(filter);
2848 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2849 media_filter_destroy(filter);
2850 media_info_destroy(media_item);
2851 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2855 media_filter_destroy(filter);
2857 /* media_info_update_to_db */
2858 ret = media_info_update_to_db(media_item);
2859 if(ret != MEDIA_CONTENT_ERROR_NONE) {
2860 media_content_error("media_info_update_to_db failed : %d\n", ret);
2861 media_info_destroy(media_item);
2865 media_info_destroy(media_item);
2872 int ret = MEDIA_CONTENT_ERROR_NONE;
2873 GSource *source = NULL;
2874 GMainContext *context = NULL;
2876 g_loop = g_main_loop_new(NULL, FALSE);
2877 context = g_main_loop_get_context(g_loop);
2878 source = g_idle_source_new();
2879 g_source_set_callback (source, _send_noti_operations, NULL, NULL);
2880 g_source_attach (source, context);
2882 g_main_loop_run(g_loop);
2883 g_main_loop_unref(g_loop);
2885 test_filter_destroy();
2886 media_content_unset_db_updated_cb();
2891 int main(int argc, char *argv[])
2893 int ret = MEDIA_CONTENT_ERROR_NONE;
2895 media_content_debug("--- content manager test start ---\n\n");
2897 ret = test_connect_database();
2898 if(ret != MEDIA_CONTENT_ERROR_NONE)
2899 return MEDIA_CONTENT_ERROR_NONE;
2903 if(ret != MEDIA_CONTENT_ERROR_NONE)
2906 ret = test_gallery_scenario();
2907 if(ret != MEDIA_CONTENT_ERROR_NONE)
2910 ret = test_get_all_music_files();
2911 if(ret != MEDIA_CONTENT_ERROR_NONE)
2914 ret = test_media_info_operation();
2915 if(ret != MEDIA_CONTENT_ERROR_NONE)
2918 ret = test_folder_operation();
2919 if(ret != MEDIA_CONTENT_ERROR_NONE)
2922 ret = test_playlist_operation();
2923 if(ret != MEDIA_CONTENT_ERROR_NONE)
2926 ret = test_tag_operation();
2927 if(ret != MEDIA_CONTENT_ERROR_NONE)
2930 ret = test_bookmark_operation();
2931 if(ret != MEDIA_CONTENT_ERROR_NONE)
2934 ret = test_album_list();
2935 if(ret != MEDIA_CONTENT_ERROR_NONE)
2938 ret = test_group_operation();
2939 if(ret != MEDIA_CONTENT_ERROR_NONE)
2942 ret = test_update_operation();
2943 if(ret != MEDIA_CONTENT_ERROR_NONE)
2946 ret = test_insert();
2947 if(ret != MEDIA_CONTENT_ERROR_NONE)
2951 if(ret != MEDIA_CONTENT_ERROR_NONE)
2954 ret = test_create_thumbnail(TRUE);
2955 if(ret != MEDIA_CONTENT_ERROR_NONE)
2958 ret = test_request_update_db();
2959 if(ret != MEDIA_CONTENT_ERROR_NONE)
2963 if(ret != MEDIA_CONTENT_ERROR_NONE)
2966 ret = test_batch_operations();
2967 if(ret != MEDIA_CONTENT_ERROR_NONE)
2968 return MEDIA_CONTENT_ERROR_NONE;
2970 ret = test_insert_burst_shot_to_db();
2971 if(ret != MEDIA_CONTENT_ERROR_NONE)
2972 return MEDIA_CONTENT_ERROR_NONE;
2974 ret = test_scan_file();
2975 if(ret != MEDIA_CONTENT_ERROR_NONE)
2976 return MEDIA_CONTENT_ERROR_NONE;
2978 ret = test_scan_dir();
2979 if(ret != MEDIA_CONTENT_ERROR_NONE)
2980 return MEDIA_CONTENT_ERROR_NONE;
2983 if(ret != MEDIA_CONTENT_ERROR_NONE)
2984 return MEDIA_CONTENT_ERROR_NONE;
2987 ret = test_disconnect_database();
2988 if(ret != MEDIA_CONTENT_ERROR_NONE)
2991 media_content_debug("--- content manager test end ---\n");