4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jonghyuk Choi <jhchoi.choi@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
23 * This file declares common data structure of multimedia framework.
28 * @brief This file declares common data structure of multimedia framework.
36 #ifndef __MM_TYPES_H__
37 #define __MM_TYPES_H__
47 #define MM_MAX_FILENAME_LEN 256 /**< Maximum length of the file name */
48 #define MM_MAX_URL_LEN 4096 /**< Maximum length of the file path */
51 * @def Defines range of logical volume factor.
52 * It's for logical volume control in player.
53 * So, don't use this one for media volume.
54 * range : 0 ~ 1.0 (1.0 = 100%)
56 #define MM_VOLUME_LEVEL_MIN 0 /**< Minimum factor of volume */
57 #define MM_VOLUME_LEVEL_MAX 1.0 /**< Maximum factor of volume */
60 * Multimedia Framework handle type.
62 typedef int MMHandleType; /**< Handle type */
66 * Enumerations of video capture devices.
68 enum MMVideoDeviceType {
69 MM_VIDEO_DEVICE_NONE = -1, /**< No camera */
70 MM_VIDEO_DEVICE_CAMERA0, /**< Primary camera */
71 MM_VIDEO_DEVICE_CAMERA1, /**< Secondary camera */
72 MM_VIDEO_DEVICE_NUM, /**< Number of video capture devices */
76 * Enumerations of audio capture devices.
78 enum MMAudioDeviceType {
79 MM_AUDIO_DEVICE_MIC, /**< Mic device */
80 MM_AUDIO_DEVICE_MODEM, /**< Modem */
81 MM_AUDIO_DEVICE_NUM, /**< Number of audio capture devices */
85 * Enumerations of display surfaces.
88 MM_DISPLAY_SURFACE_X, /**< X surface - default */
89 MM_DISPLAY_SURFACE_EVAS, /**< Evas object surface */
90 MM_DISPLAY_SURFACE_GL, /**< GL surface */
91 MM_DISPLAY_SURFACE_NULL, /**< This just disposes of buffers */
92 MM_DISPLAY_SURFACE_X_EXT, /**< X extension surface - for OSP videotexture(using multi-xpixmap) */
93 MM_DISPLAY_SURFACE_NUM, /**< number of enum */
94 } MMDisplaySurfaceType;
97 * Enumerations of display modes.
99 enum MMDisplayModeType {
100 MM_DISPLAY_MODE_DEFAULT, /**< default - primary display(UI+Video) + secondary display(UI+Video) if available */
101 MM_DISPLAY_MODE_PRI_VIDEO_ON_AND_SEC_VIDEO_FULL_SCREEN, /**< primary display(UI+Video) + secondary display(Video Full Screen) if available */
102 MM_DISPLAY_MODE_PRI_VIDEO_OFF_AND_SEC_VIDEO_FULL_SCREEN, /**< primary display(UI only) + secondary display(Video Full Screen) if available */
103 MM_DISPLAY_MODE_NUM, /**< number of enum */
107 * Enumerations of display devices.
109 enum MMDisplayDeviceType {
110 MM_DISPLAY_DEVICE_MAINLCD, /**< Main LCD - default */
111 MM_DISPLAY_DEVICE_SUBLCD, /**< Sub LCD */
112 MM_DISPLAY_DEVICE_TVOUT, /**< TV out */
113 MM_DISPLAY_DEVICE_MAINLCD_AND_SUBLCD, /**< Main LCD and Sub LCD */
114 MM_DISPLAY_DEVICE_MAINLCD_AND_TVOUT, /**< Main LCD and TV */
115 MM_DISPLAY_DEVICE_NUM, /**< number of enum */
119 * Enumerations of display scales.
121 enum MMDisplayScaleType {
122 MM_DISPLAY_SCALE_DEFAULT, /**< Default size */
123 MM_DISPLAY_SCALE_DOUBLE_LENGTH, /**< Expand width, height to double size */
124 MM_DISPLAY_SCALE_TRIPLE_LENGTH, /**< Expand width, height to triple size */
125 MM_DISPLAY_SCALE_NUM, /**< Number of display scales */
129 * Enumerations of storage.
132 MM_STORAGE_INTERNAL, /**< Internal storage */
133 MM_STORAGE_EXTERNAL, /**< External storage such as memory card */
134 MM_STORAGE_NUM, /**< Number of storage type */
138 * Enumerations for quality.
141 MM_QUALITY_LOW, /**< Low quality */
142 MM_QUALITY_HIGH, /**< High quality */
143 MM_QUALITY_NUM, /**< Number of quality type */
147 * Enumerations of channel type.
149 enum MMVolumeChannelType {
150 MM_VOLUME_CHANNEL_LEFT, /**< Left channel */
151 MM_VOLUME_CHANNEL_RIGHT, /**< Right channel */
152 MM_VOLUME_CHANNEL_NUM, /**< Numbers of channels */
153 MM_CHANNEL_LEFT = MM_VOLUME_CHANNEL_LEFT, /**< Left channel */
154 MM_CHANNEL_RIGHT = MM_VOLUME_CHANNEL_RIGHT, /**< Right channel */
155 MM_CHANNEL_NUM = MM_VOLUME_CHANNEL_NUM, /**< Numbers of channels */
159 * Enumerations of SW Volume Table Type.
161 enum MMSoftwareVolumeTableType {
162 MM_SOUND_VOLUME_TYPE_SYSTEM, /**< Volume table for System */
163 MM_SOUND_VOLUME_TYPE_NOTIFICATION, /**< Volume table for Notification */
164 MM_SOUND_VOLUME_TYPE_ALARM, /**< Volume table for Alarm */
165 MM_SOUND_VOLUME_TYPE_RINGTONE, /**< Volume table for Ringtone */
166 MM_SOUND_VOLUME_TYPE_MEDIA, /**< Volume table for Multimedia */
167 MM_SOUND_VOLUME_TYPE_CALL, /**< Volume table for Call */
168 MM_SOUND_VOLUME_TYPE_VOIP, /**< Volume table for VOIP */
169 MM_SOUND_VOLUME_TYPE_EMERGENCY, /**< Volume table for Emergency (FIXED) */
170 MM_SOUND_VOLUME_TYPE_NUM,
171 MM_SOUND_VOLUME_TABLE_NUM = MM_SOUND_VOLUME_TYPE_NUM,
175 * Enumerations of SW Volume Gain.
177 enum MMSoftwareVolumeGainType {
178 MM_SOUND_VOLUME_GAIN_DEFAULT = 0, /**< Volume gain for Default */
179 MM_SOUND_VOLUME_GAIN_DIALER = 1<<8, /**< Volume gain for Dialer */
180 MM_SOUND_VOLUME_GAIN_TOUCH = 2<<8, /**< Volume gain for Touch */
181 MM_SOUND_VOLUME_GAIN_AF = 3<<8, /**< Volume gain for AF */
182 MM_SOUND_VOLUME_GAIN_SHUTTER1 = 4<<8, /**< Volume gain for Shutter1 */
183 MM_SOUND_VOLUME_GAIN_SHUTTER2 = 5<<8, /**< Volume gain for Shutter2 */
184 MM_SOUND_VOLUME_GAIN_CAMCORDING = 6<<8, /**< Volume gain for Camcording */
185 MM_SOUND_VOLUME_GAIN_MIDI = 7<<8, /**< Volume gain for Midi */
186 MM_SOUND_VOLUME_GAIN_BOOTING = 8<<8, /**< Volume gain for Booting */
187 MM_SOUND_VOLUME_GAIN_VIDEO = 9<<8, /**< Volume gain for Video */
188 MM_SOUND_VOLUME_GAIN_VIDEO_HDMI = 10<<8, /**< Volume gain for Video HDMI */
189 MM_SOUND_VOLUME_GAIN_NUM
192 #define MM_SOUND_PRIORITY_ALLOW_MIX (0x80) /**< This define has deprecated */
194 * Enumerations of Sound Priority.
196 enum MMSoundPriorityType {
197 MM_SOUND_PRIORITY_0, /**< This enum has deprecated */
198 MM_SOUND_PRIORITY_1, /**< This enum has deprecated */
199 MM_SOUND_PRIORITY_2, /**< This enum has deprecated */
200 MM_SOUND_PRIORITY_3, /**< This enum has deprecated */
201 MM_SOUND_PRIORITY_4, /**< This enum has deprecated */
202 MM_SOUND_PRIORITY_5, /**< This enum has deprecated */
203 MM_SOUND_PRIORITY_NUM,
207 * Enumerations of video codec.
209 enum MMVideoCodecType {
210 MM_VIDEO_CODEC_INVALID = -1, /**< Invalid codec type */
211 MM_VIDEO_CODEC_NONE, /**< None (will be deprecated) */
212 MM_VIDEO_CODEC_H263, /**< H263 codec */
213 MM_VIDEO_CODEC_H264, /**< H264 codec */
214 MM_VIDEO_CODEC_H26L, /**< H26L codec */
215 MM_VIDEO_CODEC_MPEG4, /**< MPEG4 codec */
216 MM_VIDEO_CODEC_MPEG1, /**< MPEG1 codec */
217 MM_VIDEO_CODEC_WMV, /**< WMV codec */
218 MM_VIDEO_CODEC_DIVX, /**< DIVX codec */
219 MM_VIDEO_CODEC_XVID, /**< XVID codec */
220 MM_VIDEO_CODEC_H261, /**< H261 codec */
221 MM_VIDEO_CODEC_H262, /**< H262/MPEG2-part2 codec */
222 MM_VIDEO_CODEC_H263V2, /**< H263v2 codec */
223 MM_VIDEO_CODEC_H263V3, /**< H263v3 codec */
224 MM_VIDEO_CODEC_MJPEG, /**< Motion JPEG Video codec */
225 MM_VIDEO_CODEC_MPEG2, /**< MPEG2 codec */
226 MM_VIDEO_CODEC_MPEG4_SIMPLE, /**< MPEG4 part-2 Simple profile codec */
227 MM_VIDEO_CODEC_MPEG4_ADV_SIMPLE, /**< MPEG4 part-2 Advanced Simple profile codec */
228 MM_VIDEO_CODEC_MPEG4_MAIN, /**< MPEG4 part-2 Main profile codec */
229 MM_VIDEO_CODEC_MPEG4_CORE, /**< MPEG4 part-2 Core profile codec */
230 MM_VIDEO_CODEC_MPEG4_ACE, /**< MPEG4 part-2 Adv Coding Eff profile codec */
231 MM_VIDEO_CODEC_MPEG4_ARTS, /**< MPEG4 part-2 Adv RealTime Simple profile codec */
232 MM_VIDEO_CODEC_MPEG4_AVC, /**< MPEG4 part-10 (h.264) codec */
233 MM_VIDEO_CODEC_REAL, /**< Real video */
234 MM_VIDEO_CODEC_VC1, /**< VC-1 video */
235 MM_VIDEO_CODEC_AVS, /**< AVS video */
236 MM_VIDEO_CODEC_CINEPAK, /**< Cinepak video codec */
237 MM_VIDEO_CODEC_INDEO, /**< Indeo video codec */
238 MM_VIDEO_CODEC_THEORA, /**< Theora video codec */
239 MM_VIDEO_CODEC_FLV, /**< Adobe Flash Video codec */
240 MM_VIDEO_CODEC_NUM, /**< Number of video codec type */
244 * Enumerations of audio codec.
246 enum MMAudioCodecType {
247 MM_AUDIO_CODEC_INVALID = -1, /**< Invalid codec type */
248 MM_AUDIO_CODEC_AMR, /**< AMR codec */
249 MM_AUDIO_CODEC_G723_1, /**< G723.1 codec */
250 MM_AUDIO_CODEC_MP3, /**< MP3 codec */
251 MM_AUDIO_CODEC_OGG, /**< OGG codec */
252 MM_AUDIO_CODEC_AAC, /**< AAC codec */
253 MM_AUDIO_CODEC_WMA, /**< WMA codec */
254 MM_AUDIO_CODEC_MMF, /**< MMF codec */
255 MM_AUDIO_CODEC_ADPCM, /**< ADPCM codec */
256 MM_AUDIO_CODEC_WAVE, /**< WAVE codec */
257 MM_AUDIO_CODEC_WAVE_NEW, /**< WAVE codec */
258 MM_AUDIO_CODEC_MIDI, /**< MIDI codec */
259 MM_AUDIO_CODEC_IMELODY, /**< IMELODY codec */
261 MM_AUDIO_CODEC_MPA, /**< MPEG1-Layer1 codec */
262 MM_AUDIO_CODEC_MP2, /**< MPEG1-Layer2 codec */
263 MM_AUDIO_CODEC_G711, /**< G711 codec */
264 MM_AUDIO_CODEC_G722, /**< G722 wideband speech codec */
265 MM_AUDIO_CODEC_G722_1, /**< G722.1 codec */
266 MM_AUDIO_CODEC_G722_2, /**< G722.2 (AMR-WB) codec */
267 MM_AUDIO_CODEC_G723, /**< G723 wideband speech codec */
268 MM_AUDIO_CODEC_G726, /**< G726 (ADPCM) codec */
269 MM_AUDIO_CODEC_G728, /**< G728 speech codec */
270 MM_AUDIO_CODEC_G729, /**< G729 codec */
271 MM_AUDIO_CODEC_G729A, /**< G729a codec */
272 MM_AUDIO_CODEC_G729_1, /**< G729.1 codec */
273 MM_AUDIO_CODEC_REAL, /**< Real audio */
274 MM_AUDIO_CODEC_AAC_LC, /**< AAC-Low complexity codec */
275 MM_AUDIO_CODEC_AAC_MAIN, /**< AAC-Main profile codec */
276 MM_AUDIO_CODEC_AAC_SRS, /**< AAC-Scalable sample rate codec */
277 MM_AUDIO_CODEC_AAC_LTP, /**< AAC-Long term prediction codec */
278 MM_AUDIO_CODEC_AAC_HE_V1, /**< AAC-High Efficiency v1 codec */
279 MM_AUDIO_CODEC_AAC_HE_V2, /**< AAC-High efficiency v2 codec */
280 MM_AUDIO_CODEC_AC3, /**< DolbyDigital codec */
281 MM_AUDIO_CODEC_ALAC, /**< Apple Lossless audio codec */
282 MM_AUDIO_CODEC_ATRAC, /**< Sony proprietary audio codec */
283 MM_AUDIO_CODEC_SPEEX, /**< SPEEX audio codec */
284 MM_AUDIO_CODEC_VORBIS, /**< Vorbis audio codec */
285 MM_AUDIO_CODEC_AIFF, /**< AIFF codec */
286 MM_AUDIO_CODEC_AU, /**< AU codec */
287 MM_AUDIO_CODEC_NONE, /**< None (will be deprecated) */
288 MM_AUDIO_CODEC_PCM, /**< PCM codec */
289 MM_AUDIO_CODEC_ALAW, /**< ALAW codec */
290 MM_AUDIO_CODEC_MULAW, /**< MULAW codec */
291 MM_AUDIO_CODEC_MS_ADPCM, /**< MS ADPCM codec */
292 MM_AUDIO_CODEC_FLAC, /**< Free Lossless audio codec */
293 MM_AUDIO_CODEC_NUM, /**< Number of audio codec type */
297 * Enumerations of image codec.
299 enum MMImageCodecType {
300 MM_IMAGE_CODEC_INVALID = -1,/**< Invalid codec type */
301 MM_IMAGE_CODEC_JPEG, /**< JPEG codec */
302 MM_IMAGE_CODEC_PNG, /**< PNG codec */
303 MM_IMAGE_CODEC_BMP, /**< BMP codec */
304 MM_IMAGE_CODEC_WBMP, /**< WBMP codec */
305 MM_IMAGE_CODEC_TIFF, /**< TIFF codec */
306 MM_IMAGE_CODEC_PCX, /**< PCX codec */
307 MM_IMAGE_CODEC_GIF, /**< GIF codec */
308 MM_IMAGE_CODEC_ICO, /**< ICO codec */
309 MM_IMAGE_CODEC_RAS, /**< RAS codec */
310 MM_IMAGE_CODEC_TGA, /**< TGA codec */
311 MM_IMAGE_CODEC_XBM, /**< XBM codec */
312 MM_IMAGE_CODEC_XPM, /**< XPM codec */
313 MM_IMAGE_CODEC_SRW, /**< SRW (Samsung standard RAW) */
314 MM_IMAGE_CODEC_JPEG_SRW, /**< JPEG + SRW */
315 MM_IMAGE_CODEC_NUM, /**< Number of image codecs */
319 * Enumerations of file container format.
321 enum MMFileFormatType {
322 MM_FILE_FORMAT_INVALID = -1,/**< Invalid file format */
323 MM_FILE_FORMAT_3GP, /**< 3GP file format */
324 MM_FILE_FORMAT_ASF, /**< Advanced Systems File file format */
325 MM_FILE_FORMAT_AVI, /**< Audio Video Interleaved file format */
326 MM_FILE_FORMAT_MATROSKA, /**< MATROSAK file format */
327 MM_FILE_FORMAT_MP4, /**< MP4 file format */
328 MM_FILE_FORMAT_OGG, /**< OGG file format */
329 MM_FILE_FORMAT_NUT, /**< NUT file format */
330 MM_FILE_FORMAT_QT, /**< MOV file format */
331 MM_FILE_FORMAT_REAL, /**< RealMedia file format */
332 MM_FILE_FORMAT_AMR, /**< AMR file format */
333 MM_FILE_FORMAT_AAC, /**< AAC file format */
334 MM_FILE_FORMAT_MP3, /**< MP3 file format */
335 MM_FILE_FORMAT_AIFF, /**< AIFF file format */
336 MM_FILE_FORMAT_AU, /**< Audio file format */
337 MM_FILE_FORMAT_WAV, /**< WAV file format */
338 MM_FILE_FORMAT_MID, /**< MID file format */
339 MM_FILE_FORMAT_MMF, /**< MMF file format */
340 MM_FILE_FORMAT_DIVX, /**< DivX file format */
341 MM_FILE_FORMAT_FLV, /**< Flash video file format */
342 MM_FILE_FORMAT_VOB, /**< DVD-Video Object file format */
343 MM_FILE_FORMAT_IMELODY, /**< IMelody file format */
344 MM_FILE_FORMAT_WMA, /**< WMA file format */
345 MM_FILE_FORMAT_WMV, /**< WMV file format */
346 MM_FILE_FORMAT_JPG, /**< JPEG file format */
347 MM_FILE_FORMAT_FLAC, /**< FLAC file format */
348 MM_FILE_FORMAT_NUM, /**< Number of file format type */
352 * Enumerations of display layers.
355 MM_VIDEO_LAYER_PRIMARY, /**< Primary of the video layer */
356 MM_VIDEO_LAYER_OVERLAY, /**< Overlay of the video layer */
357 MM_VIDEO_LAYER_NUM /**< Number of the video layer */
361 * Enumerations of Pixel formats
364 MM_PIXEL_FORMAT_INVALID = -1, /**< Invalid pixel format */
365 MM_PIXEL_FORMAT_NV12, /**< NV12 pixel format */
366 MM_PIXEL_FORMAT_NV12T, /**< NV12 Tiled pixel format */
367 MM_PIXEL_FORMAT_NV16, /**< NV16 pixel format */
368 MM_PIXEL_FORMAT_NV21, /**< NV21 pixel format */
369 MM_PIXEL_FORMAT_YUYV, /**< YUYV(YUY2) pixel format */
370 MM_PIXEL_FORMAT_UYVY, /**< UYVY pixel format */
371 MM_PIXEL_FORMAT_422P, /**< YUV422(Y:U:V) planar pixel format */
372 MM_PIXEL_FORMAT_I420, /**< I420 pixel format */
373 MM_PIXEL_FORMAT_YV12, /**< YV12 pixel format */
374 MM_PIXEL_FORMAT_RGB565, /**< RGB565 pixel format */
375 MM_PIXEL_FORMAT_RGB888, /**< RGB888 pixel format */
376 MM_PIXEL_FORMAT_RGBA, /**< RGBA pixel format */
377 MM_PIXEL_FORMAT_ARGB, /**< ARGB pixel format */
378 MM_PIXEL_FORMAT_ENCODED, /**< Encoded pixel format */
379 MM_PIXEL_FORMAT_ITLV_JPEG_UYVY, /**< FIXME: JPEG+UYVY Interleaved format */
380 MM_PIXEL_FORMAT_NUM /**< Number of the pixel format */
384 * Enumerations of video input rotation type.
387 MM_VIDEO_INPUT_ROTATION_NONE, /**< No rotation of the display */
388 MM_VIDEO_INPUT_ROTATION_90, /**< 90 degree rotation */
389 MM_VIDEO_INPUT_ROTATION_180, /**< 180 degree rotation */
390 MM_VIDEO_INPUT_ROTATION_270, /**< 270 degree rotation */
391 MM_VIDEO_INPUT_ROTATION_NUM /**< Number of the rotation */
392 } MMVideoInputRotationType;
395 * Enumerations of display rotation type.
398 MM_DISPLAY_ROTATION_NONE, /**< No rotation of the display */
399 MM_DISPLAY_ROTATION_90, /**< 90 degree rotation */
400 MM_DISPLAY_ROTATION_180, /**< 180 degree rotation */
401 MM_DISPLAY_ROTATION_270, /**< 270 degree rotation */
402 MM_DISPLAY_ROTATION_NUM /**< Number of the rotation */
403 } MMDisplayRotationType;
406 * Enumerations of flip type.
409 MM_FLIP_NONE, /**< No Flip */
410 MM_FLIP_HORIZONTAL, /**< Horizontal flip */
411 MM_FLIP_VERTICAL, /**< Vertical flip */
412 MM_FLIP_BOTH, /**< Horizontal and Vertical flip */
413 MM_FLIP_NUM /**< Number of flip */
417 * Enumerations of streaming type.
420 STREAMING_SERVICE_VOD, /**< Streaming is vod */
421 STREAMING_SERVICE_LIVE, /**< Streaming is live stream */
422 STREAMING_SERVICE_NONE, /**< Not an streaming */
423 STREAMING_SERVICE_NUM, /**< Number of the streaming type */
430 int width; /**< width */
431 int height; /**< height */
435 * Type definition of rectangle.
436 * This will be deprecated.
439 unsigned int x; /**< Start x point */
440 unsigned int y; /**< Start y point */
441 unsigned int width; /**< width */
442 unsigned int height; /**< Height */
445 #define BT_ADDR_LEN 18 /**< Length of BT address */
447 * bluetooth information.
450 int mode; /**< BT enable/disable */
451 char addr[BT_ADDR_LEN]; /**< BT device address */
456 * Enumerations of bluetooth mode
458 enum MMBluetoothMode {
459 MM_BLUETOOTH_DISABLE = 0,
464 * Enumerations of sound path policy
466 enum MMAudioRoutePolicy {
467 MM_AUDIOROUTE_USE_EXTERNAL_SETTING = -1,
468 MM_AUDIOROUTE_PLAYBACK_NORMAL,
469 MM_AUDIOROUTE_PLAYBACK_ALERT,
470 MM_AUDIOROUTE_PLAYBACK_HEADSET_ONLY,
471 MM_AUDIOROUTE_CAPTURE_NORMAL = 0,
472 MM_AUDIOROUTE_CAPTURE_MAINMIC_ONLY,
473 MM_AUDIOROUTE_CAPTURE_STEREOMIC_ONLY,
477 * Enumerations of display geometry method
480 MM_DISPLAY_METHOD_LETTER_BOX = 0,
481 MM_DISPLAY_METHOD_ORIGIN_SIZE,
482 MM_DISPLAY_METHOD_FULL_SCREEN,
483 MM_DISPLAY_METHOD_CROPPED_FULL,
484 MM_DISPLAY_METHOD_ORIGIN_OR_LETTER,
485 MM_DISPLAY_METHOD_CUSTOM_ROI,
486 }MMDisplayGeometryMethod;
493 #endif /* __MM_TYPES_H__ */