Edit

kc3-lang/SDL/src/video/x11/edid.h

Branch :

  • Show log

    Commit

  • Author : David Ludwig
    Date : 2014-04-09 21:29:19
    Hash : 3dcb451f
    Message : Added a README file regarding WinRT support To note, this file is currently formatted with CRLF line endings, rather than LF, to allow the file to be viewed with Notepad.

  • src/video/x11/edid.h
  • typedef unsigned char uchar;
    typedef struct MonitorInfo MonitorInfo;
    typedef struct Timing Timing;
    typedef struct DetailedTiming DetailedTiming;
    
    typedef enum
    {
        UNDEFINED,
        DVI,
        HDMI_A,
        HDMI_B,
        MDDI,
        DISPLAY_PORT
    } Interface;
    
    typedef enum
    {
        UNDEFINED_COLOR,
        MONOCHROME,
        RGB,
        OTHER_COLOR
    } ColorType;
    
    typedef enum
    {
        NO_STEREO,
        FIELD_RIGHT,
        FIELD_LEFT,
        TWO_WAY_RIGHT_ON_EVEN,
        TWO_WAY_LEFT_ON_EVEN,
        FOUR_WAY_INTERLEAVED,
        SIDE_BY_SIDE
    } StereoType;
    
    struct Timing
    {
        int width;
        int height;
        int frequency;
    };
    
    struct DetailedTiming
    {
        int		pixel_clock;
        int		h_addr;
        int		h_blank;
        int		h_sync;
        int		h_front_porch;
        int		v_addr;
        int		v_blank;
        int		v_sync;
        int		v_front_porch;
        int		width_mm;
        int		height_mm;
        int		right_border;
        int		top_border;
        int		interlaced;
        StereoType	stereo;
    
        int		digital_sync;
        union
        {
    	struct
    	{
    	    int bipolar;
    	    int serrations;
    	    int sync_on_green;
    	} analog;
    
    	struct
    	{
    	    int composite;
    	    int serrations;
    	    int negative_vsync;
    	    int negative_hsync;
    	} digital;
        };
    };
    
    struct MonitorInfo
    {
        int			checksum;
        char		manufacturer_code[4];
        int			product_code;
        unsigned int	serial_number;
        
        int			production_week;	/* -1 if not specified */
        int			production_year;	/* -1 if not specified */
        int			model_year;		/* -1 if not specified */
    
        int			major_version;
        int			minor_version;
    
        int			is_digital;
        
        union
        {
    	struct
    	{
    	    int		bits_per_primary;
    	    Interface	interface;
    	    int		rgb444;
    	    int		ycrcb444;
    	    int		ycrcb422;
    	} digital;
    
    	struct
    	{
    	    double	video_signal_level;
    	    double	sync_signal_level;
    	    double	total_signal_level;
    
    	    int		blank_to_black;
    
    	    int		separate_hv_sync;
    	    int		composite_sync_on_h;
    	    int		composite_sync_on_green;
    	    int		serration_on_vsync;
    	    ColorType	color_type;
    	} analog;
        };
    
        int			width_mm;		/* -1 if not specified */
        int			height_mm;		/* -1 if not specified */
        double		aspect_ratio;		/* -1.0 if not specififed */
    
        double		gamma;			/* -1.0 if not specified */
    
        int			standby;
        int			suspend;
        int			active_off;
    
        int			srgb_is_standard;
        int			preferred_timing_includes_native;
        int			continuous_frequency;
    
        double		red_x;
        double		red_y;
        double		green_x;
        double		green_y;
        double		blue_x;
        double		blue_y;
        double		white_x;
        double		white_y;
    
        Timing		established[24];	/* Terminated by 0x0x0 */
        Timing		standard[8];
        
        int			n_detailed_timings;
        DetailedTiming	detailed_timings[4];	/* If monitor has a preferred
    						 * mode, it is the first one
    						 * (whether it has, is
    						 * determined by the 
    						 * preferred_timing_includes
    						 * bit.
    						 */
    
        /* Optional product description */
        char		dsc_serial_number[14];
        char		dsc_product_name[14];
        char		dsc_string[14];		/* Unspecified ASCII data */
    };
    
    MonitorInfo *decode_edid (const uchar *data);
    void         dump_monitor_info (MonitorInfo *info);
    char *       make_display_name (const char        *output_name,
    				const MonitorInfo *info);