/* * $Id$ * * Copyright (C) 2003-2015 JNode.org * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; If not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package org.jnode.driver.video.ddc; /** * @author Ewout Prangsma (epr@users.sourceforge.net) */ public interface EDIDConstants { /* read complete EDID record */ public static final int EDID1_LEN = 128; public static final int BITS_PER_BYTE = 9; public static final int HEADER = 6; public static final int STD_TIMINGS = 8; public static final int DET_TIMINGS = 4; public static final byte[] HEADER_SIGNATURE = {0x00, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 0x00}; /* header: 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 */ public static final int HEADER_SECTION = 0; public static final int HEADER_LENGTH = 8; /* vendor section */ public static final int VENDOR_SECTION = (HEADER_SECTION + HEADER_LENGTH); public static final int V_MANUFACTURER = 0; public static final int V_PROD_ID = (V_MANUFACTURER + 2); public static final int V_SERIAL = (V_PROD_ID + 2); public static final int V_WEEK = (V_SERIAL + 4); public static final int V_YEAR = (V_WEEK + 1); public static final int VENDOR_LENGTH = (V_YEAR + 1); /* EDID version */ public static final int VERSION_SECTION = (VENDOR_SECTION + VENDOR_LENGTH); public static final int V_VERSION = 0; public static final int V_REVISION = (V_VERSION + 1); public static final int VERSION_LENGTH = (V_REVISION + 1); /* display information */ public static final int DISPLAY_SECTION = (VERSION_SECTION + VERSION_LENGTH); public static final int D_INPUT = 0; public static final int D_HSIZE = (D_INPUT + 1); public static final int D_VSIZE = (D_HSIZE + 1); public static final int D_GAMMA = (D_VSIZE + 1); public static final int FEAT_S = (D_GAMMA + 1); public static final int D_RG_LOW = (FEAT_S + 1); public static final int D_BW_LOW = (D_RG_LOW + 1); public static final int D_REDX = (D_BW_LOW + 1); public static final int D_REDY = (D_REDX + 1); public static final int D_GREENX = (D_REDY + 1); public static final int D_GREENY = (D_GREENX + 1); public static final int D_BLUEX = (D_GREENY + 1); public static final int D_BLUEY = (D_BLUEX + 1); public static final int D_WHITEX = (D_BLUEY + 1); public static final int D_WHITEY = (D_WHITEX + 1); public static final int DISPLAY_LENGTH = (D_WHITEY + 1); /* supported VESA and other standard timings */ public static final int ESTABLISHED_TIMING_SECTION = (DISPLAY_SECTION + DISPLAY_LENGTH); public static final int E_T1 = 0; public static final int E_T2 = (E_T1 + 1); public static final int E_TMANU = (E_T2 + 1); public static final int E_TIMING_LENGTH = (E_TMANU + 1); /* non predefined standard timings supported by display */ public static final int STD_TIMING_SECTION = (ESTABLISHED_TIMING_SECTION + E_TIMING_LENGTH); public static final int STD_TIMING_INFO_LEN = 2; public static final int STD_TIMING_INFO_NUM = STD_TIMINGS; public static final int STD_TIMING_LENGTH = (STD_TIMING_INFO_LEN * STD_TIMING_INFO_NUM); /* detailed timing info of non standard timings */ public static final int DET_TIMING_SECTION = (STD_TIMING_SECTION + STD_TIMING_LENGTH); public static final int DET_TIMING_INFO_LEN = 18; public static final int MONITOR_DESC_LEN = DET_TIMING_INFO_LEN; public static final int DET_TIMING_INFO_NUM = DET_TIMINGS; public static final int DET_TIMING_LENGTH = (DET_TIMING_INFO_LEN * DET_TIMING_INFO_NUM); /* number of EDID sections to follow */ public static final int NO_EDID = (DET_TIMING_SECTION + DET_TIMING_LENGTH); /* one byte checksum */ public static final int CHECKSUM = (NO_EDID + 1); }