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

📄 hxrtsp2.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
    STDMETHOD(GetValueAsInt)        (THIS_ REF(INT32) val) PURE;
    STDMETHOD(SetValueFromInt)      (THIS_ INT32 val) PURE;
    STDMETHOD(GetValueAsUint)       (THIS_ REF(UINT32) val) PURE;
    STDMETHOD(SetValueFromUint)     (THIS_ UINT32 val) PURE;
    STDMETHOD(GetValueAsBuffer)     (THIS_ REF(IHXBuffer*)pbufVal) PURE;
    STDMETHOD(SetValueFromBuffer)   (THIS_ IHXBuffer* pbufVal) PURE;

    //XXXTDM: added these for convenience when writing client code.
    //        we should come up with a clean, standardized interface.
    STDMETHOD(SetFromString)        (THIS_ const char* szKey,
                                           const char* szVal) PURE;
    STDMETHOD(SetFromBuffer)        (THIS_ const char* szKey,
                                           IHXBuffer* pbufVal) PURE;
};

// IHXRTSPMessage: 1bff98ab-e5c9-459d-80ee-b80d20e4f30e
DEFINE_GUID(IID_IHXRTSPMessage, 0x1bff98ab, 0xe5c9, 0x459d,
            0x80, 0xee, 0xb8, 0x0d, 0x20, 0xe4, 0xf3, 0x0e);

#undef  INTERFACE
#define INTERFACE   IHXRTSPMessage

DECLARE_INTERFACE_(IHXRTSPMessage, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPMessage
    STDMETHOD_(UINT16,GetVersion)   (THIS) PURE;
    STDMETHOD(SetVersion)           (THIS_ UINT16 ver) PURE;
    STDMETHOD_(int,GetMajorVersion) (THIS) PURE;
    STDMETHOD(SetMajorVersion)      (THIS_ int uMajorVer) PURE;
    STDMETHOD_(int,GetMinorVersion) (THIS) PURE;
    STDMETHOD(SetMinorVersion)      (THIS_ int uMinorVer) PURE;
    STDMETHOD_(UINT32,GetCSeq)      (THIS) PURE;
    STDMETHOD(SetCSeq)              (THIS_ UINT32 cseq) PURE;
    STDMETHOD(GetContent)           (THIS_ REF(IHXBuffer*) pbufContent) PURE;
    STDMETHOD(SetContent)           (THIS_ IHXBuffer* pbuf) PURE;
    STDMETHOD(GetHeader)            (THIS_ const char* key,
                                           REF(IHXMIMEHeader*)pHeader) PURE;
    STDMETHOD(AddHeader)            (THIS_ IHXMIMEHeader* pHeader) PURE;
    STDMETHOD(SetHeader)            (THIS_ IHXMIMEHeader* pHeader) PURE;
    STDMETHOD(RemoveHeader)         (THIS_ const char* key) PURE;
    STDMETHOD(GetHeaderList)        (THIS_ REF(IHXList*) plistHeaders) PURE;
    STDMETHOD(GetHeaderListConst)   (THIS_ REF(IHXList*) plistHeaders) PURE;
    STDMETHOD_(void,ReplaceDelimiters)(THIS_ 
    				    BOOL bReplaceDelimiters,
				    int nReplacementDelimiter) PURE;
};

// IHXRTSPRequestMessage: ddb0e73f-0d5a-4fd1-bdc8-957f0d872a33
DEFINE_GUID(IID_IHXRTSPRequestMessage, 0xddb0e73f, 0x0d5a, 0x4fd1,
            0xbd, 0xc8, 0x95, 0x7f, 0x0d, 0x87, 0x2a, 0x33);

#undef  INTERFACE
#define INTERFACE   IHXRTSPRequestMessage

DECLARE_INTERFACE_(IHXRTSPRequestMessage, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPRequestMessage
    STDMETHOD_(UINT32,GetSize)      (THIS) PURE;
    STDMETHOD_(UINT32,Write)        (THIS_
                                    BYTE* pBuf) PURE;
    STDMETHOD_(RTSPMethod,GetMethod)(THIS) PURE;
    STDMETHOD_(UINT32,GetVerb)      (THIS) PURE;
    STDMETHOD(SetVerb)              (THIS_
                                    UINT32 verb) PURE;
    STDMETHOD(GetVerbEx)            (THIS_
                                    REF(IHXBuffer*) pBufVerb) PURE;
    STDMETHOD(SetVerbEx)            (THIS_
                                    IHXBuffer* pBufVerb) PURE;
    STDMETHOD(GetUrl)               (THIS_
                                    REF(IHXBuffer*) pBufUrl) PURE;
    STDMETHOD(SetUrl)               (THIS_
                                    IHXBuffer* pBufUrl) PURE;
};

