diff -r 3f0699f2e14c -r 11da52d4c847 devicesrv_plat/tv_out_config_api/inc/tvoutconfigdef.h --- a/devicesrv_plat/tv_out_config_api/inc/tvoutconfigdef.h Thu Oct 14 12:47:54 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,681 +0,0 @@ -/* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: API definition file for tv-out configuration. -* -*/ - -#ifndef __TVOUTCONFIGDEF_H__ -#define __TVOUTCONFIGDEF_H__ - -//- Include Files ---------------------------------------------------------- - -#include - -//- Class and Enumeration Definitions --------------------------------------- - -/** -CEA specified fixed modes. -ExHz -Enumeration value matching to specified mode number. -*/ -enum TFixedModeCea - { - ECeaFixedModeNone = 0, - - //CEA fixed modes (CEA-861-B.pdf) - E640x480p59_94d60Hz4d3 = 1, - E720x480p59_94d60Hz4d3 = 2, - E720x480p59_94d60Hz16d9 = 3, - E1280x720p59_94d60Hz16d9 = 4, - E1920x1080i59_94d60Hz16d9 = 5, - E720x480i59_94d60Hz4d3 = 6, - E720x480i59_94d60Hz16d9 = 7, - E720x240p59_94d60Hz4d3 = 8, - E720x240p59_94d60Hz16d9 = 9, - E2880x480i59_94d60Hz4d3 = 10, - E2880x480i59_94d60Hz16d9 = 11, - E2880x240p59_94d60Hz4d3 = 12, - E2880x240p59_94d60Hz16d9 = 13, - E1440x480p59_94d60Hz4d3 = 14, - E1440x480p59_94d60Hz16d9 = 15, - E1920x1080p59_94d60Hz16d9 = 16, - E720x576p50Hz4d3 = 17, - E720x576p50Hz16d9 = 18, - E1280x720p50Hz16d9 = 19, - E1920x1080i50Hz16d9_1125 = 20, // 1125 vertical lines - E720x1080i50Hz16d9 = 20, // Wrong value. Will be deprecated. - E720x576i50Hz4d3 = 21, - E720x576i50Hz16d9 = 22, - E720x288p50Hz4d3 = 23, - E720x288p50Hz16d9 = 24, - E2880x576i50Hz4d3 = 25, - E2880x576i50Hz16d9 = 26, - E2880x288p50Hz4d3 = 27, - E2880x288p50Hz16d9 = 28, - E1440x576p50Hz4d3 = 29, - E1440x576p50Hz16d9 = 30, - E1920x1080p50Hz16d9 = 31, - E1920x1080p23_97d24Hz16d9 = 32, - E1920x1080p25Hz16d9 = 33, - E1920x1080p29_97d30Hz16d9 = 34, - - //CEA fixed modes (CEA-861-D.pdf) - E2880x480p59_94d60Hz4d3 = 35, - E2880x480p59_94d60Hz16d9 = 36, - E2880x576p50Hz4d3 = 37, - E2880x576p50Hz16d9 = 38, - E1920x1080i50Hz16d9_1250 = 39, // 1250 vertical lines - E1920x1080i50Hz16d9 = 39, // Confusing name. Will be deprecated. - E1920x1080i100Hz16d9 = 40, - E1280x720p100Hz16d9 = 41, - E720x576p100Hz4d3 = 42, - E720x576p100Hz16d9 = 43, - E720x576i100Hz4d3 = 44, - E720x576i100Hz16d9 = 45, - E1920x1080i119_88d120Hz16d9 = 46, - E1280x720p119_88d120Hz16d9 = 47, - E720x480p119_88d120Hz4d3 = 48, - E720x480p119_88d120Hz16d9 = 49, - E720x480i119_88d120Hz4d3 = 50, - E720x480i119_88d120Hz16d9 = 51, - E720x576p200Hz4d3 = 52, - E720x576p200Hz16d9 = 53, - E720x576i200Hz4d3 = 54, - E720x576i200Hz16d9 = 55, - E720x480p239_76d240Hz4d3 = 56, - E720x480p239_76d240Hz16d9 = 57, - E720x480i239_76d240Hz4d3 = 58, - E720x480i239_76d240Hz16d9 = 59, - - //CEA fixed modes (CEA-861-E.pdf) - E1280x720p23_97d24Hz16d9 = 60, - E1280x720p25Hz16d9 = 61, - E1280x720p29_97d30Hz16d9 = 62, - E1920x1080p119_88d120Hz16d9 = 63, - E1920x1080p100Hz16d9 = 64, - - ELastCeaFixedModeValue, //this must be last. - }; - -/** -VESA specified fixed modes. -ExHz -Enumeration value matching to specified mode number. -*/ -enum TFixedModeDmt - { - EDmtFixedModeNone = 0, - - //VESA (DMTv1r11.pdf) - E640x350p85HzRB = 1, - E640x400p85HzRB = 2, - E720x400p85HzRB = 3, - E640x480p60HzRB = 4, - E640x480p72HzRB = 5, - E640x480p75HzRB = 6, - E640x480p85HzRB = 7, - E800x600p56HzRB = 8, - E800x600p60HzRB = 9, - E800x600p72HzRB = 10, - E800x600p75HzRB = 11, - E800x600p85HzRB = 12, - E800x600p120HzRB = 13, - E848x480p60HzRB = 14, - E1024x768i87HzRB = 15, - E1024x768p60HzRB = 16, - E1024x768p70HzRB = 17, - E1024x768p75HzRB = 18, - E1024x768p85HzRB = 19, - E1024x768p120HzRB = 20, - E1152x864p75HzRB = 21, - E1280x768p60HzRB = 22, - E1280x768p60Hz = 23, - E1280x768p75HzRB = 24, - E1280x768p85HzRB = 25, - E1280x768p120HzRB = 26, - E1280x800p60HzRB = 27, - E1280x800p60Hz = 28, - E1280x800p75HzRB = 29, - E1280x800p85HzRB = 30, - E1280x800p120HzRB = 31, - E1280x960p60HzRB = 32, - E1280x960p85HzRB = 33, - E1280x960p120HzRB = 34, - E1280x1024p60HzRB = 35, - E1280x1024p75HzRB = 36, - E1280x1024p85HzRB = 37, - E1280x1024p120HzRB = 38, - E1360x768p60HzRB = 39, - E1360x768p120HzRB = 40, - E1400x1050p60HzRB = 41, - E1400x1050p60Hz = 42, - E1400x1050p75HzRB = 43, - E1400x1050p85HzRB = 44, - E1400x1050p120HzRB = 45, - E1440x900p60HzRB = 46, - E1440x900p60Hz = 47, - E1440x900p75HzRB = 48, - E1440x900p85HzRB = 49, - E1440x900p120HzRB = 50, - E1600x1200p60HzRB = 51, - E1600x1200p65HzRB = 52, - E1600x1200p70HzRB = 53, - E1600x1200p75HzRB = 54, - E1600x1200p85HzRB = 55, - E1600x1200p120HzRB = 56, - E1680x1050p60HzRB = 57, - E1680x1050p60Hz = 58, - E1680x1050p75HzRB = 59, - E1680x1050p85HzRB = 60, - E1680x1050p120HzRB = 61, - E1792x1344p60HzRB = 62, - E1792x1344p75HzRB = 63, - E1792x1344p120HzRB = 64, - E1856x1392p60HzRB = 65, - E1856x1392p75HzRB = 66, - E1856x1392p120HzRB = 67, - E1920x1200p60HzRB = 68, - E1920x1200p60Hz = 69, - E1920x1200p75HzRB = 70, - E1920x1200p85HzRB = 71, - E1920x1200p120HzRB = 72, - E1920x1440p60HzRB = 73, - E1920x1440p75HzRB = 74, - E1920x1440p120HzRB = 75, - E2560x1600p60HzRB = 76, - E2560x1600p60Hz = 77, - E2560x1600p75HzRB = 78, - E2560x1600p85HzRB = 79, - E2560x1600p120HzRB = 80, - E1366x768p60HzRB = 81, - E1920x1080p60HzRB = 82, - - ELastDmtFixedModeValue, //this must be last. - }; - -/** -Color space coordinates. Fixed point is 10th bit. -Example: If iRed.iY=625, it should be divided by 1024 (2^10) for getting real value 0.61035... -*/ -class TTvColorCoordinates - { - public: - TTvColorCoordinates():iRed(), - iGreen(), - iBlue(), - iWhite() - {} - ///Red chromaticity coordinates (X,Y) - TPoint iRed; - ///Green chromaticity coordinates - TPoint iGreen; - ///Blue chromaticity coordinates - TPoint iBlue; - ///White chromaticity coordinates - TPoint iWhite; - }; - -//Pixel repetation bit masks for TSupportedHdmiDviMode::iPixelRepeatBitMask -const TUint KPixelSentOnce = 0; //No repetation, pixel sent once -const TUint KPixelSent2Times = ( 1 << 0 ); -const TUint KPixelSent3Times = ( 1 << 1 ); -const TUint KPixelSent4Times = ( 1 << 2 ); -const TUint KPixelSent5Times = ( 1 << 3 ); -const TUint KPixelSent6Times = ( 1 << 4 ); -const TUint KPixelSent7Times = ( 1 << 5 ); -const TUint KPixelSent8Times = ( 1 << 6 ); -const TUint KPixelSent9Times = ( 1 << 7 ); -const TUint KPixelSent10Times = ( 1 << 8 ); -/** -One mode struct for making capability query of own HW (phone capabilities). -*/ -class TSupportedHdmiDviMode - { - public: - enum TStandardModeType - { - ///CEA mode, TFixedModeCea - ECea = 0x00, - ///Dmt mode, TFixedModeDmt - EDmt = 0x01, - }; - public: - TSupportedHdmiDviMode():iStandardMode(ECeaFixedModeNone), - iStandardModeType(ECea), - iHigherRefreshRateSupported(0), - iLowerRefreshRateSupported(0), - iPixelRepeatBitMask(KPixelSentOnce) - {} - public: - ///Standard CEA (TFixedModeCea) or DMT (TFixedModeDmt) mode number. @see iStandardModeType - TUint8 iStandardMode; - ///Type of TStandardModeType. ECea if iStandardMode is CEA mode (TFixedModeCea), EDmt when DMT mode (TFixedModeDmt). - TUint8 iStandardModeType; - ///@see iLowerRefreshRateSupported. If this is True (1), then higher frequency is supported. - TUint8 iHigherRefreshRateSupported; - /** If mode has two refresh rates. If is True (1), then lower frequency is supported. - If mode has only one refresh rate, then this has to be True (1). - E.g. CEA mode 1: 640x480p @59.94/60Hz, so this defines is 59.94Hz supported (lower) or not. - Don't care if mode has only one refresh rate (e.g. CEA 17 720x576p @50Hz) - iLowerRefreshRateSupported=1=Lower refresrate supported (e.g. 59.94Hz). - iHigherRefreshRateSupported=1=Higher refreshrate supported (e.g. 60Hz) */ - TUint8 iLowerRefreshRateSupported; - ///Bit mask of supported pixel repetation. 0=no repetation=KPixelSentOnce. - TUint16 iPixelRepeatBitMask; - }; - -/** -Struct for own TV HW capabilities query. -@see GetTvHwCapabilities -*/ -class THwCapabilities - { - public: - THwCapabilities():iHdcpSupportedInSource(EFalse), - iSourceHdmiVersion(0), - iSourceHdmiRevision(0), - iOverscanToBeDrawn(0), - iScalingMinDenominator(1), - iScalingMaxNumerator(1), - iCentralizingOnly(EFalse) - {} - public: - ///ETrue if source (own HW, phone) supports HDCP - TBool iHdcpSupportedInSource; - - /** HDMI version what (own) HW supports. Version combination is iSourceHdmiVersion.iSourceHdmiRevision. - If wanted connector is not HDMI, then these can be zero */ - TUint8 iSourceHdmiVersion; - ///@see iSourceHdmiVersion - TUint8 iSourceHdmiRevision; - - ///ETrue when composition should draw overscan (inc. position) to destination buffer - TBool iOverscanToBeDrawn; - ///Minimum scaling factor. E.g. if 1/2x is min, then this is 200 (100 / iScalingMinDenominator). 1x = 100. 0xFFFF = infinity - TUint16 iScalingMinDenominator; - ///Maximum scaling factor. E.g. if 2.5x is max, then this is 250 (iScalingMaxNumerator / 100). 1x = 100. 0xFFFF = infinity - TUint16 iScalingMaxNumerator; - - ///ETrue when position of Tv-out cannot be change, image is always centralized. EFalse when position can be changed. @see iRightBottomCorner - TBool iCentralizingOnly; - }; - -/** -Config analogue TV-Out settings -*/ -class TTvSettings - { - public: - ///Television broadcast standard: - enum TSystem - { - EUndefSystem = 0x0, // Initial value - ENTSC = 0x1, // 59.94Hz 525 NTSC-M - others than Japan - // also 59.94Hz 480i/480p - - ENTSCJ = 0x2, // 59.94Hz 525 NTSC-J - Japan - // also 59.94Hz 480i/480p - - EPAL = 0x3, // 50Hz 625 PAL-B/G - others than Brazil and Argentina - // also 50Hz 576i/576p - - EPALM = 0x4, // 59.94Hz 525 PAL-M - Brazil (use not recommended) - // also 59.94Hz 480i/480p - - EPALNc = 0x5, // 50Hz 625 PAL-Nc - Argentina (use not recommended) - // also 50Hz 576i/576p - - ESECAM = 0x6, // 50 Hz 625 SECAM - // also 50Hz 576i/576p - - EHDTV720x50 = 0x7, // 50Hz 720p. @deprecated Do not use - EHDTV720x60 = 0x8, // 60Hz 720p. @deprecated Do not use - EHDTV1080x50 = 0x9, // 50Hz 1080i/1080p. @deprecated Do not use - EHDTV1080x60 = 0xA, // 60Hz 1080i/1080p. @deprecated do not use - }; - - ///Television's aspect ration: - enum TAspectRatio - { - EUndefRatio = 0x0, - E4d3 = 0x1, // 4:3 not valid for 720p/1080i/1080p - E16d9 = 0x2, // 16:9 - }; - - ///Progressive Sequence: - enum TScanMode - { - EUndefScan = 0x0, - EProgressiveScan = 0x1, // 480p/576p/720p/1080p - EInterlacedScan = 0x2, // 480i/576i/1080i - }; - - ///Connection type: - enum TOutput - { - EUndefOutput = 0x0, - ECompositeVideo = 0x1, // NTSCJ/NTSCM/PAL/PALM/PALNc/SECAM - ESVideo = 0x2, // NTSCJ/NTSCM/PAL/PALM/PALNc/SECAM - EYPbPr, // 480i/576i/480p/576p - EHDTVYPbPr, // 720p/1080i/1080p (+480i/576i/480p/576p) - EHDMI, - EDVI, - }; - - ///Flicker filter: - enum TFlickerFilterType - { - EUndefFlicker = 0x0, - EFilterEnabled = 0x1, // not valid for EProgressiveScan - EFilterDisabled = 0x2, - }; - - ///Cable detection: - enum TDetectionType - { - EUndefAutoDetect = 0x0, - EAutoDetectOn = 0x1, - EAutoDetectOff = 0x2, - }; - public: - //Inline constuctor - TTvSettings():iTvSystem(EUndefSystem), - iRatio(EUndefRatio), - iScanMode(EUndefScan), - iOutput(EUndefOutput), - iFlickerFilter(EUndefFlicker), - iAutoDetection(EUndefAutoDetect), - iPixelAspectRatioNumerator(1), - iPixelAspectRatioDenominator(1), - iHorizontalOverScan(000),//0.00% - iVerticalOverScan(000), //0.00% - iCornerPointsUsed(EFalse), - iLeftTopCorner(), - iRightBottomCorner() - {} - ///Class members, fill these: - public: - ///Set Tv-system here: - TSystem iTvSystem; - ///Set Tv aspect ratio here: - TAspectRatio iRatio; - ///Set scan mode: - TScanMode iScanMode; - ///Output type: - TOutput iOutput; - ///Set flicker filter on/off: - TFlickerFilterType iFlickerFilter; - ///Autodetection mode: - TDetectionType iAutoDetection; - - ///Pixel aspect ratio (PAR) numerator. PAR=iPixelAspectRatioNumerator/iPixelAspectRatioDenominator. - TUint8 iPixelAspectRatioNumerator; - ///@see iPixelAspectRatioNumerator - TUint8 iPixelAspectRatioDenominator; - - ///Overscan width, percentage (0 - +15%), 2 decimals. 1 means 0.01%. Deprecated (use iRightBottomCorner&iLeftTopCorner). - TUint16 iHorizontalOverScan; - ///Overscan high, see iHorizontalOverScan. Deprecated (use iRightBottomCorner&iLeftTopCorner). - TUint16 iVerticalOverScan; - - ///ETrue if iLeftTopCorner&iRightBottomCorner are used instead of iHorizontalOverScan&iVerticalOverScan - TBool iCornerPointsUsed; - /** Overscan in pixels. Set Left Top corner point. Zero when Tv supports underscan (0=underscan enabled) - This should be "point" to active image area. Cannot point out of active image area. - Cannot across with iRightBottomCorner. And this allows overscan and position tuning. */ - TPoint iLeftTopCorner; - /** Overscan in pixels. Set Right Bottom corner point (offset from Tv's left top corner). - @see iLeftTopCorner - Driver returns KErrExtensionNotSupported if driver does not support this settings. - If driver supports centralizing only, then this has to be same as iLeftTopCorner. */ - TPoint iRightBottomCorner; - }; - -///The maximum length for the product name on TMDS bus -const TUint KProductNameChars = 8; -///The maximum length for the product description on TMDS bus -const TUint KProductDescriptorsChars = 16; -/** -HDMI/DVI timings and settings. See detailed values of standard formats from OutputModes_X.xls -*/ -class THdmiDviTimings - { - public: - enum TSourceType - { - ESourceTypeUnknown = 0x00, - ESourceTypeDigitalSTB = 0x01, - ESourceTypeDVD = 0x02, - ESourceTypeDVHS = 0x03, - ESourceTypeHddVideo = 0x04, - ESourceTypeDVC = 0x05, - ESourceTypeDSC = 0x06, - ESourceTypeVideoCD = 0x07, - ESourceTypeGame = 0x08, - ESourceTypePCGeneral = 0x09, - }; - - public: - THdmiDviTimings():iCeaMode(ECeaFixedModeNone), - iDmtMode(EDmtFixedModeNone), - iTvPhysicalImageWidthMm(0), - iTvPhysicalImageHeightMm(0), - iTvPhysicalImageAspectRatioNumerator(0), - iTvPhysicalImageAspectRatioDenominator(0), - iPixelClockKHz(0), - iHorizontalActivePixels(0), - iHorizontalBlankingPixels(0), - iVerticalActiveLines(0), - iVerticalBlankingLines(0), - iHorizontalSyncOffsetPixels(0), - iHorizontalSyncPulseWidthPixels(0), - iHorizontalBorderPixels(0), - iVerticalSyncOffsetLinesField1(00),//0.0 - iVerticalSyncPulseWidthLinesField1(0), - iVerticalBorderLinesField1(0), - iVerticalSyncOffsetLinesField2(00),//0.0 - iVerticalSyncPulseWidthLinesField2(0), - iVerticalBorderLinesField2(0), - iLeftBorderPixels(0), - iRightBorderPixels(0), - iInterlaced(EFalse), - iHorizontalSyncPolarity(EFalse), - iVerticalSyncPolarity(EFalse), - iPixelRepeat(0),//No repeat - iUnderscanEnabled(EFalse), - iLeftTopCorner(), - iRightBottomCorner(), - iImageAspectRatio(TTvSettings::EUndefRatio), - iPixelAspectRatioNumerator(1), - iPixelAspectRatioDenominator(1), - iConnector(TTvSettings::EUndefOutput), - iTvColorCoordinates(), - iTvHdmiVersion(0), - iTvHdmiRevision(0), - iProductName(), - iProductDescription(), - iSourceType(ESourceTypeUnknown) - {} - public: - /** Set CEA-mode. If none or DMT-mode is selected this should be ECeaFixedModeNone. - Even modes are given to driver, all other datamembers must be valid. - With CEA mode 1 this is E640x480p59_94d60Hz4d3 */ - TFixedModeCea iCeaMode; - ///Set DMT-mode. If none or CEA-mode is selected this should be EDmtFixedModeNone. With CEA mode 1 this is EDmtFixedModeNone - TFixedModeDmt iDmtMode; - - ///Tv physical size in millimetres. Can be 0 if iTvPhysicalImageAspectRatioNumerator is used. - TUint iTvPhysicalImageWidthMm; - ///@see iTvPhysicalImageWidthMm - TUint iTvPhysicalImageHeightMm; - /** Tv physical aspect ratio. Can be NULL if iTvPhysicalImageWidthMm is defined. Read from EDID. - AR=iTvPhysicalImageAspectRatioNumerator/iTvPhysicalImageAspectRatioDenominator */ - TUint16 iTvPhysicalImageAspectRatioNumerator; - ///@see iTvPhysicalImageAspectRatioNumerator - TUint16 iTvPhysicalImageAspectRatioDenominator; - - ///Dot clock. With CEA mode 1 and 59.94Hz this is 25175KHz - TUint iPixelClockKHz; - - ///Horizontal image width (resolution, columns). With CEA mode 1 this is 640 - TUint16 iHorizontalActivePixels; - /** Horizontal blanking time in pixels. Total HTime=iHorizontalActivePixels+iHorizontalBlankingPixels. With CEA mode 1 this is 160 - Presented always as in CEA-model. */ - TUint16 iHorizontalBlankingPixels; - ///Vertical image height (resolution, lines). With CEA mode 1 this is 480 - TUint16 iVerticalActiveLines; - ///Vertical blanking time in lines. Total VTime=iVerticalActiveLines+iVerticalBlankingLines. With CEA mode 1 this is 45 - TUint16 iVerticalBlankingLines; - - ///Horizontal pulse frontporch in pixels. With CEA mode 1 this is 16 - TUint16 iHorizontalSyncOffsetPixels; - ///Horizontal pulse duration in pixels. With CEA mode 1 this is 96 - TUint16 iHorizontalSyncPulseWidthPixels; - ///Horizontal border (decreases addressable area). With CEA mode 1 this is 0. - TUint16 iHorizontalBorderPixels; - /** Vertical pulse frontporch in lines. Fixed point with 10x, 1=10. 1.5=15. - With CEA mode 1 this is 100 (actual value = 10). - Presented always as CEA-model handle porches. For example E1024x768i87HzRB this is 00 */ - TUint16 iVerticalSyncOffsetLinesField1; - ///Vertical pulse duration in lines. With CEA mode 1 this is 2. With E1024x768i87HzRB this is 4. - TUint16 iVerticalSyncPulseWidthLinesField1; - ///Vertical border (decreases addressable area). With CEA mode 1 this is 0. - TUint16 iVerticalBorderLinesField1; - ///@see iVerticalSyncOffsetLinesField1. With progressive mode, this is unused. With E1024x768i87HzRB this is 10 (value 1). - TUint16 iVerticalSyncOffsetLinesField2; - ///@see iVerticalSyncPulseWidthLinesField1. With progressive mode, this is unused. With E1024x768i87HzRB this is 4. - TUint16 iVerticalSyncPulseWidthLinesField2; - ///@see iVerticalBorderLinesField1. With progressive mode, this is unused. - TUint16 iVerticalBorderLinesField2; - - ///Left border (decreases addressable area). With CEA mode 1 this is 0. - TUint16 iLeftBorderPixels; - ///Right border (decreases addressable area). With CEA mode 1 this is 0. - TUint16 iRightBorderPixels; - - ///ETrue=Interlaced scanning, EFalse=Progressive scanning. With CEA mode 1 this is EFalse. - TBool iInterlaced; - ///Horizontal sync polarity, EFalse=Negative, ETrue=Positive. With CEA mode 1 this is EFalse. - TBool iHorizontalSyncPolarity; - ///Vertical sync polarity, EFalse=Negative, ETrue=Positive. With CEA mode 1 this is EFalse. - TBool iVerticalSyncPolarity; - /** Wanted pixel repeat, can be used if mode supports. Otherwise horisontal resolution can be increased also. - Value minus one. 0 -> sent once. 9 -> pixel sent 10 times. - 0 when repeat is disabled. With CEA mode 1 this is 0. */ - TUint8 iPixelRepeat; - - /** ETrue if Tv supports underscan, and it is enabled (to be always enabled when supported/possible), - EFalse otherwise */ - TBool iUnderscanEnabled; - /** Overscan in pixels. Set Left Top corner point. Zero when Tv supports underscan (0=underscan enabled) - This should be "point" to active image area. Cannot point out of active image area. - Cannot across with iRightBottomCorner. And this allows overscan and position tuning. */ - TPoint iLeftTopCorner; - /** Overscan in pixels. Set Right Bottom corner point (offset from Tv's left top corner). - @see iLeftTopCorner. Has not affect if iCentralizingOnly==ETrue. */ - TPoint iRightBottomCorner; - - ///Image aspect ratio (IAR). With CEA mode 1 this is E4d3. - TTvSettings::TAspectRatio iImageAspectRatio; - ///Pixel aspect ratio (PAR) numerator. PAR=iPixelAspectRatioNumerator/iPixelAspectRatioDenominator. With CEA mode 1 PAR=1/1. - TUint8 iPixelAspectRatioNumerator; - ///@see iPixelAspectRatioNumerator - TUint8 iPixelAspectRatioDenominator; - - ///Tv connector type. E.g. if connected to Tv's HDMI connector, this is EHDMI. - TTvSettings::TOutput iConnector; - - ///Tv color coordinates (read from EDID) - TTvColorCoordinates iTvColorCoordinates; - - ///HDMI version what Tv supports. Version combination is iTvHdmiVersion.iTvHdmiRevision. Zeroes if DVI. - TUint8 iTvHdmiVersion; - ///@see iTvHdmiVersion - TUint8 iTvHdmiRevision; - - /** Product name which to be sent to Tv in "Source Product Infoframe". - Cell 0 contains first letter. All unused characters should be Null. */ - TChar iProductName[ KProductNameChars ]; - /** Product Description which to be sent to Tv in "Source Product Infoframe". - Cell 0 contains first letter. All unused characters should be Null. */ - TChar iProductDescription[ KProductDescriptorsChars ]; - ///Source type which to be sent to Tv in "Source Product Infoframe". All unused characters should be Null. - TSourceType iSourceType; - }; - -/** -Standby Figure Format. Fully deprecated since TB10.2. -Note for TB9.2 and TB10.1: -- iLeftTopColumn & iLeftTopRow are deprecated and those can be ignored. -- the icon of iColumns x iRows is scaled by (iScaleNumeratorWidth/iScaleDenominatorWidth) and (iScaleNumeratorHeight/iScaleDenominatorHeight) -- the resulting icon is centered to the layer's extent which contained the protected surface -- the scaled and centered icon is clipped against layer extent and screen size. -- pixels inside the layer's extent not covered by the scaled and centered icon are filled with iBackGroundColor. -*/ -class TStandByFigure - { - public: - enum TFigureType - { - ///Figure instead of UI - EStandByFigure, - ///Figure when copy protected material - EProtectedContentFigure,//Keep latest - }; - - public: - TStandByFigure():iTable(NULL), - iFigureType(EStandByFigure), - iColumns(0), - iRows(0), - iScaleNumeratorWidth(1),//1x - iScaleDenominatorWidth(1), - iScaleNumeratorHeight(1),//1x - iScaleDenominatorHeight(1), - iLeftTopColumn(0), - iLeftTopRow(0), - iBackGroundColor(0x0000)//Black - {} - public: - /** Input RGB565 RRRR RGGG GGGB BBBB LE. - Set pointer to zero when TFigureType-figure is wanted to disable. - Table's max size is StandByFigureMaxSizeInBytes() */ - TUint16* iTable; - ///StandBy figure type - TFigureType iFigureType; - ///Describes how many columns figure has. - TUint16 iColumns; - ///Describes how many rows figure has. - TUint16 iRows; - ///Width scaler numerator (iScaleNumeratorWidth/iScaleDenominatorWidth) - TUint16 iScaleNumeratorWidth; - ///Width scaler denominator - TUint16 iScaleDenominatorWidth; - ///Height scaler numerator (iScaleNumeratorHeight/iScaleDenominatorHeight) - TUint16 iScaleNumeratorHeight; - ///Height scaler denominator - TUint16 iScaleDenominatorHeight; - ///Start column. Deprecated! - TUint16 iLeftTopColumn; - ///Start row. Deprecated! - TUint16 iLeftTopRow; - ///Back ground color. Input RGB565 RRRR RGGG GGGB BBBB. - TUint16 iBackGroundColor; - }; - -#endif //__TVOUTCONFIGDEF_H__ - -// End of File - -