I want to use the function ADL_Display_WriteAndReadI2C in ADL_SDK to read the EDID of monitor.
Can anyone explain me the parameter settings, especially for objI2C.iLine = objI2C.iSpeed = objI2C.pcData =
Be aware that ADL_Display_WriteAndReadI2C can be used only for following I2C lines
// Values for ADL_Display_WriteAndReadI2C()
#define ADL_DL_I2C_LINE_OEM 0x00000001
#define ADL_DL_I2C_LINE_OD_CONTROL 0x00000002
#define ADL_DL_I2C_LINE_OEM2 0x00000003
For all other’s can be used ADL_Display_DDCBlockAccess_Get.
///\brief Function to get Display DDC block access.
/// This function provides means for applications to send/receive data in the DDC information block via the 12C bus.
/// \param[in] iAdapterIndex The ADL index handle of the desired adapter.
/// \param[in] iDisplayIndex The desired display index. It can be retrieved from the ADLDisplayInfo data structure.
/// \param[in] iOption Combination of \ref ADL_DDC_OPTION_SWITCHDDC2 and \ref ADL_DDC_OPTION_RESTORECOMMAND
/// \param[in] iCommandIndex The index of the command to be saved in the registry.
/// This parameter is used only when \ref ADL_DDC_OPTION_RESTORECOMMAND of \b iOption is specified. Otherwize set this parameter to 0.
/// \param[in] iSendMsgLen The size of the send message buffer.
/// \param[in] lpucSendMsgBuf The pointer to the send message buffer.
/// \param[out] lpulRecvMsgLen The pointer to the size of the receive message buffer.
/// \param[out] lpucRecvMsgBuf The pointer to the retrieved receive message buffer.
/// \return If the function succeeds, the return value is \ref ADL_OK. Otherwise the return value is an ADL error code. \ref define_adl_results
/// \remarks To send data without receiving anything back, specify non-zero send message size and non-NULL buffer,
/// then set the receive message size to 0 and buffer to NULL.\n
/// To receive data, you have to send a command defined by the I2C protocol to the display, so you will always have to send
/// some sequence of bytes to the display, even if you only want to read from the display.\n
/// To send and receive data at the same time, specify non-zero send and receive message size and non-NULL send and receive
/// message buffers. You will have to worry about sending proper commands to the display, as defined by the I2C protocol.
int EXPOSED ADL_Display_DDCBlockAccess_Get(int iAdapterIndex, int iDisplayIndex, int iOption, int iCommandIndex,int iSendMsgLen, char *lpucSendMsgBuf, int *lpulRecvMsgLen, char *lpucRecvMsgBuf);
Thanks for the reply. I want to turn off the monitor and set the monitor speaker volume to a minimum. Can you give me an example how to do this?
Retrieving data ...