322eb0d82136d1ef0e5bbe297a321e4c5c1394ca
[platform/core/multimedia/libmm-common.git] / include / mm_types.h
1 /*
2  * libmm-common
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jonghyuk Choi <jhchoi.choi@samsung.com>
7  *
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
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
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.
19  *
20  */
21
22 /**
23  * This file declares common data structure of multimedia framework.
24  *
25  * @file                mm_types.h
26  * @author
27  * @version             1.0
28  * @brief               This file declares common data structure of multimedia framework.
29  */
30
31 /**
32         @addtogroup COMMON
33         @{
34  */
35
36 #ifndef __MM_TYPES_H__
37 #define __MM_TYPES_H__
38
39 #include <stdbool.h>
40
41
42 #ifdef __cplusplus
43         extern "C" {
44 #endif
45
46
47 #define MM_MAX_FILENAME_LEN     256                     /**< Maximum length of the file name */
48 #define MM_MAX_URL_LEN          2048    /**< Maximum length of the maximum URL */
49
50 /**
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%)
55  */
56 #define MM_VOLUME_LEVEL_MIN     0       /**< Minimum factor of volume */
57 #define MM_VOLUME_LEVEL_MAX     1.0     /**< Maximum factor of volume */
58
59 /**
60  * Multimedia Framework handle type.
61  */
62 typedef int MMHandleType;               /**< Handle type */
63
64
65 /**
66  * Enumerations of video capture devices.
67  */
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_CAMERAPLEX, /**< Primary camera + Secondary camera */
73         MM_VIDEO_DEVICE_NUM,            /**< Number of video capture devices */
74 };
75
76 /**
77  * Enumerations of audio capture devices.
78  */
79 enum MMAudioDeviceType {
80         MM_AUDIO_DEVICE_MIC,    /**< Mic device */
81         MM_AUDIO_DEVICE_MODEM,  /**< Modem */
82         MM_AUDIO_DEVICE_RADIO,  /**< Radio */
83         MM_AUDIO_DEVICE_NUM,    /**< Number of audio capture devices */
84 };
85
86 /**
87  * Enumerations of display surfaces.
88  */
89 typedef enum {
90         MM_DISPLAY_SURFACE_X,                  /**< X surface - default */
91         MM_DISPLAY_SURFACE_EVAS,               /**< Evas object surface */
92         MM_DISPLAY_SURFACE_GL,                 /**< GL surface */
93         MM_DISPLAY_SURFACE_NULL,               /**< This just disposes of buffers */
94         MM_DISPLAY_SURFACE_X_EXT,              /**< X extension surface - for OSP videotexture(using multi-xpixmap) */
95         MM_DISPLAY_SURFACE_NUM,                /**< number of enum */
96 } MMDisplaySurfaceType;
97
98 /**
99  * Enumerations of display modes.
100  */
101 enum MMDisplayModeType {
102         MM_DISPLAY_MODE_DEFAULT,                                        /**< default - primary display(UI+Video) + secondary display(UI+Video) if available */
103         MM_DISPLAY_MODE_PRI_VIDEO_ON_AND_SEC_VIDEO_FULL_SCREEN,         /**< primary display(UI+Video) + secondary display(Video Full Screen) if available */
104         MM_DISPLAY_MODE_PRI_VIDEO_OFF_AND_SEC_VIDEO_FULL_SCREEN,        /**< primary display(UI only) + secondary display(Video Full Screen) if available */
105         MM_DISPLAY_MODE_NUM,                                            /**< number of enum */
106 };
107
108 /**
109  * Enumerations of display devices.
110  */
111 enum MMDisplayDeviceType {
112         MM_DISPLAY_DEVICE_MAINLCD,             /**< Main LCD - default */
113         MM_DISPLAY_DEVICE_SUBLCD,              /**< Sub LCD */
114         MM_DISPLAY_DEVICE_TVOUT,               /**< TV out */
115         MM_DISPLAY_DEVICE_MAINLCD_AND_SUBLCD,  /**< Main LCD and Sub LCD */
116         MM_DISPLAY_DEVICE_MAINLCD_AND_TVOUT,   /**< Main LCD and TV */
117         MM_DISPLAY_DEVICE_NUM,                 /**< number of enum */
118 };
119
120 /**
121  * Enumerations of display scales.
122  */
123 enum MMDisplayScaleType {
124         MM_DISPLAY_SCALE_DEFAULT,               /**< Default size */
125         MM_DISPLAY_SCALE_DOUBLE_LENGTH, /**< Expand width, height to double size */
126         MM_DISPLAY_SCALE_TRIPLE_LENGTH, /**< Expand width, height to triple size */
127         MM_DISPLAY_SCALE_NUM,                   /**< Number of display scales */
128 };
129
130 /**
131  * Enumerations of storage.
132  */
133 enum MMStorageType {
134         MM_STORAGE_INTERNAL,                    /**< Internal storage */
135         MM_STORAGE_EXTERNAL,                    /**< External storage such as memory card */
136         MM_STORAGE_NUM,                                 /**< Number of storage type */
137 };
138
139 /**
140  * Enumerations for quality.
141  */
142 enum MMQualityType {
143         MM_QUALITY_LOW,         /**< Low quality */
144         MM_QUALITY_HIGH,        /**< High quality */
145         MM_QUALITY_NUM,         /**< Number of quality type */
146 };
147
148 /**
149  * Enumerations of channel type.
150  */
151 enum MMVolumeChannelType {
152         MM_VOLUME_CHANNEL_LEFT,         /**< Left channel */
153         MM_VOLUME_CHANNEL_RIGHT,                /**< Right channel */
154         MM_VOLUME_CHANNEL_NUM,          /**< Numbers of channels */
155         MM_CHANNEL_LEFT = MM_VOLUME_CHANNEL_LEFT,               /**< Left channel */
156         MM_CHANNEL_RIGHT = MM_VOLUME_CHANNEL_RIGHT,             /**< Right channel */
157         MM_CHANNEL_NUM = MM_VOLUME_CHANNEL_NUM,         /**< Numbers of channels */
158 };
159
160 /*
161  * Enumerations of SW Volume Table Type.
162  */
163 enum MMSoftwareVolumeTableType {
164         MM_SOUND_VOLUME_TYPE_SYSTEM,            /**< Volume table for System */
165         MM_SOUND_VOLUME_TYPE_NOTIFICATION,      /**< Volume table for Notification */
166         MM_SOUND_VOLUME_TYPE_ALARM,                     /**< Volume table for Alarm */
167         MM_SOUND_VOLUME_TYPE_RINGTONE,          /**< Volume table for Ringtone */
168         MM_SOUND_VOLUME_TYPE_MEDIA,                     /**< Volume table for Multimedia */
169         MM_SOUND_VOLUME_TYPE_CALL,                      /**< Volume table for Call */
170         MM_SOUND_VOLUME_TYPE_VOIP,                      /**< Volume table for VOIP */
171         MM_SOUND_VOLUME_TYPE_VOICE,                     /**< Volume table for VOICE */
172         MM_SOUND_VOLUME_TYPE_SVOICE,                    /**< Volume table for SVOICE */
173         MM_SOUND_VOLUME_TYPE_EMERGENCY,         /**< Volume table for Emergency (FIXED) */
174         MM_SOUND_VOLUME_TYPE_NUM,
175         MM_SOUND_VOLUME_TABLE_NUM = MM_SOUND_VOLUME_TYPE_NUM,
176 };
177
178 /*
179  * Enumerations of SW Volume Gain.
180  */
181 enum MMSoftwareVolumeGainType {
182         MM_SOUND_VOLUME_GAIN_DEFAULT    = 0,            /**< Volume gain for Default */
183         MM_SOUND_VOLUME_GAIN_DIALER             = 1<<8,         /**< Volume gain for Dialer */
184         MM_SOUND_VOLUME_GAIN_TOUCH              = 2<<8,         /**< Volume gain for Touch */
185         MM_SOUND_VOLUME_GAIN_AF                 = 3<<8,         /**< Volume gain for AF */
186         MM_SOUND_VOLUME_GAIN_SHUTTER1   = 4<<8,         /**< Volume gain for Shutter1 */
187         MM_SOUND_VOLUME_GAIN_SHUTTER2   = 5<<8,         /**< Volume gain for Shutter2 */
188         MM_SOUND_VOLUME_GAIN_CAMCORDING = 6<<8,         /**< Volume gain for Camcording */
189         MM_SOUND_VOLUME_GAIN_MIDI               = 7<<8,         /**< Volume gain for Midi */
190         MM_SOUND_VOLUME_GAIN_BOOTING    = 8<<8,         /**< Volume gain for Booting */
191         MM_SOUND_VOLUME_GAIN_VIDEO              = 9<<8,         /**< Volume gain for Video */
192         MM_SOUND_VOLUME_GAIN_TTS                = 10<<8,        /**< Volume gain for TTS */
193         MM_SOUND_VOLUME_GAIN_NUM
194 };
195
196 #define MM_SOUND_PRIORITY_ALLOW_MIX     (0x80) /**< This define has deprecated */
197 /*
198  * Enumerations of Sound Priority.
199  */
200 enum MMSoundPriorityType {
201         MM_SOUND_PRIORITY_0,            /**< This enum has deprecated */
202         MM_SOUND_PRIORITY_1,            /**< This enum has deprecated */
203         MM_SOUND_PRIORITY_2,            /**< This enum has deprecated */
204         MM_SOUND_PRIORITY_3,            /**< This enum has deprecated */
205         MM_SOUND_PRIORITY_4,            /**< This enum has deprecated */
206         MM_SOUND_PRIORITY_5,            /**< This enum has deprecated */
207         MM_SOUND_PRIORITY_NUM,
208 };
209
210 /**
211  * Enumerations of video codec.
212  */
213 enum MMVideoCodecType {
214         MM_VIDEO_CODEC_INVALID = -1,    /**< Invalid codec type */
215         MM_VIDEO_CODEC_NONE,                    /**< None (will be deprecated) */
216         MM_VIDEO_CODEC_H263,                    /**< H263 codec         */
217         MM_VIDEO_CODEC_H264,                    /**< H264 codec         */
218         MM_VIDEO_CODEC_H26L,                    /**< H26L codec         */
219         MM_VIDEO_CODEC_MPEG4,                   /**< MPEG4 codec        */
220         MM_VIDEO_CODEC_MPEG1,                   /**< MPEG1 codec        */
221         MM_VIDEO_CODEC_WMV,                     /**< WMV codec          */
222         MM_VIDEO_CODEC_DIVX,                    /**< DIVX codec         */
223         MM_VIDEO_CODEC_XVID,                    /**< XVID codec         */
224         MM_VIDEO_CODEC_H261,                            /**< H261 codec                                                                         */
225         MM_VIDEO_CODEC_H262,                            /**< H262/MPEG2-part2 codec                                                     */
226         MM_VIDEO_CODEC_H263V2,                          /**< H263v2 codec                                                                       */
227         MM_VIDEO_CODEC_H263V3,                          /**< H263v3 codec                                                                       */
228         MM_VIDEO_CODEC_MJPEG,                           /**< Motion JPEG Video codec                                            */
229         MM_VIDEO_CODEC_MPEG2,                           /**< MPEG2 codec                                                                        */
230         MM_VIDEO_CODEC_MPEG4_SIMPLE,        /**< MPEG4 part-2 Simple profile codec                              */
231         MM_VIDEO_CODEC_MPEG4_ADV_SIMPLE,    /**< MPEG4 part-2 Advanced Simple profile codec             */
232         MM_VIDEO_CODEC_MPEG4_MAIN,                      /**< MPEG4 part-2 Main profile codec                            */
233         MM_VIDEO_CODEC_MPEG4_CORE,                      /**< MPEG4 part-2 Core profile codec                            */
234         MM_VIDEO_CODEC_MPEG4_ACE,                       /**< MPEG4 part-2 Adv Coding Eff profile codec          */
235         MM_VIDEO_CODEC_MPEG4_ARTS,                      /**< MPEG4 part-2 Adv RealTime Simple profile codec     */
236         MM_VIDEO_CODEC_MPEG4_AVC,                       /**< MPEG4 part-10 (h.264) codec                                        */
237         MM_VIDEO_CODEC_REAL,                            /**< Real video                                                                         */
238         MM_VIDEO_CODEC_VC1,                                     /**< VC-1 video                                                                         */
239         MM_VIDEO_CODEC_AVS,                                     /**< AVS video                                                                          */
240         MM_VIDEO_CODEC_CINEPAK,                         /**< Cinepak video      codec                                                   */
241         MM_VIDEO_CODEC_INDEO,                           /**< Indeo video        codec                                                   */
242         MM_VIDEO_CODEC_THEORA,                          /**< Theora video       codec                                                   */
243         MM_VIDEO_CODEC_FLV,                                     /**< Adobe Flash Video  codec                                           */
244         MM_VIDEO_CODEC_NUM,                     /**< Number of video codec type */
245 };
246
247 /**
248  * Enumerations of audio codec.
249  */
250 enum MMAudioCodecType {
251         MM_AUDIO_CODEC_INVALID = -1,    /**< Invalid codec type */
252         MM_AUDIO_CODEC_AMR,                     /**< AMR codec          */
253         MM_AUDIO_CODEC_G723_1,                  /**< G723.1 codec       */
254         MM_AUDIO_CODEC_MP3,                     /**< MP3 codec          */
255         MM_AUDIO_CODEC_OGG,                     /**< OGG codec          */
256         MM_AUDIO_CODEC_AAC,                     /**< AAC codec          */
257         MM_AUDIO_CODEC_WMA,                     /**< WMA codec          */
258         MM_AUDIO_CODEC_MMF,                     /**< MMF codec          */
259         MM_AUDIO_CODEC_ADPCM,                   /**< ADPCM codec        */
260         MM_AUDIO_CODEC_WAVE,                    /**< WAVE codec         */
261         MM_AUDIO_CODEC_WAVE_NEW,                        /**< WAVE codec         */
262         MM_AUDIO_CODEC_MIDI,                    /**< MIDI codec         */
263         MM_AUDIO_CODEC_IMELODY,         /**< IMELODY codec      */
264         MM_AUDIO_CODEC_MXMF,
265         MM_AUDIO_CODEC_MPA,                     /**< MPEG1-Layer1 codec                                         */
266         MM_AUDIO_CODEC_MP2,                     /**< MPEG1-Layer2 codec                                         */
267         MM_AUDIO_CODEC_G711,            /**< G711 codec                                                         */
268         MM_AUDIO_CODEC_G722,            /**< G722 wideband speech codec                         */
269         MM_AUDIO_CODEC_G722_1,          /**< G722.1 codec                                                       */
270         MM_AUDIO_CODEC_G722_2,          /**< G722.2  (AMR-WB) codec                                     */
271         MM_AUDIO_CODEC_G723,            /**< G723 wideband speech codec                         */
272         MM_AUDIO_CODEC_G726,            /**< G726 (ADPCM) codec                                         */
273         MM_AUDIO_CODEC_G728,            /**< G728 speech codec                                          */
274         MM_AUDIO_CODEC_G729,            /**< G729 codec                                                         */
275         MM_AUDIO_CODEC_G729A,           /**< G729a codec                                                        */
276         MM_AUDIO_CODEC_G729_1,          /**< G729.1 codec                                                       */
277         MM_AUDIO_CODEC_REAL,        /**< Real audio                                                     */
278         MM_AUDIO_CODEC_AAC_LC,          /**< AAC-Low complexity codec                           */
279         MM_AUDIO_CODEC_AAC_MAIN,        /**< AAC-Main profile codec                                     */
280         MM_AUDIO_CODEC_AAC_SRS,         /**< AAC-Scalable sample rate codec                     */
281         MM_AUDIO_CODEC_AAC_LTP,         /**< AAC-Long term prediction codec                     */
282         MM_AUDIO_CODEC_AAC_HE_V1,       /**< AAC-High Efficiency v1 codec                       */
283         MM_AUDIO_CODEC_AAC_HE_V2,       /**< AAC-High efficiency v2 codec                       */
284         MM_AUDIO_CODEC_AC3,                     /**< DolbyDigital codec                                         */
285         MM_AUDIO_CODEC_ALAC,            /**< Apple Lossless audio codec                         */
286         MM_AUDIO_CODEC_ATRAC,           /**< Sony proprietary audio codec                       */
287         MM_AUDIO_CODEC_SPEEX,           /**< SPEEX audio codec                                          */
288         MM_AUDIO_CODEC_VORBIS,          /**< Vorbis audio codec                                         */
289         MM_AUDIO_CODEC_AIFF,        /**< AIFF codec                                                             */
290         MM_AUDIO_CODEC_AU,              /**< AU codec                                                           */
291         MM_AUDIO_CODEC_NONE,                    /**< None (will be deprecated) */
292         MM_AUDIO_CODEC_PCM,                     /**< PCM codec */
293         MM_AUDIO_CODEC_ALAW,                    /**< ALAW codec */
294         MM_AUDIO_CODEC_MULAW,                   /**< MULAW codec */
295         MM_AUDIO_CODEC_MS_ADPCM,        /**< MS ADPCM codec */
296         MM_AUDIO_CODEC_FLAC,                    /**< Free Lossless audio codec                          */
297         MM_AUDIO_CODEC_NUM,                     /**< Number of audio codec type */
298 };
299
300 /**
301  * Enumerations of image codec.
302  */
303 enum MMImageCodecType {
304         MM_IMAGE_CODEC_INVALID = -1,/**< Invalid codec type */
305         MM_IMAGE_CODEC_JPEG,        /**< JPEG codec */
306         MM_IMAGE_CODEC_PNG,         /**< PNG codec              */
307         MM_IMAGE_CODEC_BMP,         /**< BMP codec              */
308         MM_IMAGE_CODEC_WBMP,        /**< WBMP codec             */
309         MM_IMAGE_CODEC_TIFF,        /**< TIFF codec             */
310         MM_IMAGE_CODEC_PCX,         /**< PCX codec              */
311         MM_IMAGE_CODEC_GIF,         /**< GIF codec              */
312         MM_IMAGE_CODEC_ICO,         /**< ICO codec              */
313         MM_IMAGE_CODEC_RAS,         /**< RAS codec              */
314         MM_IMAGE_CODEC_TGA,         /**< TGA codec              */
315         MM_IMAGE_CODEC_XBM,         /**< XBM codec              */
316         MM_IMAGE_CODEC_XPM,         /**< XPM codec              */
317         MM_IMAGE_CODEC_SRW,         /**< SRW (Samsung standard RAW) */
318         MM_IMAGE_CODEC_JPEG_SRW,    /**< JPEG + SRW */
319         MM_IMAGE_CODEC_NUM,         /**< Number of image codecs */
320 };
321
322 /**
323  * Enumerations of file container format.
324  */
325 enum MMFileFormatType {
326         MM_FILE_FORMAT_INVALID = -1,/**< Invalid file format */
327         MM_FILE_FORMAT_3GP,                     /**< 3GP file format */
328         MM_FILE_FORMAT_ASF,                     /**< Advanced Systems File file format */
329         MM_FILE_FORMAT_AVI,                     /**< Audio Video Interleaved file format */
330         MM_FILE_FORMAT_MATROSKA,        /**< MATROSAK file format */
331         MM_FILE_FORMAT_MP4,                     /**< MP4 file format */
332         MM_FILE_FORMAT_OGG,                     /**< OGG file format */
333         MM_FILE_FORMAT_NUT,                     /**< NUT file format */
334         MM_FILE_FORMAT_QT,                      /**< MOV file format */
335         MM_FILE_FORMAT_REAL,            /**< RealMedia file format */
336         MM_FILE_FORMAT_AMR,                     /**< AMR file format */
337         MM_FILE_FORMAT_AAC,                     /**< AAC file format */
338         MM_FILE_FORMAT_MP3,                     /**< MP3 file format */
339         MM_FILE_FORMAT_AIFF,            /**< AIFF file format */
340         MM_FILE_FORMAT_AU,                      /**< Audio file format */
341         MM_FILE_FORMAT_WAV,                     /**< WAV file format */
342         MM_FILE_FORMAT_MID,                     /**< MID file format */
343         MM_FILE_FORMAT_MMF,                     /**< MMF file format */
344         MM_FILE_FORMAT_DIVX,            /**< DivX file format */
345         MM_FILE_FORMAT_FLV,                     /**< Flash video file format */
346         MM_FILE_FORMAT_VOB,                     /**< DVD-Video Object file format */
347         MM_FILE_FORMAT_IMELODY,         /**< IMelody file format */
348         MM_FILE_FORMAT_WMA,             /**< WMA file format */
349         MM_FILE_FORMAT_WMV,             /**< WMV file format */
350         MM_FILE_FORMAT_JPG,             /**< JPEG file format */
351         MM_FILE_FORMAT_FLAC,                            /**< FLAC file format */
352         MM_FILE_FORMAT_M2TS,            /**< MPEG2-TransportStream file format */
353         MM_FILE_FORMAT_NUM,             /**< Number of file format type */
354 };
355
356 /**
357  * Enumerations of display layers.
358  */
359 typedef enum {
360         MM_VIDEO_LAYER_PRIMARY,         /**< Primary of the video layer */
361         MM_VIDEO_LAYER_OVERLAY,         /**< Overlay of the video layer */
362         MM_VIDEO_LAYER_NUM              /**< Number of the video layer */
363 } MMVideoLayerType;
364
365 /**
366  * Enumerations of Pixel formats
367  */
368 typedef enum {
369         MM_PIXEL_FORMAT_INVALID = -1,   /**< Invalid pixel format */
370         MM_PIXEL_FORMAT_NV12,           /**< NV12 pixel format */
371         MM_PIXEL_FORMAT_NV12T,          /**< NV12 Tiled pixel format */
372         MM_PIXEL_FORMAT_NV16,           /**< NV16 pixel format */
373         MM_PIXEL_FORMAT_NV21,           /**< NV21 pixel format */
374         MM_PIXEL_FORMAT_YUYV,           /**< YUYV(YUY2) pixel format */
375         MM_PIXEL_FORMAT_UYVY,           /**< UYVY pixel format */
376         MM_PIXEL_FORMAT_422P,           /**< YUV422(Y:U:V) planar pixel format */
377         MM_PIXEL_FORMAT_I420,           /**< I420 pixel format */
378         MM_PIXEL_FORMAT_YV12,           /**< YV12 pixel format */
379         MM_PIXEL_FORMAT_RGB565,         /**< RGB565 pixel format */
380         MM_PIXEL_FORMAT_RGB888,         /**< RGB888 pixel format */
381         MM_PIXEL_FORMAT_RGBA,           /**< RGBA pixel format */
382         MM_PIXEL_FORMAT_ARGB,           /**< ARGB pixel format */
383         MM_PIXEL_FORMAT_ENCODED,        /**< Encoded pixel format : JPEG */
384         MM_PIXEL_FORMAT_ITLV_JPEG_UYVY, /**< FIXME: JPEG+UYVY Interleaved format */
385         MM_PIXEL_FORMAT_ENCODED_H264,   /**< Encoded pixel format : H.264 */
386         MM_PIXEL_FORMAT_NUM             /**< Number of the pixel format */
387 } MMPixelFormatType;
388
389 /**
390  * Enumerations of video input rotation type.
391  */
392 typedef enum {
393         MM_VIDEO_INPUT_ROTATION_NONE,   /**< No rotation of the display */
394         MM_VIDEO_INPUT_ROTATION_90,             /**< 90 degree rotation */
395         MM_VIDEO_INPUT_ROTATION_180,    /**< 180 degree rotation */
396         MM_VIDEO_INPUT_ROTATION_270,    /**< 270 degree rotation */
397         MM_VIDEO_INPUT_ROTATION_NUM             /**< Number of the rotation */
398 } MMVideoInputRotationType;
399
400 /**
401  * Enumerations of display rotation type.
402  */
403 typedef enum {
404         MM_DISPLAY_ROTATION_NONE,       /**< No rotation of the display */
405         MM_DISPLAY_ROTATION_90,         /**< 90 degree rotation */
406         MM_DISPLAY_ROTATION_180,        /**< 180 degree rotation */
407         MM_DISPLAY_ROTATION_270,        /**< 270 degree rotation */
408         MM_DISPLAY_ROTATION_NUM         /**< Number of the rotation */
409 } MMDisplayRotationType;
410
411 /**
412  * Enumerations of flip type.
413  */
414 typedef enum {
415         MM_FLIP_NONE,                   /**< No Flip */
416         MM_FLIP_HORIZONTAL,             /**< Horizontal flip */
417         MM_FLIP_VERTICAL,               /**< Vertical flip */
418         MM_FLIP_BOTH,                   /**< Horizontal and Vertical flip */
419         MM_FLIP_NUM                     /**< Number of flip */
420 } MMFlipType;
421
422 /**
423  * Enumerations of streaming type.
424  */
425 typedef enum {
426         STREAMING_SERVICE_VOD,                  /**< Streaming is vod */
427         STREAMING_SERVICE_LIVE,                 /**< Streaming is live stream */
428         STREAMING_SERVICE_NONE,                 /**< Not an streaming */
429         STREAMING_SERVICE_NUM,                  /**< Number of the streaming type */
430 } MMStreamingType;
431
432 /**
433  * Resolution
434  */
435 typedef struct {
436         int width;              /**< width */
437         int height;             /**< height */
438 } MMResolutionType;
439
440 /**
441  * Type definition of rectangle.
442  * This will be deprecated.
443  */
444 typedef struct {
445         unsigned int x;         /**< Start x point */
446         unsigned int y;         /**< Start y point */
447         unsigned int width;     /**< width */
448         unsigned int height;    /**< Height */
449 } MMRectType;
450
451 #define BT_ADDR_LEN 18          /**< Length of BT address */
452 /**
453  * bluetooth information.
454  */
455 typedef struct {
456         int mode;                                               /**< BT enable/disable */
457         char addr[BT_ADDR_LEN];                 /**< BT device address */
458 } MMBluetoothType;
459
460
461 /**
462  * Enumerations of bluetooth mode
463  */
464 enum MMBluetoothMode {
465         MM_BLUETOOTH_DISABLE = 0,
466         MM_BLUETOOTH_ENABLE
467 };
468
469 /*
470  * Enumerations of sound path policy
471  */
472 enum MMAudioRoutePolicy {
473         MM_AUDIOROUTE_USE_EXTERNAL_SETTING = -1,
474         MM_AUDIOROUTE_PLAYBACK_NORMAL,
475         MM_AUDIOROUTE_PLAYBACK_ALERT,
476         MM_AUDIOROUTE_PLAYBACK_HEADSET_ONLY,
477         MM_AUDIOROUTE_CAPTURE_NORMAL = 0,
478         MM_AUDIOROUTE_CAPTURE_MAINMIC_ONLY,
479         MM_AUDIOROUTE_CAPTURE_STEREOMIC_ONLY,
480 };
481
482 /*
483  * Enumerations of display geometry method
484  */
485 typedef enum  {
486         MM_DISPLAY_METHOD_LETTER_BOX = 0,
487         MM_DISPLAY_METHOD_ORIGIN_SIZE,
488         MM_DISPLAY_METHOD_FULL_SCREEN,
489         MM_DISPLAY_METHOD_CROPPED_FULL,
490         MM_DISPLAY_METHOD_ORIGIN_OR_LETTER,
491         MM_DISPLAY_METHOD_CUSTOM_ROI,
492 }MMDisplayGeometryMethod;
493
494 /*
495  * Enumerations of ROI mode of display geometry method
496  */
497 typedef enum  {
498         MM_DISPLAY_METHOD_CUSTOM_ROI_FULL_SCREEN = 0,
499         MM_DISPLAY_METHOD_CUSTOM_ROI_LETER_BOX
500 }MMDisplayGeometryMethodRoiMode;
501
502 #ifdef __cplusplus
503         }
504 #endif
505
506
507 #endif  /* __MM_TYPES_H__ */