/******************************************************************************
 *
 * Copyright 2013, Silicon Image, Inc.  All rights reserved.
 * No part of this work may be reproduced, modified, distributed, transmitted,
 * transcribed, or translated into any language or computer format, in any form
 * or by any means without written permission of
 * Silicon Image, Inc., 1140 East Arques Avenue, Sunnyvale, California 94085
 *
 *****************************************************************************/
/**
 * @file sii9777_rx_data.h
 *
 * @brief Host Driver for SiI9777 Rx device.
 *
 *****************************************************************************/

#ifndef SII9777_RX_DATA_H
#define SII9777_RX_DATA_H

#ifdef __cplusplus
extern "C"{
#endif

/***** #include statements ***************************************************/

/***** public macro definitions **********************************************/

/*****************************************************************************/
/**
* @brief Events generated by the driver
*
* These notifications are passed through a parameter of the @ref Sii9777CallBackFunc_t
* callback function when corresponding status is changed.
* The callback is registered through @ref Sii9777Create() function.
* Each notification can be enabled or disabled by @ref Sii9777NotifMaskSet() function.
*
******************************************************************************/
/* @{ */
#define SII9777_EVENT_FLAGS__PLUS_5V_CHNG           ((Sii9777EventFlags_t)0x00000010)  //!< RX +5V status changed, @see Sii9777Plus5vQuery()
#define SII9777_EVENT_FLAGS__EDID_CHNG              ((Sii9777EventFlags_t)0x00000020)  //!< RX +5V status changed, @see Sii9777EdidQuery()
#define SII9777_EVENT_FLAGS__HPD_CHNG               ((Sii9777EventFlags_t)0x00000040)  //!< RX +5V status changed, @see Sii9777HpdQuery()
#define SII9777_EVENT_FLAGS__AV_LINK_CHNG           ((Sii9777EventFlags_t)0x00000080)  //!< RX AV Mute status changed, @see Sii9777AvLinkQuery()
#define SII9777_EVENT_FLAGS__AV_MUTE_CHNG           ((Sii9777EventFlags_t)0x00000100)  //!< RX AV Mute status changed, @see Sii9777AvMuteQuery()
#define SII9777_EVENT_FLAGS__VIDEO_TIMING_CHNG      ((Sii9777EventFlags_t)0x00000200)  //!< Video timing measured at the input changed, @see Sii9777VideoTimingQuery()
#define SII9777_EVENT_FLAGS__VIDEO_FMT_CHNG         ((Sii9777EventFlags_t)0x00000400)  //!< Incoming video format changed, @see Sii9777VideoFormatQuery()
#define SII9777_EVENT_FLAGS__AUDIO_FMT_CHNG         ((Sii9777EventFlags_t)0x00000800)  //!< Incoming audio format changed, @see Sii9777AudioFormatQuery()
#define SII9777_EVENT_FLAGS__ISRC_CHNG              ((Sii9777EventFlags_t)0x00001000)  //!< Incoming ISRC info changed, @see Sii9777IsrcQuery()
#define SII9777_EVENT_FLAGS__ACP_CHNG               ((Sii9777EventFlags_t)0x00002000)  //!< Incoming ACP info changed, @see Sii9777AcpQuery()
#define SII9777_EVENT_FLAGS__SPD_CHNG               ((Sii9777EventFlags_t)0x00004000)  //!< Incoming SPD info changed, @see Sii9777SpdQuery()
#define SII9777_EVENT_FLAGS__HDCP_STREAM_CHNG       ((Sii9777EventFlags_t)0x00008000)  //!< Upstream HDCP STream Manage info changed, @see Sii9777HdcpStreamManageInfoQuery()
#define SII9777_EVENT_FLAGS__HDCP_STATUS_CHNG       ((Sii9777EventFlags_t)0x00010000)  //!< Upstream HDCP status changed, @see Sii9777HdcpStatusQuery()
#define SII9777_EVENT_FLAGS__CD_SENSE_CHNG          ((Sii9777EventFlags_t)0x00020000)  //!< Upstream CDSENSE changed, @see Sii9777RxCdSenseQuery()
#define SII9777_EVENT_FLAGS__MHL_VERSION_CHNG       ((Sii9777EventFlags_t)0x00040000)  //!< Upstream MHL Version changed, @see Sii9777MHLVersionQuery()
#define SII9777_EVENT_FLAGS__HDR_CHNG               ((Sii9777EventFlags_t)0x00080000)  //!< Incoming HDR info changed, @see Sii9777HdrQuery()
#define SII9777_EVENT_FLAGS__CBUS_EVENT             ((Sii9777EventFlags_t)0x00100000)  //!< Upstream CBUS event occured, @see Sii9777CbusModeQuery()
#define SII9777_EVENT_FLAGS__VBUS_REQUEST           ((Sii9777EventFlags_t)0x00200000)  //!< Upstream VBUS request event occured, @see Sii9777VbusRequestQuery()
#define SII9777_EVENT_FLAGS__DUAL_LINK_CHNG         ((Sii9777EventFlags_t)0x00400000)  //!< Upstream Dual-Link setting changed, @see Sii9777DualLinkQuery()
/* @} */

/***** public type definitions ***********************************************/
    
/**
* @brief Configuration structure for driver constructor
*/
typedef struct
{
    char                   pNameStr[8];
    bool_t                 bDeviceReset;
} Sii9777Config_t;

#ifdef __cplusplus
}
#endif

#endif // SII9777_RX_DATA_H

