/******************************************************************************
 *
 * 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__AV_LINK_CHNG           0x00010000  //!< RX AV Mute status changed, @see Sii9777AvMuteStatusGet()
#define SII9777_EVENT__AV_MUTE_CHNG           0x00020000  //!< RX AV Mute status changed, @see Sii9777AvMuteStatusGet()
#define SII9777_EVENT__PLUS_5V_CHNG           0x00040000  //!< RX +5V status changed, @see Sii9777Plus5vStatusGet()
#define SII9777_EVENT__VIDEO_TIMING_CHNG      0x00080000  //!< Video timing measured at the input changed, @see Sii9777VideoTimingStatusGet()
#define SII9777_EVENT__VIDEO_FMT_CHNG         0x00100000  //!< Incoming video format changed, @see Sii9777VideoFmtStatusGet()
#define SII9777_EVENT__AUDIO_FMT_CHNG         0x00200000  //!< Incoming audio format changed, @see Sii9777AudioFmtStatusGet()
#define SII9777_EVENT__ISRC_CHNG              0x00400000  //!< Incoming ISRC info changed, @see Sii9777IsrcStatusGet()
#define SII9777_EVENT__ACP_CHNG               0x00800000  //!< Incoming ACP info changed, @see Sii9777AcpStatusGet()
#define SII9777_EVENT__SPD_CHNG               0x01000000  //!< Incoming SPD info changed, @see Sii9777SpdStatusGet()
#define SII9777_EVENT__HDCP_STATUS_CHNG       0x02000000  //!< Upstream HDCP status changed, @see Sii9777HdcpStatus_t
/* @} */

/***** public type definitions ***********************************************/
    
/**
* @brief Configuration structure for driver constructor
*/
typedef struct
{
    const char*       pNameStr;
    Sii9777TxPort_t   primTxPort;         //!< Output port used for downstream EDID, HPD.
} Sii9777Config_t;

#ifdef __cplusplus
}
#endif

#endif // SII9777_RX_DATA_H

