Init basesystem source codes.
[staging/basesystem.git] / video_in_hal / hal_api / video_in_hal.h
1 /*
2  * @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION.
3  *
4  * Licensed under the Apache License, Version 2.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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #ifndef HAL_API_VIDEO_IN_HAL_H_
18 #define HAL_API_VIDEO_IN_HAL_H_
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 /**
25  * @file  video_in_hal.h
26  * @brief API definition of the function to control video
27  */
28
29 /** @addtogroup graphics_service
30  *  @{
31  */
32 /** @addtogroup video_in_hal
33  *  @ingroup graphics_service
34  *  @{
35  */
36
37
38 /* Monitor state */
39 #define VIH_DISP_MONITOR_ON      (0)  //!< \~english Monitor on
40 #define VIH_DISP_MONITOR_OFF     (1)  //!< \~english Monitor Off
41
42 /* Illumination */
43 #define VIH_DISP_ILLUMI_INIT     (0)  //!< \~english Not configured
44 #define VIH_DISP_ILLUMI_DAY      (1)  //!< \~english Day screen
45 #define VIH_DISP_ILLUMI_NIGHT     (2)  //!< \~english Night screen
46 #define VIH_DISP_ILLUMI_FOURCE_DAY    (3)  //!< \~english Force day screen
47 #define VIH_DISP_ILLUMI_FOURCE_NIGHT   (4)  //!< \~english Force night screen
48
49 /* Auto dimmer */
50 #define VIH_DISP_AUTO_DIMMER_OFF    (0)  //!< \~english Auto dimmer off
51 #define VIH_DISP_AUTO_DIMMER_ON     (1)  //!< \~english Auto dimmer on
52
53 /* MUTE */
54 #define VIH_DISP_MUTE_OFF      (0)  //!< \~english Mute off
55 #define VIH_DISP_MUTE_ON      (1)  //!< \~english Mute on
56
57 /* Back light */
58 #define VIH_DISP_BACKLIGHT_OFF     (0)  //!< \~english Back light off
59 #define VIH_DISP_BACKLIGHT_ON     (1)  //!< \~english Back light on
60
61 /* Type of video source */
62 #define VIH_VIDEO_SOURCE_R_CAMERA    (0x00)  //!< \~english Rear video camera
63 #define VIH_VIDEO_SOURCE_F_CAMERA    (0x01)  //!< \~english Front video camera
64 #define VIH_VIDEO_SOURCE_S_CAMERA    (0x02)  //!< \~english Side video camera
65 #define VIH_VIDEO_SOURCE_STOP     (0x03)  //!< \~english Stop the video
66 #define VIH_VIDEO_SOURCE_DVD     (0x04)  //!< \~english DVD video
67 #define VIH_VIDEO_SOURCE_BD      (0x05)  //!< \~english BD video
68 #define VIH_VIDEO_SOURCE_DTV     (0x06)  //!< \~english DTV(Built-in)
69 #define VIH_VIDEO_SOURCE_EXT_DTV    (0x07)  //!< \~english DTV(External)
70 #define VIH_VIDEO_SOURCE_SD_VIDEO    (0x08)  //!< \~english SD video
71 #define VIH_VIDEO_SOURCE_VTR     (0x09)  //!< \~english VTR(Built-in)
72 #define VIH_VIDEO_SOURCE_VTR2     (0x0A)  //!< \~english VTR2(Built-in)
73 #define VIH_VIDEO_SOURCE_EXT_VTR    (0x0B)  //!< \~english VTR(External)
74 #define VIH_VIDEO_SOURCE_EXT_NAVI    (0x0C)  //!< \~english NAVI(External)
75 #define VIH_VIDEO_SOURCE_EXT     (0x0D)  //!< \~english Extension box
76 #define VIH_VIDEO_SOURCE__CWORD57__VIDEO    (0x0E)  //!< \~english _CWORD57_(Video)
77 #define VIH_VIDEO_SOURCE__CWORD57__OUT    (0x0F)  //!< \~english _CWORD57_(Out)
78 #define VIH_VIDEO_SOURCE__CWORD57__NAVI    (0x10)  //!< \~english _CWORD57_(Navi)
79 #define VIH_VIDEO_SOURCE_MIRRORLINK    (0x11)  //!< \~english Mirror link
80 #define VIH_VIDEO_SOURCE_USB_VIDEO    (0x12)  //!< \~english USB video
81 #define VIH_VIDEO_SOURCE_MIRACAST    (0x16)  //!< \~english Miracast
82 #define VIH_VIDEO_SOURCE__CWORD27_    (0x17)  //!< \~english _CWORD111_
83 #define VIH_VIDEO_SOURCE_SD_VIDEO_CPRM   (0x18)  //!< \~english SD source(CPRM)
84 #define VIH_VIDEO_SOURCE_SD_VIDEO_AVCHD   (0x19)  //!< \~english SD source(AVCHD)
85 #define VIH_VIDEO_SOURCE_DIAG_CAMERA    (0x1A)  //!< \~english Camera diagnosis
86 #define VIH_VIDEO_SOURCE_BLANK     (0xFE)  //!< \~english Blank
87
88 /* Type of TV system */
89 #define VIH_VIDEO_TVTYPE_NONE     (0)  //!< \~english Not configured
90 #define VIH_VIDEO_TVTYPE_NTSC     (1)  //!< \~english NTSC
91 #define VIH_VIDEO_TVTYPE_PAL     (2)  //!< \~english PAL
92 #define VIH_VIDEO_TVTYPE_SECAM     (3)  //!< \~english SECAM
93 #define VIH_VIDEO_TVTYPE_AUTO     (255)  //!< \~english Auto
94
95 /* de-interlace */
96 #define VIH_VIDEO_INTERLACE_DEFAULT    (0)  //!< \~english Interlaced(Default)
97 #define VIH_VIDEO_INTERLACE_REPLICATE   (1)  //!< \~english Interlaced(Reprica)
98 #define VIH_VIDEO_INTERLACE_WEAVE    (2)  //!< \~english Interlaced(Weave)
99 #define VIH_VIDEO_INTERLACE_BOB     (3)  //!< \~english Interlaced(Bob)
100 #define VIH_VIDEO_INTERLACE_AUTO    (4)  //!< \~english Interlaces(Auto)
101 #define VIH_VIDEO_INTERLACE_LINE    (5)  //!< \~english Interlaces(Line)
102
103 /* Aspect */
104 #define VIH_VIDEO_ASPECT_NORMAL     (0)  //!< \~english Normal
105 #define VIH_VIDEO_ASPECT_WIDE     (1)  //!< \~english Wide
106 #define VIH_VIDEO_ASPECT_FULL     (2)  //!< \~english Full
107 #define VIH_VIDEO_ASPECT_ZOOM     (3)  //!< \~english Zoom
108
109 /* Aspect Ratio */
110 #define VIH_VIDEO_ASPECT_RATIO_DEFAULT   (0)  //!< \~english Default
111 #define VIH_VIDEO_ASPECT_RATIO_4_3    (1)  //!< \~english 4:3
112 #define VIH_VIDEO_ASPECT_RATIO_16_9    (2)  //!< \~english 16:9
113 #define VIH_VIDEO_ASPECT_RATIO_4_3_LB   (3)  //!< \~english 4:3(Letter box)
114
115 /* Enable or disable */
116 #define VIH_ENABLE      (1)  //!< \~english Enable
117 #define VIH_DISABLE     (0)  //!< \~english Disable
118
119 /* Send information: Control module */
120 #define VIH_DISP_SEQ_CTRL       0x0003  //!< \~english Sequence control
121 #define VIH_DISP_VCAP1_CTRL     0x0005  //!< \~english Video capture1 control
122 #define VIH_DISP_VCAP2_CTRL     0x0006  //!< \~english Video capture2 control
123
124 /* Message ID: Put or delete diagnosis code */
125 #define VIH_DISP_MAIN_IND_PUTDIAG   (0x5200)  //!< \~english Put diagnosis code
126 #define VIH_DISP_MAIN_IND_DELDIAG   (0x5201)  //!< \~english Delete diagnosis code
127
128 /**
129  * \~english  Event ID
130  */
131 typedef enum TagVideoInHalEventID {
132     VIH_EVENT_ID_SOURCE,           //!< \~english Display source change
133     VIH_EVENT_ID_QUALITY,          //!< \~english Set quality(display)
134     VIH_EVENT_ID_VIDEOQUALITY,     //!< \~english Set quality(video)
135     VIH_EVENT_ID_ASPECT,           //!< \~english Set aspect
136     VIH_EVENT_ID_MONITOR,          //!< \~english Set monitor(display)
137     VIH_EVENT_ID_VIDEOVISIBLE,     //!< \~english Set video visible(video)
138     VIH_EVENT_ID_MUTE,             //!< \~english Set mute
139     VIH_EVENT_ID_BACKLIGHT,        //!< \~english Set backlight
140     VIH_EVENT_ID_NUM_MAX
141 } VIH_EVENTID;
142
143 /**
144  * \~english  Control ID
145  */
146 typedef enum TagVideoInHalControlID {
147     VIH_CONTROL_ID_SOURCE,         //!< \~english Display source change
148     VIH_CONTROL_ID_QUALITY,        //!< \~english Set quality(display)
149     VIH_CONTROL_ID_VIDEOQUALITY,   //!< \~english Set quality(video)
150     VIH_CONTROL_ID_ASPECT,         //!< \~english Set aspect
151     VIH_CONTROL_ID_MONITOR,        //!< \~english Set monitor(display)
152     VIH_CONTROL_ID_VIDEOVISIBLE,   //!< \~english Set video visible(video)
153     VIH_CONTROL_ID_START_CAPTURE,  //!< \~english Start capture
154     VIH_CONTROL_ID_STOP_CAPTURE,   //!< \~english Stop capture
155     VIH_CONTROL_ID_TVTYPE,         //!< \~english Set TV type
156     VIH_CONTROL_ID_DEINTERLACE,    //!< \~english Set de-interlace
157     VIH_CONTROL_ID_VMUTE,          //!< \~english Set mute
158     VIH_CONTROL_ID_BACKLIGHT,      //!< \~english Set backlight
159     VIH_CONTROL_ID_NUM_MAX
160 } VIH_CONTROLID;
161
162 /**
163  * \~english  Type of video device's return value
164  */
165 typedef enum TagVideoInHalRet {
166     VIH_RET_SUCCESS,               //!< \~english OK
167     VIH_RET_INVALID_PARAMETER,     //!< \~english Invalid parameter
168     VIH_RET_INTERNAL_ERROR,        //!< \~english Internal error
169     VIH_RET_NUM_MAX
170 } VIH_RET;
171
172 /**
173  * \~english  context kind
174  */
175 typedef enum TagVideoInHalContext {
176     VIH_CONTEXT_DISP = 0,  //!< \~english Display
177     VIH_CONTEXT_VIDEO,  //!< \~english Video
178     VIH_CONTEXT_NUM_MAX
179 } VIH_CONTEXT;
180
181 /**
182  * \~english  Display ID
183  */
184 typedef enum TagVideoInHalDispIdx {
185     VIH_DISP_IDX_MONITOR0,  //!< \~english Monitor0 (Front monitor)
186     VIH_DISP_IDX_MONITOR1,  //!< \~english Monitor1 (Rear monitor)
187     VIH_DISP_IDX_MONITOR2,  //!< \~english Monitor2
188     VIH_DISP_IDX_MONITOR3,  //!< \~english Monitor3
189     VIH_DISP_IDX_MONITOR4,  //!< \~english Monitor4
190     VIH_DISP_IDX_MONITOR5,  //!< \~english Monitor5
191     VIH_DISP_IDX_NUM_MAX
192 } VIH_DISP_IDX;
193
194 /**
195  * \~english  Video ID
196  */
197 typedef enum TagVideoInHalVideoOut {
198     VIH_VIDEO_OUT_MONITOR0 = 0,  //!< \~english Monitor0 (Front monitor)
199     VIH_VIDEO_OUT_MONITOR1,  //!< \~english Monitor1 (Rear monitor)
200     VIH_VIDEO_OUT_MONITOR2,  //!< \~english Monitor2
201     VIH_VIDEO_OUT_MONITOR3,  //!< \~english Monitor3
202     VIH_VIDEO_OUT_MONITOR4,  //!< \~english Monitor4
203     VIH_VIDEO_OUT_MONITOR5,  //!< \~english Monitor5
204     VIH_VIDEO_OUT_NONE,  //!< \~english Monitor none
205     VIH_VIDEO_OUT_NUM_MAX
206 } VIH_VIDEO_OUT;
207
208 /**
209  * \~english  Structure for display tone color
210  */
211 typedef struct TagVideoInHalDispTone {
212     int16_t day;   //!< \~english Day screen
213     int16_t night;   //!< \~english Night screen
214     int16_t force_day;   //!< \~english Force day screen
215     int16_t force_night;   //!< \~english Force night screen
216 } VIH_DISPTONE;
217
218 /**
219  * \~english  Structure for display tone hue
220  */
221 typedef struct TagVideoInHalDispHue {
222     int16_t day;  //!< \~english Day screen
223     int16_t night;  //!< \~english Night screen
224     int16_t force_day;  //!< \~english Force day screen
225     int16_t force_night;  //!< \~english Force night screen
226 } VIH_DISPHUE;
227
228 /**
229  * \~english  Structure for display tone contrast
230  */
231 typedef struct TagVideoInHalDispContrast {
232     int16_t day;  //!< \~english Day screen
233     int16_t night;  //!< \~english Night screen
234     int16_t force_day;  //!< \~english Force day screen
235     int16_t force_night;  //!< \~english Force night screen
236 } VIH_DISPCONTRAST;
237
238 /**
239  * \~english  Structure for display tone brightness
240  */
241 typedef struct TagVideoInHalDispBrightness {
242     int16_t day;  //!< \~english Day screen
243     int16_t night;  //!< \~english Night screen
244     int16_t force_day;  //!< \~english Force day screen
245     int16_t force_night;  //!< \~english Force night screen
246 } VIH_DISPBRIGHTNESS;
247
248 /**
249  * \~english  Structure for display image quality parameters
250  */
251 typedef struct TagVideoInHalDispParamSetUp {
252     u_int8_t source;  //!< \~english Source type for quality setting
253     u_int8_t reserved[3];  //!< \~english Reserved
254     VIH_DISPTONE tone;  //!< \~english Tone
255     VIH_DISPHUE hue;  //!< \~english Hue
256     VIH_DISPCONTRAST contrast;  //!< \~english Contrast
257     VIH_DISPBRIGHTNESS brightness;  //!< \~english Brightness
258 } VIH_DISP_PARAM_SETUP;
259
260 /**
261  * \~english  Structure for display parameters
262  */
263 typedef struct TagVideoInHalDispParam {
264     u_int8_t monitor;  //!< \~english Monitor state
265     u_int8_t reserve[3];  //!< \~english Reserve
266     VIH_DISP_PARAM_SETUP setup;  //!< \~english Quality setting
267     u_int8_t illumi;  //!< \~english Illumination
268     u_int8_t dimmer;  //!< \~english Auto dimmer
269     u_int8_t mute;  //!< \~english Mute
270     u_int8_t backlight;  //!< \~english Back light
271 } VIH_DISPPARAM;
272
273 /**
274  * \~english  Structure for video tone color
275  */
276 typedef struct TagVideoInHalVideoTone {
277     int16_t day;  //!< \~english Day screen
278     int16_t night;  //!< \~english Night screen
279     int16_t force_day;  //!< \~english Force day screen
280     int16_t force_night;  //!< \~english Force night screen
281 } VIH_VIDEOTONE;
282
283 /**
284  * \~english  Structure for video tone hue
285  */
286 typedef struct TagVideoInHalVideoHue {
287     int16_t day;  //!< \~english Day screen
288     int16_t night;  //!< \~english Night screen
289     int16_t force_day;  //!< \~english Force day screen
290     int16_t force_night;  //!< \~english Force night screen
291 } VIH_VIDEOHUE;
292
293 /**
294  * \~english  Structure for video tone contrast
295  */
296 typedef struct TagVideoInHalVideoContrast {
297     int16_t day;  //!< \~english Day screen
298     int16_t night;  //!< \~english Night screen
299     int16_t force_day;  //!< \~english Force day screen
300     int16_t force_night;  //!< \~english Force night screen
301 } VIH_VIDEOCONTRAST;
302
303 /**
304  * \~english  Structure for video tone brightness
305  */
306 typedef struct TagVideoInHalVideoBrightness {
307     int16_t day;  //!< \~english Day screen
308     int16_t night;  //!< \~english Night screen
309     int16_t force_day;  //!< \~english Force day screen
310     int16_t force_night;  //!< \~english Force night screen
311 } VIH_VIDEOBRIGHTNESS;
312
313 /**
314  * \~english  Structure for video image quality parameters
315  */
316 typedef struct TagVideoInHalVideoParamSetUp {
317     u_int8_t source;  //!< \~english Source type for quality setting
318     u_int8_t reserve[3];  //!< \~english reserve
319     VIH_VIDEOTONE tone;  //!< \~english Tone
320     VIH_VIDEOHUE hue;  //!< \~english Hue
321     VIH_VIDEOCONTRAST contrast;  //!< \~english Contrast
322     VIH_VIDEOBRIGHTNESS brightness;  //!< \~english Brightness
323 } VIH_VIDEO_PARAM_SETUP;
324
325 /**
326  * \~english  Structure for video position and angle
327  */
328 typedef struct TagVideoInHalVideoPos {
329     u_int32_t aspect_x;  //!< \~english Display position x
330     u_int32_t aspect_y;  //!< \~english Display position y
331     u_int32_t aspect_w;  //!< \~english Display width
332     u_int32_t aspect_h;  //!< \~english Display height
333 } VIH_VIDEOPOS;
334
335 /**
336  * \~english  Structure for video parameters
337  */
338 typedef struct TagVideoInHalVideoParam {
339     u_int8_t source;  //!< \~english Video Source
340     u_int8_t type;  //!< \~english TV type
341     u_int8_t interlace;  //!< \~english De-interlace
342     u_int8_t aspect;  //!< \~english Aspect Value
343     VIH_VIDEOPOS angle;  //!< \~english Angle
344     VIH_VIDEO_PARAM_SETUP setup;  //!< \~english Quality setting
345     u_int8_t monitor;  //!< \~english Monitor
346     u_int8_t mute;  //!< \~english Mute
347     u_int8_t aspect_ratio;  //!< \~english Aspect ratio
348     u_int8_t reserve;  //!< \~english Reserve
349     u_int32_t window_priority;  //!< \~english Window priority
350 } VIH_VIDEOPARAM;
351
352 /**
353  * \~english  Structure for display identify
354  */
355 typedef struct TagVideoInHalDispVideoID {
356     VIH_CONTEXT kind;  //!< \~english Context type
357     struct timespec tp;  //!< \~english Context create time
358 } VIH_DISPVIDEOID;
359
360 /**
361  * \~english  Structure for display information
362  */
363 typedef struct TagVideoInHalDispVideoInfo {
364     VIH_DISPVIDEOID context_id;  //!< \~english Context identify
365     u_int32_t dsp_idx;  //!< \~english Display index
366     u_int32_t chgflg;  //!< \~english Setting change flag
367 } VIH_DISPVIDEOINFO;
368
369 /**
370  * \~english  Structure for display context
371  */
372 typedef struct TagVideoInHalDispMngCtx {
373     VIH_DISPVIDEOINFO info;  //!< \~english Display information
374     VIH_DISPPARAM disp_param[VIH_DISP_IDX_NUM_MAX];  //!< \~english Display parameter
375     VIH_VIDEOPARAM video_param[VIH_VIDEO_OUT_NUM_MAX];  //!< \~english Video parameter
376 } VIH_DISPMNGCTX;
377
378 /**
379  * \~english  Structure for diagnosis code data
380  */
381 typedef struct TagVideoInHalGRMainReqDiagData {
382   uint64_t err_id;  //!< \~english Error ID
383   uint16_t videoinhal_code;  //!< \~english Code
384   uint8_t reserve1[2];  //!< \~english Reserve
385 } VIH_GR_MAIN_REQ_DIAGDATA;
386
387
388 /**
389  * \ingroup SendDiagCodeCallBack
390  * \~english @par Brief
391  *        Send diagnosis code call back.
392  * \~english @param [in] snd_info
393  *        u_int16_t - Send information
394  * \~english @param [in] msg_id
395  *        u_int32_t - Message ID
396  * \~english @param [in] diag_data
397  *        VIH_GR_MAIN_REQ_DIAGDATA* - Diagnosis code data
398  * \~english @par
399  *      u_int16_t snd_info
400  * \~english @code
401  *      VIH_DISP_SEQ_CTRL      0x0003  // Sequence control
402  *      VIH_DISP_VCAP1_CTRL    0x0005  // Video capture1 control
403  *      VIH_DISP_VCAP2_CTRL    0x0006  // Video capture2 control
404  *          @endcode
405  * \~english @par
406  *      u_int32_t msg_id
407  * \~english @code
408  *      VIH_DISP_MAIN_IND_PUTDIAG   (0x5200)  // Put diagnosis code
409  *      VIH_DISP_MAIN_IND_DELDIAG   (0x5201)  // Delete diagnosis code
410  *          @endcode
411  * \~english @par
412  *      VIH_GR_MAIN_REQ_DIAGDATA struct
413  * \~english @code
414  *      typedef struct TagVideoInHalGRMainReqDiagData
415  *      {
416  *          uint64_t err_id;      // Error ID
417  *          uint16_t videoinhal_code;   // Videoinhal code
418  *          uint8_t reserve1[2];  // Reserve
419  *      } VIH_GR_MAIN_REQ_DIAGDATA;
420  *          @endcode
421  * \~english @retval 0                           :  OK
422  * \~english @retval -1                          :  Invalid parameter
423  * \~english @par Detail
424  *        - Notify diagnosis code request to graphics_service.
425  * \~english @par Prerequisite
426  *        - None
427  * \~english @par Conditions of processing failure
428  *        - When input parameter diag_data is NULL, return with error. [-1]
429  * \~english @par Classification
430  *        Public
431  * \~english @par Type
432  *        Sync
433  * \~english @see
434  *        None
435  */
436 typedef int (*SendDiagCodeCallBack)(u_int16_t snd_info, u_int32_t msg_id, VIH_GR_MAIN_REQ_DIAGDATA* diag_data);
437
438 /**
439  * \ingroup InitVideo
440  * \~english @par Brief
441  *         API to display device initialize.
442  * \~english @param [in] call_back
443  *        SendDiagCodeCallBack - Send diagnosis trace code call back function
444  * \~english @retval VIH_RET_SUCCESS             :  OK
445  * \~english @retval VIH_RET_INVALID_PARAMETER   :  Invalid parameter
446  * \~english @par Detail
447  *        - Display device initialize, init parameter and threads.
448  *        - The API can only be used by 1 process.
449  * \~english @par Prerequisite
450  *        - None
451  * \~english @par Conditions of processing failure
452  *        - When display device driver can not be found, return with error. [VIH_RET_INVALID_PARAMETER]
453  * \~english @par Classification
454  *        Public
455  * \~english @par Type
456  *        Sync
457  * \~english @see
458  *        None
459  */
460 VIH_RET InitVideo(SendDiagCodeCallBack call_back);
461
462 /**
463  * \ingroup ControlVideo
464  * \~english @par Brief
465  *         API to Control display device.
466  * \~english @param [in] pctx
467  *        VIH_DISPMNGCTX* - Point of parameter used by control display device
468  * \~english @param [in] event_id
469  *        VIH_EVENTID - Event ID
470  * \~english @param [in] control_id
471  *        VIH_CONTROLID - Control ID
472  * \~english @par
473  *      VIH_DISPMNGCTX struct 
474  * \~english @code
475  *      typedef struct TagVideoInHalDispMngCtx
476  *      {
477  *          VIH_DISPVIDEOINFO info;                                // Information of display
478  *          VIH_DISPPARAM disp_param[VIH_DISP_IDX_NUM_MAX];        // Paramter of diaplay
479  *          VIH_VIDEOPARAM video_param[VIH_VIDEO_OUT_NUM_MAX];     // Paramter of video
480  *      } VIH_DISPMNGCTX;
481  *          @endcode
482  * \~english @par
483  *      VIH_EVENTID enum
484  * \~english @code
485  *      typedef enum TagVideoInHalEventID
486  *      {
487  *          VIH_EVENT_ID_SOURCE,                // Display source change
488  *          VIH_EVENT_ID_QUALITY,               // Set quality(display)
489  *          VIH_EVENT_ID_VIDEOQUALITY,          // Set quality(video)
490  *          VIH_EVENT_ID_ASPECT,                // Set aspect
491  *          VIH_EVENT_ID_MONITOR,               // Set monitor(display)
492  *          VIH_EVENT_ID_VIDEOVISIBLE,          // Set video visible(video)
493  *          VIH_EVENT_ID_MUTE,                  // Set mute
494  *          VIH_EVENT_ID_BACKLIGHT,             // Set backlight
495  *          VIH_EVENT_ID_NUM_MAX
496  *      } VIH_EVENTID;
497  *          @endcode
498  * \~english @par
499  *      VIH_CONTROLID enum
500  * \~english @code
501  *      typedef enum TagVideoInHalControlID
502  *      {
503  *          VIH_CONTROL_ID_SOURCE,              // Display source change
504  *          VIH_CONTROL_ID_QUALITY,             // Set quality(display) 
505  *          VIH_CONTROL_ID_VIDEOQUALITY,        // Set quality(video)
506  *          VIH_CONTROL_ID_ASPECT,              // Set aspect   
507  *          VIH_CONTROL_ID_MONITOR,             // Set monitor(display) 
508  *          VIH_CONTROL_ID_VIDEOVISIBLE,        // Set video visible(video) 
509  *          VIH_CONTROL_ID_START_CAPTURE,       // Start capture
510  *          VIH_CONTROL_ID_STOP_CAPTURE,        // Stop capture 
511  *          VIH_CONTROL_ID_TVTYPE,              // Set TV type
512  *          VIH_CONTROL_ID_DEINTERLACE,         // Set de-interlace
513  *          VIH_CONTROL_ID_VMUTE,               // Set mute
514  *          VIH_CONTROL_ID_BACKLIGHT,           // Set backlight
515  *          VIH_CONTROL_ID_NUM_MAX
516  *      } VIH_CONTROLID;
517  *          @endcode
518  * \~english @retval VIH_RET_SUCCESS             :  OK
519  * \~english @retval VIH_RET_INVALID_PARAMETER   :  Invalid parameter
520  * \~english @retval VIH_RET_INTERNAL_ERROR      :  Internal error
521  * \~english @par Detail
522  *        - Control display device. Include display source, quality(display), quality(video), aspect , monitor, video visible, start capture, stop capture, mute, backlight, TV type, de-interlace.
523  *        - The API can only be used by 1 process.
524  * \~english @par Prerequisite
525  *        - Call InitVideo() 
526  * \~english @par Conditions of processing failure
527  *        - The point param is null [VIH_RET_INVALID_PARAMETER]
528  *        - The display driver return error [VIH_RET_INTERNAL_ERROR]
529  * \~english @par Classification
530  *        Public
531  * \~english @par Type
532  *        Fire and Forget
533  * \~english @see
534  *        None
535  */
536 VIH_RET ControlVideo(VIH_DISPMNGCTX* pctx, VIH_EVENTID event_id, VIH_CONTROLID control_id);
537
538 /**
539  * \ingroup TerminateVideo
540  * \~english @par Brief
541  *         API to display device Terminate.
542  * \~english @param None
543  * \~english @retval VIH_RET_SUCCESS             :  OK
544  * \~english @par Detail
545  *        - Display device Terminate, init parameter.
546  *        - The API can only be used by 1 process.
547  * \~english @par Prerequisite
548  *        - Call InitVideo().
549  * \~english @par Conditions of processing failure
550  *        - None
551  * \~english @par Classification
552  *        Public
553  * \~english @par Type
554  *        Sync
555  * \~english @see
556  *        None
557  */
558 VIH_RET TerminateVideo();
559
560 #ifdef __cplusplus
561 }
562 #endif
563
564 /** @}*/  //!< end of video_in_hal
565 /** @}*/  //!< end of graphics_service
566
567 #endif  // HAL_API_VIDEO_IN_HAL_H_