upload tizen1.0 source
[framework/multimedia/libmedia-service.git] / include / audio-svc-types.h
1 /*\r
2  * libmedia-service\r
3  *\r
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.\r
5  *\r
6  * Contact: Hyunjun Ko <zzoon.ko@samsung.com>, Haejeong Kim <backto.kim@samsung.com>\r
7  *\r
8  * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * you may not use this file except in compliance with the License.\r
10  * You may obtain a copy of the License at\r
11  *\r
12  * http://www.apache.org/licenses/LICENSE-2.0\r
13  *\r
14  * Unless required by applicable law or agreed to in writing, software\r
15  * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * See the License for the specific language governing permissions and\r
18  * limitations under the License.\r
19  *\r
20  */\r
21 \r
22 \r
23 \r
24 #ifndef _AUDIO_SVC_TYPES_H_\r
25 #define _AUDIO_SVC_TYPES_H_\r
26 \r
27 /**\r
28         @addtogroup AUDIO_SVC\r
29         @{\r
30                  * @file                        audio-svc-types.h\r
31                  * @brief               This file defines various types and macros of audio service.\r
32 \r
33  */\r
34 \r
35 /**\r
36         @addtogroup AUDIO_SVC_COMMON\r
37         @{\r
38 */\r
39 \r
40 \r
41 #define AUDIO_SVC_METADATA_LEN_MAX                      193                                             /**<  Length of metadata*/\r
42 #define AUDIO_SVC_FILENAME_SIZE                         1024                                    /**<  Length of File name.*/\r
43 #define AUDIO_SVC_PATHNAME_SIZE                         4096                                    /**<  Length of Path name. */\r
44 #define AUDIO_SVC_PLAYLIST_NAME_SIZE                    101                                             /**<  Length of palylist name*/\r
45 #define AUDIO_SVC_FAVORITE_LIST_ID                              0                                               /**< The index for favorite list*/\r
46 #define AUDIO_SVC_UUID_SIZE                                             36                                              /**< Length of UUID*/\r
47 \r
48 /**\r
49  * Handle type\r
50  */\r
51 typedef int AudioHandleType;            /**< Handle type */\r
52 \r
53 \r
54 /**\r
55  * Type definition for storage_type\r
56  */\r
57 typedef enum{\r
58         AUDIO_SVC_STORAGE_PHONE,                        /**< Phone storage*/\r
59         AUDIO_SVC_STORAGE_MMC,                  /**< MMC storage*/\r
60 }audio_svc_storage_type_e;\r
61 \r
62 /**\r
63  * Type definition for category\r
64  */\r
65 typedef enum{\r
66         AUDIO_SVC_CATEGORY_MUSIC,               /**< Music Category*/\r
67         AUDIO_SVC_CATEGORY_SOUND                /**< Sound Category*/\r
68 }audio_svc_category_type_e;\r
69 \r
70 /**\r
71  * Type definition for rating\r
72  */\r
73 typedef enum{\r
74         AUDIO_SVC_RATING_NONE,                  /**< No rating or Rating 0*/\r
75         AUDIO_SVC_RATING_1,                             /**< Rating 1*/\r
76         AUDIO_SVC_RATING_2,                             /**< Rating 2*/\r
77         AUDIO_SVC_RATING_3,                             /**< Rating 3*/\r
78         AUDIO_SVC_RATING_4,                             /**< Rating 4*/\r
79         AUDIO_SVC_RATING_5,                             /**< Rating 5*/\r
80 }audio_svc_rating_type_e;\r
81 \r
82 /**\r
83         @}\r
84  */\r
85 \r
86 /**\r
87         @addtogroup AUDIO_SVC_GROUP_API\r
88         @{\r
89 */\r
90 \r
91 /**\r
92  * Type definition for group\r
93  */\r
94 typedef enum{\r
95         AUDIO_SVC_GROUP_BY_ALBUM,                                       /**< Group by album*/\r
96         AUDIO_SVC_GROUP_BY_ARTIST,                                      /**< Group by artist*/\r
97         AUDIO_SVC_GROUP_BY_ARTIST_ALBUM,                        /**< Group by album which has special artist condition*/\r
98         AUDIO_SVC_GROUP_BY_GENRE,                                       /**< Group by genre*/\r
99         AUDIO_SVC_GROUP_BY_GENRE_ARTIST,                                /**< Group by artist which has special genre condition*/\r
100         AUDIO_SVC_GROUP_BY_GENRE_ALBUM,                         /**< Group by album which has special genre condition*/\r
101         AUDIO_SVC_GROUP_BY_GENRE_ARTIST_ALBUM,          /**< Group by album which has special genre and artist condirion*/\r
102         AUDIO_SVC_GROUP_BY_FOLDER,                                      /**< Group by folder*/\r
103         AUDIO_SVC_GROUP_BY_YEAR,                                                /**< Group by year*/\r
104         AUDIO_SVC_GROUP_BY_COMPOSER                             /**< Group by author*/\r
105 }audio_svc_group_type_e;\r
106 \r
107 \r
108 /**\r
109  * Type definition for tracks\r
110  */\r
111 typedef enum{\r
112         AUDIO_SVC_TRACK_ALL,                                                    /**< All tracks*/\r
113         AUDIO_SVC_TRACK_BY_ALBUM,                                       /**< Album tracks*/\r
114         AUDIO_SVC_TRACK_BY_ARTIST_ALBUM,                                /** < Albums which has special artist condition */\r
115         AUDIO_SVC_TRACK_BY_ARTIST,                                      /**< Artist tracks*/\r
116         AUDIO_SVC_TRACK_BY_ARTIST_GENRE,                                /**< Genre tracks which has special artist condition*/\r
117         AUDIO_SVC_TRACK_BY_GENRE,                                               /**< Genre tracks*/\r
118         AUDIO_SVC_TRACK_BY_FOLDER,                                      /**< Genre tracks*/\r
119         AUDIO_SVC_TRACK_BY_YEAR,                                                /**< Year tracks*/\r
120         AUDIO_SVC_TRACK_BY_COMPOSER,                            /**< Author tracks*/\r
121         AUDIO_SVC_TRACK_BY_TOPRATING,                           /**< Toprating tracks*/\r
122         AUDIO_SVC_TRACK_BY_PLAYED_TIME,                         /**< Recently played tracks*/\r
123         AUDIO_SVC_TRACK_BY_ADDED_TIME,                          /**< Recently added tracks*/\r
124         AUDIO_SVC_TRACK_BY_PLAYED_COUNT,                                /**< Most played tracks*/\r
125         AUDIO_SVC_TRACK_BY_PLAYLIST,                                    /**< User playlist tracks*/\r
126 }audio_svc_track_type_e;\r
127 \r
128 /**\r
129  * Type definition for group data\r
130  */\r
131 typedef enum{\r
132         AUDIO_SVC_GROUP_ITEM_MAIN_INFO,                         /**< The main group info for the list*/\r
133         AUDIO_SVC_GROUP_ITEM_SUB_INFO,                          /**< The sub group info for the list*/\r
134         AUDIO_SVC_GROUP_ITEM_THUMBNAIL_PATH,            /**< Thumbnail path of first item in the group */\r
135         AUDIO_SVC_GROUP_ITEM_RATING,                                    /**< Album rating*/\r
136 }audio_svc_group_item_type_e;\r
137 \r
138 /**\r
139  * Type definition for list data (track meta data)\r
140  */\r
141 typedef enum{\r
142         AUDIO_SVC_LIST_ITEM_AUDIO_ID,                                   /**< Unique media file index*/\r
143         AUDIO_SVC_LIST_ITEM_PATHNAME,                           /**< Full path and file name of media file*/\r
144         AUDIO_SVC_LIST_ITEM_THUMBNAIL_PATH,                     /**< Thumbnail path of first item in the group */\r
145         AUDIO_SVC_LIST_ITEM_TITLE,                                              /**< Title of media file */\r
146         AUDIO_SVC_LIST_ITEM_ARTIST,                                     /**< Artist of media file */\r
147         AUDIO_SVC_LIST_ITEM_DURATION,                                   /**< Duration of media file*/\r
148         AUDIO_SVC_LIST_ITEM_RATING,                                     /**< The rating used in mtp*/\r
149         AUDIO_SVC_LIST_ITEM_ALBUM,                                      /**< Album of media file*/\r
150 }audio_svc_list_item_type_e;\r
151 \r
152 /**\r
153  * Type definition of track meta data for playlist\r
154  */\r
155 \r
156 typedef enum{\r
157         AUDIO_SVC_PLAYLIST_ITEM_UID,                                            /**< Unique index of playlist item*/\r
158         AUDIO_SVC_PLAYLIST_ITEM_AUDIO_ID,                                       /**< Unique media file index*/\r
159         AUDIO_SVC_PLAYLIST_ITEM_PATHNAME,                               /**< Full path and file name of media file*/\r
160         AUDIO_SVC_PLAYLIST_ITEM_THUMBNAIL_PATH,                 /**< Thumbnail path of first item in the group */\r
161         AUDIO_SVC_PLAYLIST_ITEM_TITLE,                                          /**< Title of media file */\r
162         AUDIO_SVC_PLAYLIST_ITEM_ARTIST,                                 /**< Artist of media file */\r
163         AUDIO_SVC_PLAYLIST_ITEM_DURATION,                               /**< Duration of media file*/\r
164         AUDIO_SVC_PLAYLIST_ITEM_RATING,                                 /**< The rating used in mtp*/\r
165         AUDIO_SVC_PLAYLIST_ITEM_PLAY_ORDER,                             /**     < Play order of media file*/\r
166 }audio_svc_playlist_item_type_e;\r
167 \r
168 /**\r
169         @}\r
170  */\r
171 \r
172 /**\r
173         @addtogroup AUDIO_SVC_ITEM_API\r
174         @{\r
175 */\r
176 \r
177 /**\r
178  * Type definition for track meta data\r
179  */\r
180 typedef enum{\r
181         AUDIO_SVC_TRACK_DATA_STORAGE,                           /**< Storage of media file : internal/external*/\r
182         AUDIO_SVC_TRACK_DATA_AUDIO_ID,                          /**< Unique media file index*/\r
183         AUDIO_SVC_TRACK_DATA_PATHNAME,                          /**< Full path and file name of media file*/\r
184         AUDIO_SVC_TRACK_DATA_THUMBNAIL_PATH,            /**< Thumbnail image file path*/\r
185         AUDIO_SVC_TRACK_DATA_PLAYED_COUNT,                      /**< Played count*/\r
186         AUDIO_SVC_TRACK_DATA_PLAYED_TIME,                       /**< Last played time*/\r
187         AUDIO_SVC_TRACK_DATA_ADDED_TIME,                        /**< Added time*/\r
188         AUDIO_SVC_TRACK_DATA_RATING,                                    /**< User defined rating*/\r
189         AUDIO_SVC_TRACK_DATA_CATEGORY,                          /**< Category : Music/Sound*/\r
190         AUDIO_SVC_TRACK_DATA_TITLE,                                     /**< Track title*/\r
191         AUDIO_SVC_TRACK_DATA_ARTIST,                                    /**< Artist name*/\r
192         AUDIO_SVC_TRACK_DATA_ALBUM,                                     /**< Album name*/\r
193         AUDIO_SVC_TRACK_DATA_GENRE,                                     /**< Genre of track*/\r
194         AUDIO_SVC_TRACK_DATA_AUTHOR,                            /**< Author name*/\r
195         AUDIO_SVC_TRACK_DATA_COPYRIGHT,                         /**< Copyright of track*/\r
196         AUDIO_SVC_TRACK_DATA_DESCRIPTION,                       /**< Description of track*/\r
197         AUDIO_SVC_TRACK_DATA_FORMAT,                            /**< Format of track*/\r
198         AUDIO_SVC_TRACK_DATA_DURATION,                          /**< Duration of track*/\r
199         AUDIO_SVC_TRACK_DATA_BITRATE,                           /**< Bitrate of track*/\r
200         AUDIO_SVC_TRACK_DATA_YEAR,                                      /**< Year of track*/\r
201         AUDIO_SVC_TRACK_DATA_TRACK_NUM,                 /**< Trac number*/\r
202         AUDIO_SVC_TRACK_DATA_ALBUM_RATING,                      /**< Rating of Album*/\r
203         AUDIO_SVC_TRACK_DATA_FAVOURATE  ,                       /**< Favourate of media file*/\r
204 }audio_svc_track_data_type_e;\r
205 /**\r
206         @}\r
207  */\r
208 \r
209 /**\r
210         @addtogroup AUDIO_SVC_PLST_API\r
211         @{\r
212 */\r
213 \r
214 \r
215 /**\r
216  * Type definition for track meta data\r
217  */\r
218 typedef enum{\r
219         AUDIO_SVC_PLAYLIST_ID,                                          /**< Playlist ID*/\r
220         AUDIO_SVC_PLAYLIST_NAME,                                        /**< Playlist Name*/\r
221         AUDIO_SVC_PLAYLIST_THUMBNAIL_PATH               /**< Thumbnail path of first item in the playlist */\r
222 }audio_svc_playlist_e;\r
223 \r
224 /**\r
225  * Type definition for search field\r
226  */\r
227 typedef enum {\r
228         AUDIO_SVC_SEARCH_TITLE,                                 /**< Track title*/\r
229         AUDIO_SVC_SEARCH_ALBUM,                                 /**< Album name*/\r
230         AUDIO_SVC_SEARCH_ARTIST,                                /**< Artist name*/\r
231         AUDIO_SVC_SEARCH_GENRE,                                 /**< Genre of track*/\r
232         AUDIO_SVC_SEARCH_AUTHOR                                 /**< Author name*/\r
233 } audio_svc_serch_field_e;\r
234 \r
235 /**\r
236  * Type definition for order field\r
237  */\r
238 typedef enum {\r
239         AUDIO_SVC_ORDER_BY_TITLE_DESC,                                  /**< Title descending */\r
240         AUDIO_SVC_ORDER_BY_TITLE_ASC,                                   /**< Title ascending */\r
241         AUDIO_SVC_ORDER_BY_ALBUM_DESC,                                  /**< Album descending*/\r
242         AUDIO_SVC_ORDER_BY_ALBUM_ASC,                                   /**< Album ascending*/\r
243         AUDIO_SVC_ORDER_BY_ARTIST_DESC,                                 /**< Artist descending*/\r
244         AUDIO_SVC_ORDER_BY_ARTIST_ASC,                                  /**< Artist ascending*/\r
245         AUDIO_SVC_ORDER_BY_GENRE_DESC,                                  /**< Genre descending*/\r
246         AUDIO_SVC_ORDER_BY_GENRE_ASC,                                   /**< Genre ascending*/\r
247         AUDIO_SVC_ORDER_BY_AUTHOR_DESC,                                 /**< Author descending*/\r
248         AUDIO_SVC_ORDER_BY_AUTHOR_ASC,                                  /**< Author ascending*/\r
249         AUDIO_SVC_ORDER_BY_PLAY_COUNT_DESC,                             /**< Play count descending*/\r
250         AUDIO_SVC_ORDER_BY_PLAY_COUNT_ASC,                              /**< Play count ascending*/\r
251         AUDIO_SVC_ORDER_BY_ADDED_TIME_DESC,                             /**< Added time descending*/\r
252         AUDIO_SVC_ORDER_BY_ADDED_TIME_ASC,                              /**< Added time ascending*/\r
253 } audio_svc_search_order_e;\r
254 \r
255 /**\r
256         @}\r
257  */\r
258 \r
259 /**\r
260         @}\r
261  */\r
262 \r
263 #endif /*_AUDIO_SVC_TYPES_H_*/\r