Author: akhaldi
Date: Sat Apr 13 23:28:46 2013
New Revision: 58751
URL:
http://svn.reactos.org/svn/reactos?rev=58751&view=rev
Log:
[PSDK]
* Import audioclient.idl and mmdeviceapi.idl from Wine and add them to the generated PSDK
headers.
* Add missing WAVE_FORMAT_IEEE_FLOAT definition to mmreg.h.
* Import audiosessiontypes.h, devpkey.h and propkey.h from Wine.
Added:
trunk/reactos/include/psdk/audioclient.idl (with props)
trunk/reactos/include/psdk/audiosessiontypes.h (with props)
trunk/reactos/include/psdk/devpkey.h (with props)
trunk/reactos/include/psdk/mmdeviceapi.idl (with props)
trunk/reactos/include/psdk/propkey.h (with props)
Modified:
trunk/reactos/include/psdk/CMakeLists.txt
trunk/reactos/include/psdk/mmreg.h
Modified: trunk/reactos/include/psdk/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/CMakeLists.tx…
==============================================================================
--- trunk/reactos/include/psdk/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/CMakeLists.txt [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -12,6 +12,7 @@
# asynot.idl
# asysta.idl
atliface.idl
+ audioclient.idl
bdaiface.idl
# binres.idl
bits.idl
@@ -51,6 +52,7 @@
mimeinfo.idl
mimeole.idl
mlang.idl
+ mmdeviceapi.idl
mscoree.idl
msctf.idl
msdadc.idl
Added: trunk/reactos/include/psdk/audioclient.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/audioclient.i…
==============================================================================
--- trunk/reactos/include/psdk/audioclient.idl (added)
+++ trunk/reactos/include/psdk/audioclient.idl [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -1,0 +1,327 @@
+/*
+ * Core Audio audioclient definitions
+ *
+ * Copyright 2009 Maarten Lankhorst
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+import "wtypes.idl";
+import "unknwn.idl";
+import "audiosessiontypes.h";
+
+/* Forward declarations */
+interface IAudioClient;
+interface IAudioRenderClient;
+interface IAudioCaptureClient;
+interface IAudioClock;
+interface IAudioClock2;
+interface IAudioClockAdjustment;
+interface ISimpleAudioVolume;
+interface IAudioStreamVolume;
+interface IChannelAudioVolume;
+
+cpp_quote("#if 0")
+typedef struct WAVEFORMATEX /*[hidden,restricted]*/
+{
+ WORD wFormatTag;
+ WORD nChannels;
+ DWORD nSamplesPerSec;
+ DWORD nAvgBytesPerSec;
+ WORD nBlockAlign;
+ WORD wBitsPerSample;
+ WORD cbSize;
+} WAVEFORMATEX;
+cpp_quote("#else")
+cpp_quote("#include <mmreg.h>")
+cpp_quote("#endif")
+
+cpp_quote("#if 0")
+typedef LONGLONG /*[hidden,restricted]*/ REFERENCE_TIME;
+cpp_quote("#else")
+cpp_quote("#define _IKsControl_")
+cpp_quote("#include <ks.h>")
+cpp_quote("#include <ksmedia.h>")
+cpp_quote("#endif")
+
+enum _AUDCLNT_BUFFERFLAGS
+{
+ AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1,
+ AUDCLNT_BUFFERFLAGS_SILENT = 0x2,
+ AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4
+};
+
+[
+ local,
+ pointer_default(unique),
+ uuid(1cb9ad4c-dbfa-4c32-b178-c2f568a703b2),
+ object,
+]
+interface IAudioClient : IUnknown
+{
+ HRESULT Initialize(
+ [in] AUDCLNT_SHAREMODE ShareMode,
+ [in] DWORD StreamFlags,
+ [in] REFERENCE_TIME hnsBufferDuration,
+ [in] REFERENCE_TIME hnsPeriodicity,
+ [in] const WAVEFORMATEX *pFormat,
+ [in] LPCGUID AudioSessionGuid
+ );
+ HRESULT GetBufferSize(
+ [out] UINT32 *pNumBufferFrames
+ );
+ HRESULT GetStreamLatency(
+ [out] REFERENCE_TIME *phnsLatency
+ );
+ HRESULT GetCurrentPadding(
+ [out] UINT32 *pNumPaddingFrames
+ );
+ HRESULT IsFormatSupported(
+ [in] AUDCLNT_SHAREMODE ShareMode,
+ [in] const WAVEFORMATEX *pFormat,
+ [out,unique] WAVEFORMATEX **ppClosestMatch
+ );
+ HRESULT GetMixFormat(
+ [out] WAVEFORMATEX **ppDeviceFormat
+ );
+ HRESULT GetDevicePeriod(
+ [out] REFERENCE_TIME *phnsDefaultDevicePeriod,
+ [out] REFERENCE_TIME *phnsMinimumDevicePeriod
+ );
+ HRESULT Start(void);
+ HRESULT Stop(void);
+ HRESULT Reset(void);
+ HRESULT SetEventHandle([in] HANDLE eventHandle);
+ HRESULT GetService(
+ [in] REFIID riid,
+ [iid_is(riid),out] void **ppv
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid(f294acfc-3146-4483-a7bf-addca7c260e2),
+ object,
+]
+interface IAudioRenderClient : IUnknown
+{
+ HRESULT GetBuffer(
+ [in] UINT32 NumFramesRequested,
+ [out] BYTE **ppData
+ );
+ HRESULT ReleaseBuffer(
+ [in] UINT32 NumFramesWritten,
+ [in] DWORD dwFlags
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid(c8adbd64-e71e-48a0-a4de-185c395cd317),
+ object,
+]
+interface IAudioCaptureClient : IUnknown
+{
+ HRESULT GetBuffer(
+ [out] BYTE **ppData,
+ [out] UINT32 *pNumFramesToRead,
+ [out] DWORD *pdwFlags,
+ [unique,out] UINT64 *pu64DevicePosition,
+ [unique,out] UINT64 *pu64QPCPosition
+ );
+ HRESULT ReleaseBuffer(
+ [in] UINT32 NumFramesRead
+ );
+ HRESULT GetNextPacketSize(
+ [out] UINT32 *pNumFramesInNextPacket
+ );
+}
+
+cpp_quote("#define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x00000001")
+
+[
+ local,
+ pointer_default(unique),
+ uuid("cd63314f-3fba-4a1b-812c-ef96358728e7"),
+ object,
+]
+interface IAudioClock : IUnknown
+{
+ HRESULT GetFrequency(
+ [out] UINT64 *pu64Frequency
+ );
+ HRESULT GetPosition(
+ [out] UINT64 *pu64Position,
+ [out,unique] UINT64 *pu64QPCPosition
+ );
+ HRESULT GetCharacteristics(
+ [out] DWORD *pdwCharacteristics
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid("6f49ff73-6727-49ac-a008-d98cf5e70048"),
+ object,
+]
+interface IAudioClock2 : IUnknown
+{
+ HRESULT GetPosition(
+ [out] UINT64 *DevicePosition,
+ [out,unique] UINT64 *QPCPosition
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid("f6e4c0a0-46d9-4fb9-be21-57a3ef2b626c"),
+ object,
+]
+interface IAudioClockAdjustment : IUnknown
+{
+ HRESULT SetSampleRate(
+ [in] float flSampleRate
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid("87ce5498-68d6-44e5-9215-6da47ef883d8"),
+ object,
+]
+interface ISimpleAudioVolume : IUnknown
+{
+ HRESULT SetMasterVolume(
+ [in] float fLevel,
+ [unique,in] LPCGUID EventContext
+ );
+ HRESULT GetMasterVolume(
+ [out] float *pfLevel
+ );
+ HRESULT SetMute(
+ [in] const BOOL bMute,
+ [unique,in] LPCGUID EventContext
+ );
+ HRESULT GetMute(
+ [out] BOOL *pbMute
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid("93014887-242d-4068-8a15-cf5e93b90fe3"),
+ object,
+]
+interface IAudioStreamVolume : IUnknown
+{
+ HRESULT GetChannelCount(
+ [out] UINT32 *pdwCount
+ );
+ HRESULT SetChannelVolume(
+ [in] UINT32 dwIndex,
+ [in] const float fLevel
+ );
+ HRESULT GetChannelVolume(
+ [in] UINT32 dwIndex,
+ [out] float *pfLevel
+ );
+ HRESULT SetAllVolumes(
+ [in] UINT32 dwCount,
+ [size_is(dwCount),in] const float *pfVolumes
+ );
+ HRESULT GetAllVolumes(
+ [in] UINT32 dwCount,
+ [size_is(dwCount),out] float *pfVolumes
+ );
+}
+
+[
+ local,
+ pointer_default(unique),
+ uuid("1c158861-b533-4b30-b1cf-e853e51c59b8"),
+ object,
+]
+interface IChannelAudioVolume : IUnknown
+{
+ HRESULT GetChannelCount(
+ [out] UINT32 *pdwCount
+ );
+ HRESULT SetChannelVolume(
+ [in] UINT32 dwIndex,
+ [in] const float fLevel,
+ [unique,in] LPCGUID EventContext
+ );
+ HRESULT GetChannelVolume(
+ [in] UINT32 dwIndex,
+ [out] float *pfLevel
+ );
+ HRESULT SetAllVolumes(
+ [in] UINT32 dwCount,
+ [size_is(dwCount),in] const float *pfVolumes,
+ [unique,in] LPCGUID EventContext
+ );
+ HRESULT GetAllVolumes(
+ [in] UINT32 dwCount,
+ [size_is(dwCount),out] float *pfVolumes
+ );
+}
+
+cpp_quote("#define FACILIY_AUDCLNT 0x889")
+cpp_quote("#define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILIY_AUDCLNT,
n)")
+cpp_quote("#define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILIY_AUDCLNT,
n)")
+cpp_quote("#define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(1)")
+cpp_quote("#define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(2)")
+cpp_quote("#define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(3)")
+cpp_quote("#define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(4)")
+cpp_quote("#define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(5)")
+cpp_quote("#define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(6)")
+cpp_quote("#define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(7)")
+cpp_quote("#define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(8)")
+cpp_quote("#define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(9)")
+cpp_quote("#define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0x0a)")
+cpp_quote("#define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0x0b)")
+cpp_quote("#define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0x0c)")
+/* Not defined? cpp_quote("#define AUDCLNT_E_UNKNOWN_XXX1 AUDCLNT_ERR(0x0d)")
*/
+cpp_quote("#define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x0e)")
+cpp_quote("#define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0x0f)")
+cpp_quote("#define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x10)")
+cpp_quote("#define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x11)")
+cpp_quote("#define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x12)")
+cpp_quote("#define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x13)")
+cpp_quote("#define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x14)")
+cpp_quote("#define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x15)")
+cpp_quote("#define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x16)")
+cpp_quote("#define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x17)")
+cpp_quote("#define AUDCLNT_E_BUFFER_ERROR AUDCLNT_ERR(0x18)")
+cpp_quote("#define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x19)")
+/* Hex fail */
+cpp_quote("#define AUDCLNT_E_INVALID_DEVICE_PERIOD AUDCLNT_ERR(0x20)")
+cpp_quote("#define AUDCLNT_E_INVALID_STREAM_FLAG AUDCLNT_ERR(0x021)")
+cpp_quote("#define AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE AUDCLNT_ERR(0x022)")
+cpp_quote("#define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES AUDCLNT_ERR(0x023)")
+cpp_quote("#define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x024)")
+cpp_quote("#define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x025)")
+cpp_quote("#define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x026)")
+
+cpp_quote("#define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)")
+cpp_quote("#define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)")
+cpp_quote("#define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)")
Propchange: trunk/reactos/include/psdk/audioclient.idl
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/include/psdk/audiosessiontypes.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/audiosessiont…
==============================================================================
--- trunk/reactos/include/psdk/audiosessiontypes.h (added)
+++ trunk/reactos/include/psdk/audiosessiontypes.h [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -1,0 +1,48 @@
+
+/*
+ * Core Audio audio session types definitions
+ *
+ * Copyright 2009 Maarten Lankhorst
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+#ifndef __AUDIOSESSIONTYPES__
+#define __AUDIOSESSIONTYPES__
+
+typedef enum _AUDCLNT_SHAREMODE
+{
+ AUDCLNT_SHAREMODE_SHARED,
+ AUDCLNT_SHAREMODE_EXCLUSIVE,
+} AUDCLNT_SHAREMODE;
+
+#define AUDCLNT_STREAMFLAGS_CROSSPROCESS 0x00010000
+#define AUDCLNT_STREAMFLAGS_LOOPBACK 0x00020000
+#define AUDCLNT_STREAMFLAGS_EVENTCALLBACK 0x00040000
+#define AUDCLNT_STREAMFLAGS_NOPERSIST 0x00080000
+#define AUDCLNT_STREAMFLAGS_RATEADJUST 0x00100000
+#define AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED 0x10000000
+#define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE 0x20000000
+#define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED 0x40000000
+
+typedef enum _AudioSessionState
+{
+ AudioSessionStateInactive = 0,
+ AudioSessionStateActive,
+ AudioSessionStateExpired,
+} AudioSessionState;
+
+#endif
Propchange: trunk/reactos/include/psdk/audiosessiontypes.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/include/psdk/devpkey.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/devpkey.h?rev…
==============================================================================
--- trunk/reactos/include/psdk/devpkey.h (added)
+++ trunk/reactos/include/psdk/devpkey.h [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -1,0 +1,62 @@
+/*
+ * Copyright (C) 2010 Maarten Lankhorst for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <devpropdef.h>
+
+/* TODO: Not all DEVPROPKEYS have been defined here */
+
+DEFINE_DEVPROPKEY(DEVPKEY_NAME,
0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac, 10);
+
+DEFINE_DEVPROPKEY(DEVPKEY_Device_DeviceDesc,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 2);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_HardwareIds,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 3);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_CompatibleIds,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 4);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Service,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 6);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Class,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 9);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_ClassGuid,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 10);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Driver,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 11);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_ConfigFlags,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 12);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Manufacturer,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 13);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_FriendlyName,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 14);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_LocationInfo,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 15);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_PDOName,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 16);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Capabilities,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 17);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_UINumber,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 18);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_UpperFilters,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 19);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_LowerFilters,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 20);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_BusTypeGuid,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 21);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_LegacyBusType,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 22);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_BusNumber,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 23);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_EnumeratorName,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 24);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Security,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 25);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_SecuritySDS,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 26);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_DevType,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 27);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Exclusive,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 28);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Characteristics,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 29);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_Address,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 30);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_UINumberDescFormat,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 31);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_PowerData,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 32);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_RemovalPolicy,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 33);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_RemovalPolicyDefault,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 34);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_RemovalPolicyOverride,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 35);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_InstallState,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 36);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_LocationPaths,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 37);
+DEFINE_DEVPROPKEY(DEVPKEY_Device_BaseContainerId,
0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 38);
+
+DEFINE_DEVPROPKEY(DEVPKEY_DeviceInterface_FriendlyName,
0x026e516e,0x8b14,0x414b,0x83,0xcd,0x85,0x6d,0x6f,0xef,0x48,0x22, 2);
+DEFINE_DEVPROPKEY(DEVPKEY_DeviceInterface_Enabled,
0x026e516e,0x8b14,0x414b,0x83,0xcd,0x85,0x6d,0x6f,0xef,0x48,0x22, 3);
+DEFINE_DEVPROPKEY(DEVPKEY_DeviceInterface_ClassGuid,
0x026e516e,0x8b14,0x414b,0x83,0xcd,0x85,0x6d,0x6f,0xef,0x48,0x22, 4);
Propchange: trunk/reactos/include/psdk/devpkey.h
------------------------------------------------------------------------------
svn:eol-style = native
Added: trunk/reactos/include/psdk/mmdeviceapi.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mmdeviceapi.i…
==============================================================================
--- trunk/reactos/include/psdk/mmdeviceapi.idl (added)
+++ trunk/reactos/include/psdk/mmdeviceapi.idl [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -1,0 +1,250 @@
+/*
+ * Copyright (C) 2009 Maarten Lankhorst
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+import "propsys.idl";
+
+cpp_quote("#ifndef E_NOTFOUND")
+cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)")
+cpp_quote("#endif")
+cpp_quote("#ifndef E_UNSUPPORTED_TYPE")
+cpp_quote("#define E_UNSUPPORTED_TYPE
HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)")
+cpp_quote("#endif")
+
+
+cpp_quote("#define DEVICE_STATE_ACTIVE 0x1")
+cpp_quote("#define DEVICE_STATE_DISABLED 0x2")
+cpp_quote("#define DEVICE_STATE_NOTPRESENT 0x4")
+cpp_quote("#define DEVICE_STATE_UNPLUGGED 0x8")
+cpp_quote("#define DEVICE_STATEMASK_ALL 0xf")
+
+/* Generic PKEY_AudioEndPoint ID for grepping: {1da5d803-d492-4edd-8c23-e0c0ffee7f0e} */
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,5);")
+
+cpp_quote("#define ENDPOINT_SYSFX_ENABLED 0")
+cpp_quote("#define ENDPOINT_SYSFX_DISABLED 1")
+
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8);")
+
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3);")
+
+typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS
+{
+ DWORD cbDirectXAudioActivationParams;
+ GUID guidAudioSession;
+ DWORD dwAudioStreamFlags;
+} DIRECTX_AUDIO_ACTIVATION_PARAMS, *PDIRECTX_AUDIO_ACTIVATION_PARAMS;
+
+typedef enum _EDataFlow
+{
+ eRender,
+ eCapture,
+ eAll,
+ EDataFlow_enum_count
+} EDataFlow;
+
+typedef enum _ERole
+{
+ eConsole,
+ eMultimedia,
+ eCommunications,
+ ERole_enum_count
+} ERole;
+
+typedef enum _EndpointFormFactor
+{
+ RemoteNetworkDevice,
+ Speakers,
+ LineLevel,
+ Headphones,
+ Microphone,
+ Headset,
+ Handset,
+ UnknownDigitalPassthrough,
+ SPDIF,
+ DigitalAudioDisplayDevice,
+ UnknownFormFactor,
+ EndpointFormFactor_enum_count
+} EndpointFormFactor;
+
+cpp_quote("#define HDMI DigitalAudioDisplayDevice")
+
+[
+ object,
+ local,
+ uuid(7991eec9-7e89-4d85-8390-6c703cec60c0),
+ nonextensible,
+ pointer_default(unique)
+]
+interface IMMNotificationClient : IUnknown
+{
+ [id(1)] HRESULT OnDeviceStateChanged(
+ [in] LPCWSTR pwstrDeviceId,
+ [in] DWORD dwNewState
+ );
+ [id(2)] HRESULT OnDeviceAdded(
+ [in] LPCWSTR pwstrDeviceId
+ );
+ [id(3)] HRESULT OnDeviceRemoved(
+ [in] LPCWSTR pwstrDeviceId
+ );
+ [id(4)] HRESULT OnDefaultDeviceChanged(
+ [in] EDataFlow flow,
+ [in] ERole role,
+ [in] LPCWSTR pwstrDeviceId
+ );
+ [id(5)] HRESULT OnPropertyValueChanged(
+ [in] LPCWSTR pwstrDeviceId,
+ [in] const PROPERTYKEY key
+ );
+}
+
+[
+ object,
+ local,
+ uuid(d666063f-1587-4e43-81f1-b948e807363f),
+ nonextensible,
+ pointer_default(unique)
+]
+interface IMMDevice : IUnknown
+{
+ [id(1)] HRESULT Activate(
+ [in] REFIID iid,
+ [in] DWORD dwClsCtx,
+ [in,unique] PROPVARIANT *pActivationParams,
+ [out,iid_is(iid)] void **ppv
+ );
+ [id(2)] HRESULT OpenPropertyStore(
+ [in] DWORD stgmAccess,
+ [out] IPropertyStore **ppProperties
+ );
+ [id(3)] HRESULT GetId(
+ [out] LPWSTR *ppstrId
+ );
+ [id(4)] HRESULT GetState(
+ [out] DWORD *pdwState
+ );
+}
+
+[
+ object,
+ local,
+ uuid(0bd7a1be-7a1a-44db-8397-cc5392387b5e),
+ nonextensible,
+ pointer_default(unique)
+]
+interface IMMDeviceCollection : IUnknown
+{
+ [id(1)] HRESULT GetCount(
+ [out] UINT *pcDevices
+ );
+ [id(2)] HRESULT Item(
+ [in] UINT nDevice,
+ [out] IMMDevice **ppdevice
+ );
+}
+
+[
+ object,
+ local,
+ uuid(1be09788-6894-4089-8586-9a2a6c265ac5),
+ nonextensible,
+ pointer_default(unique)
+]
+interface IMMEndpoint : IUnknown
+{
+ [id(1)] HRESULT GetDataFlow(
+ [out] EDataFlow *pDataFlow
+ );
+}
+
+[
+ object,
+ local,
+ uuid(a95664d2-9614-4f35-a746-de8db63617e6),
+ nonextensible,
+ pointer_default(unique)
+]
+interface IMMDeviceEnumerator : IUnknown
+{
+ [id(1)] HRESULT EnumAudioEndpoints(
+ [in] EDataFlow dataFlow,
+ [in] DWORD dwStateMask,
+ [out] IMMDeviceCollection **ppDevices
+ );
+ [id(2)] HRESULT GetDefaultAudioEndpoint(
+ [in] EDataFlow dataFlow,
+ [in] ERole role,
+ [out] IMMDevice **ppEndpoint
+ );
+ [id(3)] HRESULT GetDevice(
+ [in] LPCWSTR pwstrId,
+ [out] IMMDevice **ppDevice
+ );
+ [id(4)] HRESULT RegisterEndpointNotificationCallback(
+ [in] IMMNotificationClient *pClient
+ );
+ [id(5)] HRESULT UnregisterEndpointNotificationCallback(
+ [in] IMMNotificationClient *pClient
+ );
+}
+
+[
+ object,
+ local,
+ uuid(3b0d0ea4-d0a9-4b0e-935b-09516746fac0),
+ nonextensible,
+ pointer_default(unique)
+]
+interface IMMDeviceActivator : IUnknown
+{
+ [id(1)] HRESULT Activate(
+ [in] REFIID iid,
+ [in] IMMDevice *pDevice,
+ [in] PROPVARIANT *pActivationParams,
+ [out,iid_is(iid)] void **ppv
+ );
+}
+
+typedef struct _AudioExtensionParams
+{
+ LPARAM AddPageParam;
+ IMMDevice *pEndPoint;
+ IMMDevice *pPnpInterface;
+ IMMDevice *pPnpDevnode;
+} AudioExtensionParams;
+
+[
+ uuid(2fdaafa3-7523-4f66-9957-9d5e7fe698f6),
+ version(1.0)
+]
+library MMDeviceAPILib
+{
+ [ uuid(bcde0395-e52f-467c-8e3d-c4579291692e) ] coclass MMDeviceEnumerator
+ {
+ [default] interface IMMDeviceEnumerator;
+ }
+}
Propchange: trunk/reactos/include/psdk/mmdeviceapi.idl
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/include/psdk/mmreg.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mmreg.h?rev=5…
==============================================================================
--- trunk/reactos/include/psdk/mmreg.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/mmreg.h [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -92,6 +92,7 @@
/* WAVE form wFormatTag IDs */
#define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
+#define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* Microsoft Corporation */
#define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
Added: trunk/reactos/include/psdk/propkey.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/propkey.h?rev…
==============================================================================
--- trunk/reactos/include/psdk/propkey.h (added)
+++ trunk/reactos/include/psdk/propkey.h [iso-8859-1] Sat Apr 13 23:28:46 2013
@@ -1,0 +1,46 @@
+/*
+ * Copyright (C) 2010 Maarten Lankhorst for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _INC_PROPKEY
+#define _INC_PROPKEY
+
+#include <propkeydef.h>
+
+DEFINE_PROPERTYKEY(PKEY_Audio_ChannelCount, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08,
0x00, 0x36, 0xb1, 0x1a, 0x03, 7);
+DEFINE_PROPERTYKEY(PKEY_Audio_Compression, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08,
0x00, 0x36, 0xb1, 0x1a, 0x03, 10);
+DEFINE_PROPERTYKEY(PKEY_Audio_Format, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08, 0x00,
0x36, 0xb1, 0x1a, 0x03, 2);
+DEFINE_PROPERTYKEY(PKEY_Audio_IsVariableBitRate, 0xe6822fee, 0x8c17, 0x4d62, 0x82, 0x3c,
0x8e, 0x9c, 0xfc, 0xbd, 0x1d, 0x5c, 100);
+DEFINE_PROPERTYKEY(PKEY_Audio_PeakValue, 0x2579e5d0, 0x1116, 0x4084, 0xbd, 0x9a, 0x9b,
0x4f, 0x7c, 0xb4, 0xdf, 0x5e, 100);
+DEFINE_PROPERTYKEY(PKEY_Audio_SampleRate, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08,
0x00, 0x36, 0xb1, 0x1a, 0x03, 5);
+DEFINE_PROPERTYKEY(PKEY_Audio_SampleSize, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08,
0x00, 0x36, 0xb1, 0x1a, 0x03, 6);
+DEFINE_PROPERTYKEY(PKEY_Audio_StreamName, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08,
0x00, 0x36, 0xb1, 0x1a, 0x03, 9);
+DEFINE_PROPERTYKEY(PKEY_Audio_StreamNumber, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08,
0x00, 0x36, 0xb1, 0x1a, 0x03, 8);
+
+DEFINE_PROPERTYKEY(PKEY_Title,
0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,2);
+
+DEFINE_PROPERTYKEY(PKEY_ItemName,
0x6b8da074,0x3b5c,0x43bc,0x88,0x6f,0x0a,0x2c,0xdc,0xe0,0x0b,0x6f,100);
+
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_ExcludeFromShowInNewInstall,
0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,8);
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_ID,
0x9f4c2855,0x9f79,0x4B39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,5);
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_IsDestListSeparator,
0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,6);
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_PreventPinning,
0x9f4c2855,0x9F79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,9);
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_RelaunchCommand,
0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,2);
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_RelaunchDisplayNameResource,
0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,4);
+DEFINE_PROPERTYKEY(PKEY_AppUserModel_RelaunchIconResource,
0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,3);
+
+#endif /*_INC_PROPKEY*/
Propchange: trunk/reactos/include/psdk/propkey.h
------------------------------------------------------------------------------
svn:eol-style = native