1 #ifndef DI_DMT_H 2 #define DI_DMT_H 3 4 /** 5 * libdisplay-info's low-level API for VESA Display Monitor Timing (DMT). 6 * 7 * The library implements VESA DMT version 1.0 revision 13. 8 */ 9 10 #include <stdbool.h> 11 #include <stdint.h> 12 13 /** 14 * A DMT timing. 15 */ 16 struct di_dmt_timing { 17 /* DMT ID */ 18 uint8_t dmt_id; 19 /* EDID standard timing 2-byte code, zero if unset */ 20 uint16_t edid_std_id; 21 /* CVT 3-byte code, zero if unset */ 22 uint32_t cvt_id; 23 /* Addressable pixels */ 24 int32_t horiz_video, vert_video; 25 /* Field Refresh Rate in Hz */ 26 float refresh_rate_hz; 27 /* Pixel clock in Hz */ 28 int32_t pixel_clock_hz; 29 /* Horizontal/Vertical Blanking in pixels/lines */ 30 int32_t horiz_blank, vert_blank; 31 /* Horizontal/Vertical Front Porch in pixels/lines */ 32 int32_t horiz_front_porch, vert_front_porch; 33 /* Horizontal/Vertical Sync Pulse Width in pixels/lines */ 34 int32_t horiz_sync_pulse, vert_sync_pulse; 35 /* Horizontal/Vertical Border in pixels/lines */ 36 int32_t horiz_border, vert_border; 37 /* Whether the timing has reduced blanking */ 38 bool reduced_blanking; 39 }; 40 41 #endif 42