Pointer handle for 64 bits arch
[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          4096    /**< Maximum length of the file path */
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 void *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_NUM,            /**< Number of video capture devices */
73 };
74
75 /**
76  * Enumerations of audio capture devices.
77  */
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 */
82 };
83
84 /**
85  * Enumerations of display surfaces.
86  */
87 typedef enum {
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;
95
96 /**
97  * Enumerations of display modes.
98  */
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 */
104 };
105
106 /**
107  * Enumerations of display devices.
108  */
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 */
116 };
117
118 /**
119  * Enumerations of display scales.
120  */
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 */
126 };
127
128 /**
129  * Enumerations of storage.
130  */
131 enum MMStorageType {
132         MM_STORAGE_INTERNAL,                    /**< Internal storage */
133         MM_STORAGE_EXTERNAL,                    /**< External storage such as memory card */
134         MM_STORAGE_NUM,                                 /**< Number of storage type */
135 };
136
137 /**
138  * Enumerations for quality.
139  */
140 enum MMQualityType {
141         MM_QUALITY_LOW,         /**< Low quality */
142         MM_QUALITY_HIGH,        /**< High quality */
143         MM_QUALITY_NUM,         /**< Number of quality type */
144 };
145
146 /**
147  * Enumerations of channel type.
148  */
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 */
156 };
157
158 /*
159  * Enumerations of SW Volume Table Type.
160  */
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,
172 };
173
174 /*
175  * Enumerations of SW Volume Gain.
176  */
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
190 };
191
192 #define MM_SOUND_PRIORITY_ALLOW_MIX     (0x80) /**< This define has deprecated */
193 /*
194  * Enumerations of Sound Priority.
195  */
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,
204 };
205
206 /**
207  * Enumerations of video codec.
208  */
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 */
241 };
242
243 /**
244  * Enumerations of audio codec.
245  */
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      */
260         MM_AUDIO_CODEC_MXMF,
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 */
294 };
295
296 /**
297  * Enumerations of image codec.
298  */
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 */
316 };
317
318 /**
319  * Enumerations of file container format.
320  */
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 */
349 };
350
351 /**
352  * Enumerations of display layers.
353  */
354 typedef enum {
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 */
358 } MMVideoLayerType;
359
360 /**
361  * Enumerations of Pixel formats
362  */
363 typedef enum {
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 */
381 } MMPixelFormatType;
382
383 /**
384  * Enumerations of video input rotation type.
385  */
386 typedef enum {
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;
393
394 /**
395  * Enumerations of display rotation type.
396  */
397 typedef enum {
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;
404
405 /**
406  * Enumerations of flip type.
407  */
408 typedef enum {
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 */
414 } MMFlipType;
415
416 /**
417  * Enumerations of streaming type.
418  */
419 typedef enum {
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 */
424 } MMStreamingType;
425
426 /**
427  * Resolution
428  */
429 typedef struct {
430         int width;              /**< width */
431         int height;             /**< height */
432 } MMResolutionType;
433
434 /**
435  * Type definition of rectangle.
436  * This will be deprecated.
437  */
438 typedef struct {
439         unsigned int x;         /**< Start x point */
440         unsigned int y;         /**< Start y point */
441         unsigned int width;     /**< width */
442         unsigned int height;    /**< Height */
443 } MMRectType;
444
445 #define BT_ADDR_LEN 18          /**< Length of BT address */
446 /**
447  * bluetooth information.
448  */
449 typedef struct {
450         int mode;                                               /**< BT enable/disable */
451         char addr[BT_ADDR_LEN];                 /**< BT device address */
452 } MMBluetoothType;
453
454
455 /**
456  * Enumerations of bluetooth mode
457  */
458 enum MMBluetoothMode {
459         MM_BLUETOOTH_DISABLE = 0,
460         MM_BLUETOOTH_ENABLE
461 };
462
463 /*
464  * Enumerations of sound path policy
465  */
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,
474 };
475
476 /*
477  * Enumerations of display geometry method
478  */
479 typedef enum  {
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;
487
488 #ifdef __cplusplus
489         }
490 #endif
491
492
493 #endif  /* __MM_TYPES_H__ */