45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* xf86DDC.h
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * This file contains all information to interpret a standard EDIC block
45e9809aff7304721fddb95654901b32195c9c7avboxsync * transmitted by a display device via DDC (Display Data Channel). So far
45e9809aff7304721fddb95654901b32195c9c7avboxsync * there is no information to deal with optional EDID blocks.
45e9809aff7304721fddb95654901b32195c9c7avboxsync * DDC is a Trademark of VESA (Video Electronics Standard Association).
45e9809aff7304721fddb95654901b32195c9c7avboxsync *
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Copyright 1998 by Egbert Eich <Egbert.Eich@Physik.TU-Darmstadt.DE>
45e9809aff7304721fddb95654901b32195c9c7avboxsync */
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#ifndef XF86_DDC_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync# define XF86_DDC_H
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "edid.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "xf86i2c.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync#include "xf86str.h"
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync/* speed up / slow down */
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef enum {
45e9809aff7304721fddb95654901b32195c9c7avboxsync DDC_SLOW,
45e9809aff7304721fddb95654901b32195c9c7avboxsync DDC_FAST
45e9809aff7304721fddb95654901b32195c9c7avboxsync} xf86ddcSpeed;
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef void (* DDC1SetSpeedProc)(ScrnInfoPtr, xf86ddcSpeed);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr xf86DoEDID_DDC1(
45e9809aff7304721fddb95654901b32195c9c7avboxsync int scrnIndex,
45e9809aff7304721fddb95654901b32195c9c7avboxsync DDC1SetSpeedProc DDC1SetSpeed,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int (*DDC1Read)(ScrnInfoPtr)
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr xf86DoEDID_DDC2(
45e9809aff7304721fddb95654901b32195c9c7avboxsync int scrnIndex,
45e9809aff7304721fddb95654901b32195c9c7avboxsync I2CBusPtr pBus
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr xf86PrintEDID(
45e9809aff7304721fddb95654901b32195c9c7avboxsync xf86MonPtr monPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr xf86InterpretEDID(
45e9809aff7304721fddb95654901b32195c9c7avboxsync int screenIndex, Uchar *block
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr xf86InterpretEEDID(
45e9809aff7304721fddb95654901b32195c9c7avboxsync int screenIndex, Uchar *block
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncxf86EdidMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT Bool xf86SetDDCproperties(
45e9809aff7304721fddb95654901b32195c9c7avboxsync ScrnInfoPtr pScreen,
45e9809aff7304721fddb95654901b32195c9c7avboxsync xf86MonPtr DDC
45e9809aff7304721fddb95654901b32195c9c7avboxsync);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT DisplayModePtr xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT Bool
45e9809aff7304721fddb95654901b32195c9c7avboxsyncxf86MonitorIsHDMI(xf86MonPtr mon);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT xf86MonPtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncxf86DoDisplayID(int scrnIndex, I2CBusPtr pBus);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT void
45e9809aff7304721fddb95654901b32195c9c7avboxsyncxf86DisplayIDMonitorSet(int scrnIndex, MonPtr mon, xf86MonPtr DDC);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT DisplayModePtr
45e9809aff7304721fddb95654901b32195c9c7avboxsyncFindDMTMode(int hsize, int vsize, int refresh, Bool rb);
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern _X_EXPORT const DisplayModeRec DMTModes[];
45e9809aff7304721fddb95654901b32195c9c7avboxsync
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif