/[cvs]/api/include/DShowIDL/bdaiface.idl
ViewVC logotype

Annotation of /api/include/DShowIDL/bdaiface.idl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Sun Jul 1 20:47:59 2001 UTC (23 years, 4 months ago) by bearsoft
Branch point for: lazy, MAIN
Initial revision

1 bearsoft 1.1 //------------------------------------------------------------------------------
2     // File: BDAIface.idl
3     //
4     // Desc: This file defines the Ring 3 BDA interfaces that are common to
5     // all BDA network and device types.
6     //
7     // The interfaces specific to a particular Network Type or filter
8     // implementation are defined in a separate include file for that
9     // Network Type or filter implementation.
10     //
11     // Copyright (c) 1999 - 2000, Microsoft Corporation. All rights reserved.
12     //------------------------------------------------------------------------------
13    
14    
15     //---------------------------------------------------------------------
16     // IUnknown import idl
17     //---------------------------------------------------------------------
18     #ifndef DO_NO_IMPORTS
19     import "unknwn.idl";
20     import "strmif.idl";
21     import "BdaTypes.h";
22     #endif
23    
24     //---------------------------------------------------------------------
25     //
26     // IBDA_NetworkProvider interface
27     //
28     // Implemented by a BDA Network Provider
29     //
30     // Used by a BDA device filter to register itself with
31     // a Network Provider and query information about the
32     // the current tuning request.
33     //
34     //---------------------------------------------------------------------
35     [
36     object,
37     uuid(fd501041-8ebe-11ce-8183-00aa00577da2),
38     pointer_default(unique)
39     ]
40    
41     interface IBDA_NetworkProvider : IUnknown
42     {
43    
44     HRESULT
45     PutSignalSource (
46     [in] ULONG ulSignalSource
47     );
48    
49    
50     HRESULT
51     GetSignalSource (
52     [in, out] ULONG * pulSignalSource
53     );
54    
55     HRESULT
56     GetNetworkType (
57     [in, out] GUID * pguidNetworkType
58     );
59    
60     HRESULT
61     PutTuningSpace (
62     [in] REFGUID guidTuningSpace
63     );
64    
65     HRESULT
66     GetTuningSpace (
67     [in, out] GUID * pguidTuingSpace
68     );
69    
70     HRESULT
71     RegisterDeviceFilter (
72     [in] IUnknown * pUnkFilterControl,
73     [in, out] ULONG * ppvRegisitrationContext
74     );
75    
76     HRESULT
77     UnRegisterDeviceFilter (
78     [in] ULONG pvRegistrationContext
79     );
80    
81     }
82    
83    
84     //---------------------------------------------------------------------
85     //
86     // IBDA_EthernetFilter interface
87     //
88     // Implemented by a BDA Network Provider
89     //
90     // Used by an Ethernet Network Data Sink filter (eg. IPSink) to
91     // request that the Network Provider make its best effort to tune
92     // to the stream(s) on which a list of Ethernet multicast addresses
93     // may be transmitted.
94     //
95     // Addresses in the address list are byte aligned in Network order.
96     // UlcbAddresses will always be an integer multiple of the
97     // size of an ethernet address.
98     //
99     //---------------------------------------------------------------------
100     [
101     object,
102     uuid(71985F43-1CA1-11d3-9CC8-00C04F7971E0),
103     pointer_default(unique)
104     ]
105    
106     interface IBDA_EthernetFilter : IUnknown
107     {
108     HRESULT
109     GetMulticastListSize (
110     [in, out] ULONG * pulcbAddresses
111     );
112    
113     HRESULT
114     PutMulticastList (
115     [in] ULONG ulcbAddresses,
116     [in, size_is(ulcbAddresses)] BYTE pAddressList []
117     );
118    
119     HRESULT
120     GetMulticastList (
121     [in, out] ULONG * pulcbAddresses,
122     [out, size_is(*pulcbAddresses)] BYTE pAddressList []
123     );
124    
125     HRESULT
126     PutMulticastMode (
127     [in] ULONG ulModeMask
128     );
129    
130     HRESULT
131     GetMulticastMode (
132     [out] ULONG * pulModeMask
133     );
134    
135     }
136    
137    
138    
139     //---------------------------------------------------------------------
140     //
141     // IBDA_IPV4Filter interface
142     //
143     // Implemented by a BDA Network Provider
144     //
145     // Used by an IPv4 Network Data Sink filter to request
146     // that the Network Provider make its best effort to tune
147     // to the stream(s) on which a list of IPv4 multicast addresses
148     // may be transmitted.
149     //
150     // Addresses in the address list are byte aligned in Network order.
151     // UlcbAddresses will always be an integer multiple of the
152     // size of an IPv4 address.
153     //
154     //---------------------------------------------------------------------
155     [
156     object,
157     uuid(71985F44-1CA1-11d3-9CC8-00C04F7971E0),
158     pointer_default(unique)
159     ]
160    
161     interface IBDA_IPV4Filter : IUnknown
162     {
163    
164     HRESULT
165     GetMulticastListSize (
166     [in, out] ULONG * pulcbAddresses
167     );
168    
169     HRESULT
170     PutMulticastList (
171     [in] ULONG ulcbAddresses,
172     [in, size_is(ulcbAddresses)] BYTE pAddressList []
173     );
174    
175     HRESULT
176     GetMulticastList (
177     [in, out] ULONG * pulcbAddresses,
178     [out, size_is(*pulcbAddresses)] BYTE pAddressList []
179     );
180    
181     HRESULT
182     PutMulticastMode (
183     [in] ULONG ulModeMask
184     );
185    
186     HRESULT
187     GetMulticastMode (
188     [out] ULONG* pulModeMask
189     );
190     }
191    
192    
193    
194     //---------------------------------------------------------------------
195     //
196     // IBDA_IPV6Filter interface
197     //
198     // Implemented by a BDA Network Provider
199     //
200     // Used by an IPv6 Network Data Sink filter to request
201     // that the Network Provider make its best effort to tune
202     // to the stream(s) on which a list of IPv6 multicast addresses
203     // may be transmitted.
204     //
205     // Addresses in the address list are byte aligned in Network order.
206     // UlcbAddresses will always be an integer multiple of the
207     // size of an IPv6 address.
208     //
209     //---------------------------------------------------------------------
210     [
211     object,
212     uuid(E1785A74-2A23-4fb3-9245-A8F88017EF33),
213     pointer_default(unique)
214     ]
215    
216     interface IBDA_IPV6Filter : IUnknown
217     {
218    
219     HRESULT
220     GetMulticastListSize (
221     [in, out] ULONG * pulcbAddresses
222     );
223    
224     HRESULT
225     PutMulticastList (
226     [in] ULONG ulcbAddresses,
227     [in, size_is(ulcbAddresses)] BYTE pAddressList []
228     );
229    
230     HRESULT
231     GetMulticastList (
232     [in, out] ULONG * pulcbAddresses,
233     [out, size_is(*pulcbAddresses)] BYTE pAddressList []
234     );
235    
236     HRESULT
237     PutMulticastMode (
238     [in] ULONG ulModeMask
239     );
240    
241     HRESULT
242     GetMulticastMode (
243     [out] ULONG* pulModeMask
244     );
245     }
246    
247    
248    
249     //---------------------------------------------------------------------
250     //
251     // IBDA_DeviceControl interface
252     //
253     // Implemented by a BDA Device Filter
254     //
255     // Used by the Network Provider to commit a series of changes
256     // on a BDA device filter. The device filter validates and
257     // accumulates all changes requested after StartChanges(). It
258     // effects the accumulated list of changes when CommitChanges() is
259     // called.
260     //
261     //---------------------------------------------------------------------
262     [
263     object,
264     uuid(FD0A5AF3-B41D-11d2-9C95-00C04F7971E0),
265     pointer_default(unique)
266     ]
267    
268     interface IBDA_DeviceControl : IUnknown
269     {
270     HRESULT
271     StartChanges (
272     void
273     );
274    
275     HRESULT
276     CheckChanges (
277     void
278     );
279    
280     HRESULT
281     CommitChanges (
282     void
283     );
284    
285     HRESULT
286     GetChangeState (
287     [in, out] ULONG * pState
288     );
289    
290     }
291    
292    
293    
294     //---------------------------------------------------------------------
295     //
296     // IBDA_PinControl interface
297     //
298     // Implemented by a BDA Device Filter's Pin
299     //
300     // Used by the Network Provider to determine the BDA PinID and
301     // PinType on a BDA Filter's Pin
302     //
303     //---------------------------------------------------------------------
304     [
305     object,
306     uuid(0DED49D5-A8B7-4d5d-97A1-12B0C195874D),
307     pointer_default(unique)
308     ]
309    
310     interface IBDA_PinControl : IUnknown
311     {
312     HRESULT
313     GetPinID (
314     [in, out] ULONG * pulPinID
315     );
316    
317     HRESULT
318     GetPinType (
319     [in, out] ULONG * pulPinType
320     );
321     }
322    
323     //---------------------------------------------------------------------
324     //
325     // IBDA_SignalProperties interface
326     //
327     // Implemented by a BDA Device Filter
328     //
329     // BDA Signal Properties is used by a Network Provider to inform
330     // a BDA Device Filter about the current tuning request. The
331     // Network Provider will call the Put functions when the BDA
332     // device is first registered with the Network Provider and whenever
333     // the current tuning request is modified.
334     //
335     //---------------------------------------------------------------------
336     [
337     object,
338     uuid(D2F1644B-B409-11d2-BC69-00A0C9EE9E16),
339     pointer_default(unique)
340     ]
341    
342     interface IBDA_SignalProperties : IUnknown
343     {
344     HRESULT
345     PutNetworkType (
346     [in] REFGUID guidNetworkType
347     );
348    
349     HRESULT
350     GetNetworkType (
351     [in, out] GUID * pguidNetworkType
352     );
353    
354     HRESULT
355     PutSignalSource (
356     [in] ULONG ulSignalSource
357     );
358    
359     HRESULT
360     GetSignalSource (
361     [in, out] ULONG * pulSignalSource
362     );
363    
364     HRESULT
365     PutTuningSpace (
366     [in] REFGUID guidTuningSpace
367     );
368    
369     HRESULT
370     GetTuningSpace (
371     [in, out] GUID * pguidTuingSpace
372     );
373     }
374    
375    
376     //---------------------------------------------------------------------
377     //
378     // IBDA_Topology interface
379     //
380     // Implemented by a BDA Device Filter
381     //
382     // Used by the Network Provider to query a BDA Device Filter's
383     // possible topologies (template topology) and to configure
384     // the device with an appropriate topology for the current
385     // tuning request. It is also used to get an IUnknown to
386     // a control node which may be used to set specific tuning
387     // information.
388     //
389     //---------------------------------------------------------------------
390     [
391     object,
392     uuid(A14EE835-0A23-11d3-9CC7-00C04F7971E0),
393     pointer_default(unique)
394     ]
395    
396     interface IBDA_Topology : IUnknown
397     {
398     HRESULT
399     GetNodeTypes (
400     [in, out] ULONG * pulcNodeTypes,
401     [in] ULONG ulcNodeTypesMax,
402     [in, out, size_is (ulcNodeTypesMax)] ULONG rgulNodeTypes[]
403     );
404    
405    
406     HRESULT
407     GetNodeInterfaces (
408     [in] ULONG ulNodeType,
409     [in, out] ULONG * pulcInterfaces,
410     [in] ULONG ulcInterfacesMax,
411     [in, out, size_is (ulcInterfacesMax)] GUID * rgguidInterfaces[]
412     );
413    
414     HRESULT
415     GetPinTypes (
416     [in, out] ULONG * pulcPinTypes,
417     [in] ULONG ulcPinTypesMax,
418     [in, out, size_is (ulcPinTypesMax)] ULONG rgulPinTypes[]
419     );
420    
421     HRESULT
422     GetTemplateConnections (
423     [in, out] ULONG * pulcConnections,
424     [in] ULONG ulcConnectionsMax,
425     [in, out, size_is (ulcConnectionsMax)] BDA_TEMPLATE_CONNECTION rgConnections[]
426     );
427    
428     HRESULT
429     CreatePin (
430     [in] ULONG ulPinType,
431     [in, out] ULONG * pulPinId
432     );
433    
434     HRESULT
435     DeletePin (
436     [in] ULONG ulPinId
437     );
438    
439     HRESULT
440     SetMediaType (
441     [in] ULONG ulPinId,
442     [in] AM_MEDIA_TYPE * pMediaType
443     );
444    
445     HRESULT
446     SetMedium (
447     [in] ULONG ulPinId,
448     [in] REGPINMEDIUM * pMedium
449     );
450    
451     HRESULT
452     CreateTopology (
453     [in] ULONG ulInputPinId,
454     [in] ULONG ulOutputPinId
455     );
456    
457     HRESULT
458     GetControlNode (
459     [in] ULONG ulInputPinId,
460     [in] ULONG ulOutputPinId,
461     [in] ULONG ulNodeType,
462     [in, out] IUnknown ** ppControlNode
463     );
464     }
465    
466     //---------------------------------------------------------------------
467     // IBDA_VoidTransform interface
468     //---------------------------------------------------------------------
469     [
470     object,
471     uuid(71985F46-1CA1-11d3-9CC8-00C04F7971E0),
472     pointer_default(unique)
473     ]
474    
475     interface IBDA_VoidTransform : IUnknown
476     {
477     HRESULT
478     Start (
479     void
480     );
481    
482     HRESULT
483     Stop (
484     void
485     );
486    
487     }
488    
489     //---------------------------------------------------------------------
490     // IBDA_NullTransform interface
491     //---------------------------------------------------------------------
492     [
493     object,
494     uuid(DDF15B0D-BD25-11d2-9CA0-00C04F7971E0),
495     pointer_default(unique)
496     ]
497    
498     interface IBDA_NullTransform : IUnknown
499     {
500     HRESULT
501     Start (
502     void
503     );
504    
505     HRESULT
506     Stop (
507     void
508     );
509    
510     }
511    
512     //---------------------------------------------------------------------
513     // IBDA_FrequencyFilter interface
514     //---------------------------------------------------------------------
515     [
516     object,
517     uuid(71985F47-1CA1-11d3-9CC8-00C04F7971E0),
518     pointer_default(unique)
519     ]
520    
521     interface IBDA_FrequencyFilter : IUnknown
522     {
523     HRESULT
524     put_Autotune (
525     [in] ULONG * pulTransponder
526     );
527    
528     HRESULT
529     put_Frequency (
530     [in] ULONG * pulFrequency
531     );
532    
533     HRESULT
534     get_Frequency (
535     [in, out] ULONG * pulFrequency
536     );
537    
538     HRESULT
539     put_Polarity (
540     [in] ULONG * pulPolarity
541     );
542    
543     HRESULT
544     get_Polarity (
545     [in, out] ULONG * pulPolarity
546     );
547    
548     HRESULT
549     put_Range (
550     [in] ULONG * pulRange
551     );
552    
553     HRESULT
554     get_Range (
555     [in, out] ULONG * pulRange
556     );
557     }
558    
559     //---------------------------------------------------------------------
560     // IBDA_AutoDemodulate interface
561     //---------------------------------------------------------------------
562     [
563     object,
564     uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0),
565     pointer_default(unique)
566     ]
567    
568     interface IBDA_AutoDemodulate : IUnknown
569     {
570     HRESULT
571     put_AutoDemodulate (
572     void
573     );
574     }
575    
576     //---------------------------------------------------------------------
577     // IBDA_DigitalDemodulator interface
578     //---------------------------------------------------------------------
579     [
580     object,
581     uuid(EF30F379-985B-4d10-B640-A79D5E04E1E0),
582     pointer_default(unique)
583     ]
584    
585     interface IBDA_DigitalDemodulator : IUnknown
586     {
587     HRESULT
588     put_ModulationType (
589     [in] ModulationType * pModulationType
590     );
591    
592     HRESULT
593     get_ModulationType (
594     [in, out] ModulationType * pModulationType
595     );
596    
597     HRESULT
598     put_InnerFECMethod (
599     [in] FECMethod * pFECMethod
600     );
601    
602     HRESULT
603     get_InnerFECMethod (
604     [in, out] FECMethod * pFECMethod
605     );
606    
607     HRESULT
608     put_InnerFECRate (
609     [in] BinaryConvolutionCodeRate * pFECRate
610     );
611    
612     HRESULT
613     get_InnerFECRate (
614     [in, out] BinaryConvolutionCodeRate * pFECRate
615     );
616    
617     HRESULT
618     put_OuterFECMethod (
619     [in] FECMethod * pFECMethod
620     );
621    
622     HRESULT
623     get_OuterFECMethod (
624     [in, out] FECMethod * pFECMethod
625     );
626    
627     HRESULT
628     put_OuterFECRate (
629     [in] BinaryConvolutionCodeRate * pFECRate
630     );
631    
632     HRESULT
633     get_OuterFECRate (
634     [in, out] BinaryConvolutionCodeRate * pFECRate
635     );
636    
637     HRESULT
638     put_SymbolRate (
639     [in] ULONG * pSymbolRate
640     );
641    
642     HRESULT
643     get_SymbolRate (
644     [in, out] ULONG * pSymbolRate
645     );
646    
647     HRESULT
648     put_SpectralInversion (
649     [in] SpectralInversion * pSpectralInversion
650     );
651    
652     HRESULT
653     get_SpectralInversion (
654     [in, out] SpectralInversion * pSpectralInversion
655     );
656     }
657    
658     typedef enum
659     {
660     KSPROPERTY_IPSINK_MULTICASTLIST,
661     KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION,
662     KSPROPERTY_IPSINK_ADAPTER_ADDRESS
663    
664     } KSPROPERTY_IPSINK;
665    
666    
667    
668     //---------------------------------------------------------------------
669     // IBDA_IPSinkControl interface
670     //---------------------------------------------------------------------
671    
672     [
673     object,
674     uuid(3F4DC8E2-4050-11d3-8F4B-00C04F7971E2),
675     pointer_default(unique)
676     ]
677    
678     interface IBDA_IPSinkControl : IUnknown
679     {
680     HRESULT GetMulticastList (
681     [in, out] unsigned long *pulcbSize,
682     [in, out] BYTE **pbBuffer
683     );
684    
685    
686     HRESULT GetAdapterIPAddress (
687     [in,out] unsigned long *pulcbSize,
688     [in,out] BYTE **pbBuffer
689     );
690    
691     }
692    
693     //
694     // mpeg-2 demultiplexer-specific interfaces follow
695     //
696    
697     //---------------------------------------------------------------------
698     // IEnumPIDMap interface
699     //---------------------------------------------------------------------
700    
701     #ifdef REMOVE_THESE
702     typedef enum {
703     MEDIA_TRANSPORT_PACKET, // complete TS packet e.g. pass-through mode
704     MEDIA_ELEMENTARY_STREAM, // PES payloads; audio/video only
705     MEDIA_MPEG2_PSI, // PAT, PMT, CAT, Private
706     MEDIA_TRANSPORT_PAYLOAD // gathered TS packet payloads (PES packets, etc...)
707     } MEDIA_SAMPLE_CONTENT ;
708    
709     typedef struct {
710     ULONG ulPID ;
711     MEDIA_SAMPLE_CONTENT MediaSampleContent ;
712     } PID_MAP ;
713     #endif // REMOVE_THESE
714    
715     [
716     object,
717     uuid (afb6c2a2-2c41-11d3-8a60-0000f81e0e4a),
718     pointer_default(unique)
719     ]
720     interface IEnumPIDMap : IUnknown
721     {
722     HRESULT
723     Next (
724     [in] ULONG cRequest,
725     [in, out, size_is (cRequest)] PID_MAP * pPIDMap,
726     [out] ULONG * pcReceived
727     ) ;
728    
729     HRESULT
730     Skip (
731     [in] ULONG cRecords
732     ) ;
733    
734     HRESULT
735     Reset (
736     ) ;
737    
738     HRESULT
739     Clone (
740     [out] IEnumPIDMap ** ppIEnumPIDMap
741     ) ;
742     } ;
743    
744     //---------------------------------------------------------------------
745     // IMPEG2PIDMap interface
746     //---------------------------------------------------------------------
747    
748     [
749     object,
750     uuid (afb6c2a1-2c41-11d3-8a60-0000f81e0e4a),
751     pointer_default(unique)
752     ]
753     interface IMPEG2PIDMap : IUnknown
754     {
755     HRESULT
756     MapPID (
757     [in] ULONG culPID,
758     [in] ULONG * pulPID,
759     [in] MEDIA_SAMPLE_CONTENT MediaSampleContent
760     ) ;
761    
762     HRESULT
763     UnmapPID (
764     [in] ULONG culPID,
765     [in] ULONG * pulPID
766     ) ;
767    
768     HRESULT
769     EnumPIDMap (
770     [out] IEnumPIDMap ** pIEnumPIDMap
771     ) ;
772     } ;

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26