// IHXRTSPResponseMessage: 876baec2-ec9e-41dc-8cb6-e874b60fbad6
DEFINE_GUID(IID_IHXRTSPResponseMessage, 0x876baec2, 0xec9e, 0x41dc,
            0x8c, 0xb6, 0xe8, 0x74, 0xb6, 0x0f, 0xba, 0xd6);

#undef  INTERFACE
#define INTERFACE   IHXRTSPResponseMessage

DECLARE_INTERFACE_(IHXRTSPResponseMessage, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPResponseMessage
    STDMETHOD_(UINT32,GetSize)      (THIS) PURE;
    STDMETHOD_(UINT32,Write)        (THIS_ BYTE* pbuf) PURE;
    STDMETHOD(GetStatusCode)        (THIS_ REF(UINT32) status) PURE;
    STDMETHOD(SetStatusCode)        (THIS_ UINT32 status) PURE;
};

// IHXRTSPInterleavedPacket: 4d737eff-8218-4762-ace3-fcf27c08f916
DEFINE_GUID(IID_IHXRTSPInterleavedPacket, 0x4d737eff, 0x8218, 0x4762,
            0xac, 0xe3, 0xfc, 0xf2, 0x7c, 0x08, 0xf9, 0x16);

#undef  INTERFACE
#define INTERFACE   IHXRTSPInterleavedPacket

DECLARE_INTERFACE_(IHXRTSPInterleavedPacket, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPInterleavedPacket
    STDMETHOD(Get)                  (THIS_ REF(BYTE) byChan,
                                           REF(IHXBuffer*) pbufData) PURE;
    STDMETHOD(Set)                  (THIS_ BYTE byChan,
                                           IHXBuffer* pbufData) PURE;
};

/*
 * The consumer is an abstract object that the protocol pumps data into.
 * It can be interleaved data, a request message, or a response message.
 * The return value from ReadDone() is one of:
 *   - RTSP_RES_AGAIN  : Data was processed, object is not complete.
 *   - RTSP_RES_DONE   : Data was processed, object is complete.
 *   - RTSP_RES_PARTIAL: Not enough data is available to process.
 *   - RTSP_RES_INVALID: Data was processed, not a valid rtsp message.
 *
 * As the consumer receives data, it creates static buffers that AddRef()
 * the protocol's buffer and refer to chunks within it.  When the consumer
 * is destroyed, it Release()'s the static buffers which in turn Release()
 * the protocol buffer. (see CHXStaticBuffer)
 */
// IHXRTSPConsumer: da62eb99-2120-410a-9866-90f7ec9cc15d
DEFINE_GUID(IID_IHXRTSPConsumer, 0xda62eb99, 0x2120, 0x410a,
            0x98, 0x66, 0x90, 0xf7, 0xec, 0x9c, 0xc1, 0x5d);

#undef  INTERFACE
#define INTERFACE   IHXRTSPConsumer

DECLARE_INTERFACE_(IHXRTSPConsumer, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPConsumer
    STDMETHOD(ReadDone)             (THIS_ IHXBuffer* pbufPacket,
                                           UINT32* ppos) PURE;
    STDMETHOD_(UINT32,GetSize)      (THIS) PURE;
    STDMETHOD_(UINT32,Write)        (THIS_ BYTE* pbuf) PURE;
    STDMETHOD_(UINT32,AsBuffer)     (THIS_ REF(IHXBuffer*) pbuf) PURE;
};

// IHXRTSPProtocolResponse: bf646cd4-922c-4b9c-ac92-96e774de5639
DEFINE_GUID(IID_IHXRTSPProtocolResponse, 0xbf646cd4, 0x922c, 0x4b9c,
            0xac, 0x92, 0x96, 0xe7, 0x74, 0xde, 0x56, 0x39);

#undef  INTERFACE
#define INTERFACE   IHXRTSPProtocolResponse

