iBoot/include/drivers/displayAV.h

111 lines
3.0 KiB
C

/*
* Copyright (C) 2012-2015 Apple Inc. All rights reserved.
*
* This document is the property of Apple Inc.
* It is considered confidential and proprietary.
*
* This document may not be reproduced or transmitted in any form,
* in whole or in part, without the express written permission of
* Apple Inc.
*/
#ifndef DRIVERS_DISPLAYAV_H
#define DRIVERS_DISPLAYAV_H 1
enum {
kDisplayAxisTypeHorizontal,
kDisplayAxisTypeVertical,
kDisplayAxisCount
};
enum {
kDisplayColorSpacesRGB,
kDisplayColorSpacesYCbCr422,
kDisplayColorSpacesYCbCr444
};
enum {
kDisplayColorDynamicRangeFull,
kDisplayColorDynamicRangeLimited,
kDisplayColorDynamicRangeVESA = kDisplayColorDynamicRangeFull,
kDisplayColorDynamicRangeCEA = kDisplayColorDynamicRangeLimited
};
enum {
kDisplayColorCoefficientITU601,
kDisplayColorCoefficientITU709
};
enum {
kDisplayTestModeOff,
kDisplayTestModeColorRamp,
kDisplayTestModeBlackWhiteVLines,
kDisplayTestModeColorSquare,
kDisplayTestModeInvalid,
kDisplayTestModeColorBar32,
kDisplayTestModeColorBar64,
kDisplayTestModeWhiteGrayBlackBar32,
kDisplayTestModeWhiteGrayBlackBar64,
kDisplayTestModeMobileWhiteBar32,
kDisplayTestModeMobileWhiteBar64
};
enum {
kDisplayColorRGBQuantizationRangeDefault,
kDisplayColorRGBQuantizationRangeLimited,
kDisplayColorRGBQuantizationRangeFull
};
struct video_color_data {
u_int32_t depth;
u_int32_t space;
u_int32_t range;
u_int32_t coefficient;
};
struct video_timing_axis {
uint32_t total;
uint32_t active;
uint32_t sync_width;
uint32_t back_porch;
uint32_t front_porch;
int32_t sync_rate;
uint32_t sync_polarity;
};
struct video_timing_data {
bool interlaced;
struct video_timing_axis axis[kDisplayAxisCount];
};
struct video_link_data {
bool mirror_mode;
u_int32_t test_mode;
struct video_color_data color;
struct video_timing_data timing;
};
typedef enum {
kDisplayInfoFrameTypeReserved = 0x80,
kDisplayInfoFrameTypeVendorSpecific = 0x81,
kDisplayInfoFrameTypeAVI = 0x82,
kDisplayInfoFrameTypeProductDescription = 0x83,
kDisplayInfoFrameTypeAudio = 0x84,
kDisplayInfoFrameTypeMPEG = 0x85,
kDisplayInfoFrameTypeMin = kDisplayInfoFrameTypeReserved,
kDisplayInfoFrameTypeMax = kDisplayInfoFrameTypeMPEG,
kDisplayInfoFrameTypeCount = 1 + (kDisplayInfoFrameTypeMax - kDisplayInfoFrameTypeMin)
} display_infoframe_type;
struct display_infoframe {
display_infoframe_type type;
uint8_t version;
uint8_t length;
uint8_t checksum;
uint8_t data[28];
};
#endif