From 8b9350c091bc5ae8c9bb30b83a1fb567c3a7cb7f Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 17 Apr 2011 16:50:00 +0200 Subject: =?UTF-8?q?Version=201.7.18=20-=20Changed=20-O2=20to=20-O3=20in=20?= =?UTF-8?q?Make.config.template=20(reported=20by=20Matti=20Lehtim=C3=A4ki)?= =?UTF-8?q?.=20-=20Added=20a=20missing=20'default'=20case=20in=20cPixmapMe?= =?UTF-8?q?mory::DrawEllipse().=20-=20Fixed=20some=20direct=20comparisons?= =?UTF-8?q?=20of=20double=20values.=20-=20Fixed=20detecting=20frames=20on?= =?UTF-8?q?=20channels=20that=20broadcast=20with=20separate=20"fields"=20i?= =?UTF-8?q?nstead=20=20=20of=20complete=20frames.=20-=20Made=20updating=20?= =?UTF-8?q?the=20editing=20marks=20during=20replay=20react=20faster=20in?= =?UTF-8?q?=20case=20the=20marks=20=20=20file=20has=20just=20been=20writte?= =?UTF-8?q?n=20(with=20a=20patch=20from=20Udo=20Richter).=20-=20Fixed=20ho?= =?UTF-8?q?rizontal=20scaling=20of=20subtitles=20(reported=20by=20Reinhard?= =?UTF-8?q?=20Nissl).=20-=20Stripped=20the=20note=20"The=20data=20returned?= =?UTF-8?q?=20by=20this=20function=20is=20only=20used=20for=20informationa?= =?UTF-8?q?l=20=20=20purposes=20(if=20any)"=20from=20the=20description=20o?= =?UTF-8?q?f=20cDevice::GetVideoSize().=20The=20VideoAspect=20=20=20is=20n?= =?UTF-8?q?ow=20used=20to=20properly=20scale=20subtitles.=20-=20Fixed=20cU?= =?UTF-8?q?nbufferedFile::Seek()=20in=20case=20it=20is=20compiled=20withou?= =?UTF-8?q?t=20USE=5FFADVISE=20(thanks=20=20=20to=20Juergen=20Lock).=20-?= =?UTF-8?q?=20Fixed=20the=20Language=20header=20of=20the=20Serbian=20trans?= =?UTF-8?q?lation=20file=20(thanks=20to=20Ville=20Skytt=C3=A4).=20-=20Adde?= =?UTF-8?q?d=20anti-aliasing=20when=20upscaling=20bitmaps,=20which=20impro?= =?UTF-8?q?ves=20the=20display=20of=20SD=20subtitles=20=20=20when=20replay?= =?UTF-8?q?ed=20on=20an=20HD=20OSD=20(thanks=20to=20Reinhard=20Nissl=20for?= =?UTF-8?q?=20his=20help=20in=20debugging).=20-=20Renamed=20cBitmap::Scale?= =?UTF-8?q?()=20to=20Scaled(),=20because=20it=20doesn't=20modify=20the=20b?= =?UTF-8?q?itmap=20itself,=20=20=20but=20rather=20returns=20a=20scaled=20c?= =?UTF-8?q?opy.=20-=20Fixed=20the=20description=20of=20cReceiver=20in=20PL?= =?UTF-8?q?UGINS.html,=20regarding=20detaching=20a=20receiver=20=20=20from?= =?UTF-8?q?=20its=20device=20before=20deleting=20it=20(reported=20by=20Win?= =?UTF-8?q?fried=20K=C3=B6hler).=20This=20change=20in=20=20=20behavior=20w?= =?UTF-8?q?as=20introduced=20in=20version=201.5.7.=20-=20Fixed=20scaling?= =?UTF-8?q?=20subtitles=20in=20case=20the=20OSD=20size=20is=20exactly=20th?= =?UTF-8?q?e=20same=20as=20the=20display=20=20=20size=20of=20the=20subtitl?= =?UTF-8?q?es.=20-=20Added=20a=20missing=20initialization=20to=20sDvbSpuRe?= =?UTF-8?q?ct=20(reported=20by=20Sergiu=20Dotenco).=20-=20Replaced=20"%lld?= =?UTF-8?q?"=20and=20"%llX"=20print=20format=20specifiers=20with=20"PRId64?= =?UTF-8?q?"=20and=20"PRIX64"=20to=20=20=20avoid=20compiler=20warnings=20w?= =?UTF-8?q?ith=20gcc=204.5.2=20(thanks=20to=20Sergiu=20Dotenco).=20=20=20O?= =?UTF-8?q?n=20a=20personal=20note:=20I=20find=20it=20a=20step=20in=20the?= =?UTF-8?q?=20totally=20wrong=20direction=20that=20there=20=20=20have=20be?= =?UTF-8?q?en=20macros=20introduced=20to=20work=20around=20this=20problem?= =?UTF-8?q?=20in=20the=20first=20place.=20There=20=20=20should=20have=20be?= =?UTF-8?q?en=20"real"=20format=20specifiers=20defined=20that=20address=20?= =?UTF-8?q?this.=20These=20macros=20=20=20are=20nothing=20but=20an=20ugly?= =?UTF-8?q?=20workaround.=20-=20Added=20Cancel(3)=20to=20~cTrueColorDemo()?= =?UTF-8?q?=20in=20the=20"osddemo"=20plugin=20(thanks=20to=20Reinhard=20Ni?= =?UTF-8?q?ssl).=20-=20Added=20a=20missing=20font=20deletion=20in=20cTrueC?= =?UTF-8?q?olorDemo::Action()=20in=20the=20"osddemo"=20plugin=20=20=20(tha?= =?UTF-8?q?nks=20to=20Reinhard=20Nissl).=20-=20Fixed=20a=20buffer=20overfl?= =?UTF-8?q?ow=20in=20cFont::Bidi()=20(thanks=20to=20Reinhard=20Nissl).=20-?= =?UTF-8?q?=20Added=20HD=20stream=20content=20identifiers=20to=20vdr.5=20(?= =?UTF-8?q?thanks=20to=20Christoph=20Haubrich).=20-=20Made=20cRecordingInf?= =?UTF-8?q?o::Read(FILE=20*f)=20private=20to=20avoid=20calls=20to=20it=20f?= =?UTF-8?q?rom=20outside=20=20=20cRecordingInfo=20or=20cRecording=20(repor?= =?UTF-8?q?ted=20by=20Mika=20Laitio).=20-=20The=20dvbhddevice=20plugin=20i?= =?UTF-8?q?s=20now=20part=20of=20the=20VDR=20distribution=20archive=20(tha?= =?UTF-8?q?nks=20to=20=20=20Andreas=20Regel).=20-=20Removed=20an=20obsolet?= =?UTF-8?q?e=20local=20variable=20in=20dvbsdffosd.c=20(thanks=20to=20Paul?= =?UTF-8?q?=20Menzel).=20-=20Fixed=20a=20possible=20NULL=20pointer=20deref?= =?UTF-8?q?erence=20in=20osddemo.c=20(reported=20by=20Paul=20Menzel).=20-?= =?UTF-8?q?=20Now=20using=20pkg-config=20to=20get=20fribidi,=20freetype=20?= =?UTF-8?q?and=20fontconfig=20cflags=20and=20libs=20(thanks=20=20=20to=20V?= =?UTF-8?q?ille=20Skytt=C3=A4).=20-=20The=20Makefile=20now=20also=20instal?= =?UTF-8?q?ls=20the=20include=20files=20(thanks=20to=20Ville=20Skytt=C3=A4?= =?UTF-8?q?).=20-=20Added=20handling=20of=20"ANSI/SCTE=2057"=20descriptors?= =?UTF-8?q?=20(thanks=20too=20Rolf=20Ahrenberg).=20-=20Avoiding=20an=20une?= =?UTF-8?q?cessary=20call=20to=20Recordings.ResetResume()=20(thanks=20to?= =?UTF-8?q?=20Reinhard=20=20=20Nissl).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PLUGINS/src/dvbhddevice/hdffcmd.h | 102 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 PLUGINS/src/dvbhddevice/hdffcmd.h (limited to 'PLUGINS/src/dvbhddevice/hdffcmd.h') diff --git a/PLUGINS/src/dvbhddevice/hdffcmd.h b/PLUGINS/src/dvbhddevice/hdffcmd.h new file mode 100644 index 0000000..cd641eb --- /dev/null +++ b/PLUGINS/src/dvbhddevice/hdffcmd.h @@ -0,0 +1,102 @@ +/* + * hdffcmd.h: TODO(short description) + * + * See the README file for copyright information and how to reach the author. + * + * $Id: hdffcmd.h 1.17 2011/04/17 11:20:22 kls Exp $ + */ + +#ifndef _HDFF_CMD_H_ +#define _HDFF_CMD_H_ + +#include "bitbuffer.h" +#include "hdffmsgdef.h" + +namespace HDFF +{ + +class cHdffCmdIf +{ +private: + int mOsdDev; + + void CmdBuildHeader(cBitBuffer & MsgBuf, eMessageType MsgType, eMessageGroup MsgGroup, eMessageId MsgId); + uint32_t CmdSetLength(cBitBuffer & MsgBuf); + +public: + cHdffCmdIf(int OsdDev); + ~cHdffCmdIf(void); + + uint32_t CmdGetFirmwareVersion(char * pString, uint32_t MaxLength); + uint32_t CmdGetInterfaceVersion(char * pString, uint32_t MaxLength); + uint32_t CmdGetCopyrights(uint8_t Index, char * pString, uint32_t MaxLength); + + void CmdAvSetPlayMode(uint8_t PlayMode, bool Realtime); + void CmdAvSetVideoPid(uint8_t DecoderIndex, uint16_t VideoPid, eVideoStreamType StreamType, bool PlaybackMode = false); + void CmdAvSetAudioPid(uint8_t DecoderIndex, uint16_t AudioPid, eAudioStreamType StreamType, eAVContainerType ContainerType = avContainerPes); + void CmdAvSetPcrPid(uint8_t DecoderIndex, uint16_t PcrPid); + void CmdAvSetTeletextPid(uint8_t DecoderIndex, uint16_t TeletextPid); + void CmdAvSetVideoWindow(uint8_t DecoderIndex, bool Enable, uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height); + void CmdAvShowStillImage(uint8_t DecoderIndex, const uint8_t * pStillImage, int Size, eVideoStreamType StreamType); + void CmdAvSetDecoderInput(uint8_t DecoderIndex, uint8_t DemultiplexerIndex); + void CmdAvSetDemultiplexerInput(uint8_t DemultiplexerIndex, uint8_t TsInputIndex); + void CmdAvSetVideoFormat(uint8_t DecoderIndex, const tVideoFormat * pVideoFormat); + void CmdAvSetVideoOutputMode(uint8_t DecoderIndex, eVideoOutputMode OutputMode); + void CmdAvSetStc(uint8_t DecoderIndex, uint64_t Stc); + void CmdAvFlushBuffer(uint8_t DecoderIndex, bool FlushAudio, bool FlushVideo); + void CmdAvEnableSync(uint8_t DecoderIndex, bool EnableSync); + void CmdAvSetVideoSpeed(uint8_t DecoderIndex, int32_t Speed); + void CmdAvSetAudioSpeed(uint8_t DecoderIndex, int32_t Speed); + void CmdAvEnableVideoAfterStop(uint8_t DecoderIndex, bool EnableVideoAfterStop); + void CmdAvSetAudioDelay(int16_t Delay); + void CmdAvSetAudioDownmix(eDownmixMode DownmixMode); + void CmdAvSetAudioChannel(uint8_t AudioChannel); + + void CmdOsdConfigure(const tOsdConfig * pConfig); + void CmdOsdReset(void); + + uint32_t CmdOsdCreateDisplay(uint32_t Width, uint32_t Height, eColorType ColorType); + void CmdOsdDeleteDisplay(uint32_t hDisplay); + void CmdOsdEnableDisplay(uint32_t hDisplay, bool Enable); + void CmdOsdSetDisplayOutputRectangle(uint32_t hDisplay, uint32_t X, uint32_t Y, uint32_t Width, uint32_t Height); + void CmdOsdSetDisplayClippingArea(uint32_t hDisplay, bool Enable, uint32_t X, uint32_t Y, uint32_t Width, uint32_t Height); + void CmdOsdRenderDisplay(uint32_t hDisplay); + + uint32_t CmdOsdCreatePalette(eColorType ColorType, eColorFormat ColorFormat, + uint32_t NumColors, const uint32_t * pColors); + void CmdOsdDeletePalette(uint32_t hPalette); + void CmdOsdSetDisplayPalette(uint32_t hDisplay, uint32_t hPalette); + void CmdOsdSetPaletteColors(uint32_t hPalette, eColorFormat ColorFormat, + uint8_t StartColor, uint32_t NumColors, const uint32_t * pColors); + + uint32_t CmdOsdCreateFontFace(const uint8_t * pFontData, uint32_t DataSize); + void CmdOsdDeleteFontFace(uint32_t hFontFace); + uint32_t CmdOsdCreateFont(uint32_t hFontFace, uint32_t Size); + void CmdOsdDeleteFont(uint32_t hFont); + + void CmdOsdDrawRectangle(uint32_t hDisplay, int X, int Y, int Width, int Height, uint32_t Color); + void CmdOsdDrawEllipse(uint32_t hDisplay, int CX, int CY, int RadiusX, int RadiusY, + uint32_t Color, uint32_t Flags); + void CmdOsdDrawText(uint32_t hDisplay, uint32_t hFont, int X, int Y, const char * pText, uint32_t Color); + void CmdOsdDrawTextW(uint32_t hDisplay, uint32_t hFont, int X, int Y, const uint16_t * pText, uint32_t Color); + void CmdOsdDrawBitmap(uint32_t hDisplay, int X, int Y, const uint8_t * pBitmap, + int BmpWidth, int BmpHeight, int BmpSize, + eColorType ColorType, uint32_t hPalette); + void CmdOsdSaveRegion(uint32_t hDisplay, int X, int Y, int Width, int Height); + void CmdOsdRestoreRegion(uint32_t hDisplay); + + void CmdMuxSetVideoOut(eVideoOut VideoOut); + void CmdMuxSetVolume(uint8_t Volume); + void CmdMuxMuteAudio(bool Mute); + + void CmdHdmiSetVideoMode(eHdmiVideoMode VideoMode); + void CmdHdmiConfigure(const tHdmiConfig * pConfig); + void CmdHdmiSendCecCommand(eCecCommand Command); + + void CmdRemoteSetProtocol(eRemoteProtocol Protocol); + void CmdRemoteSetAddressFilter(bool Enable, uint32_t Address); +}; + +} // end of namespace + +#endif -- cgit v1.2.3