DECLARE_INTERFACE_(IHXRTSPProtocolResponse, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPProtocolResponse
    STDMETHOD(OnClosed)             (THIS_ HX_RESULT status) PURE;
    STDMETHOD(OnError)              (THIS_ HX_RESULT status) PURE;
    STDMETHOD(OnConnectDone)        (THIS_ HX_RESULT status) PURE;
    STDMETHOD(OnPacket)             (THIS_ IHXRTSPInterleavedPacket* pPkt) PURE;

    STDMETHOD(OnOptionsRequest)     (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnDescribeRequest)    (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnSetupRequest)       (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnPlayRequest)        (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnPauseRequest)       (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnAnnounceRequest)    (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnRecordRequest)      (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnTeardownRequest)    (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnGetParamRequest)    (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnSetParamRequest)    (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnRedirectRequest)    (THIS_ IHXRTSPRequestMessage* pMsg) PURE;
    STDMETHOD(OnExtensionRequest)   (THIS_ IHXRTSPRequestMessage* pMsg) PURE;

    STDMETHOD(OnOptionsResponse)    (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnDescribeResponse)   (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnSetupResponse)      (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnPlayResponse)       (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnPauseResponse)      (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnAnnounceResponse)   (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnRecordResponse)     (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnTeardownResponse)   (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnGetParamResponse)   (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnSetParamResponse)   (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnRedirectResponse)   (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
    STDMETHOD(OnExtensionResponse)  (THIS_ IHXRTSPResponseMessage* pMsg) PURE;
};

// IHXRTSPProtocol: 29d8eebf-5597-410b-a290-8181be1e2430
DEFINE_GUID(IID_IHXRTSPProtocol, 0x29d8eebf, 0x5597, 0x410b,
            0xa2, 0x90, 0x81, 0x81, 0xbe, 0x1e, 0x24, 0x30);

#undef  INTERFACE
#define INTERFACE   IHXRTSPProtocol

DECLARE_INTERFACE_(IHXRTSPProtocol, IUnknown)
{
    // IUnknown
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    // IHXRTSPProtocol
    STDMETHOD(Init)                 (THIS_ IHXRTSPProtocolResponse* presp,
                                           IUnknown* punkContext) PURE;
    //XXXTDM: The following two methods are for using an RTSPTransport object.
    //        Note that RTSPTransport is not a public class!!!
    STDMETHOD(GetSocket)            (THIS_ REF(IHXTCPSocket*) pSock) PURE;
    STDMETHOD(SetTransport)         (THIS_ BYTE byChan, RTSPTransport* pTran)
                                                                          PURE;
    STDMETHOD(Connect)              (THIS_ const char* szHost,
                                           UINT16 port) PURE;
    STDMETHOD(Accept)               (THIS_ IHXTCPSocket* psock) PURE;
    STDMETHOD(Close)                (THIS) PURE;
    STDMETHOD(SendRequest)          (THIS_ IHXRTSPRequestMessage* pReq) PURE;
    STDMETHOD(SendResponse)         (THIS_ IHXRTSPResponseMessage* pRsp) PURE;
    STDMETHOD(SendPacket)           (THIS_ IHXRTSPInterleavedPacket* pPkt)
                                                                          PURE;
};

#undef  INTERFACE
#define INTERFACE   IHXRTSPAggregateEventStats

DECLARE_INTERFACE_(IHXRTSPAggregateEventStats, IUnknown)
{
    /*
     * IUknown methods
     */
    STDMETHOD(QueryInterface)       (THIS_ REFIID riid, void** ppvObj) PURE;
    STDMETHOD_(ULONG32,AddRef)      (THIS) PURE;
    STDMETHOD_(ULONG32,Release)     (THIS) PURE;

    /*
     * IHXRTSPAggregateEventStats methods
     */

    STDMETHOD(Init)                         (THIS_ IUnknown* pContext) PURE;
    STDMETHOD_(BOOL,IsInitDone)             (THIS) PURE;
    STDMETHOD(UpdateClientRequestCount)     (THIS_ INT32 lCount, 
                                                   RTSPMethod ulMethodId) PURE;
    STDMETHOD(UpdateServerRequestCount)     (THIS_ INT32 lCount, 
                                                   RTSPMethod ulMethodId) PURE;
    STDMETHOD(UpdateClientResponseCount)    (THIS_ INT32 lCount, 
                                                   RTSPMethod ulMethodId,
                                                   UINT32 ulStatusCode) PURE;
    STDMETHOD(UpdateServerResponseCount)    (THIS_ INT32 lCount, 
                                                   RTSPMethod ulMethodId,
                                                   UINT32 ulStatusCode) PURE;
    STDMETHOD(GetLicense)                   (THIS_ REF(BOOL) bIsLicensed) PURE;
    STDMETHOD(GetStatsEventMask)            (THIS_ REF(UINT32) ulEventMask) PURE;
};
        
#endif /* _HXRTSP2_H_ */

⌨️ 快捷键说明

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