vdr  1.7.27
hdffmsgdef.h
Go to the documentation of this file.
00001 /*
00002  * hdffmsgdef.h: TODO(short description)
00003  *
00004  * See the README file for copyright information and how to reach the author.
00005  *
00006  * $Id: hdffmsgdef.h 1.13 2011/08/27 09:34:43 kls Exp $
00007  */
00008 
00009 #ifndef _HDFF_MSGDEF_H_
00010 #define _HDFF_MSGDEF_H_
00011 
00012 #define MAX_CMD_LEN 1536
00013 
00014 namespace HDFF
00015 {
00016 
00017 typedef enum _eMessageType
00018 {
00019     msgTypeCommand,
00020     msgTypeAnswer,
00021     msgTypeResult,
00022     msgTypeEvent
00023 } eMessageType;
00024 
00025 typedef enum _eMessageGroup
00026 {
00027     msgGroupGeneric,
00028     msgGroupAvDec,
00029     msgGroupAvMux,
00030     msgGroupFrontend,
00031     msgGroupOsd,
00032     msgGroupHdmi,
00033     msgGroupRemoteControl
00034 } eMessageGroup;
00035 
00036 typedef enum _eMessageId
00037 {
00038     msgGenGetFirmwareVersion = 0,
00039     msgGenGetInterfaceVersion,
00040     msgGenGetCopyrights,
00041 
00042     msgAvSetAudioPid = 0,
00043     msgAvSetVideoPid,
00044     msgAvSetPcrPid,
00045     msgAvSetTeletextPid,
00046     msgAvShowStillImage,
00047     msgAvSetVideoWindow,
00048     msgAvSetDecoderInput,
00049     msgAvSetDemultiplexerInput,
00050     msgAvSetVideoFormat,
00051     msgAvSetVideoOutputMode,
00052     msgAvSetStc,
00053     msgAvFlushBuffer,
00054     msgAvEnableSync,
00055     msgAvSetVideoSpeed,
00056     msgAvSetAudioSpeed,
00057     msgAvEnableVideoAfterStop,
00058     msgAvGetVideoFormatInfo,
00059     msgAvSetAudioDelay,
00060     msgAvSetAudioDownmix,
00061     msgAvSetAudioChannel,
00062     msgAvSetPlayMode,
00063 
00064     msgMuxSetVideoOut = 0,
00065     msgMuxSetSlowBlank,
00066     msgMuxSetFastBlank,
00067     msgMuxSetVolume,
00068     msgMuxSetAudioMute,
00069 
00070     msgOsdConfigure = 0,
00071     msgOsdReset,
00072     msgOsdCreateDisplay = 10,
00073     msgOsdDeleteDisplay,
00074     msgOsdEnableDisplay,
00075     msgOsdSetDisplayOutputRectangle,
00076     msgOsdSetDisplayClippingArea,
00077     msgOsdRenderDisplay,
00078     msgOsdSaveRegion,
00079     msgOsdRestoreRegion,
00080     msgOsdCreatePalette = 30,
00081     msgOsdDeletePalette,
00082     msgOsdSetDisplayPalette,
00083     msgOsdSetPaletteColors,
00084     msgOsdCreateFontFace = 50,
00085     msgOsdDeleteFontFace,
00086     msgOsdCreateFont,
00087     msgOsdDeleteFont,
00088     msgOsdDrawPixel = 70,
00089     msgOsdDrawRectangle,
00090     msgOsdDrawCircle,
00091     msgOsdDrawEllipse,
00092     msgOsdDrawSlope,
00093     msgOsdDrawText,
00094     msgOsdDrawTextW,
00095     msgOsdDrawBitmap,
00096 
00097     msgHdmiEnableOutput = 0,
00098     msgHdmiSetVideoMode,
00099     msgHdmiConfigure,
00100     msgHdmiIsDisplayConnected,
00101     msgHdmiGetDisplayInfo,
00102     msgHdmiGetVideoMode,
00103     msgHdmiSendCecCommand,
00104 
00105     msgRemoteSetProtocol = 0,
00106     msgRemoteSetAddressFilter,
00107     msgRemoteKeyEvent
00108 } eMessageId;
00109 
00110 
00111 // AvDec definitions
00112 
00113 typedef enum _eAVContainerType
00114 {
00115     avContainerPes,
00116     avContainerPesDvd,
00117     avContainerMaxValue
00118 } eAVContainerType;
00119 
00120 typedef enum _eAudioStreamType
00121 {
00122     audioStreamMpeg1,
00123     audioStreamMpeg2,
00124     audioStreamAc3,
00125     audioStreamAac,
00126     audioStreamHeAac,
00127     audioStreamPcm,
00128     audioStreamEAc3,
00129     audioStreamDts,
00130     audioStreamMaxValue
00131 } eAudioStreamType;
00132 
00133 typedef enum _eVideoStreamType
00134 {
00135     videoStreamMpeg1,
00136     videoStreamMpeg2,
00137     videoStreamH264,
00138     videoStreamMpeg4Asp,
00139     videoStreamVc1,
00140     videoStreamMaxValue
00141 } eVideoStreamType;
00142 
00143 
00144 typedef enum _eTvFormat
00145 {
00146     tvFormat4by3,
00147     tvFormat16by9,
00148     tvFormatMaxValue
00149 } eTvFormat;
00150 
00151 typedef enum _eVideoConversion
00152 {
00153     videoConversionAutomatic,
00154     videoConversionLetterbox16by9,
00155     videoConversionLetterbox14by9,
00156     videoConversionPillarbox,
00157     videoConversionCentreCutOut,
00158     videoConversionAlways16by9,
00159     videoConversionMaxValue
00160 } eVideoConversion;
00161 
00162 typedef struct _tVideoFormat
00163 {
00164     bool AutomaticEnabled;
00165     bool AfdEnabled;
00166     eTvFormat TvFormat;
00167     eVideoConversion VideoConversion;
00168 } tVideoFormat;
00169 
00170 typedef enum _eVideoOutputMode
00171 {
00172     videoOutputClone,
00173     videoOutputDualView,
00174     videoOutputMaxValue
00175 } eVideoOutputMode;
00176 
00177 typedef enum _eDownmixMode
00178 {
00179     downmixOff,
00180     downmixAnalog,
00181     downmixAlways,
00182     downmixAutomatic,
00183     downmixHdmi
00184 } eDownmixMode;
00185 
00186 // AvMux definitions
00187 
00188 typedef enum _eVideoOut
00189 {
00190     videoOutDisabled,
00191     videoOutRgb,
00192     videoOutCvbsYuv,
00193     videoOutYc,
00194     videoOutMaxValue
00195 } eVideoOut;
00196 
00197 typedef enum _eSlowBlank
00198 {
00199     slowBlankOff,
00200     slowBlank16by9,
00201     slowBlank4by3,
00202     slowBlankMaxValue
00203 } eSlowBlank;
00204 
00205 typedef enum _eFastBlank
00206 {
00207     fastBlankCvbs,
00208     fastBlankRgb,
00209     fastBlankMaxValue
00210 } eFastBlank;
00211 
00212 
00213 // OSD definitions
00214 
00215 #define InvalidHandle           0xFFFFFFFF
00216 #define ScreenDisplayHandle     0xFFFFFFFE
00217 
00218 #define PositionScreenCentered  0xFFFF
00219 
00220 #define SizeFullScreen    0xFFFF
00221 #define SizeSameAsSource  0xFFFE
00222 
00223 #define FontFaceTiresias  0x00000000
00224 
00225 typedef enum _eColorType
00226 {
00227     colorTypeClut1,
00228     colorTypeClut2,
00229     colorTypeClut4,
00230     colorTypeClut8,
00231     colorTypeARGB8888,
00232     colorTypeARGB8565,
00233     colorTypeARGB4444,
00234     colorTypeARGB1555,
00235 } eColorType;
00236 
00237 typedef enum _eColorFormat
00238 {
00239     colorFormatARGB,
00240     colorFormatACbYCr,
00241 } eColorFormat;
00242 
00243 typedef enum _eDrawingFlags
00244 {
00245     drawFull,
00246     drawHalfTop,
00247     drawHalfLeft,
00248     drawHalfBottom,
00249     drawHalfRight,
00250     drawQuarterTopLeft,
00251     drawQuarterTopRight,
00252     drawQuarterBottomLeft,
00253     drawQuarterBottomRight,
00254     drawQuarterTopLeftInverted,
00255     drawQuarterTopRightInverted,
00256     drawQuarterBottomLeftInverted,
00257     drawQuarterBottomRightInverted
00258 } eDrawingFlags;
00259 
00260 typedef struct _tOsdConfig
00261 {
00262     bool FontAntialiasing;
00263     bool FontKerning;
00264 } tOsdConfig;
00265 
00266 // HDMI definitions
00267 
00268 typedef enum _eHdmiVideoMode
00269 {
00270     videoMode576p50 = 18,
00271     videoMode720p50 = 19,
00272     videoMode1080i50 = 20,
00273     videoMode576i50 = 22,
00274     videoModeMaxValue
00275 } eHdmiVideoMode;
00276 
00277 typedef enum _eVideoModeAdaption
00278 {
00279     videoModeAdaptOff,
00280     videoModeAdaptFrameRate,
00281     videoModeAdaptOnlyForHd,
00282     videoModeAdaptAlways
00283 } eVideoModeAdaption;
00284 
00285 typedef enum _eCecCommand
00286 {
00287     cecCommandTvOn,
00288     cecCommandTvOff,
00289     cecCommandActiveSource,
00290     cecCommandInactiveSource
00291 } eCecCommand;
00292 
00293 typedef struct _tHdmiConfig
00294 {
00295     bool TransmitAudio;
00296     bool ForceDviMode;
00297     bool CecEnabled;
00298     eVideoModeAdaption VideoModeAdaption;
00299 } tHdmiConfig;
00300 
00301 // Remote control definitions
00302 
00303 typedef enum _eRemoteProtocol
00304 {
00305     remoteProtocolNone,
00306     remoteProtocolRc5,
00307     remoteProtocolRc6,
00308     remoteProtocolMaxValue
00309 } eRemoteProtocol;
00310 
00311 } // end of namespace
00312 
00313 #endif