2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
17 #ifndef __MP_MEDIA_INFO_H__
18 #define __MP_MEDIA_INFO_H__
26 #define MAX_FILTER_LEN 4096
28 typedef struct mp_media_list_s *mp_media_list_h;
29 typedef struct mp_media_info_s *mp_media_info_h;
30 typedef struct filter_s *mp_filter_h;
31 typedef struct playlist_s *mp_playlist_h;
33 typedef bool(* mp_media_info_cb)(mp_media_info_h media, void *user_data);
38 MP_MEDIA_CONTENT_COLLATE_DEFAULT = 0, /**< default collation BINARY */
39 MP_MEDIA_CONTENT_COLLATE_NOCASE = 1, /**< collation NOCASE, not case sensitive */
40 MP_MEDIA_CONTENT_COLLATE_RTRIM = 2, /**< collation RTRIM, trailing space characters are ignored */
41 } mp_media_content_collation_e;
50 MP_TRACK_ALL, /**< All tracks*/
51 MP_TRACK_BY_ALBUM, /**< Album tracks*/
52 MP_TRACK_BY_ARTIST_ALBUM, /** < Albums which has special artist condition */
53 MP_TRACK_BY_ARTIST, /**< Artist tracks*/
54 MP_TRACK_BY_ARTIST_GENRE, /**< Genre tracks which has special artist condition*/
55 MP_TRACK_BY_GENRE, /**< Genre tracks*/
56 MP_TRACK_BY_FOLDER, /**< Genre tracks*/
57 MP_TRACK_BY_YEAR, /**< Year tracks*/
58 MP_TRACK_BY_COMPOSER, /**< Author tracks*/
59 MP_TRACK_BY_FAVORITE, /**< Toprating tracks*/
60 MP_TRACK_BY_PLAYED_TIME, /**< Recently played tracks*/
61 MP_TRACK_BY_ADDED_TIME, /**< Recently added tracks*/
62 MP_TRACK_BY_PLAYED_COUNT, /**< Most played tracks*/
63 MP_TRACK_BY_PLAYLIST, /**< User playlist tracks*/
68 MP_GROUP_BY_ALBUM, /**< Group by album*/
69 MP_GROUP_BY_ARTIST, /**< Group by artist*/
70 MP_GROUP_BY_ARTIST_ALBUM, /**< Group by album which has special artist condition*/
71 MP_GROUP_BY_GENRE, /**< Group by genre*/
72 MP_GROUP_BY_FOLDER, /**< Group by folder*/
73 MP_GROUP_BY_YEAR, /**< Group by year*/
74 MP_GROUP_BY_COMPOSER, /**< Group by author*/
76 MP_GROUP_BY_SYS_PLAYLIST,
82 MP_SYS_PLST_NONE = -4,
83 MP_SYS_PLST_MOST_PLAYED = -3,
84 MP_SYS_PLST_RECENTELY_ADDED = -2,
85 MP_SYS_PLST_RECENTELY_PLAYED = -1,
86 MP_SYS_PLST_QUICK_LIST = 0,
90 int mp_media_info_connect(void);
91 int mp_media_info_disconnect(void);
94 int mp_media_filter_create(mp_filter_h *filter);
95 int mp_media_filter_destory(mp_filter_h filter);
96 int mp_media_filter_set_offset(mp_filter_h filter, int offset, int count);
97 int mp_media_filter_set_order(mp_filter_h filter, bool asc, const char *order_keyword, mp_media_content_collation_e collation);
98 int mp_media_filter_set_condition(mp_filter_h filter, const char *condition, mp_media_content_collation_e collation );
101 int mp_media_info_get_media_id(mp_media_info_h media, char **media_id);
102 int mp_media_info_get_file_path(mp_media_info_h media, char **path);
103 int mp_media_info_get_thumbnail_path(mp_media_info_h media, char **path);
104 int mp_media_info_get_favorite(mp_media_info_h media, bool *favorite);
105 int mp_media_info_is_drm(mp_media_info_h media, bool *drm);
106 int mp_media_info_get_title(mp_media_info_h media, char **title);
107 int mp_media_info_get_album(mp_media_info_h media, char **album);
108 int mp_media_info_get_genre(mp_media_info_h media, char **genre);
109 int mp_media_info_get_artist(mp_media_info_h media, char **artist);
110 int mp_media_info_get_composer(mp_media_info_h media, char **composer);
111 int mp_media_info_get_year(mp_media_info_h media, char **year);
112 int mp_media_info_get_copyright(mp_media_info_h media, char **copyright);
113 int mp_media_info_get_track_num(mp_media_info_h media, char **track_num);
114 int mp_media_info_get_format(mp_media_info_h media, char **format);
115 int mp_media_info_get_media_type(mp_media_info_h media, int *media_type);
116 int mp_media_info_get_bit_rate(mp_media_info_h media, int *bitrate);
117 int mp_media_info_get_sample_rate(mp_media_info_h media, int *sample_rate);
118 int mp_media_info_get_duration(mp_media_info_h media, int *duration);
119 int mp_media_info_get_played_time(mp_media_info_h media, time_t *time);
120 int mp_media_info_get_played_count(mp_media_info_h media, int *count);
121 int mp_media_info_get_added_time(mp_media_info_h media, time_t *time);
122 int mp_media_info_get_playlist_member_id(mp_media_info_h media, int *member_id);
124 int mp_media_info_set_favorite(mp_media_info_h media, bool favorite);
125 int mp_media_info_set_played_time(mp_media_info_h media, time_t time);
126 int mp_media_info_set_played_count(mp_media_info_h media, int count);
127 int mp_media_info_set_added_time(mp_media_info_h media, time_t time);
130 int mp_media_info_create(mp_media_info_h *media_list, const char *media_id);
131 int mp_media_info_create_by_path(mp_media_info_h *media_info, const char *file_path);
132 int mp_media_info_destroy(mp_media_info_h media_info);
135 int mp_media_info_list_count(mp_track_type_e track_type, const char *type_string,const char *type_string2, const char *filter_string, int playlist_id, int *count);
136 int mp_media_info_list_count_w_filter(mp_track_type_e track_type, const char *folder_id, int playlist_id, mp_filter_h filter, int *count);
137 int mp_media_info_list_create(mp_media_list_h *media_list, mp_track_type_e track_type, const char *type_string, const char *type_string2, const char *filter_string, int playlist_id, int offset, int count);
138 int mp_media_info_list_create_w_filter(mp_track_type_e track_type, const char *folder_id, int playlist_id, mp_filter_h filter, mp_media_list_h *media_list);
139 int mp_media_info_list_destroy(mp_media_list_h media_list);
140 mp_media_info_h mp_media_info_list_nth_item(mp_media_list_h media_list, int index);
143 int mp_media_info_group_list_count(mp_group_type_e group_type, const char *type_string, const char *filter_string, int *count);
144 int mp_media_info_group_list_count_w_filter(mp_group_type_e group_type, mp_filter_h filter, int *count);
145 int mp_media_info_group_list_create(mp_media_list_h *media_list, mp_group_type_e group_type, const char *type_string, const char *filter_string, int offset, int count);
146 int mp_media_info_group_list_create_w_filter(mp_filter_h filter, mp_group_type_e group_type, mp_media_list_h *media_list);
147 int mp_media_info_group_list_destroy(mp_media_list_h media_list);
148 mp_media_info_h mp_media_info_group_list_nth_item(mp_media_list_h media_list, int index);
150 int mp_media_info_group_get_main_info(mp_media_info_h media, char **main_info);
151 int mp_media_info_group_get_sub_info(mp_media_info_h media, char **sub_info);
152 int mp_media_info_group_get_playlist_id(mp_media_info_h media, int *playlist_id);
153 int mp_media_info_group_get_folder_id(mp_media_info_h media, char **folder_id);
154 int mp_media_info_group_get_thumbnail_path(mp_media_info_h media, char **path);
157 int mp_media_info_playlist_get_id_by_name(const char *playlist_name, int *playlist_id);
158 int mp_media_info_playlist_insert_to_db(const char * name, int *playlist_id, mp_playlist_h *playlist_handle);
159 int mp_media_info_playlist_handle_destroy(mp_playlist_h playlist_handle);
160 int mp_media_info_playlist_delete_from_db(int playlist_id);
161 int mp_media_info_playlist_add_media(int playlist_id, const char *media_id);
162 int mp_media_info_playlist_remove_media(mp_media_info_h playlist, int memeber_id);
163 int mp_media_info_playlist_set_play_order(mp_media_info_h playlist, int memeber_id, int play_order);
164 int mp_media_info_playlist_update_db(mp_media_info_h playlist);
165 int mp_media_info_playlist_is_exist(const char *playlist_name, bool *exist);
166 int mp_media_info_playlist_unique_name(const char *orig_name, char *unique_name, size_t max_unique_name_length);
167 int mp_media_info_playlist_rename(mp_media_info_h playlist, const char *new_name);
168 int mp_media_info_playlist_get_play_order(mp_media_info_h playlist, int playlist_member_id, int * play_order);
171 int mp_media_info_delete_from_db(const char *path);