Device Settings HAL 0.2.0
 
Loading...
Searching...
No Matches
dsHdmiIn.h
Go to the documentation of this file.
1/*
2 * If not stated otherwise in this file or this component's LICENSE file the
3 * following copyright and licenses apply:
4 *
5 * Copyright 2016 RDK Management
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18*/
19
20
21/**
22 * @file dsHdmiIn.h
23 *
24 * @brief Device Settings HAL HDMI input Public API.
25 * This API defines the HAL for the Device Settings HDMI input interface.
26 *
27 * @par Document
28 * Document reference.
29 *
30 * @par Open Issues (in no particular order)
31 * -# None
32 *
33 * @par Assumptions
34 * -# None
35 *
36 * @par Abbreviations
37 * - cb: Callback function (suffix).
38 * - DS: Device Settings.
39 * - HAL: Hardware Abstraction Layer.
40 * - EDID: Extended Display Identification Data.
41 * - SPD: Source Product Description.
42 * - ARC: Audio Return Channel.
43 * - ALLM: Auto Low Latency Mode
44 * - HDMI: High-Definition Multimedia Interface
45 * - AV: Audio-Visual
46 * - HdmiIn: HDMI Input
47 *
48 * @par Implementation Notes
49 * -# None
50 *
51 */
52
53/**
54 * @addtogroup HPK Hardware Porting Kit
55 * @{
56 * @par The Hardware Porting Kit
57 * HPK is the next evolution of the well-defined Hardware Abstraction Layer
58 * (HAL), but augmented with more comprehensive documentation and test suites
59 * that OEM or SOC vendors can use to self-certify their ports before taking
60 * them to RDKM for validation or to an operator for final integration and
61 * deployment. The Hardware Porting Kit effectively enables an OEM and/or SOC
62 * vendor to self-certify their own Video Accelerator devices, with minimal RDKM
63 * assistance.
64 *
65 */
66
67/**
68 * @addtogroup Device_Settings Device Settings Module
69 * @{
70 */
71
72/**
73 * @addtogroup Device_Settings_HAL Device Settings HAL
74 * @par Application API Specification
75 * Described herein are the DeviceSettings HAL types and functions that are part of
76 * the HdmiIn subsystem. The HdmiIn subsystem manages system-specific HAL operations.
77 * @{
78 */
79
80/**
81* @defgroup dsHdmiIn_HAL DS HdmiIn HAL
82 * @{
83 * @par Application API Specification
84 * dsHdmiIn HAL provides an interface for managing the HdmiIn settings for the device settings module
85 */
86
87/**
88 * @defgroup DSHAL_HDMI_IN_API DS HAL Hdmi Input Public APIs
89 * @{
90 */
91
92
93#ifndef _DS_dsHdmiInH_
94#define _DS_dsHdmiInH_
95
96#include <sys/types.h>
97#include "dsError.h"
98#include "dsTypes.h"
99
100#ifdef __cplusplus
101extern "C" {
102#endif
103
104/**
105 * @brief Initializes the underlying HDMI input sub-system
106 *
107 * This function must initialize the HDMI input module and any associated resources.
108 *
109 * @return dsError_t - Status
110 * @retval dsERR_NONE - Success
111 * @retval dsERR_GENERAL - Underlying undefined platform error
112 *
113 * @warning This API is Not thread safe.
114 *
115 * @see dsHdmiInTerm()
116 *
117 */
119
120/**
121 * @brief Terminates the underlying HDMI input sub-system
122 *
123 * This function must terminate the HDMI input module and any associated resources.
124 *
125 * @return dsError_t - Status
126 * @retval dsERR_NONE - Success
127 * @retval dsERR_GENERAL - Underlying undefined platform error
128 *
129 *
130 * @pre dsHdmiInInit() must be called before calling this API.
131 *
132 * @warning This API is Not thread safe.
133 *
134 * @see dsHdmiInInit()
135 *
136 */
138
139/**
140 * @brief Gets the number of HDMI input ports on the device
141 *
142 * This function gets the number of HDMI input ports on the device.
143 *
144 * @param[out] pNumberOfInputs - number of HDMI input ports.
145 * Please refer ::dsHdmiInPort_t for max number of inputs. Min is 0
146 *
147 * @return dsError_t - Status
148 * @retval dsERR_NONE - Success
149 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
150 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
151 *
152 * @pre dsHdmiInInit() must be called before calling this API.
153 *
154 * @warning This API is Not thread safe.
155 *
156 */
157dsError_t dsHdmiInGetNumberOfInputs (uint8_t *pNumberOfInputs);
158
159/**
160 * @brief Gets the HDMI input port status of all ports
161 *
162 * This function gets the HDMI input port status.
163 *
164 * @param[out] pStatus - status of the HDMI input ports. Please refer ::dsHdmiInStatus_t
165 *
166 * @return dsError_t - Status
167 * @retval dsERR_NONE - Success
168 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
169 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
170 *
171 * @pre dsHdmiInInit() must be called before calling this API.
172 *
173 * @warning This API is Not thread safe.
174 *
175 */
177
178/**
179 * @brief Selects the HDMI input port as active and available for presentation
180 *
181 * This function selects the HDMI input port for presentation.
182 *
183 * @param[in] Port - HDMI input port to be presented. Please refer ::dsHdmiInPort_t
184 *
185 * @return dsError_t - Status
186 * @retval dsERR_NONE - Success
187 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
188 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices.
189 *
190 * @pre dsHdmiInInit() must be called before calling this API.
191 *
192 * @note When a port is selected, activePort should be set to true in Please refer ::dsHdmiInStatus_t for that port
193 * Also, if thT port has an active connection, it should update isPresented to true as well.
194 *
195 * @warning This API is Not thread safe.
196 *
197 */
199
200/**
201 * @brief Scales the HDMI input video
202 *
203 * This function scales the HDMI input video. The width and height, based on the x, y coordinates,
204 * cannot exceed that of the current resolution of the device.
205 * e.g. x(in pixels)+width cannot be greater then the width of the resolution.
206 * The current resolution will return by Please refer ::dsGetResolution()
207 *
208 * @param[in] x - x coordinate for the video. Min of 0. Max is based on the current resolution
209 * @param[in] y - y coordinate for the video. Min of 0. Max is based on the current resolution
210 * @param[in] width - width of the video. Width in pixels.. Min of 0. Max is based on the current resolution
211 * @param[in] height - height of the video. Height in pixels.. Min of 0. Max is based on the current resolution
212 *
213 * @return dsError_t - Status
214 * @retval dsERR_NONE - Success
215 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid.
216 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
217 *
218 * @pre dsHdmiInInit() must be called before calling this API.
219 *
220 * @warning This API is Not thread safe.
221 *
222 */
223dsError_t dsHdmiInScaleVideo (int32_t x, int32_t y, int32_t width, int32_t height);
224
225/**
226 * @brief Updates the video zoom on the active HDMI input using the provided zoom mode
227 *
228 * This function updates the video zoom on the active HDMI input using the provided zoom mode.
229 *
230 * @param[in] requestedZoomMode - HDMI input zoom mode. Please refer ::dsVideoZoom_t
231 * dsVideoZoom_t is within vidoeDeviceTypes.h
232 *
233 * @return dsError_t - Status
234 * @retval dsERR_NONE - Success
235 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
236 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
237 *
238 * @pre dsHdmiInInit() must be called before calling this API.
239 *
240 * @warning This API is Not thread safe.
241 *
242 */
244
245/**
246 * @brief Stop the output of HDMI Input audio.
247 *
248 * This function stops the HDMI Input audio from being output via HDMI Out.
249 *
250 * @return dsError_t - Status
251 * @retval dsERR_NONE - Success
252 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
253 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
254 */
256
257/**
258 * @brief Start the output of HDMI Input audio.
259 *
260 * This function presents the HDMI Input audio via HDMI Out.
261 *
262 * @return dsError_t - Status
263 * @retval dsERR_NONE - Success
264 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
265 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
266 */
268
269/**
270 * @brief Gets the current HDMI input video mode of the active port
271 *
272 * This function gets the current HDMI input video mode of the active port
273 *
274 * @param[out] resolution - Current video port resolution. Please refer ::dsVideoPortResolution_t
275 *
276 * @return dsError_t - Status
277 * @retval dsERR_NONE - Success
278 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
279 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
280 *
281 * @pre dsHdmiInInit() must be called before calling this API.
282 *
283 * @warning This API is Not thread safe.
284 *
285 */
287
288/**
289 * @brief Notifies applications when the HDMI input port connection status changes
290 *
291 * @param[in] Port - Port id where connection status is changed. Please refer ::dsHdmiInPort_t
292 * @param[in] isPortConnected - Flag to control the port connection status.
293 * ( @a true to enable, @a false to disable)
294 *
295 * @pre dsHdmiInRegisterConnectCB() must be called before this API
296 *
297 * @note This should update isPortConnected in ::dsHdmiInStatus_t when this callback is triggered.
298 * If this port is currently active, and presents video after being connected, isPresented should also be updated
299 */
300typedef void (*dsHdmiInConnectCB_t)(dsHdmiInPort_t Port, bool isPortConnected);
301
302/**
303 * @brief Notifies applications when the HDMI input port signal status changes
304 *
305 * @param[in] port - Port id where signal status is changed. Please refer ::dsHdmiInPort_t
306 * @param[in] sigStatus - Current signal status of the port. Please refer ::dsHdmiInSignalStatus_t
307 *
308 * @pre dsHdmiInRegisterSignalChangeCB() must be called before this API
309 *
310 */
312
313/**
314 * @brief Notifies applications when the HDMI input status changes on any port.
315 *
316 * HAL Implementation must call this method to deliver HDMI input status
317 * to the Caller whenever the HDMI input status changes.
318 *
319 * @param[in] inputStatus - Present hdmi input status. Please refer ::dsHdmiInStatus_t
320 *
321 * @pre dsHdmiInRegisterStatusChangeCB() must be called before this API
322 *
323 * @note This callback should be triggered whenever dsHdmiInStatus_t is updated.Please refer :: dsHdmiInSelectPort, ::dsHdmiInConnectCB_t()
324 *
325 */
326typedef void (*dsHdmiInStatusChangeCB_t)(dsHdmiInStatus_t inputStatus);
327
328/**
329 * @brief Notifies applications when the HDMI input port video mode changes
330 *
331 * HAL Implementation must call this method to deliver updated HDMI input port video mode info
332 * to the Caller
333 *
334 * @param[in] port - Port in which video mode updated. Please refer ::dsHdmiInPort_t
335 * @param[in] videoResolution - current video resolution of the port. Please refer ::dsVideoPortResolution_t
336 *
337 * @pre dsHdmiInRegisterVideoModeUpdateCB() must be called before this API
338 *
339 */
341
342/**
343 * @brief Notifies applications when the HDMI input ALLM mode changes
344 *
345 * @param[in] port - HDMI input port number in which ALLM Mode changed. Please refer ::dsHdmiInPort_t
346 * @param[in] allm_mode - Flag to hold the current ALLM mode of the port.
347 * ( @a true to enable, @a false to disable)
348 *
349 * @pre dsHdmiInRegisterAllmChangeCB() must be called before this API
350 *
351 */
352typedef void (*dsHdmiInAllmChangeCB_t)(dsHdmiInPort_t port, bool allm_mode);
353
354/**
355 * @brief Notifies applications of HDMI Input AV Latency
356 *
357 * HAL Implementation should call this method to deliver HDMI Input AV Latency
358 * to the application.
359 *
360 * @param[in] audio_latency - Audio latency value. Max value 500ms. Min value 0.
361 * @param[in] video_latency - Video latency value. Max value 500ms. Min value 0.
362 *
363 * @pre dsHdmiInRegisterAVLatencyChangeCB() must be called before this API
364 */
365typedef void (*dsAVLatencyChangeCB_t)(int audio_latency, int video_latency);
366
367/**
368 * @brief Notifies applications of HDMI Input Content Type change
369 *
370 * HAL Implementation should call this method to deliver HDMI Input Content Type change
371 * to the application
372 *
373 * @param port - HDMI Input port. Please refer ::dsHdmiInPort_t
374 * @param avi_content_type - HDMI port AVI Content Type Info. Please refer ::dsAviContentType_t
375 *
376 * @pre dsHdmiInRegisterAviContentTypeChangeCB() must be called before this API
377 */
379
380/**
381 * @brief Registers a callback for the HDMI input hot plug event notification
382 *
383 * This function registers a callback for the HDMI input hot plug event notification from the HAL side.
384 *
385 * @param[in] CBFunc - HDMI input hot plug callback function. Please refer ::dsHdmiInConnectCB_t
386 *
387 * @return dsError_t - Status
388 * @retval dsERR_NONE - Success
389 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
390 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
391 *
392 * @pre dsHdmiInInit() must be called before calling this API
393 * @see dsHdmiInConnectCB_t
394 *
395 * @warning This API is Not thread safe.
396 *
397 */
399
400/**
401 * @brief Registers a callback for the HDMI input Signal Change event
402 *
403 * This function registers a callback for the HDMI input Signal Change event.
404 *
405 * @param[in] CBFunc - HDMI input Signal change callback function. Please refer ::dsHdmiInSignalChangeCB_t
406 *
407 * @return dsError_t - Status
408 * @retval dsERR_NONE - Success
409 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
410 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
411 *
412 * @pre dsHdmiInInit() must be called before calling this API
413 * @see dsHdmiInSignalChangeCB_t
414 *
415 * @warning This API is Not thread safe.
416 *
417 */
419
420/**
421 * @brief Registers the HDMI In Latency Change event
422 *
423 * This function registers for the AV Latency Change event.
424 *
425 * @param[in] CBFunc - HDMI input AV Latency change callback function.
426 * Please refer ::dsAVLatencyChangeCB_t
427 *
428 * @return dsError_t - Status
429 * @retval dsERR_NONE - Success
430 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
431 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: AV Latency not supported
432 * @retval dsERR_GENERAL - Underlying undefined platform error
433 *
434 * @pre dsHdmiInInit() must be called before calling this API
435 * @see dsAVLatencyChangeCB_t
436 *
437 * @warning This API is Not thread safe.
438 *
439 */
441
442/**
443 * @brief Registers a callback for the HDMI input Status Change event
444 *
445 * This function registers a callback for the HDMI input Status Change event.
446 *
447 * @param[in] CBFunc - HDMI input Status change callback function. Please refer ::dsHdmiInStatusChangeCB_t
448 *
449 * @return dsError_t - Status
450 * @retval dsERR_NONE - Success
451 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
452 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
453 *
454 * @pre dsHdmiInInit() must be called before calling this API
455 * @see dsHdmiInStatusChangeCB_t
456 *
457 * @warning This API is Not thread safe.
458 *
459 */
461
462/**
463 * @brief Registers a callback for the HDMI input video mode Change event
464 *
465 * This function registers a callback for the HDMI input video mode Change event.
466 * The mode change is triggered whenever the video resolution changes.
467 *
468 * @param[in] CBFunc - HDMI input video mode change callback function.
469 * Please refer ::dsHdmiInVideoModeUpdateCB_t
470 *
471 * @return dsError_t - Status
472 * @retval dsERR_NONE - Success
473 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
474 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
475 *
476 * @pre dsHdmiInInit() must be called before calling this API
477 * @see dsHdmiInVideoModeUpdateCB_t
478 *
479 * @warning This API is Not thread safe.
480 *
481 */
483
484/**
485 * @brief Registers a callback for the HDMI input ALLM Mode Change event
486 *
487 * This function registers a callback for the HDMI input ALLM Mode Change event.
488 *
489 * @param[in] CBFunc - HDMI input ALLM Mode change callback function.
490 * Please refer ::dsHdmiInAllmChangeCB_t
491 *
492 * @return dsError_t - Status
493 * @retval dsERR_NONE - Success
494 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
495 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices, or ALLM not supported
496 *
497 * @pre dsHdmiInInit() must be called before calling this API
498 * @see dsHdmiInAllmChangeCB_t
499 *
500 * @warning This API is Not thread safe.
501 *
502 */
504
505/**
506 * @brief Registers the HDMI Input Content type Change event
507 *
508 * This function registers for the HDMI Input content type change event.
509 *
510 * @param[in] CBFunc - HDMI input Avi Content Mode change callback function.
511 * Please refer ::dsHdmiInAviContentTypeChangeCB_t
512 *
513 * @return dsError_t - Status
514 * @retval dsERR_NONE - Success
515 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
516 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: AVI content type not supported
517 * @retval dsERR_GENERAL - Underlying undefined platform error
518 *
519 * @pre dsHdmiInInit() must be called before calling this API
520 * @see dsHdmiInAviContentTypeChangeCB_t
521 *
522 * @warning This API is Not thread safe.
523 *
524 */
526
527/**
528 * @brief Checks if the given port is an HDMI ARC port or not
529 *
530 * This function checks if the given port is an HDMI ARC port or not
531 *
532 * @param[in] iPort - HDMI Arc port. Max value is device specific. Min value of 0
533 *
534 * @return passed port is HDMI ARC or not
535 * @retval True or False
536 *
537 * @pre dsHdmiInInit() must be called before calling this API
538 *
539 * @warning This API is Not thread safe.
540 *
541 */
542bool dsIsHdmiARCPort (int iPort);
543/**
544 * @brief Gets the EDID bytes info corresponds to the given input port
545 *
546 * This function gets the EDID bytes info corresponds to the given input port.
547 *
548 * @param[in] iHdmiPort - HDMI input port.
549 * @param[out] edid - EDID data for which info is required
550 * @param[out] length - length of the EDID data. Min value of 0. Max length 256.
551 *
552 * @return dsError_t - Status
553 * @retval dsERR_NONE - Success
554 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
555 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
556 *
557 * @pre dsHdmiInInit() must be called before calling this API
558 *
559 * @warning This API is Not thread safe.
560 *
561 */
562dsError_t dsGetEDIDBytesInfo (int iHdmiPort, unsigned char **edid, int *length);
563
564/**
565 * @brief Gets the HDMI SPD info
566 *
567 * This function gets the HDMI SPD info.
568 *
569 * @param[in] iHdmiPort - HDMI input port.
570 * @param[out] data - HDMI SPD info data
571 * Should not exceed sizeof(dsSpd_infoframe_st). Please refer ::dsSpd_infoframe_st
572 *
573 * @return dsError_t - Status
574 * @retval dsERR_NONE - Success
575 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
576 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
577 *
578 * @pre dsHdmiInInit() must be called before calling this API
579 *
580 * @warning This API is Not thread safe.
581 *
582 */
583dsError_t dsGetHDMISPDInfo (int iHdmiPort, unsigned char **data);
584
585/**
586 * @brief Sets the EDID version to be used for a given port id
587 *
588 * This function sets the EDID version to be used for a given port id
589 *
590 * @param[in] iHdmiPort - HDMI input port.
591 * @param[in] iEdidVersion - input EDID version number to set.
592 *
593 * @return dsError_t - Status
594 * @retval dsERR_NONE - Success
595 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
596 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
597 *
598 * @pre dsHdmiInInit() must be called before calling this API
599 *
600 * @warning This API is Not thread safe
601 *
602 * @see dsGetEdidVersion()
603 *
604 */
605dsError_t dsSetEdidVersion (int iHdmiPort, int iEdidVersion);
606
607/**
608 * @brief Gets the EDID version currently being used for the given port id
609 *
610 * This function gets the EDID version currently being used for the given port id
611 *
612 * @param[in] iHdmiPort - HDMI input port.
613 * @param[out] iEdidVersion - input EDID version number.
614 *
615 * @return dsError_t - Status
616 * @retval dsERR_NONE - Success
617 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
618 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
619 *
620 * @pre dsHdmiInInit() must be called before calling this API
621 *
622 * @warning This API is Not thread safe
623 *
624 * @see dsSetEdidVersion()
625 *
626 */
627dsError_t dsGetEdidVersion (int iHdmiPort, int *iEdidVersion);
628
629/**
630 * @brief Checks whether ALLM status is enabled or disabled for the specific HDMI input port
631 *
632 * This function checks whether ALLM status is enabled or disabled for the specific HDMI input port
633 *
634 * @param[in] iHdmiPort - HDMI input port.
635 * @param[out] allmStatus - Flag to control the allm status
636 * ( @a true to enable, @a false to disable)
637 *
638 * @return dsError_t - Status
639 * @retval dsERR_NONE - Success
640 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
641 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
642 *
643 * @pre dsHdmiInInit() must be called before calling this API
644 *
645 * @warning This API is Not thread safe
646 *
647 */
648dsError_t dsGetAllmStatus (int iHdmiPort, bool *allmStatus);
649
650/**
651 * @brief Gets all the supported game features list information
652 *
653 * This function gets all the supported game features list information.
654 *
655 * @param[out] features - List of all supported game features.
656 * Please refer ::dsSupportedGameFeatureList_t
657 *
658 * @return dsError_t - Status
659 * @retval dsERR_NONE - Success
660 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
661 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
662 *
663 * @pre dsHdmiInInit() must be called before calling this API
664 *
665 * @warning This API is Not thread safe
666 *
667 */
669
670/**
671 * @brief Gets the current AV latency
672 *
673 * This function gets the current AV latency.
674 *
675 * @param[out] audio_latency - Audio latency value. Max value 500ms. Min value 0
676 * @param[out] video_latency - Video latency value. Max value 500ms. Min value 0
677 *
678 * @return dsError_t - Status
679 * @retval dsERR_NONE - Success
680 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
681 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported; e.g: source devices
682 *
683 * @pre dsHdmiInInit() must be called before calling this API
684 *
685 * @warning This API is Not thread safe
686 *
687 */
688dsError_t dsGetAVLatency(int *audio_latency, int *video_latency);
689
690#ifdef __cplusplus
691}
692#endif
693#endif /* _DS_dsHdmiInH_ */
694
695/** @} */ // End of DS HAL Hdmi Input Public APIs
696/** @} */ // End of DS HdmiIn HAL
697/** @} */ // End of Device Settings HAL
698/** @} */ // End of Device Settings Module
699/** @} */ // End of HPK
Device Settings HAL error codes.
HAL types.
dsError_t
Device Settings API Error return codes.
Definition dsError.h:100
dsError_t dsHdmiInRegisterAllmChangeCB(dsHdmiInAllmChangeCB_t CBFunc)
Registers a callback for the HDMI input ALLM Mode Change event.
dsError_t dsGetAVLatency(int *audio_latency, int *video_latency)
Gets the current AV latency.
dsError_t dsHdmiInRegisterAVLatencyChangeCB(dsAVLatencyChangeCB_t CBFunc)
Registers the HDMI In Latency Change event.
void(* dsHdmiInAviContentTypeChangeCB_t)(dsHdmiInPort_t port, dsAviContentType_t avi_content_type)
Notifies applications of HDMI Input Content Type change.
Definition dsHdmiIn.h:378
dsError_t dsGetEDIDBytesInfo(int iHdmiPort, unsigned char **edid, int *length)
Gets the EDID bytes info corresponds to the given input port.
dsError_t dsHdmiInGetStatus(dsHdmiInStatus_t *pStatus)
Gets the HDMI input port status of all ports.
dsError_t dsHdmiInInit(void)
Initializes the underlying HDMI input sub-system.
dsError_t dsSetEdidVersion(int iHdmiPort, int iEdidVersion)
Sets the EDID version to be used for a given port id.
dsError_t dsHdmiInRegisterConnectCB(dsHdmiInConnectCB_t CBFunc)
Registers a callback for the HDMI input hot plug event notification.
dsError_t dsGetHDMISPDInfo(int iHdmiPort, unsigned char **data)
Gets the HDMI SPD info.
void(* dsHdmiInAllmChangeCB_t)(dsHdmiInPort_t port, bool allm_mode)
Notifies applications when the HDMI input ALLM mode changes.
Definition dsHdmiIn.h:352
bool dsIsHdmiARCPort(int iPort)
Checks if the given port is an HDMI ARC port or not.
void(* dsHdmiInStatusChangeCB_t)(dsHdmiInStatus_t inputStatus)
Notifies applications when the HDMI input status changes on any port.
Definition dsHdmiIn.h:326
dsError_t dsHdmiInScaleVideo(int32_t x, int32_t y, int32_t width, int32_t height)
Scales the HDMI input video.
dsError_t dsGetSupportedGameFeaturesList(dsSupportedGameFeatureList_t *features)
Gets all the supported game features list information.
dsError_t dsHdmiInRegisterVideoModeUpdateCB(dsHdmiInVideoModeUpdateCB_t CBFunc)
Registers a callback for the HDMI input video mode Change event.
dsError_t dsGetEdidVersion(int iHdmiPort, int *iEdidVersion)
Gets the EDID version currently being used for the given port id.
dsError_t dsHdmiInRegisterStatusChangeCB(dsHdmiInStatusChangeCB_t CBFunc)
Registers a callback for the HDMI input Status Change event.
dsError_t dsHdmiInTerm(void)
Terminates the underlying HDMI input sub-system.
void(* dsAVLatencyChangeCB_t)(int audio_latency, int video_latency)
Notifies applications of HDMI Input AV Latency.
Definition dsHdmiIn.h:365
dsError_t dsHdmiInGetCurrentVideoMode(dsVideoPortResolution_t *resolution)
Gets the current HDMI input video mode of the active port.
void(* dsHdmiInVideoModeUpdateCB_t)(dsHdmiInPort_t port, dsVideoPortResolution_t videoResolution)
Notifies applications when the HDMI input port video mode changes.
Definition dsHdmiIn.h:340
dsError_t dsHdmiInGetNumberOfInputs(uint8_t *pNumberOfInputs)
Gets the number of HDMI input ports on the device.
void(* dsHdmiInConnectCB_t)(dsHdmiInPort_t Port, bool isPortConnected)
Notifies applications when the HDMI input port connection status changes.
Definition dsHdmiIn.h:300
dsError_t dsHdmiInRegisterAviContentTypeChangeCB(dsHdmiInAviContentTypeChangeCB_t CBFunc)
Registers the HDMI Input Content type Change event.
dsError_t dsGetAllmStatus(int iHdmiPort, bool *allmStatus)
Checks whether ALLM status is enabled or disabled for the specific HDMI input port.
dsError_t dsHdmiInSelectPort(dsHdmiInPort_t Port)
Selects the HDMI input port as active and available for presentation.
dsError_t dsHdmiInRegisterSignalChangeCB(dsHdmiInSignalChangeCB_t CBFunc)
Registers a callback for the HDMI input Signal Change event.
dsError_t dsHdmiInPauseAudio(void)
Stop the output of HDMI Input audio.
void(* dsHdmiInSignalChangeCB_t)(dsHdmiInPort_t port, dsHdmiInSignalStatus_t sigStatus)
Notifies applications when the HDMI input port signal status changes.
Definition dsHdmiIn.h:311
dsError_t dsHdmiInResumeAudio(void)
Start the output of HDMI Input audio.
dsError_t dsHdmiInSelectZoomMode(dsVideoZoom_t requestedZoomMode)
Updates the video zoom on the active HDMI input using the provided zoom mode.
enum dsAviContentType dsAviContentType_t
This enumeration defines the AVI Content Types.
enum _dsHdmiInSignalStatus_t dsHdmiInSignalStatus_t
This enumeration defines the type of HDMI signal status.
enum _dsHdmiInPort_t dsHdmiInPort_t
This enumeration defines the type of HDMI ports.
enum _dsVideoZoom_t dsVideoZoom_t
This enumeration defines all of the standard screen zoom (format conversion) modes.
Structure type for HDMI input status.
Definition dsTypes.h:990
Structure that captures Supported Game Features list.
Definition dsTypes.h:1110
Structure that defines video port resolution settings of output video device.
Definition dsTypes.h:582