VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/devicetopology.idl

最後變更 在這個檔案是 53206,由 vboxsync 提交於 10 年 前

Devices/vmsvga: header fixes

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 15.0 KB
 
1/*
2 * Core Audio device topology definitions
3 *
4 * Copyright 2009 Maarten Lankhorst
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 *
20 */
21
22/*
23 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
24 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
25 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
26 * a choice of LGPL license versions is made available with the language indicating
27 * that LGPLv2 or any later version may be used, or where a choice of which version
28 * of the LGPL is applied is otherwise unspecified.
29 */
30
31interface IPart;
32interface IControlInterface;
33interface IDeviceTopology;
34interface IControlChangeNotify;
35
36import "oaidl.idl";
37import "ocidl.idl";
38import "propidl.idl";
39
40cpp_quote("#ifndef E_NOTFOUND")
41cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)")
42cpp_quote("#endif")
43
44cpp_quote("#define DEVTOPO_HARDWARE_INITIATED_EVENTCONTEXT 0x64726148 /* 'draH' */")
45cpp_quote("DEFINE_GUID(EVENTCONTEXT_VOLUMESLIDER, 0xe2c2e9de, 0x09b1, 0x4b04,0x84,0xe5, 0x07, 0x93, 0x12, 0x25, 0xee, 0x04);")
46
47cpp_quote("#define _IKsControl_")
48cpp_quote("#include <ks.h>")
49cpp_quote("#include <ksmedia.h>")
50cpp_quote("#ifndef _KS_")
51
52typedef struct {
53 ULONG FormatSize;
54 ULONG Flags;
55 ULONG SampleSize;
56 ULONG Reserved;
57 GUID MajorFormat;
58 GUID SubFormat;
59 GUID Specifier;
60} KSDATAFORMAT;
61
62typedef KSDATAFORMAT *PKSDATAFORMAT;
63
64typedef struct
65{
66 union
67 {
68 struct {
69 GUID Set;
70 ULONG Id;
71 ULONG Flags;
72 };
73 LONGLONG Alignment;
74 };
75} KSIDENTIFIER;
76
77typedef KSIDENTIFIER KSPROPERTY, *PKSPROPERTY;
78typedef KSIDENTIFIER KSMETHOD, *PKSMETHOD;
79typedef KSIDENTIFIER KSEVENT, *PKSEVENT;
80
81typedef enum
82{
83 eConnTypeUnknown = 0,
84 eConnType3Point5mm,
85 eConnTypeQuarter,
86 eConnTypeAtapiInternal,
87 eConnTypeRCA,
88 eConnTypeOptical,
89 eConnTypeOtherDigital,
90 eConnTypeOtherAnalog,
91 eConnTypeMultichannelAnalogDIN,
92 eConnTypeXlrProfessional,
93 eConnTypeRj11Modem,
94 eConnTypeCombination
95} EPcxConnectionType;
96
97typedef enum
98{
99 eGeoLocRear = 1,
100 eGeoLocFront,
101 eGeoLocLeft,
102 eGeoLocRight,
103 eGeoLocTop,
104 eGeoLocBottom,
105 eGeoLocRearPanel,
106 eGeoLocRiser,
107 eGeoLocInsideMobileLid,
108 eGeoLocDrivebay,
109 eGeoLocHDMI,
110 eGeoLocOutsideMobileLid,
111 eGeoLocATAPI,
112 eGeoLocReserved5,
113 eGeoLocReserved6
114} EPcxGeoLocation;
115
116typedef enum
117{
118 eGenLocPrimaryBox = 0,
119 eGenLocInternal,
120 eGenLocSeparate,
121 eGenLocOther
122} EPcxGenLocation;
123
124typedef enum
125{
126 ePortConnJack = 0,
127 ePortConnIntegratedDevice,
128 ePortConnBothIntegratedAndJack,
129 ePortConnUnknown
130} EPxcPortConnection;
131
132typedef struct
133{
134 DWORD ChannelMapping;
135 COLORREF Color;
136 EPcxConnectionType ConnectionType;
137 EPcxGeoLocation GeoLocation;
138 EPcxGenLocation GenLocation;
139 EPxcPortConnection PortConnection;
140 BOOL IsConnected;
141} KSJACK_DESCRIPTION;
142
143typedef KSJACK_DESCRIPTION *PKSJACK_DESCRIPTION;
144
145typedef struct _LUID
146{
147 DWORD LowPart;
148 LONG HighPart;
149} LUID;
150
151typedef struct _LUID *PLUID;
152
153typedef enum
154{
155 KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,
156 KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT
157} KSJACK_SINK_CONNECTIONTYPE;
158
159typedef struct _tagKSJACK_SINK_INFORMATION
160{
161 KSJACK_SINK_CONNECTIONTYPE ConnType;
162 WORD ManufacturerId;
163 WORD ProductId;
164 WORD AudioLatency;
165 BOOL HDCPCapable;
166 BOOL AICapable;
167 UCHAR SinkDescriptionLength;
168 WCHAR SinkDescription[32];
169 LUID PortId;
170} KSJACK_SINK_INFORMATION;
171
172typedef struct _tagKSJACK_DESCRIPTION2
173{
174 DWORD DeviceStateInfo;
175 DWORD JackCapabilities;
176} KSJACK_DESCRIPTION2;
177
178typedef struct _tagKSJACK_DESCRIPTION2 *PKSJACK_DESCRIPTION2;
179
180cpp_quote("#endif")
181
182typedef enum
183{
184 In = 0,
185 Out
186} DataFlow;
187
188typedef enum
189{
190 Connector = 0,
191 Subunit
192} PartType;
193
194typedef enum
195{
196 Unknown_Connector = 0,
197 Physical_Internal,
198 Physical_External,
199 Software_IO,
200 Software_Fixed,
201 Network
202} ConnectorType;
203
204[
205 pointer_default(unique),
206 nonextensible,
207 uuid(28f54685-06fd-11d2-b27a-00a0c9223196),
208 local,
209 object
210]
211interface IKsControl : IUnknown
212{
213 HRESULT KsProperty(
214 [in] PKSPROPERTY Property,
215 [in] ULONG PropertyLength,
216 [in,out] void *PropertyData,
217 [in] ULONG DataLength,
218 [out] ULONG *BytesReturned
219 );
220 HRESULT KsMethod(
221 [in] PKSMETHOD Method,
222 [in] ULONG MethodLength,
223 [in,out] void *MethodData,
224 [in] ULONG DataLength,
225 [out] ULONG *BytesReturned
226 );
227 HRESULT KsEvent(
228 [in] PKSEVENT Event,
229 [in] ULONG EventLength,
230 [in,out] void *EventData,
231 [in] ULONG DataLength,
232 [out] ULONG *BytesReturned
233 );
234}
235
236[
237 pointer_default(unique),
238 nonextensible,
239 uuid(c2f8e001-f205-4bc9-99bc-c13b1e048ccb),
240 local,
241 object
242]
243interface IPerChannelDbLevel : IUnknown
244{
245 HRESULT GetChannelCount(
246 [out] UINT *pcChannels
247 );
248 HRESULT GetLevelRange(
249 [in] UINT nChannel,
250 [out] float *pfMinLevelDB,
251 [out] float *pfMaxLevelDB,
252 [out] float *pfStepping
253 );
254 HRESULT GetLevel(
255 [in] UINT nChannel,
256 [out] float *pfLevelDB
257 );
258 HRESULT SetLevel(
259 [in] UINT nChannel,
260 [in] float fLevelDB,
261 [in,unique] LPCGUID pguidEventContext
262 );
263 HRESULT SetLevelUniform(
264 [in] float fLevelDB,
265 [in,unique] LPCGUID pguidEventContext
266 );
267 HRESULT SetLevelAllChannels(
268 [size_is(cChannels),in] float *aLevelsDB,
269 [in] ULONG cChannels,
270 [in] LPCGUID pguidEventContext
271 );
272}
273
274[
275 pointer_default(unique),
276 nonextensible,
277 uuid(7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc),
278 local,
279 object
280]
281interface IAudioVolumeLevel : IPerChannelDbLevel
282{
283 /* Empty */
284}
285
286[
287 pointer_default(unique),
288 nonextensible,
289 uuid(bb11c46f-ec28-493c-b88a-5db88062ce98),
290 local,
291 object
292]
293interface IAudioChannelConfig : IUnknown
294{
295 HRESULT SetChannelConfig(
296 [in] DWORD dwConfig,
297 [in] LPCGUID pguidEventContext
298 );
299 HRESULT GetChannelConfig(
300 [in] DWORD dwConfig,
301 [retval,out] DWORD *pdwConfig
302 );
303}
304
305[
306 pointer_default(unique),
307 nonextensible,
308 uuid(7d8b1437-dd53-4350-9c1b-1ee2890bf938),
309 local,
310 object
311]
312interface IAudioLoudness : IUnknown
313{
314 HRESULT GetEnabled(
315 [out] BOOL *pbEnabled
316 );
317 HRESULT SetEnabled(
318 [in] BOOL bEnabled,
319 [in] LPCGUID pguidEventContext
320 );
321}
322
323[
324 pointer_default(unique),
325 nonextensible,
326 uuid(4f03dc02-5e6e-4653-8f72-a030c123d598),
327 local,
328 object
329]
330interface IAudioInputSelector : IUnknown
331{
332 HRESULT GetSelection(
333 [out] UINT *pnIdSelected
334 );
335 HRESULT SetSelection(
336 [in] UINT nIdSelect,
337 [unique,in] LPCGUID pguidEventContext
338 );
339}
340
341[
342 pointer_default(unique),
343 nonextensible,
344 uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab),
345 local,
346 object
347]
348interface IAudioOutputSelector : IUnknown
349{
350 HRESULT GetSelection(
351 [out] UINT *pnIdSelected
352 );
353 HRESULT SetSelection(
354 [in] UINT nIdSelect,
355 [unique,in] LPCGUID pguidEventContext
356 );
357}
358
359[
360 pointer_default(unique),
361 nonextensible,
362 uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab),
363 local,
364 object
365]
366interface IAudioMute : IUnknown
367{
368 HRESULT SetMute(
369 [in] BOOL bMute,
370 [unique,in] LPCGUID pguidEventContext
371 );
372 HRESULT GetMute(
373 [out] BOOL *pbMute
374 );
375}
376
377[
378 pointer_default(unique),
379 nonextensible,
380 uuid(a2b1a1d9-4db3-425d-a2b2-bd335cb3e2e5),
381 local,
382 object
383]
384interface IAudioBass : IPerChannelDbLevel
385{
386 /* Empty */
387}
388
389[
390 pointer_default(unique),
391 nonextensible,
392 uuid(5e54b6d7-b44b-40d9-9a9e-e691d9ce6edf),
393 local,
394 object
395]
396interface IAudioMidRange : IPerChannelDbLevel
397{
398 /* Empty */
399}
400
401[
402 pointer_default(unique),
403 nonextensible,
404 uuid(0a717812-694e-4907-b74b-bafa5cfdca7b),
405 local,
406 object
407]
408interface IAudioTreble : IPerChannelDbLevel
409{
410 /* Empty */
411}
412
413[
414 pointer_default(unique),
415 nonextensible,
416 uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab),
417 local,
418 object
419]
420interface IAudioAutoGainControl : IUnknown
421{
422 HRESULT GetEnabled(
423 [in] BOOL bEnabled,
424 [unique,in] LPCGUID pguidEventContext
425 );
426 HRESULT GetMute(
427 [out] BOOL *pbEnabled
428 );
429}
430
431[
432 pointer_default(unique),
433 nonextensible,
434 uuid(dd79923c-0599-45e0-b8b6-c8df7db6e796),
435 local,
436 object
437]
438interface IAudioPeakMeter : IUnknown
439{
440 HRESULT GetChannelCount(
441 [out] UINT *pcChannels
442 );
443 HRESULT GetLevel(
444 [in] UINT nChannel,
445 [out] float *pfLevel
446 );
447}
448
449[
450 pointer_default(unique),
451 nonextensible,
452 uuid(3b22bcbf-2586-4af0-8583-205d391b807c),
453 local,
454 object
455]
456interface IDeviceSpecificProperty : IUnknown
457{
458 HRESULT GetType(
459 [out] VARTYPE *pVType
460 );
461 HRESULT GetValue(
462 [out] VARTYPE *pvType,
463 [out,in] DWORD *pcbValue
464 );
465 HRESULT SetValue(
466 [in] void *pvValue,
467 [in] DWORD cbValue,
468 [in] LPCGUID pguidEventContext
469 );
470 HRESULT Get4BRange(
471 [out] LONG *plMin,
472 [out] LONG *plMax,
473 [out] LONG *plStepping
474 );
475}
476
477[
478 pointer_default(unique),
479 nonextensible,
480 uuid(3cb4a69d-bb6f-4d2b-95b7-452d2c155db5),
481 local,
482 object
483]
484interface IKsFormatSupport : IUnknown
485{
486 HRESULT IsFormatSupported(
487 [size_is(cbFormat),in] PKSDATAFORMAT pKsFormat,
488 [in] DWORD cbFormat,
489 [out] BOOL *pbSupported
490 );
491 HRESULT GetDevicePreferredFormat(
492 [out] PKSDATAFORMAT *ppKsFormat
493 );
494}
495
496[
497 pointer_default(unique),
498 nonextensible,
499 uuid(4509f757-2d46-4637-8e62-ce7db944f57b),
500 local,
501 object
502]
503interface IKsJackDescription : IUnknown
504{
505 HRESULT GetJackCount(
506 [out] UINT *pcJacks
507 );
508 HRESULT GetJackDescription(
509 [in] UINT nJack,
510 [out] KSJACK_DESCRIPTION *pDescription
511 );
512}
513
514[
515 pointer_default(unique),
516 nonextensible,
517 uuid(478f3a9b-e0c9-4827-9228-6f5505ffe76a),
518 local,
519 object
520]
521interface IKsJackDescription2 : IUnknown
522{
523 HRESULT GetJackCount(
524 [out] UINT *pcJacks
525 );
526 HRESULT GetJackDescription2(
527 [in] UINT nJack,
528 [out] KSJACK_DESCRIPTION2 *pDescription2
529 );
530}
531
532[
533 pointer_default(unique),
534 nonextensible,
535 uuid(d9bd72ed-290f-4581-9ff3-61027a8fe532),
536 local,
537 object
538]
539interface IKsJackSinkInformation : IUnknown
540{
541 HRESULT GetJackSinkInformation(
542 [out] KSJACK_SINK_INFORMATION *pJackSinkInformation
543 );
544}
545
546[
547 pointer_default(unique),
548 nonextensible,
549 uuid(6daa848c-5eb0-45cc-aea5-998a2cda1ffb),
550 local,
551 object
552]
553interface IPartsList : IUnknown
554{
555 HRESULT GetCount(
556 [out] UINT *pCount
557 );
558 HRESULT GetPart(
559 [in] UINT nIndex,
560 [out] IPart **ppPart
561 );
562}
563
564[
565 pointer_default(unique),
566 nonextensible,
567 uuid(ae2de0e4-5bca-4f2d-aa46-5d13f8fdb3a9),
568 local,
569 object
570]
571interface IPart : IUnknown
572{
573 HRESULT GetName(
574 [out] LPWSTR *ppwstrName
575 );
576 HRESULT GetLocalId(
577 [out] UINT *pnId
578 );
579 HRESULT GetGlobalId(
580 [out] LPWSTR *ppwstrGlobalId
581 );
582 HRESULT GetPartType(
583 [out] PartType *pPartType
584 );
585 HRESULT GetSubType(
586 [out] GUID *pSubType
587 );
588 HRESULT GetControlInterfaceCount(
589 [out] UINT *pCount
590 );
591 HRESULT GetControlInterface(
592 [in] UINT nIndex,
593 [out] IControlInterface **ppInterfaceDesc
594 );
595 HRESULT EnumPartsIncoming(
596 [out] IPartsList **ppParts
597 );
598 HRESULT EnumPartsOutgoing(
599 [out] IPartsList **ppParts
600 );
601 HRESULT GetTopologyObjects(
602 [out] IDeviceTopology **ppTopology
603 );
604 HRESULT Activate(
605 [in] DWORD dwClsContext,
606 [in] REFIID refiid,
607 [iid_is(refiid),out] void **ppvObject
608 );
609 HRESULT RegisterControlChangeCallback(
610 [in] REFGUID riid,
611 [in] IControlChangeNotify *pNotify
612 );
613 HRESULT UnregisterControlChangeCallback(
614 [in] IControlChangeNotify *pNotify
615 );
616};
617
618[
619 pointer_default(unique),
620 nonextensible,
621 uuid(9c2c4058-23f5-41de-877a-df3af236a09e),
622 local,
623 object
624]
625interface IConnector : IUnknown
626{
627 HRESULT GetType(
628 [out] ConnectorType *pType
629 );
630 HRESULT GetDataFlow(
631 [out] DataFlow *pFlow
632 );
633 HRESULT ConnectTo(
634 [in] IConnector *pConnectTo
635 );
636 HRESULT Disconnect(void);
637 HRESULT IsConnected(
638 [out] BOOL *pbConnected
639 );
640 HRESULT GetConnectedTo(
641 [out] IConnector **ppConTo
642 );
643 HRESULT GetConnectorIdConnectedTo(
644 [out] LPWSTR *ppwstrConnectorId
645 );
646 HRESULT GetDeviceIdConnectedTo(
647 [out] LPWSTR *ppwstrDeviceId
648 );
649}
650
651[
652 pointer_default(unique),
653 nonextensible,
654 uuid(82149a85-dba6-4487-86bb-ea8f7fefcc71),
655 local,
656 object
657]
658interface ISubUnit: IUnknown
659{
660 /* Empty IUnknown interface.. */
661}
662
663[
664 pointer_default(unique),
665 nonextensible,
666 uuid(45d37c3f-5140-444a-ae24-400789f3cbf3),
667 local,
668 object
669]
670interface IControlInterface : IUnknown
671{
672 HRESULT GetName(
673 [out] LPWSTR *ppwstrName
674 );
675 HRESULT GetIID(
676 [out] GUID *pIID
677 );
678}
679
680[
681 pointer_default(unique),
682 nonextensible,
683 uuid(a09513ed-c709-4d21-bd7b-5f34c47f3947),
684 local,
685 object
686]
687interface IControlChangeNotify : IUnknown
688{
689 HRESULT OnNotify(
690 [in] DWORD dwSenderProcessId,
691 [in] LPCGUID ppguidEventContext
692 );
693}
694
695[
696 pointer_default(unique),
697 nonextensible,
698 uuid(2a07407e-6497-4a18-9787-32f79bd0d98f),
699 local,
700 object
701]
702interface IDeviceTopology : IUnknown
703{
704 HRESULT GetConnectorCount(
705 [out] UINT *pCount
706 );
707 HRESULT GetConnector(
708 [in] UINT nIndex,
709 [out] IConnector **ppConnector
710 );
711 HRESULT GetSubunitCount(
712 [out] UINT *pCount
713 );
714 HRESULT GetSubunit(
715 [in] UINT nIndex,
716 [out] ISubUnit **ppConnector
717 );
718 HRESULT GetPartById(
719 [in] UINT nId,
720 [out] IPart **ppPart
721 );
722 HRESULT GetDeviceId(
723 [out] LPWSTR *ppwstrDeviceId
724 );
725 HRESULT GetSignalPath(
726 [in] IPart *pIPartFrom,
727 [in] IPart *pIPartTo,
728 [in] BOOL bRejectMixedPaths,
729 [out] IPartsList **ppParts
730 );
731}
732
733[
734 version(1.0)
735]
736library DevTopologyLib
737{
738 [
739 uuid(1df639d0-5ec1-47aa-9379-828dc1aa8c59),
740 ]
741 coclass DeviceTopology
742 {
743 interface IDeviceTopology;
744 }
745}
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette