⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hxlvtxt.h

📁 linux下的一款播放器
💻 H
字号:
/* ***** BEGIN LICENSE BLOCK ***** * Source last modified: $Id: hxlvtxt.h,v 1.1.32.3 2004/07/09 01:45:12 hubbe Exp $ *  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved. *  * The contents of this file, and the files included with this file, * are subject to the current version of the RealNetworks Public * Source License (the "RPSL") available at * http://www.helixcommunity.org/content/rpsl unless you have licensed * the file under the current version of the RealNetworks Community * Source License (the "RCSL") available at * http://www.helixcommunity.org/content/rcsl, in which case the RCSL * will apply. You may also obtain the license terms directly from * RealNetworks.  You may not use this file except in compliance with * the RPSL or, if you have a valid RCSL with RealNetworks applicable * to this file, the RCSL.  Please see the applicable RPSL or RCSL for * the rights, obligations and limitations governing use of the * contents of the file. *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL") in which case the provisions of the GPL are applicable * instead of those above. If you wish to allow use of your version of * this file only under the terms of the GPL, and not to allow others * to use your version of this file under the terms of either the RPSL * or RCSL, indicate your decision by deleting the provisions above * and replace them with the notice and other provisions required by * the GPL. If you do not delete the provisions above, a recipient may * use your version of this file under the terms of any one of the * RPSL, the RCSL or the GPL. *  * This file is part of the Helix DNA Technology. RealNetworks is the * developer of the Original Code and owns the copyrights in the * portions it created. *  * This file, and the files included with this file, is distributed * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET * ENJOYMENT OR NON-INFRINGEMENT. *  * Technology Compatibility Kit Test Suite(s) Location: *    http://www.helixcommunity.org/content/tck *  * Contributor(s): *  * ***** END LICENSE BLOCK ***** */#ifndef _HXLVTXT_H_#define _HXLVTXT_H_/* These need to be visible to rtlive and to exlvtext: *//* For live, duration is max allowed val, or max ulong: */#if !defined(MAX_ULONG32)# define MAX_ULONG32		    0xFFFFFFFF#endif#if !defined(MIN_LONG32)# define MIN_LONG32                 0xFFFFFFFF#endif/* These, too, need to be visible to rtlive and to exlvtext: */#define MAX_PACKET_SIZE		    500#define USE_DEFAULT_TYPE	    NULL#define USE_DEFAULT_HEIGHT          MAX_ULONG32#define USE_DEFAULT_WIDTH	    MAX_ULONG32#define USE_DEFAULT_SCROLLRATE	    MIN_LONG32#define USE_DEFAULT_CRAWLRATE	    MIN_LONG32#define USE_DEFAULT_BGCOLOR	    NULL#define USE_DEFAULT_LINKCOLOR	    NULL#define USE_DEFAULT_LINKUNDERLINING 0x2#define USE_DEFAULT_WORDWRAP	    0x2#define USE_DEFAULT_DOLOOPING	    0L	    #define USE_DEFAULT_IGNOREEXTRASPACES	FALSEtypedef _INTERFACE IUnknown			IUnknown;typedef _INTERFACE IHXValues			IHXValues;typedef _INTERFACE IHXPacket			IHXPacket;typedef _INTERFACE IHXLiveText			IHXLiveText;typedef _INTERFACE IHXLiveText2		IHXLiveText2;STDAPICreateLiveText(IHXLiveText**);typedef HX_RESULT (HXEXPORT_PTR FPRMCREATELIVETEXT)(IHXLiveText** ppLiveText);DEFINE_GUID(IID_IHXLiveText, 	0x00001b00, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXLiveTextDECLARE_INTERFACE_(IHXLiveText, IUnknown){    /***********************************************************************/    /*     *	IUnknown methods     */    STDMETHOD(QueryInterface)		(THIS_					 REFIID riid,					 void** ppvObj) PURE;    STDMETHOD_(ULONG32,AddRef)		(THIS) PURE;    STDMETHOD_(ULONG32,Release)		(THIS) PURE;    /***********************************************************************/    /*     * IHXLiveText methods     */    /*     * InitLiveText() must be called before any of the other IHXLiveText     * methods:     */    STDMETHOD(InitLiveText)		(THIS_					/*					 * This is the computer where the					 * RMServer is running:					 */					char* pAddress,					/*					 * This is the port number defined in					 * the config file where the FSMount					 * option has the following entry:					 * { /encoder/, pn-encoder, Port=#### }					 * where #### is the port number that					 * encoders will use:					 */					UINT16 port,					char* pUsername,					char* pPassword,					/*					 * This is the "file" name that					 * RMPlayers can use to view the					 * stream.  For example, if your					 * server was called "srv1" and the					 * rtsp port in the config file was					 * 8080, and the filename from the					 * encoder was "foo.rtx", then a					 * player could view the stream by					 * opening the following location:					 * "rtsp://srv1:8080/encoder/foo.rtx"					 */					char* pFilename) PURE;    /* ******************************************************************* */    /* The following methods are to be called prior to sending any data     * and exist as overrides to the default attributes of a RealText     * presentation.  Please see the section on the <WINDOW> header tag     * in the realtext.htm in the SDK's doc directory for more information.     * Note: with live text, you do not need a <WINDOW> tag; you must use     * the following methods to set the stream type (e.g., "tickertape"),     * window width, height, background color, ...etc.     */        STDMETHOD(SetType)			(THIS_					char* szType) PURE;    STDMETHOD(SetWindowDimensions)	(THIS_					ULONG32 width,					ULONG32 height) PURE;    STDMETHOD(SetTextMotion)		(THIS_					LONG32 scrollrate,					LONG32 crawlrate) PURE;    STDMETHOD(SetBackgroundColor)	(THIS_					char* szBackgroundColor) PURE;    STDMETHOD(SetHyperlinkInfo)		(THIS_					BOOL underlineHyperlinks,					char* szLinkColor) PURE;    STDMETHOD(UseWordwrap)		(THIS_					BOOL useWordwrap) PURE;    /*     * This is for "TickerTape"-type windows only; it is ignored by all     * other types:     */    STDMETHOD(SetDoLooping)		(THIS_					BOOL bDoLooping) PURE;    /* ******************************************************************* */    /*     * AddData() lets you add text to the stream.  The second     * parameter, bSendImmediately, can be used to force the encoder to     * send all text that's been added (and not yet sent) immediately.     * Note: if bSendImmediately is FALSE, the encoder will decide when     * to send the text it has buffered based on the length of the text in     * the buffer and the time since the last packet was sent:     */    STDMETHOD(AddData)			(THIS_					char* szMoreData,					BOOL bSendImmediately) PURE;    /*     * AddTickerItem() lets you add "tickertape" text to the stream.     * This method prepends "<TU>" to szTickerUpperData, and     * "<TL>" to szTickerLowerData.  Calling:     *		AddTickerItem("ABCD", "5 1/2", TRUE)     * is the same as calling     *		AddData("<TU>ABCD", FALSE);     *		AddData("<TL>5 1/2", TRUE);     * except that the former guarantees that the "upper" and "lower"     * items will be sent in the same packet.      * (Please see the comments above for AddData() for details on use of     * the second parameter, bSendImmediately.     */    STDMETHOD(AddTickerItem)		(THIS_					char* szTickerUpperData,					char* szTickerLowerData,					BOOL bSendImmediately) PURE;    /* ******************************************************************* */    /*     * flush() tells the encoder to send everything that's in the buffer and     * clear it:     */    STDMETHOD(flush)			(THIS) PURE;    /* ******************************************************************* */    /*     * GetTime returns the current system time in milliseconds.  The return     * value is a UINT32 (32-bit unsigned int):     */    STDMETHOD_(UINT32,GetTime)		    (THIS) PURE;    /* ******************************************************************* */    /*     * This must be called on a regular basis:      */    STDMETHOD(Process)			    (THIS) PURE;    /* ******************************************************************* */    /*     * These methods keep track of the encoder's state and must be called     * as they are in main.cpp in the exlvtext directory:     */    STDMETHOD_(BOOL,EncoderIsInitialized)   (THIS) PURE;    STDMETHOD_(BOOL,PacketsHaveStarted)	    (THIS) PURE;    STDMETHOD_(BOOL,EncoderIsDone)	    (THIS) PURE;    STDMETHOD(SetEncoderDone)		    (THIS) PURE;};DEFINE_GUID(IID_IHXLiveText2, 	0x00001b01, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);#undef INTERFACE#define INTERFACE IHXLiveText2DECLARE_INTERFACE_(IHXLiveText2, IUnknown){    /***********************************************************************/    /*     *	IUnknown methods     */    STDMETHOD(QueryInterface)		(THIS_					 REFIID riid,					 void** ppvObj) PURE;    STDMETHOD_(ULONG32,AddRef)		(THIS) PURE;    STDMETHOD_(ULONG32,Release)		(THIS) PURE;    /***********************************************************************/    /*     * IHXLiveText2 methods     */    /* ******************************************************************* */    /* The following methods are to be called prior to sending any data     * and exist as overrides to the default attributes of a RealText     * presentation.  Please see the section on the <window> header tag     * in the realtext.htm in the SDK's doc directory for more information.     * Note: these are additional to the IHXLiveText methods, listed     * above.     */        /* This allows you to give an estimate of the bit rate needed by a live     * text stream so that the server can determine whether or not a player     * can view the stream based on its available bandwidth  This method     * should be called before sending any data::     */    STDMETHOD(DeclareAverageBitrate)	(THIS_					ULONG32 ulAvgBitsPerSecond) PURE;    /* As above, for DeclareAverageBitrate, this method should be called     * before sending any data::     */    STDMETHOD(DeclareMaximumBitrate)	(THIS_					ULONG32 ulMaxBitsPerSecond) PURE;    /*This determines how multiple contiguous space characters are presented;     * Defaults to FALSE which means that multiple spaces in non-tag text     * would all be renderered.  If this value is TRUE, multiple contiguous     * spaces will be treated as a single space.  This method should be     * called before sending any data.     */    STDMETHOD(IgnoreExtraSpaces)	(THIS_					BOOL bIgnoreExtraSpaces) PURE;    /* This is for internal testing use only and does not affect the     * presentation of a live text stream:     */    STDMETHOD(SetFlags)	(THIS_					ULONG32 ulFlags) PURE;    /* ******************************************************************* */    /* The following methods can be called at any time while the encoder is     * running.     */    /* This method tells you when the last-sent text will end.  This     * allows you to determine when it's ok to send more text.  For example,     * if you're streaming a presentation that's scrolling at a rate of 20     * pixels per second in a window that's 200 pixels high and you call     * IHXLiveText's AddData() with 100 lines of 20-point text, it will take     * 100 seconds for all that text to scroll up and out of the window.  The     * following method would return the current time plus 100 if you called     * it right after calling AddData():     */    STDMETHOD(GetLastSentTextEndTime)	(THIS_					ULONG32& ulLastEndTime) PURE;    /* This method allows you to adjust the time, since the last data was     * sent, that the encoder waits before resending "heartbeat" packets that     * let the server know the encoder still alive and to let newly-connected     * players know what's currently visible in the window (in case they     * connected during a "dry" period in the stream, after the last new     * text was sent).  Time is in milliseconds.  NOTE: this defaults to      * 3000 milliseconds; any number higher than this will result in longer     * connect times for players coming in during a "dry" spell in the     * stream, and a sufficiently high value may cause the server to     * disconnect since it assumes the encoder has stopped if it does not     * periodically send data.  This value's minimum is 500 milliseconds.     */    STDMETHOD(SetTimeBetweenDryStreamResends)	(THIS_				ULONG32 ulMillisecBetweenResends) PURE;};#endif /* _HXLVTXT_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -