]> Repos - portaudio/commitdiff
provided ability not to depend on ksguid.lib when using WDMKS as it may not be provid...
authordmitrykos <dmitrykos@0f58301d-fd10-0410-b4af-bbb618454e57>
Tue, 16 Feb 2010 11:18:52 +0000 (11:18 +0000)
committerdmitrykos <dmitrykos@0f58301d-fd10-0410-b4af-bbb618454e57>
Tue, 16 Feb 2010 11:18:52 +0000 (11:18 +0000)
build/msvc/portaudio.def
build/msvc/portaudio.vcproj
src/os/win/pa_win_wdmks_utils.c

index 08929d65c0fa01ff8e990848321ded1dcaa66284..c57bdbf8e24a842eb4bbf2c1f7bc3639f4c9ba02 100644 (file)
@@ -40,4 +40,8 @@ PaAsio_ShowControlPanel             @51
 PaUtil_InitializeX86PlainConverters @52
 PaAsio_GetInputChannelName          @53
 PaAsio_GetOutputChannelName         @54
-PaUtil_SetDebugPrintFunction        @55
\ No newline at end of file
+PaUtil_SetDebugPrintFunction        @55
+PaWasapi_GetDeviceDefaultFormat     @56
+PaWasapi_GetDeviceRole              @57
+PaWasapi_ThreadPriorityBoost        @58
+PaWasapi_ThreadPriorityRevert       @59
index 759f934443c07de436e205ca67bb29fe4da9f727..664b0c512e2a6c436bb41561d24b330a0e5ed9e7 100644 (file)
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="Windows-1252"?>\r
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
-       Version="8.00"\r
+       Version="8,00"\r
        Name="portaudio"\r
        ProjectGUID="{0A18A071-125E-442F-AFF7-A3F68ABECF99}"\r
+       RootNamespace="portaudio"\r
        >\r
        <Platforms>\r
                <Platform\r
@@ -50,7 +51,9 @@
                                Name="VCCLCompilerTool"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
-                               AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"\r
+                               EnableIntrinsicFunctions="true"\r
+                               FavorSizeOrSpeed="1"\r
+                               AdditionalIncludeDirectories="..\..\src\common;..\..\include;.\;..\..\src\os\win"\r
                                PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO"\r
                                StringPooling="true"\r
                                RuntimeLibrary="2"\r
@@ -79,6 +82,7 @@
                                OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio_x86.dll"\r
                                LinkIncremental="1"\r
                                SuppressStartupBanner="true"\r
+                               AdditionalLibraryDirectories=""\r
                                ModuleDefinitionFile=".\portaudio.def"\r
                                ProgramDatabaseFile="$(PlatformName)\$(ConfigurationName)\portaudio_x86.pdb"\r
                                ImportLibrary="$(PlatformName)\$(ConfigurationName)\portaudio_x86.lib"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="2"\r
                                InlineFunctionExpansion="1"\r
-                               AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO"\r
+                               EnableIntrinsicFunctions="true"\r
+                               FavorSizeOrSpeed="1"\r
+                               AdditionalIncludeDirectories="..\..\src\common;..\..\include;.\;..\..\src\os\win"\r
+                               PreprocessorDefinitions="_WIN64;NDEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_WDMKS_NO_KSGUID_LIB"\r
                                StringPooling="true"\r
                                RuntimeLibrary="2"\r
                                EnableFunctionLevelLinking="true"\r
                                OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio_x64.dll"\r
                                LinkIncremental="1"\r
                                SuppressStartupBanner="true"\r
+                               AdditionalLibraryDirectories=""\r
                                ModuleDefinitionFile=".\portaudio.def"\r
                                ProgramDatabaseFile="$(PlatformName)\$(ConfigurationName)/portaudio_x64.pdb"\r
                                ImportLibrary="$(PlatformName)\$(ConfigurationName)/portaudio_x64.lib"\r
                        <Tool\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
-                               AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"\r
+                               AdditionalIncludeDirectories="..\..\src\common;..\..\include;.\;..\..\src\os\win"\r
                                PreprocessorDefinitions="WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                Name="VCCLCompilerTool"\r
                                Optimization="0"\r
                                AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO"\r
+                               PreprocessorDefinitions="_WIN64;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_WDMKS_NO_KSGUID_LIB"\r
                                MinimalRebuild="true"\r
                                BasicRuntimeChecks="3"\r
                                RuntimeLibrary="3"\r
                                                        PreprocessorDefinitions=""\r
                                                />\r
                                        </FileConfiguration>\r
-\r
                                        <FileConfiguration\r
                                                Name="Debug|x64"\r
                                                >\r
                                                        >\r
                                                        <FileConfiguration\r
                                                                Name="Release|Win32"\r
+                                                               ExcludedFromBuild="true"\r
                                                                >\r
                                                                <Tool\r
                                                                        Name="VCCLCompilerTool"\r
                                                        </FileConfiguration>\r
                                                        <FileConfiguration\r
                                                                Name="Release|x64"\r
+                                                               ExcludedFromBuild="true"\r
                                                                >\r
                                                                <Tool\r
                                                                        Name="VCCLCompilerTool"\r
                                                        </FileConfiguration>\r
                                                        <FileConfiguration\r
                                                                Name="Debug|Win32"\r
+                                                               ExcludedFromBuild="true"\r
                                                                >\r
                                                                <Tool\r
                                                                        Name="VCCLCompilerTool"\r
                                                        </FileConfiguration>\r
                                                        <FileConfiguration\r
                                                                Name="Debug|x64"\r
+                                                               ExcludedFromBuild="true"\r
                                                                >\r
                                                                <Tool\r
                                                                        Name="VCCLCompilerTool"\r
index 140c594dd3f632c1c17d06f7d10a791e80d328ae..37393e927df24799f400e76189cceb7f2283cbad 100644 (file)
 #include "pa_util.h"\r
 #include "pa_win_wdmks_utils.h"\r
 \r
+\r
+#ifndef PA_WDMKS_NO_KSGUID_LIB\r
+\r
 #if (defined(WIN32) && (defined(_MSC_VER) && (_MSC_VER >= 1200))) /* MSC version 6 and above */\r
 #pragma comment( lib, "ksguid.lib" )\r
 #endif\r
 \r
+#define pa_KSDATAFORMAT_TYPE_AUDIO            KSDATAFORMAT_TYPE_AUDIO\r
+#define pa_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT    KSDATAFORMAT_SUBTYPE_IEEE_FLOAT\r
+#define pa_KSDATAFORMAT_SUBTYPE_PCM           KSDATAFORMAT_SUBTYPE_PCM\r
+#define pa_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX  KSDATAFORMAT_SUBTYPE_WAVEFORMATEX\r
+#define pa_KSMEDIUMSETID_Standard             KSMEDIUMSETID_Standard\r
+#define pa_KSINTERFACESETID_Standard          KSINTERFACESETID_Standard\r
+#define pa_KSPROPSETID_Pin                    KSPROPSETID_Pin\r
+\r
+#else\r
+\r
+static const GUID pa_KSDATAFORMAT_TYPE_AUDIO            = { STATIC_KSDATAFORMAT_TYPE_AUDIO };\r
+static const GUID pa_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT    = { STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT };\r
+static const GUID pa_KSDATAFORMAT_SUBTYPE_PCM           = { STATIC_KSDATAFORMAT_SUBTYPE_PCM };\r
+static const GUID pa_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX  = { STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX };\r
+static const GUID pa_KSMEDIUMSETID_Standard             = { STATIC_KSMEDIUMSETID_Standard };\r
+static const GUID pa_KSINTERFACESETID_Standard          = { STATIC_KSINTERFACESETID_Standard };\r
+static const GUID pa_KSPROPSETID_Pin                    = { STATIC_KSPROPSETID_Pin };\r
+\r
+#endif\r
+\r
+\r
+#define pa_IS_VALID_WAVEFORMATEX_GUID(Guid)\\r
+    (!memcmp(((PUSHORT)&pa_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, ((PUSHORT)(Guid)) + 1, sizeof(GUID) - sizeof(USHORT)))\r
+\r
+\r
+\r
 static PaError WdmGetPinPropertySimple(\r
     HANDLE  handle,\r
     unsigned long pinId,\r
@@ -58,7 +87,7 @@ static PaError WdmGetPinPropertySimple(
 {\r
     DWORD bytesReturned;\r
     KSP_PIN ksPProp;\r
-    ksPProp.Property.Set = KSPROPSETID_Pin;\r
+    ksPProp.Property.Set = pa_KSPROPSETID_Pin;\r
     ksPProp.Property.Id = property;\r
     ksPProp.Property.Flags = KSPROPERTY_TYPE_GET;\r
     ksPProp.PinId = pinId;\r
@@ -88,7 +117,7 @@ static PaError WdmGetPinPropertyMulti(
 \r
     *ksMultipleItem = 0;\r
 \r
-    ksPProp.Property.Set = KSPROPSETID_Pin;\r
+    ksPProp.Property.Set = pa_KSPROPSETID_Pin;\r
     ksPProp.Property.Id = property;\r
     ksPProp.Property.Flags = KSPROPERTY_TYPE_GET;\r
     ksPProp.PinId = pinId;\r
@@ -188,7 +217,8 @@ static int KSFilterPinPropertyIdentifiersInclude(
 int PaWin_WDMKS_QueryFilterMaximumChannelCount( void *wcharDevicePath, int isInput )\r
 {\r
     HANDLE deviceHandle;\r
-    int pinCount, pinId, i;\r
+       ULONG i;\r
+    int pinCount, pinId;\r
     int result = 0;\r
     KSPIN_DATAFLOW requiredDataflowDirection = (isInput ? KSPIN_DATAFLOW_OUT : KSPIN_DATAFLOW_IN );\r
     \r
@@ -208,11 +238,11 @@ int PaWin_WDMKS_QueryFilterMaximumChannelCount( void *wcharDevicePath, int isInp
                 (( communication == KSPIN_COMMUNICATION_SINK) ||\r
                  ( communication == KSPIN_COMMUNICATION_BOTH)) \r
              && ( KSFilterPinPropertyIdentifiersInclude( deviceHandle, pinId, \r
-                    KSPROPERTY_PIN_INTERFACES, &KSINTERFACESETID_Standard, KSINTERFACE_STANDARD_STREAMING )\r
+                    KSPROPERTY_PIN_INTERFACES, &pa_KSINTERFACESETID_Standard, KSINTERFACE_STANDARD_STREAMING )\r
                 || KSFilterPinPropertyIdentifiersInclude( deviceHandle, pinId, \r
-                    KSPROPERTY_PIN_INTERFACES, &KSINTERFACESETID_Standard, KSINTERFACE_STANDARD_LOOPED_STREAMING ) )\r
+                    KSPROPERTY_PIN_INTERFACES, &pa_KSINTERFACESETID_Standard, KSINTERFACE_STANDARD_LOOPED_STREAMING ) )\r
              && KSFilterPinPropertyIdentifiersInclude( deviceHandle, pinId, \r
-                    KSPROPERTY_PIN_MEDIUMS, &KSMEDIUMSETID_Standard, KSMEDIUM_STANDARD_DEVIO ) )\r
+                    KSPROPERTY_PIN_MEDIUMS, &pa_KSMEDIUMSETID_Standard, KSMEDIUM_STANDARD_DEVIO ) )\r
          {\r
             KSMULTIPLE_ITEM* item = NULL;\r
             if( WdmGetPinPropertyMulti( deviceHandle, pinId, KSPROPERTY_PIN_DATARANGES, &item ) == paNoError )\r
@@ -221,10 +251,10 @@ int PaWin_WDMKS_QueryFilterMaximumChannelCount( void *wcharDevicePath, int isInp
 \r
                 for( i=0; i < item->Count; ++i ){\r
 \r
-                    if( IS_VALID_WAVEFORMATEX_GUID(&dataRange->SubFormat)\r
-                            || memcmp( (void*)&dataRange->SubFormat, (void*)&KSDATAFORMAT_SUBTYPE_PCM, sizeof(GUID) ) == 0\r
-                            || memcmp( (void*)&dataRange->SubFormat, (void*)&KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, sizeof(GUID) ) == 0\r
-                            || ( ( memcmp( (void*)&dataRange->MajorFormat, (void*)&KSDATAFORMAT_TYPE_AUDIO, sizeof(GUID) ) == 0 )\r
+                    if( pa_IS_VALID_WAVEFORMATEX_GUID(&dataRange->SubFormat)\r
+                            || memcmp( (void*)&dataRange->SubFormat, (void*)&pa_KSDATAFORMAT_SUBTYPE_PCM, sizeof(GUID) ) == 0\r
+                            || memcmp( (void*)&dataRange->SubFormat, (void*)&pa_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, sizeof(GUID) ) == 0\r
+                            || ( ( memcmp( (void*)&dataRange->MajorFormat, (void*)&pa_KSDATAFORMAT_TYPE_AUDIO, sizeof(GUID) ) == 0 )\r
                                 && ( memcmp( (void*)&dataRange->SubFormat, (void*)&KSDATAFORMAT_SUBTYPE_WILDCARD, sizeof(GUID) ) == 0 ) ) )\r
                     {\r
                         KSDATARANGE_AUDIO *dataRangeAudio = (KSDATARANGE_AUDIO*)dataRange;\r