Documentation for <libdisplay-info/displayid.h>
Table of contents
- struct di_displayid
- struct di_displayid_data_block
- di_displayid_data_block_get_display_params()
- di_displayid_data_block_get_tag()
- di_displayid_data_block_get_tiled_topo()
- di_displayid_data_block_get_type_i_timings()
- enum di_displayid_data_block_tag
- struct di_displayid_display_params
- struct di_displayid_display_params_features
- di_displayid_get_data_blocks()
- di_displayid_get_product_type()
- di_displayid_get_revision()
- di_displayid_get_version()
- enum di_displayid_product_type
- struct di_displayid_tiled_topo
- struct di_displayid_tiled_topo_bezel
- struct di_displayid_tiled_topo_caps
- enum di_displayid_tiled_topo_missing_recv_behavior
- enum di_displayid_tiled_topo_single_recv_behavior
- struct di_displayid_type_i_timing
- enum di_displayid_type_i_timing_aspect_ratio
- enum di_displayid_type_i_timing_stereo_3d
- enum di_displayid_type_i_timing_sync_polarity
struct di_displayid ¶
struct di_displayid;
DisplayID data structure.
struct di_displayid_data_block ¶
struct di_displayid_data_block;
A DisplayID data block.
di_displayid_data_block_get_display_params() ¶
const struct di_displayid_display_params *di_displayid_data_block_get_display_params(const struct di_displayid_data_block *data_block);
Get display parameters from a DisplayID data block.
Returns NULL if the data block tag isn't DI_DISPLAYID_DATA_BLOCK_DISPLAY_PARAMS.
di_displayid_data_block_get_tag() ¶
enum di_displayid_data_block_tag di_displayid_data_block_get_tag(const struct di_displayid_data_block *data_block);
Get a DisplayID data block tag.
di_displayid_data_block_get_tiled_topo() ¶
const struct di_displayid_tiled_topo *di_displayid_data_block_get_tiled_topo(const struct di_displayid_data_block *data_block);
Get tiled display topology from a DisplayID data block.
Returns NULL if the data block tag isn't DI_DISPLAYID_DATA_BLOCK_TILED_DISPLAY_TOPO.
di_displayid_data_block_get_type_i_timings() ¶
const struct di_displayid_type_i_timing **di_displayid_data_block_get_type_i_timings(const struct di_displayid_data_block *data_block);
Get type I timings from a DisplayID data block.
The returned array is NULL-terminated.
Returns NULL if the data block tag isn't DI_DISPLAYID_DATA_BLOCK_TYPE_I_TIMING.
enum di_displayid_data_block_tag ¶
enum di_displayid_data_block_tag { /*Product Identification Data Block */ DI_DISPLAYID_DATA_BLOCK_PRODUCT_ID, /* Display Parameters Data Block */ DI_DISPLAYID_DATA_BLOCK_DISPLAY_PARAMS, /* Color Characteristics Data Block */ DI_DISPLAYID_DATA_BLOCK_COLOR_CHARACT, /* Video Timing Modes Type I - Detailed Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_TYPE_I_TIMING, /* Video Timing Modes Type II - Detailed Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_TYPE_II_TIMING, /* Video Timing Modes Type III - Short Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_TYPE_III_TIMING, /* Video Timing Modes Type IV - DMT Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_TYPE_IV_TIMING, /* Supported Timing Modes - VESA DMT Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_VESA_TIMING, /* Supported Timing Modes - CTA-861 Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_CEA_TIMING, /* Video Timing Range Data Block */ DI_DISPLAYID_DATA_BLOCK_TIMING_RANGE_LIMITS, /* Product Serial Number Data Block */ DI_DISPLAYID_DATA_BLOCK_PRODUCT_SERIAL, /* General-purpose ASCII String Data Block */ DI_DISPLAYID_DATA_BLOCK_ASCII_STRING, /* Display Device Data Data Block */ DI_DISPLAYID_DATA_BLOCK_DISPLAY_DEVICE_DATA, /* Interface Power Sequencing Data Block */ DI_DISPLAYID_DATA_BLOCK_INTERFACE_POWER_SEQ, /* Transfer Characteristics Data Block */ DI_DISPLAYID_DATA_BLOCK_TRANSFER_CHARACT, /* Display Interface Data Block */ DI_DISPLAYID_DATA_BLOCK_DISPLAY_INTERFACE, /* Stereo Display Interface Data Block */ DI_DISPLAYID_DATA_BLOCK_STEREO_DISPLAY_INTERFACE, /* Video Timing Modes Type V - Short Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_TYPE_V_TIMING, /* Tiled Display Topology Data Block */ DI_DISPLAYID_DATA_BLOCK_TILED_DISPLAY_TOPO, /* Video Timing Modes Type VI - Detailed Timings Data Block */ DI_DISPLAYID_DATA_BLOCK_TYPE_VI_TIMING, };
DisplayID data block tag.
struct di_displayid_display_params ¶
struct di_displayid_display_params { /* Image size in millimeters accurate to the thenths place, zero if unset */ float horiz_image_mm, vert_image_mm; /* Native format size in pixels, zero if unset */ int32_t horiz_pixels, vert_pixels; /* Feature flags */ const struct di_displayid_display_params_features *features; /* Transfer characteristic gamma, zero if unset */ float gamma; /* Aspect ratio (long axis divided by short axis) */ float aspect_ratio; /* Color bit depth (dynamic range) */ int32_t bits_per_color_overall, bits_per_color_native; };
Display parameters data block, defined in section 4.2.
struct di_displayid_display_params_features ¶
struct di_displayid_display_params_features { /* Audio support on video interface */ bool audio; /* Audio inputs are provided separately from the video interface */ bool separate_audio_inputs; /* Audio information received via the video interface will automatically * override any other audio input channels provided */ bool audio_input_override; /* Display supports the VESA Display Power Management (DPM) standard */ bool power_management; /* Display is capable of only a single fixed timing */ bool fixed_timing; /* Display is capable of supporting timings at only a single fixed pixel * format */ bool fixed_pixel_format; /* Display supports ACP, ISRC1 or ISRC2 packets */ bool ai; /* Display by default will de-interlace any interlaced video input */ bool deinterlacing; };
Display parameters feature support flags, defined in section 4.2.3.
di_displayid_get_data_blocks() ¶
const struct di_displayid_data_block **di_displayid_get_data_blocks(const struct di_displayid *displayid);
Get DisplayID data blocks.
The returned array is NULL-terminated.
di_displayid_get_product_type() ¶
enum di_displayid_product_type di_displayid_get_product_type(const struct di_displayid *displayid);
Get the DisplayID product type.
di_displayid_get_revision() ¶
int di_displayid_get_revision(const struct di_displayid *displayid);
Get the DisplayID revision.
di_displayid_get_version() ¶
int di_displayid_get_version(const struct di_displayid *displayid);
Get the DisplayID version.
enum di_displayid_product_type ¶
enum di_displayid_product_type { /* Extension section */ DI_DISPLAYID_PRODUCT_TYPE_EXTENSION, /* Test structure or equipment */ DI_DISPLAYID_PRODUCT_TYPE_TEST, /* Display panel or other transducer, LCD or PDP module, etc. */ DI_DISPLAYID_PRODUCT_TYPE_DISPLAY_PANEL, /* Standalone display device, desktop monitor, TV monitor, etc. */ DI_DISPLAYID_PRODUCT_TYPE_STANDALONE_DISPLAY, /* Television receiver */ DI_DISPLAYID_PRODUCT_TYPE_TV_RECEIVER, /* Repeater/translator */ DI_DISPLAYID_PRODUCT_TYPE_REPEATER, /* Direct drive monitor */ DI_DISPLAYID_PRODUCT_TYPE_DIRECT_DRIVE, };
Product type identifier, defined in section 2.3.
struct di_displayid_tiled_topo ¶
struct di_displayid_tiled_topo { /* Capabilities */ const struct di_displayid_tiled_topo_caps *caps; /* Total number of horizontal/vertical tiles */ int32_t total_horiz_tiles, total_vert_tiles; /* Horizontal/vertical tile location */ int32_t horiz_tile_location, vert_tile_location; /* Horizontal/vertical size in pixels */ int32_t horiz_tile_pixels, vert_tile_lines; /* Bezel information, NULL if unset */ const struct di_displayid_tiled_topo_bezel *bezel; /* Vendor PnP ID, product code and serial number */ char vendor_id[]; uint16_t product_code; uint32_t serial_number; };
Tiled display topology, defined in section 4.14.
struct di_displayid_tiled_topo_bezel ¶
struct di_displayid_tiled_topo_bezel { float top_px, bottom_px, right_px, left_px; };
Tiled display bezel information.
The lengths are measured in pixels, accurate to the tenths place.
struct di_displayid_tiled_topo_caps ¶
struct di_displayid_tiled_topo_caps { /* The tiled display is within a single physical display enclosure */ bool single_enclosure; /* Behavior when subsets of the tiles of the entire tiled display are * receiving images from source */ enum di_displayid_tiled_topo_missing_recv_behavior missing_recv_behavior; enum di_displayid_tiled_topo_single_recv_behavior single_recv_behavior; };
Tiled display capabilities.
enum di_displayid_tiled_topo_missing_recv_behavior ¶
enum di_displayid_tiled_topo_missing_recv_behavior { /* Undefined */ DI_DISPLAYID_TILED_TOPO_MISSING_RECV_UNDEF, /* The image is displayed on the tile only */ DI_DISPLAYID_TILED_TOPO_MISSING_RECV_TILE_ONLY, };
Behavior when more than 1 tile and less than total number of tiles are driven by the source.
enum di_displayid_tiled_topo_single_recv_behavior ¶
enum di_displayid_tiled_topo_single_recv_behavior { /* Undefined */ DI_DISPLAYID_TILED_TOPO_SINGLE_RECV_UNDEF, /* Image is displayed on the tile only */ DI_DISPLAYID_TILED_TOPO_SINGLE_RECV_TILE_ONLY, /* Image is scaled to fit the entire tiled display */ DI_DISPLAYID_TILED_TOPO_SINGLE_RECV_SCALED, /* Image is cloned to all other tiles of the entire tiled display */ DI_DISPLAYID_TILED_TOPO_SINGLE_RECV_CLONED, };
Behavior of this tile when it is the only tile receiving an image from the source.
struct di_displayid_type_i_timing ¶
struct di_displayid_type_i_timing { double pixel_clock_mhz; /* mega-hertz */ bool preferred; enum di_displayid_type_i_timing_stereo_3d stereo_3d; bool interlaced; enum di_displayid_type_i_timing_aspect_ratio aspect_ratio; int32_t horiz_active, vert_active; int32_t horiz_blank, vert_blank; int32_t horiz_offset, vert_offset; int32_t horiz_sync_width, vert_sync_width; enum di_displayid_type_i_timing_sync_polarity horiz_sync_polarity, vert_sync_polarity; };
Type I timing, defined in section 4.4.1.
enum di_displayid_type_i_timing_aspect_ratio ¶
enum di_displayid_type_i_timing_aspect_ratio { DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_1_1, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_5_4, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_4_3, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_15_9, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_16_9, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_16_10, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_64_27, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_256_135, DI_DISPLAYID_TYPE_I_TIMING_ASPECT_RATIO_UNDEFINED, };
enum di_displayid_type_i_timing_stereo_3d ¶
enum di_displayid_type_i_timing_stereo_3d { /* This timing is always displayed monoscopic (no stereo) */ DI_DISPLAYID_TYPE_I_TIMING_STEREO_3D_NEVER, /* This timing is always displayed in stereo */ DI_DISPLAYID_TYPE_I_TIMING_STEREO_3D_ALWAYS, /* This timing is displayed in mono or stereo depending on a user action * (wearing the stereo glasses, etc.) */ DI_DISPLAYID_TYPE_I_TIMING_STEREO_3D_USER, };
enum di_displayid_type_i_timing_sync_polarity ¶
enum di_displayid_type_i_timing_sync_polarity { DI_DISPLAYID_TYPE_I_TIMING_SYNC_NEGATIVE, DI_DISPLAYID_TYPE_I_TIMING_SYNC_POSITIVE, };