1 /****************************************************************************
3 * $Id: rmasrc.h 7 2003-05-30 02:18:02Z gabest $
5 * Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
7 * http://www.real.com/devzone
9 * This program contains proprietary information of RealNetworks, Inc,
10 * and is licensed subject to restrictions on use and distribution.
13 * RealMedia Architecture Packet Source Interfaces.
21 * Forward declarations of some interfaces defined or used here-in.
23 typedef _INTERFACE IRMARawSourceObject IRMARawSourceObject
;
24 typedef _INTERFACE IRMARawSinkObject IRMARawSinkObject
;
25 typedef _INTERFACE IRMASourceFinderObject IRMASourceFinderObject
;
26 typedef _INTERFACE IRMASourceFinderResponse IRMASourceFinderResponse
;
27 typedef _INTERFACE IRMARequest IRMARequest
;
29 /****************************************************************************
37 * Object that serves packets to sinks
39 * IID_IRMARawSourceObject:
41 * {00001000-0901-11d1-8B06-00A024406D59}
44 DEFINE_GUID(IID_IRMARawSourceObject
, 0x00001000, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
45 0xa0, 0x24, 0x40, 0x6d, 0x59);
48 #define INTERFACE IRMARawSourceObject
50 DECLARE_INTERFACE_(IRMARawSourceObject
, IUnknown
)
55 STDMETHOD(QueryInterface
) (THIS_
59 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
61 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
64 * IRMARawSourceObject methods
67 /************************************************************************
69 * IRMARawSourceObject::Init
71 * Initializes the connection between the source and the sink
73 STDMETHOD(Init
) (THIS_
74 IUnknown
* pUnknown
) PURE
;
76 STDMETHOD(Done
) (THIS
) PURE
;
78 STDMETHOD(GetFileHeader
) (THIS
) PURE
;
80 STDMETHOD(GetStreamHeader
) (THIS_
81 UINT16 unStreamNumber
) PURE
;
83 STDMETHOD(StartPackets
) (THIS_
84 UINT16 unStreamNumber
) PURE
;
86 STDMETHOD(StopPackets
) (THIS_
87 UINT16 unStreamNumber
) PURE
;
90 /****************************************************************************
98 * Object that receives raw packets from a source
100 * IID_IRMARawSinkObject:
102 * {00001001-0901-11d1-8B06-00A024406D59}
105 DEFINE_GUID(IID_IRMARawSinkObject
, 0x00001001, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
106 0xa0, 0x24, 0x40, 0x6d, 0x59);
109 #define INTERFACE IRMARawSinkObject
111 DECLARE_INTERFACE_(IRMARawSinkObject
, IUnknown
)
116 STDMETHOD(QueryInterface
) (THIS_
120 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
122 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
125 * IRMARawSinkObject methods
128 /************************************************************************
130 * IRMARawSinkObject::InitDone
132 * Callback after source object has initialized the connection
134 STDMETHOD(InitDone
) (THIS_
135 PN_RESULT status
) PURE
;
137 STDMETHOD(FileHeaderReady
) (THIS_
139 IRMAValues
* pHeader
) PURE
;
141 STDMETHOD(StreamHeaderReady
) (THIS_
143 IRMAValues
* pHeader
) PURE
;
145 STDMETHOD(PacketReady
) (THIS_
147 IRMAPacket
* pPacket
) PURE
;
149 STDMETHOD(StreamDone
) (THIS_
150 UINT16 unStreamNumber
) PURE
;
154 /****************************************************************************
158 * IRMASourceFinderObject
162 * Object that allows a sink to search for a raw packet source
164 * IID_IRMASourceFinderObject:
166 * {00001002-0901-11d1-8B06-00A024406D59}
169 DEFINE_GUID(IID_IRMASourceFinderObject
, 0x00001002, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
170 0xa0, 0x24, 0x40, 0x6d, 0x59);
172 #define CLSID_IRMASourceFinderObject IID_IRMASourceFinderObject
175 #define INTERFACE IRMASourceFinderObject
177 #define CLSID_IRMASourceFinderObject IID_IRMASourceFinderObject
179 DECLARE_INTERFACE_(IRMASourceFinderObject
, IUnknown
)
184 STDMETHOD(QueryInterface
) (THIS_
188 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
190 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
193 * IRMASourceFinderObject methods
196 STDMETHOD(Init
) (THIS_
197 IUnknown
* pUnknown
) PURE
;
199 STDMETHOD(Find
) (THIS_
200 IRMARequest
* pRequest
) PURE
;
202 STDMETHOD(Done
) (THIS
) PURE
;
206 /****************************************************************************
210 * IRMASourceFinderResponse
214 * Object that returns a raw packet source to a sink
216 * IID_IRMASourceFinderResponse:
218 * {00001003-0901-11d1-8B06-00A024406D59}
221 DEFINE_GUID(IID_IRMASourceFinderResponse
, 0x00001003, 0x901, 0x11d1,
222 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
226 #define INTERFACE IRMASourceFinderResponse
228 DECLARE_INTERFACE_(IRMASourceFinderResponse
, IUnknown
)
233 STDMETHOD(QueryInterface
) (THIS_
237 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
239 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
242 * IRMASourceFinderResponse methods
245 STDMETHOD(InitDone
) (THIS_
246 PN_RESULT status
) PURE
;
248 STDMETHOD(FindDone
) (THIS_
250 IUnknown
* pUnknown
) PURE
;
254 #endif /* _RMASRC_H_ */