xref: /reactos/sdk/include/psdk/bdaiface.idl (revision 80774a2f)
1#ifndef DO_NO_IMPORTS
2import "unknwn.idl";
3import "strmif.idl";
4import "bdatypes.h";
5#endif
6
7/************************************************************
8 *      interface IBDA_NetworkProvider
9 */
10[
11    object,
12    uuid(fd501041-8ebe-11ce-8183-00aa00577da2),
13    pointer_default(unique)
14]
15interface IBDA_NetworkProvider : IUnknown
16{
17        HRESULT PutSignalSource(
18            [in] ULONG ulSignalSource);
19
20        HRESULT GetSignalSource(
21            [in, out] ULONG * pulSignalSource);
22
23        HRESULT GetNetworkType(
24            [in, out] GUID * pguidNetworkType);
25
26        HRESULT PutTuningSpace(
27            [in] REFGUID guidTuningSpace);
28
29        HRESULT GetTuningSpace(
30            [in, out] GUID * pguidTuingSpace);
31
32        HRESULT RegisterDeviceFilter(
33            [in] IUnknown * pUnkFilterControl,
34            [in, out] ULONG * ppvRegisitrationContext);
35
36        HRESULT UnRegisterDeviceFilter(
37            [in] ULONG pvRegistrationContext);
38}
39
40
41/************************************************************
42 *      interface IBDA_EthernetFilter
43 */
44[
45    object,
46    uuid(71985F43-1CA1-11d3-9CC8-00C04F7971E0),
47    pointer_default(unique)
48]
49interface IBDA_EthernetFilter : IUnknown
50{
51        HRESULT GetMulticastListSize(
52            [in, out] ULONG * pulcbAddresses);
53
54        HRESULT PutMulticastList(
55            [in] ULONG ulcbAddresses,
56            [in] BYTE * pAddressList);
57
58        HRESULT GetMulticastList(
59            [in, out] ULONG * pulcbAddresses,
60            [out] BYTE * pAddressList);
61
62        HRESULT PutMulticastMode(
63            [in] ULONG ulModeMask);
64
65        HRESULT GetMulticastMode(
66            [out] ULONG * pulModeMask);
67
68}
69
70/************************************************************
71 *      interface IBDA_IPV4Filter
72 */
73[
74    object,
75    uuid(71985F44-1CA1-11d3-9CC8-00C04F7971E0),
76    pointer_default(unique)
77]
78
79interface IBDA_IPV4Filter : IUnknown
80{
81        HRESULT GetMulticastListSize(
82            [in, out] ULONG * pulcbAddresses);
83
84        HRESULT PutMulticastList(
85            [in] ULONG ulcbAddresses,
86            [in] BYTE * pAddressList);
87
88        HRESULT GetMulticastList(
89            [in, out] ULONG * pulcbAddresses,
90            [out] BYTE * pAddressList);
91
92        HRESULT PutMulticastMode(
93            [in] ULONG ulModeMask);
94
95        HRESULT GetMulticastMode(
96            [out] ULONG * pulModeMask);
97}
98
99/************************************************************
100 *      interface IBDA_IPV6Filter
101 */
102
103[
104    object,
105    uuid(E1785A74-2A23-4fb3-9245-A8F88017EF33),
106    pointer_default(unique)
107]
108interface IBDA_IPV6Filter : IUnknown
109{
110
111        HRESULT GetMulticastListSize(
112            [in, out] ULONG * pulcbAddresses);
113
114        HRESULT PutMulticastList(
115            [in] ULONG ulcbAddresses,
116            [in] BYTE * pAddressList);
117
118        HRESULT GetMulticastList(
119            [in, out] ULONG * pulcbAddresses,
120            [out] BYTE * pAddressList);
121
122        HRESULT PutMulticastMode(
123            [in] ULONG ulModeMask);
124
125        HRESULT GetMulticastMode(
126            [out] ULONG * pulModeMask);
127}
128
129/************************************************************
130 *      interface IBDA_DeviceControl
131 */
132
133[
134    object,
135    uuid(FD0A5AF3-B41D-11d2-9C95-00C04F7971E0),
136    pointer_default(unique)
137]
138interface IBDA_DeviceControl : IUnknown
139{
140        HRESULT StartChanges(void);
141        HRESULT CheckChanges(void);
142        HRESULT CommitChanges(void);
143        HRESULT GetChangeState(
144            [in, out] ULONG * pState);
145}
146
147/************************************************************
148 *      interface IBDA_PinControl
149 */
150[
151    object,
152    uuid(0DED49D5-A8B7-4d5d-97A1-12B0C195874D),
153    pointer_default(unique)
154]
155interface IBDA_PinControl : IUnknown
156{
157        HRESULT GetPinID(
158            [in, out] ULONG * pulPinID);
159
160        HRESULT GetPinType(
161            [in, out] ULONG * pulPinType);
162
163        HRESULT RegistrationContext(
164            [in, out] ULONG * pulRegistrationCtx);
165}
166
167/************************************************************
168 *      interface IBDA_SignalProperties
169 */
170[
171    object,
172    uuid(D2F1644B-B409-11d2-BC69-00A0C9EE9E16),
173    pointer_default(unique)
174]
175interface IBDA_SignalProperties : IUnknown
176{
177        HRESULT PutNetworkType(
178            [in] REFGUID guidNetworkType);
179
180        HRESULT GetNetworkType(
181            [in, out] GUID * pguidNetworkType);
182
183        HRESULT PutSignalSource(
184            [in] ULONG ulSignalSource);
185
186        HRESULT GetSignalSource(
187            [in, out] ULONG * pulSignalSource);
188
189        HRESULT PutTuningSpace(
190            [in] REFGUID guidTuningSpace);
191
192        HRESULT GetTuningSpace(
193            [in, out] GUID * pguidTuingSpace);
194}
195
196
197/************************************************************
198 *      interface IBDA_SignalStatistics
199 */
200[
201    object,
202    uuid(1347D106-CF3A-428a-A5CB-AC0D9A2A4338),
203    pointer_default(unique)
204]
205interface IBDA_SignalStatistics : IUnknown
206{
207        HRESULT put_SignalStrength(
208            [in] LONG lDbStrength);
209
210        HRESULT get_SignalStrength(
211            [in, out] LONG * plDbStrength);
212
213        HRESULT put_SignalQuality(
214            [in] LONG lPercentQuality);
215
216        HRESULT get_SignalQuality(
217            [in, out] LONG * plPercentQuality);
218
219        HRESULT put_SignalPresent(
220            [in] BOOLEAN fPresent);
221
222        HRESULT get_SignalPresent(
223            [in, out] BOOLEAN * pfPresent);
224
225        HRESULT put_SignalLocked(
226            [in] BOOLEAN fLocked);
227
228        HRESULT get_SignalLocked(
229            [in, out] BOOLEAN * pfLocked);
230
231        HRESULT put_SampleTime(
232            [in] LONG lmsSampleTime);
233
234        HRESULT get_SampleTime(
235            [in, out] LONG * plmsSampleTime);
236}
237
238/************************************************************
239 *      interface IBDA_Topology
240 */
241[
242    object,
243    uuid(79B56888-7FEA-4690-B45D-38FD3C7849BE),
244    pointer_default(unique)
245]
246interface IBDA_Topology : IUnknown
247{
248        HRESULT GetNodeTypes(
249            [in, out] ULONG * pulcNodeTypes,
250            [in]  ULONG ulcNodeTypesMax,
251            [in, out] ULONG * rgulNodeTypes);
252
253        HRESULT GetNodeDescriptors(
254            [in, out] ULONG * ulcNodeDescriptors,
255            [in]  ULONG ulcNodeDescriptorsMax,
256            [in, out] BDANODE_DESCRIPTOR * rgNodeDescriptors);
257
258        HRESULT GetNodeInterfaces(
259            [in]  ULONG ulNodeType,
260            [in, out] ULONG * pulcInterfaces,
261            [in]  ULONG ulcInterfacesMax,
262            [in, out] GUID * rgguidInterfaces);
263
264        HRESULT GetPinTypes(
265            [in, out] ULONG * pulcPinTypes,
266            [in]  ULONG ulcPinTypesMax,
267            [in, out] ULONG * rgulPinTypes);
268
269        HRESULT GetTemplateConnections(
270            [in, out] ULONG * pulcConnections,
271            [in]  ULONG ulcConnectionsMax,
272            [in, out, ] BDA_TEMPLATE_CONNECTION * rgConnections);
273
274        HRESULT CreatePin(
275            [in]  ULONG ulPinType,
276            [in, out] ULONG * pulPinId);
277
278        HRESULT DeletePin(
279            [in] ULONG ulPinId);
280
281        HRESULT SetMediaType(
282            [in]  ULONG ulPinId,
283            [in]  AM_MEDIA_TYPE * pMediaType);
284
285        HRESULT SetMedium(
286            [in] ULONG ulPinId,
287            [in] REGPINMEDIUM * pMedium);
288
289        HRESULT CreateTopology(
290            [in] ULONG ulInputPinId,
291            [in] ULONG ulOutputPinId);
292
293        HRESULT GetControlNode(
294            [in] ULONG ulInputPinId,
295            [in] ULONG ulOutputPinId,
296            [in] ULONG ulNodeType,
297            [in, out] IUnknown ** ppControlNode);
298}
299
300/************************************************************
301 *      interface IBDA_VoidTransform
302 */
303[
304    object,
305    uuid(71985F46-1CA1-11d3-9CC8-00C04F7971E0),
306    pointer_default(unique)
307]
308interface IBDA_VoidTransform : IUnknown
309{
310        HRESULT Start();
311
312        HRESULT Stop();
313}
314
315/************************************************************
316 *      interface IBDA_NullTransform
317 */
318
319[
320    object,
321    uuid(DDF15B0D-BD25-11d2-9CA0-00C04F7971E0),
322    pointer_default(unique)
323]
324interface IBDA_NullTransform : IUnknown
325{
326        HRESULT Start();
327
328        HRESULT Stop();
329}
330
331/************************************************************
332 *      interface IBDA_FrequencyFilter
333 */
334
335[
336    object,
337    uuid(71985F47-1CA1-11d3-9CC8-00C04F7971E0),
338    pointer_default(unique)
339]
340interface IBDA_FrequencyFilter : IUnknown
341{
342        HRESULT put_Autotune(
343            [in] ULONG ulTransponder);
344
345        HRESULT get_Autotune(
346            [in, out] ULONG * pulTransponder);
347
348        HRESULT put_Frequency(
349            [in] ULONG ulFrequency);
350
351        HRESULT get_Frequency(
352            [in, out] ULONG * pulFrequency);
353
354        HRESULT put_Polarity(
355            [in] Polarisation Polarity);
356
357        HRESULT get_Polarity(
358            [in, out] Polarisation *    pPolarity);
359
360        HRESULT put_Range(
361            [in] ULONG ulRange);
362
363        HRESULT get_Range(
364            [in, out] ULONG * pulRange);
365
366        HRESULT put_Bandwidth(
367            [in] ULONG ulBandwidth);
368
369        HRESULT get_Bandwidth(
370            [in, out] ULONG * pulBandwidth);
371
372        HRESULT put_FrequencyMultiplier(
373            [in] ULONG ulMultiplier);
374
375        HRESULT get_FrequencyMultiplier(
376            [in, out] ULONG * pulMultiplier);
377}
378
379/************************************************************
380 *      interface IBDA_LNBInfo
381 */
382[
383    object,
384    uuid(992CF102-49F9-4719-A664-C4F23E2408F4),
385    pointer_default(unique)
386]
387interface IBDA_LNBInfo : IUnknown
388{
389        HRESULT put_LocalOscilatorFrequencyLowBand(
390            [in] ULONG ulLOFLow);
391
392        HRESULT get_LocalOscilatorFrequencyLowBand(
393            [in, out] ULONG * pulLOFLow);
394
395        HRESULT put_LocalOscilatorFrequencyHighBand(
396            [in] ULONG ulLOFHigh);
397
398        HRESULT get_LocalOscilatorFrequencyHighBand(
399            [in, out] ULONG * pulLOFHigh);
400
401        HRESULT put_HighLowSwitchFrequency(
402            [in] ULONG ulSwitchFrequency);
403
404        HRESULT get_HighLowSwitchFrequency(
405            [in, out] ULONG * pulSwitchFrequency);
406}
407
408/************************************************************
409 *      interface IBDA_AutoDemodulate
410 */
411
412[
413    object,
414    uuid(DDF15B12-BD25-11d2-9CA0-00C04F7971E0),
415    pointer_default(unique)
416]
417interface IBDA_AutoDemodulate : IUnknown
418{
419        HRESULT put_AutoDemodulate();
420}
421
422/************************************************************
423 *      interface IBDA_DigitalDemodulator
424 */
425
426[
427    object,
428    uuid(EF30F379-985B-4d10-B640-A79D5E04E1E0),
429    pointer_default(unique)
430]
431interface IBDA_DigitalDemodulator : IUnknown
432{
433        HRESULT put_ModulationType(
434            [in] ModulationType * pModulationType);
435
436        HRESULT get_ModulationType(
437            [in, out] ModulationType * pModulationType);
438
439        HRESULT put_InnerFECMethod(
440            [in] FECMethod * pFECMethod);
441
442        HRESULT get_InnerFECMethod(
443            [in, out] FECMethod * pFECMethod);
444
445        HRESULT put_InnerFECRate(
446            [in] BinaryConvolutionCodeRate * pFECRate);
447
448        HRESULT get_InnerFECRate(
449            [in, out] BinaryConvolutionCodeRate * pFECRate);
450
451        HRESULT put_OuterFECMethod(
452            [in] FECMethod * pFECMethod);
453
454        HRESULT get_OuterFECMethod(
455            [in, out] FECMethod * pFECMethod);
456
457        HRESULT put_OuterFECRate(
458            [in] BinaryConvolutionCodeRate * pFECRate);
459
460        HRESULT get_OuterFECRate(
461            [in, out] BinaryConvolutionCodeRate * pFECRate);
462
463        HRESULT put_SymbolRate(
464            [in] ULONG * pSymbolRate);
465
466        HRESULT get_SymbolRate(
467            [in, out] ULONG * pSymbolRate);
468
469        HRESULT put_SpectralInversion(
470            [in] SpectralInversion * pSpectralInversion);
471
472        HRESULT get_SpectralInversion(
473            [in, out] SpectralInversion * pSpectralInversion);
474}
475
476typedef enum
477{
478    KSPROPERTY_IPSINK_MULTICASTLIST,
479    KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION,
480    KSPROPERTY_IPSINK_ADAPTER_ADDRESS
481}KSPROPERTY_IPSINK;
482
483/************************************************************
484 *      interface IBDA_IPSinkControl
485 */
486
487[
488    object,
489    uuid(3F4DC8E2-4050-11d3-8F4B-00C04F7971E2),
490    pointer_default(unique),
491]
492interface IBDA_IPSinkControl : IUnknown
493{
494        HRESULT GetMulticastList(
495            [in, out] unsigned long *pulcbSize,
496            [in, out] BYTE **pbBuffer);
497
498        HRESULT GetAdapterIPAddress(
499            [in, out] unsigned long *pulcbSize,
500            [in, out] BYTE ** pbBuffer);
501
502}
503
504/************************************************************
505 *      interface IBDA_IPSinkInfo
506 */
507[
508    object,
509    uuid(A750108F-492E-4d51-95F7-649B23FF7AD7),
510    pointer_default(unique)
511]
512interface IBDA_IPSinkInfo : IUnknown
513{
514        HRESULT get_MulticastList(
515            [in, out] ULONG * pulcbAddresses,
516            [out] BYTE    **ppbAddressList);
517
518        HRESULT get_AdapterIPAddress(
519            [out] BSTR *pbstrBuffer);
520
521        HRESULT get_AdapterDescription(
522            [out] BSTR *pbstrBuffer);
523}
524
525/************************************************************
526 *      interface IEnumPIDMap
527 */
528
529[
530    object,
531    uuid(afb6c2a2-2c41-11d3-8a60-0000f81e0e4a),
532    pointer_default(unique)
533]
534interface IEnumPIDMap : IUnknown
535{
536        HRESULT Next(
537            [in] ULONG cRequest,
538            [in, out] PID_MAP * pPIDMap,
539            [out] ULONG * pcReceived);
540
541        HRESULT Skip(
542            [in] ULONG cRecords);
543
544        HRESULT Reset();
545
546        HRESULT Clone(
547            [out] IEnumPIDMap ** ppIEnumPIDMap);
548} ;
549
550/************************************************************
551 *      interface IMPEG2PIDMap
552 */
553
554[
555    object,
556    uuid(afb6c2a1-2c41-11d3-8a60-0000f81e0e4a),
557    pointer_default(unique)
558]
559interface IMPEG2PIDMap : IUnknown
560{
561        HRESULT MapPID(
562            [in] ULONG culPID,
563            [in] ULONG * pulPID,
564            [in] MEDIA_SAMPLE_CONTENT MediaSampleContent);
565
566        HRESULT UnmapPID(
567            [in] ULONG culPID,
568            [in] ULONG * pulPID);
569
570        HRESULT EnumPIDMap(
571            [out] IEnumPIDMap ** pIEnumPIDMap);
572} ;
573
574/************************************************************
575 *      interface IFrequencyMap
576 */
577
578    [
579     object,
580     uuid(06FB45C1-693C-4ea7-B79F-7A6A54D8DEF2),
581     pointer_default(unique),
582    ]
583
584    interface IFrequencyMap : IUnknown
585    {
586        HRESULT get_FrequencyMapping(
587            [out] ULONG* ulCount,
588            [out] ULONG** ppulList);
589
590        HRESULT put_FrequencyMapping(
591            [in] ULONG ulCount,
592            [in] ULONG *pList);
593
594        HRESULT get_CountryCode([out] ULONG *pulCountryCode);
595
596        HRESULT put_CountryCode(
597            [in] ULONG ulCountryCode);
598
599        HRESULT get_DefaultFrequencyMapping(
600            [in] ULONG ulCountryCode,
601            [out] ULONG* pulCount,
602            [out] ULONG** ppulList);
603
604        HRESULT get_CountryCodeList(
605            [out] ULONG* pulCount,
606            [out] ULONG** ppulList);
607    };
608