2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
18 #include <media_content.h>
\r
19 #include <media-info-error.h>
\r
20 #include <media-svc-error.h>
\r
21 #include <media-info.h>
\r
22 #include <audio-svc.h>
\r
23 #include <audio-svc-error.h>
\r
24 #include <media_info_private.h>
\r
32 #define LOG_TAG "TIZEN_N_MEDIACONTENT"
\r
36 int audio_meta_destroy(audio_meta_h audio)
\r
39 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
42 if(_audio->audio_id)
\r
44 free(_audio->audio_id);
\r
48 free(_audio->genre);
\r
52 free(_audio->author);
\r
54 if(_audio->copyright)
\r
56 free(_audio->copyright);
\r
58 if(_audio->description)
\r
60 free(_audio->description);
\r
64 free(_audio->format);
\r
68 ret = MEDIA_CONTENT_ERROR_NONE;
\r
72 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
73 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
79 int audio_meta_clone(audio_meta_h* dst, audio_meta_h src)
\r
82 audio_meta_s* _src = (audio_meta_s*)src;
\r
87 audio_meta_s* _dst = (audio_meta_s*)calloc(1,sizeof(audio_meta_s));
\r
92 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
93 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
96 _dst->audio_id = strdup(_src->audio_id);
\r
97 if(_dst->audio_id == NULL)
\r
99 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
100 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
103 _dst->year= _src->year;
\r
104 _dst->bitrate = _src->bitrate;
\r
105 _dst->track_num = _src->track_num ;
\r
106 _dst->duration = _src->duration;
\r
107 _dst->rating = _src->rating;
\r
108 _dst->count_played = _src->count_played;
\r
109 _dst->time_played = _src->time_played;
\r
110 _dst->time_added = _src->time_added;
\r
111 _dst->size = _src->size;
\r
112 _dst->category = _src->category;
\r
115 if((_src->genre != NULL) && (strlen(_src->genre) > 0))
\r
117 _dst->genre = strdup(_src->genre);
\r
118 if(_dst->genre == NULL)
\r
120 audio_meta_destroy((audio_meta_h)_dst);
\r
121 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
122 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
126 if((_src->author != NULL) && (strlen(_src->author ) > 0))
\r
128 _dst->author = strdup(_src->author );
\r
129 if(_dst->author == NULL)
\r
131 audio_meta_destroy((audio_meta_h)_dst);
\r
132 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
133 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
136 if((_src->copyright != NULL) && (strlen(_src->copyright) > 0))
\r
138 _dst->copyright = strdup(_src->copyright);
\r
139 if(_dst->copyright == NULL)
\r
141 audio_meta_destroy((audio_meta_h)_dst);
\r
142 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
143 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
146 if((_src->description != NULL) && (strlen(_src->description) > 0))
\r
148 _dst->description = strdup(_src->description);
\r
149 if(_dst->description == NULL)
\r
151 audio_meta_destroy((audio_meta_h)_dst);
\r
152 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
153 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
156 if((_src->format != NULL) && (strlen(_src->format) > 0))
\r
158 _dst->format = strdup(_src->format);
\r
159 if(_dst->format == NULL)
\r
161 audio_meta_destroy((audio_meta_h)_dst);
\r
162 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
163 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
166 *dst = (audio_meta_h)_dst;
\r
167 ret = MEDIA_CONTENT_ERROR_NONE;
\r
171 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
172 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
180 int audio_meta_get_genre(audio_meta_h audio, char** name)
\r
183 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
186 if((_audio->genre != NULL) && (strlen(_audio->genre) > 0))
\r
188 *name = strdup(_audio->genre);
\r
191 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
192 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
199 ret = MEDIA_CONTENT_ERROR_NONE;
\r
204 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
205 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
212 int audio_meta_get_album(audio_meta_h audio, char **name)
\r
215 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
218 if((_audio->album != NULL) && (strlen(_audio->album) > 0))
\r
220 *name = strdup(_audio->album);
\r
223 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
224 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
231 ret = MEDIA_CONTENT_ERROR_NONE;
\r
236 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
237 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
243 int audio_meta_get_artist(audio_meta_h audio, char **name)
\r
246 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
249 if((_audio->artist != NULL) && (strlen(_audio->artist) > 0))
\r
251 *name = strdup(_audio->artist);
\r
254 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
255 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
262 ret = MEDIA_CONTENT_ERROR_NONE;
\r
267 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
268 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
276 int audio_meta_get_author(audio_meta_h audio, char** name)
\r
279 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
282 if((_audio->author != NULL) && (strlen(_audio->author) > 0))
\r
284 *name = strdup(_audio->author);
\r
287 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
288 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
295 ret = MEDIA_CONTENT_ERROR_NONE;
\r
300 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
301 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
309 int audio_meta_get_year(audio_meta_h audio,char** year)
\r
312 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
315 if((_audio->year != NULL) && (strlen(_audio->year) > 0))
\r
317 *year = strdup(_audio->year);
\r
320 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
321 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
328 ret = MEDIA_CONTENT_ERROR_NONE;
\r
333 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
334 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
341 int audio_meta_get_copyright(audio_meta_h audio, char** copyright)
\r
344 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
347 if((_audio->copyright != NULL) && (strlen(_audio->copyright) > 0))
\r
349 *copyright = strdup(_audio->copyright);
\r
350 if(*copyright == NULL)
\r
352 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
353 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
360 ret = MEDIA_CONTENT_ERROR_NONE;
\r
365 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
366 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
374 int audio_meta_get_description(audio_meta_h audio, char** description)
\r
377 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
380 if((_audio->description != NULL) && (strlen(_audio->description) > 0))
\r
382 *description = strdup(_audio->description);
\r
383 if(*description == NULL)
\r
385 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
386 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
391 *description = NULL;
\r
393 ret = MEDIA_CONTENT_ERROR_NONE;
\r
398 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
399 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
405 int audio_meta_get_format(audio_meta_h audio, char** format)
\r
408 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
411 if((_audio->format != NULL) && (strlen(_audio->format) > 0))
\r
413 *format = strdup(_audio->format);
\r
414 if(*format == NULL)
\r
416 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
417 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
424 ret = MEDIA_CONTENT_ERROR_NONE;
\r
429 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
430 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
438 int audio_meta_get_bitrate(audio_meta_h audio,int* bitrate)
\r
441 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
442 if(_audio && bitrate)
\r
444 *bitrate = _audio->bitrate;
\r
445 ret = MEDIA_CONTENT_ERROR_NONE;
\r
449 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
450 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
457 int audio_meta_get_track_num(audio_meta_h audio,int* track_num)
\r
460 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
461 if(_audio && track_num)
\r
463 *track_num = _audio->track_num;
\r
464 ret = MEDIA_CONTENT_ERROR_NONE;
\r
468 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
469 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
476 int audio_meta_get_duration(audio_meta_h audio,int* duration)
\r
479 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
482 *duration = _audio->duration;
\r
483 ret = MEDIA_CONTENT_ERROR_NONE;
\r
487 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
488 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
495 int audio_meta_get_rating(audio_meta_h audio,int* rating)
\r
498 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
501 *rating= _audio->rating;
\r
502 ret = MEDIA_CONTENT_ERROR_NONE;
\r
506 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
507 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
514 int audio_meta_get_count_played(audio_meta_h audio,int* count_played)
\r
517 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
520 *count_played = _audio->count_played;
\r
521 ret = MEDIA_CONTENT_ERROR_NONE;
\r
525 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
526 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
533 int audio_meta_get_time_played(audio_meta_h audio,int* time_played)
\r
536 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
539 *time_played = _audio->time_played;
\r
540 ret = MEDIA_CONTENT_ERROR_NONE;
\r
544 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
545 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
552 int audio_meta_get_time_added(audio_meta_h audio,time_t* time_added)
\r
555 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
558 *time_added = _audio->time_added;
\r
559 ret = MEDIA_CONTENT_ERROR_NONE;
\r
563 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
564 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
571 int audio_meta_get_size(audio_meta_h audio,int* size)
\r
574 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
577 *size = _audio->size;
\r
578 ret = MEDIA_CONTENT_ERROR_NONE;
\r
582 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
583 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
590 int audio_meta_get_category(audio_meta_h audio,audio_category_e* category)
\r
593 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
596 *category = _audio->category;
\r
597 ret = MEDIA_CONTENT_ERROR_NONE;
\r
601 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
602 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
609 int audio_meta_update_count_played_to_db(audio_meta_h audio,int count)
\r
611 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
613 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
618 ret = audio_svc_update_item_metadata(_audio->audio_id,AUDIO_SVC_TRACK_DATA_PLAYED_COUNT,count,-1);
\r
620 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
624 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
625 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
632 int audio_meta_update_time_played_to_db(audio_meta_h audio,time_t time)
\r
634 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
635 audio_meta_s* _audio = (audio_meta_s*)audio;
\r
640 ret = audio_svc_update_item_metadata(_audio->audio_id,AUDIO_SVC_TRACK_DATA_PLAYED_TIME,time,-1);
\r
641 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
645 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
646 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
654 int audio_playlist_foreach_playlist_from_db(media_audio_filter_h filter, audio_playlist_cb callback, void* user_data )
\r
656 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
657 char limit_query[MIN_QUERY_SIZE];
\r
658 char search_query[MAX_KEYWORD_SIZE];
\r
659 char order_query[MIN_QUERY_SIZE];
\r
660 char select_query[DEFAULT_QUERY_SIZE];
\r
663 sqlite3_stmt *stmt = NULL;
\r
664 media_audio_filter_s* _filter = NULL;
\r
666 if( callback == NULL)
\r
668 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
669 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
674 _filter = (media_audio_filter_s*)filter;
\r
677 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
681 memset(limit_query,0x00,sizeof(limit_query));
\r
682 memset(search_query,0x00,sizeof(search_query));
\r
683 memset(order_query,0x00,sizeof(order_query));
\r
684 memset(select_query,0x00,sizeof(select_query));
\r
687 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
689 if(strlen(_filter->keyword) < sizeof(search_query))
\r
691 snprintf(search_query,sizeof(search_query)," and name like '%%%s%%'", _filter->keyword);
\r
695 if((media_audio_filter_s*)filter != _filter)
\r
697 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
699 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
700 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
705 search_query[0] = ' ';
\r
708 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
710 snprintf(select_query,sizeof(select_query),"%s", SELECT_PLAYLIST);
\r
713 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
715 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
717 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
719 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
721 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
723 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME);
\r
725 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
727 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME,QUERY_KEYWORD_DESC);
\r
731 if((media_audio_filter_s*)filter != _filter)
\r
732 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
734 ret = _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
736 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
741 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
743 audio_playlist_s* playlist = (audio_playlist_s*)calloc(1,sizeof(audio_playlist_s));
\r
744 if(playlist == NULL)
\r
746 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
747 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
750 playlist->playlist_id= (int)sqlite3_column_int(stmt,0);
\r
751 playlist->name= strdup((const char *)sqlite3_column_text(stmt, 1));
\r
752 if(callback((audio_playlist_h)playlist,user_data) == false)
\r
754 audio_playlist_destroy((audio_playlist_h)playlist);
\r
757 audio_playlist_destroy((audio_playlist_h)playlist);
\r
761 sqlite3_finalize(stmt);
\r
769 int audio_playlist_foreach_media_from_db(audio_playlist_h playlist, media_audio_filter_h filter, media_info_cb callback, void* user_data )
\r
771 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
773 char limit_query[MIN_QUERY_SIZE];
\r
774 char search_query[MAX_KEYWORD_SIZE];
\r
775 char order_query[MIN_QUERY_SIZE];
\r
776 char select_query[DEFAULT_QUERY_SIZE];
\r
778 sqlite3_stmt *stmt = NULL;
\r
779 media_audio_filter_s* _filter = NULL;
\r
781 memset(limit_query,0x00,sizeof(limit_query));
\r
782 memset(search_query,0x00,sizeof(search_query));
\r
783 memset(order_query,0x00,sizeof(order_query));
\r
784 memset(select_query,0x00,sizeof(select_query));
\r
786 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
788 if(_playlist == NULL )
\r
790 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
791 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
793 if(callback == NULL)
\r
795 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
796 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
800 _filter = (media_audio_filter_s*)filter;
\r
803 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
807 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
809 if(strlen(_filter->keyword) < sizeof(search_query))
\r
811 snprintf(search_query,sizeof(search_query),
\r
812 " and display_name like '%%%s%%' ",
\r
817 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
818 if((media_audio_filter_s*)filter != _filter)
\r
819 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
820 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
825 search_query[0] = ' ';
\r
828 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
830 snprintf(select_query, sizeof(select_query),SELECT_MEDIA_FROM_PLAYLIST, _playlist->playlist_id);
\r
833 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
835 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
837 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
839 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
841 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
843 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE);
\r
845 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
847 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE,QUERY_KEYWORD_DESC);
\r
850 if((media_audio_filter_s*)filter != _filter)
\r
851 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
853 ret = _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
855 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
858 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
860 media_info_s* item = (media_info_s*)calloc(1,sizeof(media_info_s));
\r
863 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
864 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
867 _content_item_get_detail(stmt,(media_info_h)item);
\r
868 if(callback((media_info_h)item,user_data) == false )
\r
870 media_info_destroy((media_info_h)item);
\r
873 media_info_destroy((media_info_h)item);
\r
879 sqlite3_finalize(stmt);
\r
886 int audio_playlist_get_media_count_from_db(audio_playlist_h playlist,int* count)
\r
888 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
890 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
892 if(_playlist != NULL)
\r
894 ret = audio_svc_count_playlist_item(_playlist->playlist_id,NULL,NULL, count);
\r
896 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
900 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
901 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
909 int audio_playlist_insert_to_db(const char* name, audio_playlist_h* playlist)
\r
911 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
916 audio_playlist_s* _playlist = (audio_playlist_s*)calloc(1,sizeof(audio_playlist_s));
\r
918 if( _playlist == NULL )
\r
920 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
921 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
925 ret = audio_svc_add_playlist(name,&playlist_id);
\r
926 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
927 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
933 _playlist->playlist_id = playlist_id;
\r
934 _playlist->name = strdup(name);
\r
935 if(_playlist->name == NULL)
\r
938 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
939 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
942 *playlist = (audio_playlist_h)_playlist;
\r
947 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
948 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
955 int audio_playlist_delete_from_db(audio_playlist_h playlist)
\r
957 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
958 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
960 if(_playlist != NULL)
\r
962 ret = audio_svc_delete_playlist(_playlist->playlist_id);
\r
964 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
968 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
969 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
976 int audio_playlist_destroy(audio_playlist_h playlist)
\r
979 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
982 if(_playlist->name)
\r
984 free(_playlist->name);
\r
988 ret = MEDIA_CONTENT_ERROR_NONE;
\r
992 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
993 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
998 int audio_playlist_clone(audio_playlist_h* dst, audio_playlist_h src)
\r
1001 audio_playlist_s* _src = (audio_playlist_s*)src;
\r
1005 audio_playlist_s* _dst = (audio_playlist_s*)calloc(1,sizeof(audio_playlist_s));
\r
1008 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1009 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1012 _dst->playlist_id = _src->playlist_id;
\r
1014 if((_src->name != NULL) && (strlen(_src->name) > 0))
\r
1016 _dst->name = strdup(_src->name);
\r
1017 if(_dst->name == NULL)
\r
1019 audio_playlist_destroy((audio_playlist_h)_dst);
\r
1020 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1021 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1024 *dst = (audio_playlist_h)_dst;
\r
1025 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1029 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1030 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1038 int audio_playlist_get_name(audio_playlist_h playlist,char** name)
\r
1041 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
1044 if((_playlist->name!= NULL) && (strlen(_playlist->name) > 0))
\r
1046 *name = strdup(_playlist->name);
\r
1049 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1050 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1057 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1062 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1063 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1072 int audio_playlist_update_name_to_db(audio_playlist_h playlist,const char* name)
\r
1074 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1075 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
1078 if(_playlist != NULL && name != NULL)
\r
1080 ret = audio_svc_update_playlist_name(_playlist->playlist_id,name);
\r
1081 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
1082 if(ret == MEDIA_CONTENT_ERROR_NONE)
\r
1084 free(_playlist->name);
\r
1085 _playlist->name = strdup(name);
\r
1086 if(_playlist->name == NULL)
\r
1088 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1089 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1096 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1097 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1104 int audio_playlist_add_media_to_db(audio_playlist_h playlist, media_info_h item)
\r
1106 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1108 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
1109 media_info_s* _item = (media_info_s*)item;
\r
1111 if(_playlist != NULL && _item != NULL && _item->media_type == 4)
\r
1114 ret = audio_svc_add_item_to_playlist(_playlist->playlist_id,_item->item_id);
\r
1116 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
1121 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1122 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1129 int audio_playlist_remove_media_from_db(audio_playlist_h playlist, media_info_h item)
\r
1131 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1133 audio_playlist_s* _playlist = (audio_playlist_s*)playlist;
\r
1134 media_info_s* _item = (media_info_s*)item;
\r
1136 if(_playlist != NULL && _item != NULL && _item->media_type == 4)
\r
1139 ret = audio_svc_remove_item_from_playlist_by_audio_id(_playlist->playlist_id,_item->item_id);
\r
1141 ret = _content_error_capi(MEDIA_CONTENT_TYPE,ret);
\r
1145 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1146 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1153 int audio_genre_foreach_genre_from_db(media_audio_filter_h filter, audio_genre_cb callback, void *user_data)
\r
1155 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1157 char limit_query[MIN_QUERY_SIZE];
\r
1158 char search_query[MAX_KEYWORD_SIZE];
\r
1159 char order_query[MIN_QUERY_SIZE];
\r
1160 char select_query[DEFAULT_QUERY_SIZE];
\r
1162 sqlite3_stmt *stmt = NULL;
\r
1164 media_audio_filter_s* _filter = NULL;
\r
1167 if(callback == NULL)
\r
1169 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1170 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1173 memset(limit_query,0x00,sizeof(limit_query));
\r
1174 memset(search_query,0x00,sizeof(search_query));
\r
1175 memset(order_query,0x00,sizeof(order_query));
\r
1176 memset(select_query,0x00,sizeof(select_query));
\r
1178 if(filter != NULL)
\r
1179 _filter = (media_audio_filter_s*)filter;
\r
1182 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
1185 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
1187 if(strlen(_filter->keyword) < sizeof(search_query))
\r
1189 snprintf(search_query,sizeof(search_query)," and name like '%%%s%%'", _filter->keyword);
\r
1194 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1195 if((media_audio_filter_s*)filter != _filter)
\r
1196 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1197 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1202 search_query[0] = ' ';
\r
1205 snprintf(select_query,sizeof(select_query),"%s", SELECT_GENRE_LIST);
\r
1206 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
1208 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
1210 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
1212 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
1214 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
1216 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
1218 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME);
\r
1220 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
1222 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME,QUERY_KEYWORD_DESC);
\r
1226 if((media_audio_filter_s*)filter != _filter)
\r
1227 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1229 ret = _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
1230 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1234 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1236 audio_genre_s* genre = (audio_genre_s*)calloc(1,sizeof(audio_genre_s));
\r
1237 memset(genre,0x00,sizeof(audio_genre_s));
\r
1238 genre->name= strdup((const char *)sqlite3_column_text(stmt, 0));
\r
1239 if(callback((audio_genre_h)genre,user_data) == false)
\r
1241 audio_genre_destroy((audio_genre_h)genre);
\r
1244 audio_genre_destroy((audio_genre_h)genre);
\r
1248 sqlite3_finalize(stmt);
\r
1255 int audio_genre_foreach_media_from_db(audio_genre_h genre, media_audio_filter_h filter, media_info_cb callback, void* user_data )
\r
1257 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1259 char limit_query[MIN_QUERY_SIZE];
\r
1260 char search_query[MAX_KEYWORD_SIZE];
\r
1261 char order_query[MIN_QUERY_SIZE];
\r
1262 char select_query[DEFAULT_QUERY_SIZE];
\r
1264 sqlite3_stmt *stmt = NULL;
\r
1265 media_audio_filter_s* _filter = NULL;
\r
1267 audio_genre_s* _genre = (audio_genre_s*)genre;
\r
1270 if(_genre == NULL || callback == NULL)
\r
1272 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1273 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1276 memset(limit_query,0x00,sizeof(limit_query));
\r
1277 memset(search_query,0x00,sizeof(search_query));
\r
1278 memset(order_query,0x00,sizeof(order_query));
\r
1279 memset(select_query,0x00,sizeof(select_query));
\r
1281 if(filter != NULL)
\r
1282 _filter = (media_audio_filter_s*)filter;
\r
1285 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
1289 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
1291 if(strlen(_filter->keyword) < sizeof(search_query))
\r
1293 snprintf(search_query,sizeof(search_query)," and display_name like '%%%s%%'", _filter->keyword);
\r
1298 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1299 if((media_audio_filter_s*)filter != _filter)
\r
1300 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1301 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1306 search_query[0] = ' ';
\r
1309 snprintf(select_query, sizeof(select_query),SELECT_MEDIA_FROM_GENRE, _genre->name);
\r
1311 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
1314 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
1316 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
1318 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
1320 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
1322 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
1324 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE);
\r
1326 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
1328 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE,QUERY_KEYWORD_DESC);
\r
1332 if((media_audio_filter_s*)filter != _filter)
\r
1333 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1335 ret= _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
1336 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1340 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1342 media_info_s* item = (media_info_s*)calloc(1,sizeof(media_info_s));
\r
1344 _content_item_get_detail(stmt, (media_info_h)item);
\r
1345 if(callback((media_info_h)item,user_data) == false)
\r
1347 media_info_destroy((media_info_h)item);
\r
1350 media_info_destroy((media_info_h)item);
\r
1354 sqlite3_finalize(stmt);
\r
1361 int audio_genre_get_media_count_from_db(audio_genre_h genre,int* count)
\r
1363 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1364 char select_query[DEFAULT_QUERY_SIZE];
\r
1366 sqlite3_stmt *stmt = NULL;
\r
1367 audio_genre_s* _genre = (audio_genre_s*)genre;
\r
1370 memset(select_query,0x00,sizeof(select_query));
\r
1372 if(_genre == NULL)
\r
1374 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1375 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1378 snprintf(select_query,sizeof(select_query),SELECT_MEDIA_COUNT_FROM_GENRE,_genre->name);
\r
1381 ret = _content_query_prepare(&stmt,select_query,NULL,NULL,NULL,NULL);
\r
1382 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1385 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1387 *count = (int)sqlite3_column_int(stmt,0);
\r
1391 sqlite3_finalize(stmt);
\r
1398 int audio_genre_destroy(audio_genre_h genre)
\r
1401 audio_genre_s* _genre = (audio_genre_s*)genre;
\r
1406 free(_genre->name);
\r
1410 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1414 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1415 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1421 int audio_genre_clone(audio_genre_h* dst,audio_genre_h src)
\r
1424 audio_genre_s* _src = (audio_genre_s*)src;
\r
1429 audio_genre_s* _dst = (audio_genre_s*)calloc(1,sizeof(audio_genre_s));
\r
1432 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1433 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1436 if((_src->name != NULL) && (strlen(_src->name) > 0))
\r
1438 _dst->name = strdup(_src->name);
\r
1439 if(_dst->name == NULL)
\r
1441 audio_genre_destroy((audio_genre_h)_dst);
\r
1442 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1443 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1447 *dst = (audio_genre_h)_dst;
\r
1448 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1452 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1453 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1461 int audio_genre_get_name(audio_genre_h genre, char** name)
\r
1464 audio_genre_s* _genre = (audio_genre_s*)genre;
\r
1467 if((_genre->name!= NULL) && (strlen(_genre->name) > 0))
\r
1469 *name = strdup(_genre->name);
\r
1472 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1473 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1480 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1485 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1486 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1494 int audio_album_foreach_album_from_db(media_audio_filter_h filter, audio_album_cb callback, void *user_data)
\r
1496 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1498 char limit_query[MIN_QUERY_SIZE];
\r
1499 char search_query[MAX_KEYWORD_SIZE];
\r
1500 char order_query[MIN_QUERY_SIZE];
\r
1501 char select_query[DEFAULT_QUERY_SIZE];
\r
1503 sqlite3_stmt *stmt = NULL;
\r
1504 media_audio_filter_s* _filter = NULL;
\r
1507 if(callback == NULL )
\r
1509 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1510 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1513 memset(limit_query,0x00,sizeof(limit_query));
\r
1514 memset(search_query,0x00,sizeof(search_query));
\r
1515 memset(order_query,0x00,sizeof(order_query));
\r
1516 memset(select_query,0x00,sizeof(select_query));
\r
1518 if(filter != NULL)
\r
1519 _filter = (media_audio_filter_s*)filter;
\r
1522 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
1525 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
1527 if(strlen(_filter->keyword) < sizeof(search_query))
\r
1529 snprintf(search_query,sizeof(search_query)," and name like '%%%s%%'",_filter->keyword);
\r
1534 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1535 if((media_audio_filter_s*)filter != _filter)
\r
1536 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1537 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1542 search_query[0] = ' ';
\r
1544 snprintf(select_query,sizeof(select_query),"%s", SELECT_ALBUM_LIST);
\r
1546 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
1548 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
1550 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
1552 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
1554 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
1556 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
1558 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME);
\r
1560 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
1562 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME,QUERY_KEYWORD_DESC);
\r
1566 if((media_audio_filter_s*)filter != _filter)
\r
1567 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1569 ret = _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
1570 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1573 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1575 audio_album_s* album = (audio_album_s*)calloc(1,sizeof(audio_album_s));
\r
1579 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1580 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1583 album->name= strdup((const char *)sqlite3_column_text(stmt, 0));
\r
1584 if(callback((audio_album_h)album,user_data) == false)
\r
1586 audio_album_destroy((audio_album_h)album);
\r
1589 audio_album_destroy((audio_album_h)album);
\r
1593 sqlite3_finalize(stmt);
\r
1599 int audio_album_foreach_media_from_db(audio_album_h album, media_audio_filter_h filter, media_info_cb callback, void* user_data )
\r
1601 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1603 char limit_query[MIN_QUERY_SIZE];
\r
1604 char search_query[MAX_KEYWORD_SIZE];
\r
1605 char order_query[MIN_QUERY_SIZE];
\r
1606 char select_query[DEFAULT_QUERY_SIZE];
\r
1608 sqlite3_stmt *stmt = NULL;
\r
1609 media_audio_filter_s* _filter = NULL;
\r
1612 audio_album_s* _album = (audio_album_s*)album;
\r
1615 if( _album == NULL || callback == NULL)
\r
1617 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1618 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1621 memset(limit_query,0x00,sizeof(limit_query));
\r
1622 memset(search_query,0x00,sizeof(search_query));
\r
1623 memset(order_query,0x00,sizeof(order_query));
\r
1624 memset(select_query,0x00,sizeof(select_query));
\r
1627 if(filter != NULL)
\r
1628 _filter = (media_audio_filter_s*)filter;
\r
1631 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
1634 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
1636 if(strlen(_filter->keyword) < sizeof(search_query))
\r
1638 snprintf(search_query,sizeof(search_query)," and display_name like '%%%s%%'", _filter->keyword);
\r
1643 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1644 if((media_audio_filter_s*)filter != _filter)
\r
1645 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1646 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1651 search_query[0] = ' ';
\r
1655 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
1657 snprintf(select_query, sizeof(select_query),SELECT_MEDIA_FROM_ALBUM, _album->name);
\r
1660 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
1662 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
1664 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
1666 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
1668 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
1670 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE);
\r
1672 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
1674 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE,QUERY_KEYWORD_DESC);
\r
1677 if((media_audio_filter_s*)filter != _filter)
\r
1678 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1680 ret = _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
1681 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1685 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1687 media_info_s* item = (media_info_s*)calloc(1,sizeof(media_info_s));
\r
1689 _content_item_get_detail(stmt, (media_info_h)item);
\r
1690 if(callback((media_info_h)item,user_data) == false)
\r
1692 media_info_destroy((media_info_h)item);
\r
1695 media_info_destroy((media_info_h)item);
\r
1699 sqlite3_finalize(stmt);
\r
1708 int audio_album_get_media_count_from_db(audio_album_h album,int* count)
\r
1710 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1711 sqlite3_stmt *stmt = NULL;
\r
1712 audio_album_s* _album = (audio_album_s*)album;
\r
1713 char select_query[DEFAULT_QUERY_SIZE];
\r
1715 memset(select_query,0x00,sizeof(select_query));
\r
1717 if(_album == NULL)
\r
1719 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1720 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1723 snprintf(select_query,sizeof(select_query),SELECT_MEDIA_COUNT_FROM_ALBUM,_album ->name);
\r
1726 ret = _content_query_prepare(&stmt,select_query,NULL,NULL,NULL,NULL);
\r
1727 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1730 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1732 *count = (int)sqlite3_column_int(stmt,0);
\r
1736 sqlite3_finalize(stmt);
\r
1744 int audio_album_destroy(audio_album_h album )
\r
1747 audio_album_s* _album = (audio_album_s*)album;
\r
1752 free(_album->name);
\r
1756 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1760 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1761 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1767 int audio_album_clone(audio_album_h* dst,audio_album_h src)
\r
1770 audio_album_s* _src = (audio_album_s*)src;
\r
1775 audio_album_s* _dst = (audio_album_s*)calloc(1,sizeof(audio_album_s));
\r
1779 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1780 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1783 if((_src->name != NULL) && (strlen(_src->name) > 0))
\r
1785 _dst->name = strdup(_src->name);
\r
1786 if(_dst->name == NULL)
\r
1788 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1789 audio_album_destroy((audio_album_h)_dst);
\r
1790 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1794 *dst = (audio_album_h)_dst;
\r
1795 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1799 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1800 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1807 int audio_album_get_name(audio_album_h album, char** name)
\r
1810 audio_album_s* _album = (audio_album_s*)album;
\r
1813 if((_album->name!= NULL) && (strlen(_album->name) > 0))
\r
1815 *name = strdup(_album->name);
\r
1818 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1819 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1826 ret = MEDIA_CONTENT_ERROR_NONE;
\r
1831 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1832 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
1840 int audio_author_foreach_author_from_db(media_audio_filter_h filter, audio_author_cb callback, void *user_data)
\r
1842 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1844 char limit_query[MIN_QUERY_SIZE];
\r
1845 char search_query[MAX_KEYWORD_SIZE];
\r
1846 char order_query[MIN_QUERY_SIZE];
\r
1847 char select_query[DEFAULT_QUERY_SIZE];
\r
1849 sqlite3_stmt *stmt = NULL;
\r
1850 media_audio_filter_s* _filter = NULL;
\r
1852 if(callback == NULL)
\r
1854 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1855 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1858 memset(limit_query,0x00,sizeof(limit_query));
\r
1859 memset(search_query,0x00,sizeof(search_query));
\r
1860 memset(order_query,0x00,sizeof(order_query));
\r
1861 memset(select_query,0x00,sizeof(select_query));
\r
1863 if(filter != NULL)
\r
1864 _filter = (media_audio_filter_s*)filter;
\r
1867 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
1871 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
1873 if(strlen(_filter->keyword) < sizeof(search_query))
\r
1875 snprintf(search_query,sizeof(search_query)," and name like '%%%s%%'", _filter->keyword);
\r
1880 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1881 if((media_audio_filter_s*)filter != _filter)
\r
1882 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1883 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1888 search_query[0] = ' ';
\r
1891 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
1893 snprintf(select_query,sizeof(select_query),"%s", SELECT_AUTHOR_LIST);
\r
1896 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
1898 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
1900 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
1902 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
1904 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
1906 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME);
\r
1908 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
1910 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME,QUERY_KEYWORD_DESC);
\r
1913 if((media_audio_filter_s*)filter != _filter)
\r
1914 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1917 ret = _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
1918 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
1921 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
1923 audio_author_s* author = (audio_author_s*)calloc(1,sizeof(audio_author_s));
\r
1924 if(author == NULL)
\r
1926 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
1927 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
1930 author->name= strdup((const char *)sqlite3_column_text(stmt, 0));
\r
1931 if(callback((audio_author_h)author,user_data) == false)
\r
1933 audio_author_destroy((audio_author_h)author);
\r
1936 audio_author_destroy((audio_author_h)author);
\r
1940 sqlite3_finalize(stmt);
\r
1946 int audio_author_foreach_media_from_db(audio_author_h author, media_audio_filter_h filter, media_info_cb callback, void* user_data )
\r
1948 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
1950 char limit_query[MIN_QUERY_SIZE];
\r
1951 char search_query[MAX_KEYWORD_SIZE];
\r
1952 char order_query[MIN_QUERY_SIZE];
\r
1953 char select_query[DEFAULT_QUERY_SIZE];
\r
1955 sqlite3_stmt *stmt = NULL;
\r
1956 media_audio_filter_s* _filter = NULL;
\r
1958 audio_author_s* _author = (audio_author_s*)author;
\r
1961 if(_author == NULL || callback == NULL)
\r
1963 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1964 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1967 if(filter != NULL)
\r
1968 _filter = (media_audio_filter_s*)filter;
\r
1971 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
1974 memset(limit_query,0x00,sizeof(limit_query));
\r
1975 memset(search_query,0x00,sizeof(search_query));
\r
1976 memset(order_query,0x00,sizeof(order_query));
\r
1977 memset(select_query,0x00,sizeof(select_query));
\r
1980 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
1982 if(strlen(_filter->keyword) < sizeof(search_query))
\r
1984 snprintf(search_query,sizeof(search_query)," and display_name like '%%%s%%'", _filter->keyword);
\r
1989 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
1990 if((media_audio_filter_s*)filter != _filter)
\r
1991 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
1992 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
1997 search_query[0] = ' ';
\r
2001 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
2003 snprintf(select_query, sizeof(select_query),SELECT_MEDIA_FROM_AUTHOR, _author->name);
\r
2006 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
2008 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
2010 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
2012 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
2014 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
2016 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE);
\r
2018 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
2020 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE,QUERY_KEYWORD_DESC);
\r
2024 if((media_audio_filter_s*)filter != _filter)
\r
2025 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
2027 ret =_content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
2028 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
2032 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
2034 media_info_s* item = (media_info_s*)calloc(1,sizeof(media_info_s));
\r
2037 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2038 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2041 _content_item_get_detail(stmt, (media_info_h)item);
\r
2042 if(callback((media_info_h)item,user_data) == false)
\r
2044 media_info_destroy((media_info_h)item);
\r
2047 media_info_destroy((media_info_h)item);
\r
2051 sqlite3_finalize(stmt);
\r
2060 int audio_author_get_media_count_from_db(audio_author_h author,int* count)
\r
2062 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
2063 sqlite3_stmt *stmt = NULL;
\r
2064 audio_author_s* _author = (audio_author_s*)author;
\r
2065 char select_query[DEFAULT_QUERY_SIZE];
\r
2068 memset(select_query,0x00,sizeof(select_query));
\r
2070 if(_author == NULL)
\r
2072 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2073 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
2077 snprintf(select_query,sizeof(select_query),SELECT_MEDIA_COUNT_FROM_AUTHOR,_author ->name);
\r
2079 ret = _content_query_prepare(&stmt,select_query,NULL,NULL,NULL,NULL);
\r
2080 if(ret!= MEDIA_CONTENT_ERROR_NONE)
\r
2083 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
2085 *count = (int)sqlite3_column_int(stmt,0);
\r
2089 sqlite3_finalize(stmt);
\r
2097 int audio_author_destroy(audio_author_h author )
\r
2100 audio_author_s* _author = (audio_author_s*)author;
\r
2103 if(_author->name)
\r
2105 free(_author->name);
\r
2109 ret = MEDIA_CONTENT_ERROR_NONE;
\r
2113 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2114 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
2120 int audio_author_clone(audio_author_h* dst,audio_author_h src)
\r
2123 audio_author_s* _src = (audio_author_s*)src;
\r
2128 audio_author_s* _dst = (audio_author_s*)calloc(1,sizeof(audio_author_s));
\r
2132 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2133 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2136 if((_src->name != NULL) && (strlen(_src->name) > 0))
\r
2138 _dst->name = strdup(_src->name);
\r
2139 if(_dst->name == NULL)
\r
2141 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2142 audio_author_destroy((audio_author_h)_dst);
\r
2143 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2147 *dst = (audio_author_h)_dst;
\r
2148 ret = MEDIA_CONTENT_ERROR_NONE;
\r
2152 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2153 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
2160 int audio_author_get_name(audio_author_h author, char** name)
\r
2163 audio_author_s* _author = (audio_author_s*)author;
\r
2166 if((_author->name!= NULL) && (strlen(_author->name) > 0))
\r
2168 *name = strdup(_author->name);
\r
2171 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2172 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2179 ret = MEDIA_CONTENT_ERROR_NONE;
\r
2184 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2185 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
2194 int audio_artist_foreach_artist_from_db(media_audio_filter_h filter, audio_artist_cb callback, void *user_data)
\r
2196 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
2198 char limit_query[MIN_QUERY_SIZE];
\r
2199 char search_query[MAX_KEYWORD_SIZE];
\r
2200 char order_query[MIN_QUERY_SIZE];
\r
2201 char select_query[DEFAULT_QUERY_SIZE];
\r
2203 sqlite3_stmt *stmt = NULL;
\r
2204 media_audio_filter_s* _filter = NULL;
\r
2206 if(callback == NULL)
\r
2208 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2209 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
2212 if(filter != NULL)
\r
2213 _filter = (media_audio_filter_s*)filter;
\r
2216 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
2219 memset(limit_query,0x00,sizeof(limit_query));
\r
2220 memset(search_query,0x00,sizeof(search_query));
\r
2221 memset(order_query,0x00,sizeof(order_query));
\r
2222 memset(select_query,0x00,sizeof(select_query));
\r
2224 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
2226 if(strlen(_filter->keyword) < sizeof(search_query))
\r
2228 snprintf(search_query,sizeof(search_query)," and name like '%%%s%%'", _filter->keyword);
\r
2233 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2234 if((media_audio_filter_s*)filter != _filter)
\r
2235 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
2236 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
2241 search_query[0] = ' ';
\r
2244 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
2246 snprintf(select_query,sizeof(select_query),"%s", SELECT_MEDIA_ARTIST_LIST);
\r
2249 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
2251 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
2253 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
2255 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
2257 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
2259 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME);
\r
2261 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
2263 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FIELD_ADDED_TIME,QUERY_KEYWORD_DESC);
\r
2266 if((media_audio_filter_s*)filter != _filter)
\r
2267 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
2269 ret =_content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
2270 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
2273 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
2275 audio_artist_s* artist = (audio_artist_s*)calloc(1,sizeof(audio_artist_s));
\r
2276 if(artist == NULL)
\r
2278 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2279 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2282 artist->name= strdup((const char *)sqlite3_column_text(stmt, 0));
\r
2283 if(callback((audio_artist_h)artist,user_data) == false)
\r
2285 audio_artist_destroy((audio_artist_h)artist);
\r
2288 audio_artist_destroy((audio_artist_h)artist);
\r
2292 sqlite3_finalize(stmt);
\r
2299 int audio_artist_foreach_media_from_db(audio_artist_h artist, media_audio_filter_h filter, media_info_cb callback, void* user_data )
\r
2301 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
2303 char limit_query[MIN_QUERY_SIZE];
\r
2304 char search_query[MAX_KEYWORD_SIZE];
\r
2305 char order_query[MIN_QUERY_SIZE];
\r
2306 char select_query[DEFAULT_QUERY_SIZE];
\r
2308 sqlite3_stmt *stmt = NULL;
\r
2309 media_audio_filter_s* _filter = NULL;
\r
2311 audio_artist_s* _artist = (audio_artist_s*)artist;
\r
2314 if(_artist == NULL || callback == NULL)
\r
2316 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2317 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
2321 if(filter != NULL)
\r
2322 _filter = (media_audio_filter_s*)filter;
\r
2325 media_audio_filter_create((media_audio_filter_h*)&_filter);
\r
2328 memset(limit_query,0x00,sizeof(limit_query));
\r
2329 memset(search_query,0x00,sizeof(search_query));
\r
2330 memset(order_query,0x00,sizeof(order_query));
\r
2331 memset(select_query,0x00,sizeof(select_query));
\r
2333 if((_filter->keyword != NULL) && strlen(_filter->keyword) > 0)
\r
2335 if(strlen(_filter->keyword) < sizeof(search_query))
\r
2337 snprintf(search_query,sizeof(search_query)," and display_name like '%%%s%%'", _filter->keyword);
\r
2342 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2343 if((media_audio_filter_s*)filter != _filter)
\r
2344 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
2345 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
2350 search_query[0] = ' ';
\r
2353 snprintf(limit_query,sizeof(limit_query),"%s %d,%d",QUERY_KEYWORD_LIMIT,_filter->offset,_filter->count);
\r
2355 snprintf(select_query, sizeof(select_query),SELECT_MEDIA_FROM_ARTIST, _artist->name);
\r
2357 if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_ASC)
\r
2359 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME);
\r
2361 else if(_filter->order == MEDIA_CONTENT_SORT_BY_NAME_DESC)
\r
2363 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_NAME,QUERY_KEYWORD_DESC);
\r
2365 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_ASC)
\r
2367 snprintf(order_query,sizeof(order_query),"%s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE);
\r
2369 else if(_filter->order == MEDIA_CONTENT_SORT_BY_DATE_DESC)
\r
2371 snprintf(order_query,sizeof(order_query),"%s %s %s",QUERY_KEYWORD_ORDER_BY,DB_FILED_MODIFIED_DATE,QUERY_KEYWORD_DESC);
\r
2374 if((media_audio_filter_s*)filter != _filter)
\r
2375 media_audio_filter_destroy((media_audio_filter_h)_filter);
\r
2378 ret= _content_query_prepare(&stmt,select_query,NULL,search_query,limit_query,order_query);
\r
2379 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
2382 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
2384 media_info_s* item = (media_info_s*)calloc(1,sizeof(media_info_s));
\r
2387 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2388 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2391 _content_item_get_detail(stmt, (media_info_h)item);
\r
2392 if(callback((media_info_h)item,user_data) == false)
\r
2394 media_info_destroy((media_info_h)item);
\r
2397 media_info_destroy((media_info_h)item);
\r
2401 sqlite3_finalize(stmt);
\r
2410 int audio_artist_get_media_count_from_db(audio_artist_h artist,int* count)
\r
2412 int ret = MEDIA_CONTENT_ERROR_NONE;
\r
2413 sqlite3_stmt *stmt = NULL;
\r
2414 audio_artist_s* _artist = (audio_artist_s*)artist;
\r
2415 char select_query[DEFAULT_QUERY_SIZE];
\r
2418 memset(select_query,0x00,sizeof(select_query));
\r
2419 if(_artist == NULL)
\r
2421 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2422 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
\r
2425 snprintf(select_query,sizeof(select_query),SELECT_MEDIA_COUNT_FROM_ARTIST,_artist ->name);
\r
2427 ret = _content_query_prepare(&stmt,select_query,NULL, NULL,NULL,NULL);
\r
2428 if(ret != MEDIA_CONTENT_ERROR_NONE)
\r
2431 while( sqlite3_step(stmt) == SQLITE_ROW)
\r
2433 *count = (int)sqlite3_column_int(stmt,0);
\r
2437 sqlite3_finalize(stmt);
\r
2445 int audio_artist_destroy(audio_artist_h artist )
\r
2448 audio_artist_s* _artist = (audio_artist_s*)artist;
\r
2451 if(_artist->name)
\r
2453 free(_artist->name);
\r
2457 ret = MEDIA_CONTENT_ERROR_NONE;
\r
2461 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2462 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
2468 int audio_artist_clone(audio_artist_h* dst,audio_artist_h src)
\r
2471 audio_artist_s* _src = (audio_artist_s*)src;
\r
2477 audio_artist_s* _dst = (audio_artist_s*)calloc(1,sizeof(audio_artist_s));
\r
2481 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2482 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2486 if((_src->name != NULL) && (strlen(_src->name) > 0))
\r
2488 _dst->name = strdup(_src->name);
\r
2489 if(_dst->name == NULL)
\r
2491 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2492 audio_artist_destroy((audio_artist_h)_dst);
\r
2493 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2497 *dst = (audio_artist_h)_dst;
\r
2498 ret = MEDIA_CONTENT_ERROR_NONE;
\r
2502 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2503 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r
2510 int audio_artist_get_name(audio_artist_h artist, char** name)
\r
2513 audio_artist_s* _artist = (audio_artist_s*)artist;
\r
2516 if((_artist->name!= NULL) && (strlen(_artist->name) > 0))
\r
2518 *name = strdup(_artist->name);
\r
2521 LOGE("[%s]OUT_OF_MEMORY(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
\r
2522 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
\r
2529 ret = MEDIA_CONTENT_ERROR_NONE;
\r
2534 LOGE("[%s]INVALID_PARAMETER(0x%08x)", __FUNCTION__, MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
\r
2535 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER ;
\r