summaryrefslogtreecommitdiff
path: root/audio/sysvad
diff options
context:
space:
mode:
authorkarlf <[email protected]>2016-08-11 13:28:13 -0700
committerkarlf <[email protected]>2016-08-11 13:28:13 -0700
commit96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch)
treead5f3ede5cbcd6b598677ce41bcf8318471bdd92 /audio/sysvad
parent687b274aa38fd05c8c26e3068932121876d7f745 (diff)
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'audio/sysvad')
-rw-r--r--audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj182
-rw-r--r--audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj.Filters59
-rw-r--r--audio/sysvad/EndpointsCommon/MiniportStreamAudioEngineNode.cpp73
-rw-r--r--audio/sysvad/EndpointsCommon/bthhfpspeakerwavtable.h69
-rw-r--r--audio/sysvad/EndpointsCommon/bthhfpspeakerwbwavtable.h119
-rw-r--r--audio/sysvad/EndpointsCommon/micarray1toptable.h12
-rw-r--r--audio/sysvad/EndpointsCommon/micarraytopo.cpp106
-rw-r--r--audio/sysvad/EndpointsCommon/micarraytopo.h5
-rw-r--r--audio/sysvad/EndpointsCommon/micarraywavtable.h20
-rw-r--r--audio/sysvad/EndpointsCommon/mintopo.cpp17
-rw-r--r--audio/sysvad/EndpointsCommon/mintopo.h7
-rw-r--r--audio/sysvad/EndpointsCommon/minwavert.cpp8
-rw-r--r--audio/sysvad/EndpointsCommon/minwavert.h4
-rw-r--r--audio/sysvad/EndpointsCommon/minwavertstream.cpp226
-rw-r--r--audio/sysvad/EndpointsCommon/minwavertstream.h11
-rw-r--r--audio/sysvad/EndpointsCommon/speakerhpwavtable.h121
-rw-r--r--audio/sysvad/EndpointsCommon/speakerwavtable.h122
-rw-r--r--audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj232
-rw-r--r--audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj.Filters39
-rw-r--r--audio/sysvad/Package/package.VcxProj100
-rw-r--r--audio/sysvad/Package/package.VcxProj.Filters29
-rw-r--r--audio/sysvad/PhoneAudioSample/Cellularwavtable.h2
-rw-r--r--audio/sysvad/PhoneAudioSample/FMWavTable.h2
-rw-r--r--audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj300
-rw-r--r--audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj.Filters73
-rw-r--r--audio/sysvad/PhoneAudioSample/handsetmicwavtable.h2
-rw-r--r--audio/sysvad/PhoneAudioSample/handsetspeakerwavtable.h121
-rw-r--r--audio/sysvad/PhoneAudioSample/michstopo.cpp1
-rw-r--r--audio/sysvad/PhoneAudioSample/michstoptable.h15
-rw-r--r--audio/sysvad/PhoneAudioSample/michswavtable.h2
-rw-r--r--audio/sysvad/PhoneAudioSample/minipairs.h73
-rw-r--r--audio/sysvad/PhoneAudioSample/phoneaudiosample.inf (renamed from audio/sysvad/phoneaudiosample.inf)bin44094 -> 45134 bytes
-rw-r--r--audio/sysvad/PhoneAudioSample/speakerhstopo.cpp1
-rw-r--r--audio/sysvad/PhoneAudioSample/speakerhstoptable.h15
-rw-r--r--audio/sysvad/PhoneAudioSample/speakerhswavtable.h121
-rw-r--r--audio/sysvad/README.md91
-rw-r--r--audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj242
-rw-r--r--audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj.Filters45
-rw-r--r--audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj275
-rw-r--r--audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj.Filters51
-rw-r--r--audio/sysvad/SwapAPO/PropPageExtensions/stdafxsrc.cpp1
-rw-r--r--audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj295
-rw-r--r--audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj.Filters58
-rw-r--r--audio/sysvad/TabletAudioSample/hdmiwavtable.h71
-rw-r--r--audio/sysvad/TabletAudioSample/micarray3wavtable.h12
-rw-r--r--audio/sysvad/TabletAudioSample/micinwavtable.h2
-rw-r--r--audio/sysvad/TabletAudioSample/minipairs.h20
-rw-r--r--audio/sysvad/TabletAudioSample/spdifwavtable.h71
-rw-r--r--audio/sysvad/TabletAudioSample/tabletaudiosample.inf (renamed from audio/sysvad/tabletaudiosample.inf)bin55962 -> 58098 bytes
-rw-r--r--audio/sysvad/ToneGenerator.cpp8
-rw-r--r--audio/sysvad/adapter.cpp85
-rw-r--r--audio/sysvad/common.cpp70
-rw-r--r--audio/sysvad/common.h19
-rw-r--r--audio/sysvad/savedata.cpp2
-rw-r--r--audio/sysvad/sources.inc34
-rw-r--r--audio/sysvad/sysvad.sln121
56 files changed, 756 insertions, 3106 deletions
diff --git a/audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj b/audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj
deleted file mode 100644
index aef0e973..00000000
--- a/audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj
+++ /dev/null
@@ -1,182 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{E3BA10BE-08FF-4244-86C6-C788072CEA25}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{4DA68694-1C5F-491B-9272-A8223477E4B7}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>StaticLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>StaticLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>StaticLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>StaticLibrary</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>EndpointsCommon</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>EndpointsCommon</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>EndpointsCommon</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>EndpointsCommon</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="bthhfpmictopo.cpp" />
- <ClCompile Include="bthhfpminwavert.cpp" />
- <ClCompile Include="bthhfpspeakertopo.cpp" />
- <ClCompile Include="bthhfptopo.cpp" />
- <ClCompile Include="micarraytopo.cpp" />
- <ClCompile Include="MiniportAudioEngineNode.cpp" />
- <ClCompile Include="MiniportStreamAudioEngineNode.cpp" />
- <ClCompile Include="mintopo.cpp" />
- <ClCompile Include="minwavert.cpp" />
- <ClCompile Include="minwavertstream.cpp" />
- <ClCompile Include="speakerhptopo.cpp" />
- <ClCompile Include="speakertopo.cpp" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj.Filters b/audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj.Filters
deleted file mode 100644
index 167f0468..00000000
--- a/audio/sysvad/EndpointsCommon/EndpointsCommon.vcxproj.Filters
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{44370F68-49C1-4647-BD26-31F7EBE942A3}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{AEA2BA25-EBF9-454D-BC73-91D1CC36FB6F}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{95FAF38F-0673-42EF-A3C6-35F98AE2E188}</UniqueIdentifier>
- </Filter>
- <Filter Include="Driver Files">
- <Extensions>inf;inv;inx;mof;mc;</Extensions>
- <UniqueIdentifier>{4D0AE1D8-6C62-4B48-B101-690D5E955972}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="bthhfpmictopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="bthhfpminwavert.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="bthhfpspeakertopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="bthhfptopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="micarraytopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="MiniportAudioEngineNode.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="MiniportStreamAudioEngineNode.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="mintopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="minwavert.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="minwavertstream.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="speakerhptopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="speakertopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/EndpointsCommon/MiniportStreamAudioEngineNode.cpp b/audio/sysvad/EndpointsCommon/MiniportStreamAudioEngineNode.cpp
index 3c775d01..deba14f2 100644
--- a/audio/sysvad/EndpointsCommon/MiniportStreamAudioEngineNode.cpp
+++ b/audio/sysvad/EndpointsCommon/MiniportStreamAudioEngineNode.cpp
@@ -457,7 +457,7 @@ NTSTATUS CMiniportWaveRTStream::GetStreamLinearBufferPosition(_Out_ ULONGLONG *_
ASSERT(_pullLinearBufferPosition);
DPF_ENTER(("[CMiniportWaveRTStream::GetStreamLinearBufferPosition]"));
- ntStatus = GetLinearBufferPosition(_pullLinearBufferPosition, NULL);
+ ntStatus = GetPositions(_pullLinearBufferPosition, NULL, NULL);
return ntStatus;
}
@@ -721,23 +721,22 @@ NTSTATUS CMiniportWaveRTStream::SetChannelMute(_In_ UINT32 _uiChannel, _In_ BO
PAGED_CODE ();
DPF_ENTER(("[CMiniportWaveRTStream::SetChannelMute]"));
- m_plVolumeLevel[_uiChannel] = _bMute;
+ m_pbMuted[_uiChannel] = _bMute;
return STATUS_SUCCESS;
}
//presentation
-#pragma code_seg("PAGE")
+#pragma code_seg()
//
// UINT64 u64PositionInBlocks; // The block offset from the start of the stream to the current post-decoded uncompressed
// // position in the stream, where a block is the group of channels in the same sample; for a PCM stream,
-// // a block is same as a frame. For compressed formats, a block is a single sample within a frame
+// // a block is same as a frame. For compressed formats, a block is a single sample within a frame
// // (eg. each MP3 frame has 1152 samples or 1152 blocks)
// UINT64 u64QPCPosition; // The value of the performance counter at the time that the audio endpoint device read the device
// // position (*pu64Position) in response to the KSAUDIO_PRESENTATION_POSITION call.
NTSTATUS CMiniportWaveRTStream::GetPresentationPosition(_Out_ KSAUDIO_PRESENTATION_POSITION *_pPresentationPosition)
{
- PAGED_CODE ();
ASSERT (_pPresentationPosition);
LARGE_INTEGER timeStamp;
PADAPTERCOMMON pAdapterComm = m_pMiniport->GetAdapterCommObj();
@@ -745,19 +744,18 @@ NTSTATUS CMiniportWaveRTStream::GetPresentationPosition(_Out_ KSAUDIO_PRESENTAT
DPF_ENTER(("[CMiniportWaveRTStream::GetPresentationPosition]"));
ULONGLONG ullLinearPosition = {0};
+ ULONGLONG ullPresentationPosition = {0};
NTSTATUS status = STATUS_SUCCESS;
- status = GetLinearBufferPosition(&ullLinearPosition, &timeStamp);
+ status = GetPositions(&ullLinearPosition, &ullPresentationPosition, &timeStamp);
if (!NT_SUCCESS(status))
{
return status;
}
- _pPresentationPosition->u64PositionInBlocks = ullLinearPosition * m_pWfExt->Format.nSamplesPerSec / m_pWfExt->Format.nAvgBytesPerSec;
-
+ _pPresentationPosition->u64PositionInBlocks = ullPresentationPosition * m_pWfExt->Format.nSamplesPerSec / m_pWfExt->Format.nAvgBytesPerSec;
_pPresentationPosition->u64QPCPosition = (UINT64)timeStamp.QuadPart;
-
//Event type: eMINIPORT_GET_PRESENTATION_POSITION
//Parameter 1: Current linear buffer position
//Parameter 2: the previous WaveRtBufferWritePosition that the drive received
@@ -771,9 +769,10 @@ NTSTATUS CMiniportWaveRTStream::GetPresentationPosition(_Out_ KSAUDIO_PRESENTAT
return STATUS_SUCCESS;
}
+
+#pragma code_seg()
NTSTATUS CMiniportWaveRTStream::SetCurrentWritePosition(_In_ ULONG _ulCurrentWritePosition)
{
- PAGED_CODE ();
DPF_ENTER(("[CMiniportWaveRTStream::SetCurrentWritePosition]"));
NTSTATUS ntStatus;
@@ -794,15 +793,19 @@ NTSTATUS CMiniportWaveRTStream::SetCurrentWritePosition(_In_ ULONG _ulCurrentWr
ntStatus = STATUS_INVALID_DEVICE_REQUEST;
goto Done;
}
-
+
+ KIRQL oldIrql;
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
ntStatus = SetCurrentWritePositionInternal(_ulCurrentWritePosition);
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
Done:
return ntStatus;
}
+
+#pragma code_seg()
NTSTATUS CMiniportWaveRTStream::SetCurrentWritePositionInternal(_In_ ULONG _ulCurrentWritePosition)
{
- PAGED_CODE ();
DPF_ENTER(("[CMiniportWaveRTStream::SetCurrentWritePositionInternal]"));
if (_ulCurrentWritePosition > m_ulDmaBufferSize)
@@ -811,7 +814,7 @@ NTSTATUS CMiniportWaveRTStream::SetCurrentWritePositionInternal(_In_ ULONG _ulC
}
PADAPTERCOMMON pAdapterComm = m_pMiniport->GetAdapterCommObj();
-
+
//Event type: eMINIPORT_SET_WAVERT_BUFFER_WRITE_POSITION
//Parameter 1: Current linear buffer position
//Parameter 2: the previous WaveRtBufferWritePosition that the drive received
@@ -846,20 +849,20 @@ NTSTATUS CMiniportWaveRTStream::SetCurrentWritePositionInternal(_In_ ULONG _ulC
m_ulCurrentWritePosition = _ulCurrentWritePosition;
InterlockedExchange(&m_IsCurrentWritePositionUpdated, 1);
-
+
return STATUS_SUCCESS;
}
-//linear position
-#pragma code_seg("PAGE")
-NTSTATUS CMiniportWaveRTStream::GetLinearBufferPosition(_Out_ ULONGLONG *_pullLinearBufferPosition, LARGE_INTEGER *_pliQPCTime)
+
+//linear and presentation positions
+#pragma code_seg()
+NTSTATUS CMiniportWaveRTStream::GetPositions(_Out_ ULONGLONG *_pullLinearBufferPosition, _Out_ ULONGLONG *_pullPresentationPosition, LARGE_INTEGER *_pliQPCTime)
{
- PAGED_CODE ();
ASSERT (_pullLinearBufferPosition);
- DPF_ENTER(("[CMiniportWaveRTStream::GetLinearBufferPosition]"));
+ DPF_ENTER(("[CMiniportWaveRTStream::GetPositions]"));
NTSTATUS ntStatus;
LARGE_INTEGER ilQPC;
-
+ KIRQL oldIrql;
#ifdef SYSVAD_BTH_BYPASS
if (m_ScoOpen)
{
@@ -875,16 +878,25 @@ NTSTATUS CMiniportWaveRTStream::GetLinearBufferPosition(_Out_ ULONGLONG *_pullL
//
// Get the current time and update position.
//
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
ilQPC = KeQueryPerformanceCounter(NULL);
if (m_KsState == KSSTATE_RUN)
{
UpdatePosition(ilQPC);
}
+ if (_pullLinearBufferPosition)
+ {
+ *_pullLinearBufferPosition = m_ullLinearPosition;
+ }
+ if (_pullPresentationPosition)
+ {
+ *_pullPresentationPosition = m_ullPresentationPosition;
+ }
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
if (_pliQPCTime)
{
*_pliQPCTime = ilQPC;
}
- *_pullLinearBufferPosition = m_ullLinearPosition;
ntStatus = STATUS_SUCCESS;
@@ -931,7 +943,7 @@ NTSTATUS CMiniportWaveRTStream::SetLoopbackProtection(_In_ CONSTRICTOR_OPTION pr
return STATUS_SUCCESS;
}
-#pragma code_seg("PAGE")
+#pragma code_seg()
//----------------------------------------------------------------------------------
// Description:
// Set current write position for the very last buffer in a stream
@@ -960,12 +972,25 @@ NTSTATUS CMiniportWaveRTStream::SetLoopbackProtection(_In_ CONSTRICTOR_OPTION pr
NTSTATUS CMiniportWaveRTStream::SetStreamCurrentWritePositionForLastBuffer(_In_ ULONG _ulWritePosition)
{
- PAGED_CODE ();
DPF_ENTER(("[CMiniportWaveRT::SetStreamCurrentWritePositionForLastBuffer]"));
+ NTSTATUS ntStatus;
+ KIRQL oldIrql;
+
+ ASSERT(m_bEoSReceived == FALSE);
+
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
- return SetCurrentWritePositionInternal(_ulWritePosition);
// Miniport driver needs to prepare to signal buffer completion event
// when it's done with reading the last valid byte - an _ulWritePosition offset from the beginning WaveRT buffer
// Note: _ulWritePosition will be smaller than buffer size in most of the cases
+ ntStatus = SetCurrentWritePositionInternal(_ulWritePosition);
+ if (NT_SUCCESS(ntStatus))
+ {
+ m_bEoSReceived = TRUE;
+ }
+
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
+
+ return ntStatus;
}
diff --git a/audio/sysvad/EndpointsCommon/bthhfpspeakerwavtable.h b/audio/sysvad/EndpointsCommon/bthhfpspeakerwavtable.h
index bab3d38a..68f23205 100644
--- a/audio/sysvad/EndpointsCommon/bthhfpspeakerwavtable.h
+++ b/audio/sysvad/EndpointsCommon/bthhfpspeakerwavtable.h
@@ -36,11 +36,11 @@ NTSTATUS PropertyHandler_BthHfpWaveFilter(_In_ PPCPROPERTY_REQUEST PropertyReque
#define BTHHFPSPEAKER_OFFLOAD_MIN_SAMPLE_RATE 8000 // Min Sample Rate
#define BTHHFPSPEAKER_OFFLOAD_MAX_SAMPLE_RATE 8000 // Max Sample Rate
-#define BTHHFPSPEAKER_LOOPBACK_MAX_CHANNELS 1 // Max Channels.
-#define BTHHFPSPEAKER_LOOPBACK_MIN_BITS_PER_SAMPLE 8 // Min Bits Per Sample
-#define BTHHFPSPEAKER_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define BTHHFPSPEAKER_LOOPBACK_MIN_SAMPLE_RATE 8000 // Min Sample Rate
-#define BTHHFPSPEAKER_LOOPBACK_MAX_SAMPLE_RATE 8000 // Max Sample Rate
+#define BTHHFPSPEAKER_LOOPBACK_MAX_CHANNELS BTHHFPSPEAKER_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define BTHHFPSPEAKER_LOOPBACK_MIN_BITS_PER_SAMPLE BTHHFPSPEAKER_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define BTHHFPSPEAKER_LOOPBACK_MAX_BITS_PER_SAMPLE BTHHFPSPEAKER_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define BTHHFPSPEAKER_LOOPBACK_MIN_SAMPLE_RATE BTHHFPSPEAKER_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define BTHHFPSPEAKER_LOOPBACK_MAX_SAMPLE_RATE BTHHFPSPEAKER_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define BTHHFPSPEAKER_DOLBY_DIGITAL_MAX_CHANNELS 1 // Max Channels.
#define BTHHFPSPEAKER_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 8 // Min Bits Per Sample
@@ -215,61 +215,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE BthHfpSpeakerOffloadPinSupportedDeviceFormats[
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE BthHfpSpeakerLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 1,
- 8000,
- 8000,
- 1,
- 8,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 8,
- KSAUDIO_SPEAKER_MONO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 1,
- 8000,
- 16000,
- 2,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_MONO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -314,8 +259,8 @@ PIN_DEVICE_FORMATS_AND_MODES BthHfpSpeakerPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- BthHfpSpeakerLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(BthHfpSpeakerLoopbackPinSupportedDeviceFormats),
+ BthHfpSpeakerHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(BthHfpSpeakerHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/EndpointsCommon/bthhfpspeakerwbwavtable.h b/audio/sysvad/EndpointsCommon/bthhfpspeakerwbwavtable.h
index 1c491022..acff7c43 100644
--- a/audio/sysvad/EndpointsCommon/bthhfpspeakerwbwavtable.h
+++ b/audio/sysvad/EndpointsCommon/bthhfpspeakerwbwavtable.h
@@ -37,11 +37,11 @@ NTSTATUS PropertyHandler_BthHfpWaveFilter(_In_ PPCPROPERTY_REQUEST PropertyReque
#define BTHHFPSPEAKERWB_OFFLOAD_MIN_SAMPLE_RATE 8000 // Min Sample Rate
#define BTHHFPSPEAKERWB_OFFLOAD_MAX_SAMPLE_RATE 16000 // Max Sample Rate
-#define BTHHFPSPEAKERWB_LOOPBACK_MAX_CHANNELS 1 // Max Channels.
-#define BTHHFPSPEAKERWB_LOOPBACK_MIN_BITS_PER_SAMPLE 8 // Min Bits Per Sample
-#define BTHHFPSPEAKERWB_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define BTHHFPSPEAKERWB_LOOPBACK_MIN_SAMPLE_RATE 8000 // Min Sample Rate
-#define BTHHFPSPEAKERWB_LOOPBACK_MAX_SAMPLE_RATE 16000 // Max Sample Rate
+#define BTHHFPSPEAKERWB_LOOPBACK_MAX_CHANNELS BTHHFPSPEAKERWB_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define BTHHFPSPEAKERWB_LOOPBACK_MIN_BITS_PER_SAMPLE BTHHFPSPEAKERWB_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define BTHHFPSPEAKERWB_LOOPBACK_MAX_BITS_PER_SAMPLE BTHHFPSPEAKERWB_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define BTHHFPSPEAKERWB_LOOPBACK_MIN_SAMPLE_RATE BTHHFPSPEAKERWB_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define BTHHFPSPEAKERWB_LOOPBACK_MAX_SAMPLE_RATE BTHHFPSPEAKERWB_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define BTHHFPSPEAKERWB_DOLBY_DIGITAL_MAX_CHANNELS 1 // Max Channels.
#define BTHHFPSPEAKERWB_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 8 // Min Bits Per Sample
@@ -366,111 +366,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE BthHfpSpeakerWBOffloadPinSupportedDeviceFormat
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE BthHfpSpeakerWBLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 1,
- 8000,
- 8000,
- 1,
- 8,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 8,
- KSAUDIO_SPEAKER_MONO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 1,
- 8000,
- 16000,
- 2,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_MONO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 2
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 1,
- 16000,
- 16000,
- 1,
- 8,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 8,
- KSAUDIO_SPEAKER_MONO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 3
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 1,
- 16000,
- 32000,
- 2,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_MONO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -515,8 +410,8 @@ PIN_DEVICE_FORMATS_AND_MODES BthHfpSpeakerWBPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- BthHfpSpeakerWBLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(BthHfpSpeakerWBLoopbackPinSupportedDeviceFormats),
+ BthHfpSpeakerWBHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(BthHfpSpeakerWBHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/EndpointsCommon/micarray1toptable.h b/audio/sysvad/EndpointsCommon/micarray1toptable.h
index 26148eff..ee73c854 100644
--- a/audio/sysvad/EndpointsCommon/micarray1toptable.h
+++ b/audio/sysvad/EndpointsCommon/micarray1toptable.h
@@ -201,6 +201,18 @@ PCPROPERTY_ITEM MicArray1PropertiesTopoFilter[] =
KSPROPERTY_AUDIO_MIC_ARRAY_GEOMETRY,
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_MicArrayTopoFilter
+ },
+ {
+ &KSPROPSETID_Audio,
+ KSPROPERTY_AUDIO_MIC_SENSITIVITY,
+ KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
+ PropertyHandler_MicArrayTopoFilter
+ },
+ {
+ &KSPROPSETID_Audio,
+ KSPROPERTY_AUDIO_MIC_SNR,
+ KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
+ PropertyHandler_MicArrayTopoFilter
}
};
diff --git a/audio/sysvad/EndpointsCommon/micarraytopo.cpp b/audio/sysvad/EndpointsCommon/micarraytopo.cpp
index 236d03ea..3316ee84 100644
--- a/audio/sysvad/EndpointsCommon/micarraytopo.cpp
+++ b/audio/sysvad/EndpointsCommon/micarraytopo.cpp
@@ -19,6 +19,14 @@ Abstract:
#include "micarraytopo.h"
#include "micarray1toptable.h"
+constexpr float MICARRAY_SENSITIVITY = -46.5f;
+constexpr float MICARRAY_SNR = 66.0f;
+
+constexpr inline LONG FloatToFixedPoint16_16(float fl)
+{
+ return (static_cast<LONG>((fl)* (65536.0f)));
+}
+
#pragma code_seg("PAGE")
//=============================================================================
@@ -498,6 +506,96 @@ Return Value:
//=============================================================================
NTSTATUS
+CMicArrayMiniportTopology::PropertyHandlerMicProperties
+(
+ _In_ PPCPROPERTY_REQUEST PropertyRequest
+)
+/*++
+
+Routine Description:
+
+Handles ( KSPROPSETID_Audio, KSPROPERTY_AUDIO_MIC_SENSITIVITY )
+Handles ( KSPROPSETID_Audio, KSPROPERTY_AUDIO_MIC_SNR )
+
+Arguments:
+
+PropertyRequest -
+
+Return Value:
+
+NT status code.
+
+--*/
+{
+ PAGED_CODE();
+
+ ASSERT(PropertyRequest);
+
+ DPF_ENTER(("[PropertyHandlerMicProperties]"));
+
+ NTSTATUS ntStatus = STATUS_INVALID_DEVICE_REQUEST;
+ ULONG nPinId = (ULONG)-1;
+
+ if (PropertyRequest->InstanceSize >= sizeof(ULONG))
+ {
+ nPinId = *(PULONG(PropertyRequest->Instance));
+
+ if (nPinId == KSPIN_TOPO_MIC_ELEMENTS)
+ {
+ if (PropertyRequest->Verb & KSPROPERTY_TYPE_BASICSUPPORT)
+ {
+ ntStatus =
+ PropertyHandler_BasicSupport
+ (
+ PropertyRequest,
+ KSPROPERTY_TYPE_BASICSUPPORT | KSPROPERTY_TYPE_GET,
+ VT_ILLEGAL
+ );
+ }
+ else
+ {
+ ntStatus =
+ ValidatePropertyParams
+ (
+ PropertyRequest,
+ sizeof(LONG),
+ 0
+ );
+
+ if (NT_SUCCESS(ntStatus))
+ {
+ if (PropertyRequest->Verb & KSPROPERTY_TYPE_GET)
+ {
+ if (PropertyRequest->PropertyItem->Id == KSPROPERTY_AUDIO_MIC_SENSITIVITY)
+ {
+ LONG* micSensitivity = (LONG*)PropertyRequest->Value;
+ // Return microphone sensitivity information.
+ *micSensitivity = FloatToFixedPoint16_16(MICARRAY_SENSITIVITY); // convert float dBFS to fixed point arithmetic
+ PropertyRequest->ValueSize = sizeof(LONG);
+ ntStatus = STATUS_SUCCESS;
+ }
+ else if (PropertyRequest->PropertyItem->Id == KSPROPERTY_AUDIO_MIC_SNR)
+ {
+ LONG* micSNR = (LONG*)PropertyRequest->Value;
+ // Return microphone SNR information.
+ *micSNR = FloatToFixedPoint16_16(MICARRAY_SNR); // convert float dB to fixed point arithmetic
+ ntStatus = STATUS_SUCCESS;
+ }
+ }
+ else
+ {
+ ntStatus = STATUS_INVALID_DEVICE_REQUEST;
+ }
+ }
+ }
+ }
+ }
+
+ return ntStatus;
+}
+
+//=============================================================================
+NTSTATUS
CMicArrayMiniportTopology::PropertyHandlerJackDescription
(
_In_ PPCPROPERTY_REQUEST PropertyRequest
@@ -731,6 +829,14 @@ Return Value:
{
ntStatus = pMiniport->PropertyHandlerMicArrayGeometry(PropertyRequest);
}
+ else if (PropertyRequest->PropertyItem->Id == KSPROPERTY_AUDIO_MIC_SENSITIVITY)
+ {
+ ntStatus = pMiniport->PropertyHandlerMicProperties(PropertyRequest);
+ }
+ else if (PropertyRequest->PropertyItem->Id == KSPROPERTY_AUDIO_MIC_SNR)
+ {
+ ntStatus = pMiniport->PropertyHandlerMicProperties(PropertyRequest);
+ }
}
else if (IsEqualGUIDAligned(*PropertyRequest->PropertyItem->Set, KSPROPSETID_Jack))
{
diff --git a/audio/sysvad/EndpointsCommon/micarraytopo.h b/audio/sysvad/EndpointsCommon/micarraytopo.h
index 8076a359..41f9a792 100644
--- a/audio/sysvad/EndpointsCommon/micarraytopo.h
+++ b/audio/sysvad/EndpointsCommon/micarraytopo.h
@@ -58,6 +58,11 @@ class CMicArrayMiniportTopology :
_In_ PPCPROPERTY_REQUEST PropertyRequest
);
+ NTSTATUS PropertyHandlerMicProperties
+ (
+ _In_ PPCPROPERTY_REQUEST PropertyRequest
+ );
+
NTSTATUS PropertyHandlerJackDescription
(
_In_ PPCPROPERTY_REQUEST PropertyRequest
diff --git a/audio/sysvad/EndpointsCommon/micarraywavtable.h b/audio/sysvad/EndpointsCommon/micarraywavtable.h
index fb553d67..3b6c2df0 100644
--- a/audio/sysvad/EndpointsCommon/micarraywavtable.h
+++ b/audio/sysvad/EndpointsCommon/micarraywavtable.h
@@ -30,7 +30,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define MICARRAY_MAX_INPUT_STREAMS 2 // Raw + Default streams
+#define MICARRAY_MAX_INPUT_STREAMS 4
//=============================================================================
static
@@ -538,11 +538,29 @@ KSDATARANGE_AUDIO MicArrayPinDataRangesProcessedStream[] =
},
};
+// if MicArrayPinDataRangesProcessedStream is changed, we MUST update MicArrayPinDataRangePointersStream too!
+C_ASSERT(SIZEOF_ARRAY(MicArrayPinDataRangesProcessedStream) == 8);
+
static
PKSDATARANGE MicArrayPinDataRangePointersStream[] =
{
+ // All supported device formats should be listed in the DataRange.
PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[0]),
PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[1]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[2]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[3]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[4]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[5]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[6]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArrayPinDataRangesProcessedStream[7]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
PKSDATARANGE(&MicArrayPinDataRangesRawStream[0]),
PKSDATARANGE(&PinDataRangeAttributeList),
};
diff --git a/audio/sysvad/EndpointsCommon/mintopo.cpp b/audio/sysvad/EndpointsCommon/mintopo.cpp
index 47a89cac..42e61868 100644
--- a/audio/sysvad/EndpointsCommon/mintopo.cpp
+++ b/audio/sysvad/EndpointsCommon/mintopo.cpp
@@ -134,6 +134,8 @@ Return Value:
SAFE_RELEASE(m_BthHfpDevice); // IBthHfpDeviceCommon
}
#endif // SYSVAD_BTH_BYPASS
+
+
} // ~CMiniportTopology
//=============================================================================
@@ -729,3 +731,18 @@ Return Value:
#pragma code_seg()
+//=============================================================================
+NTSTATUS CMiniportTopology_EventHandler_JackState
+(
+ _In_ PPCEVENT_REQUEST EventRequest
+)
+{
+ CMiniportTopology* miniport = reinterpret_cast<CMiniportTopology*>(EventRequest->MajorTarget);
+ if (EventRequest->Verb == PCEVENT_VERB_ADD)
+ {
+ miniport->AddEventToEventList(EventRequest->EventEntry);
+ }
+ return STATUS_SUCCESS;
+}
+
+
diff --git a/audio/sysvad/EndpointsCommon/mintopo.h b/audio/sysvad/EndpointsCommon/mintopo.h
index e232e1d7..e73cdd04 100644
--- a/audio/sysvad/EndpointsCommon/mintopo.h
+++ b/audio/sysvad/EndpointsCommon/mintopo.h
@@ -137,9 +137,16 @@ public:
_In_opt_ PVOID Context
);
#endif // SYSVAD_BTH_BYPASS
+
+ PVOID GetDeviceContext() { return m_DeviceContext; }
};
typedef CMiniportTopology *PCMiniportTopology;
+NTSTATUS CMiniportTopology_EventHandler_JackState
+(
+ _In_ PPCEVENT_REQUEST EventRequest
+);
+
#endif // _SYSVAD_MINTOPO_H_
diff --git a/audio/sysvad/EndpointsCommon/minwavert.cpp b/audio/sysvad/EndpointsCommon/minwavert.cpp
index 843706b1..7d021767 100644
--- a/audio/sysvad/EndpointsCommon/minwavert.cpp
+++ b/audio/sysvad/EndpointsCommon/minwavert.cpp
@@ -185,6 +185,7 @@ Return Value:
SAFE_RELEASE(m_BthHfpDevice);
}
#endif // SYSVAD_BTH_BYPASS
+
} // ~CMiniportWaveRT
//=============================================================================
@@ -1293,6 +1294,7 @@ CMiniportWaveRT::PropertyHandlerProposedFormat
return ntStatus;
} // PropertyHandlerProposedFormat
+
//=============================================================================
#pragma code_seg("PAGE")
NTSTATUS
@@ -1460,9 +1462,6 @@ CMiniportWaveRT::PropertyHandlerProposedFormat2
return STATUS_SUCCESS;
} // PropertyHandlerProposedFormat
-
-
-
//=============================================================================
#pragma code_seg("PAGE")
NTSTATUS
@@ -1483,7 +1482,7 @@ CMiniportWaveRT::PropertyHandlerEffectListRequest
// This specific APO->driver communication example is mainly added to show to this communication is done.
// It skips the pin id validation and returns pin specific answers to the caller, which a real miniport
- // audio driver probably needs to tate care of.
+ // audio driver probably needs to take care of.
// Handle KSPROPERTY_TYPE_BASICSUPPORT query
if (PropertyRequest->Verb & KSPROPERTY_TYPE_BASICSUPPORT)
@@ -1535,6 +1534,7 @@ CMiniportWaveRT::PropertyHandlerEffectListRequest
return STATUS_INVALID_DEVICE_REQUEST;
} // PropertyHandlerEffectListRequest
+
//=============================================================================
#pragma code_seg("PAGE")
NTSTATUS
diff --git a/audio/sysvad/EndpointsCommon/minwavert.h b/audio/sysvad/EndpointsCommon/minwavert.h
index c30faa2d..aea83095 100644
--- a/audio/sysvad/EndpointsCommon/minwavert.h
+++ b/audio/sysvad/EndpointsCommon/minwavert.h
@@ -155,6 +155,7 @@ protected:
PPORTEVENTS m_pPortEvents;
PENDPOINT_MINIPAIR m_pMiniportPair;
+
public:
DECLARE_PROPERTYHANDLER(Get_SoundDetectorSupportedPatterns);
DECLARE_PROPERTYHANDLER(Set_SoundDetectorPatterns);
@@ -264,7 +265,8 @@ public:
}
}
}
-
+
+
#ifdef SYSVAD_BTH_BYPASS
if (IsBthHfpDevice())
{
diff --git a/audio/sysvad/EndpointsCommon/minwavertstream.cpp b/audio/sysvad/EndpointsCommon/minwavertstream.cpp
index a343efa7..86d373da 100644
--- a/audio/sysvad/EndpointsCommon/minwavertstream.cpp
+++ b/audio/sysvad/EndpointsCommon/minwavertstream.cpp
@@ -162,20 +162,25 @@ Return Value:
m_ullWritePosition = 0;
m_ullDmaTimeStamp = 0;
m_hnsElapsedTimeCarryForward = 0;
+ m_ullLastDPCTimeStamp = 0;
+ m_hnsDPCTimeCarryForward = 0;
m_ulDmaMovementRate = 0;
+ m_byteDisplacementCarryForward = 0;
m_bLfxEnabled = FALSE;
m_pbMuted = NULL;
m_plVolumeLevel = NULL;
m_plPeakMeter = NULL;
m_pWfExt = NULL;
m_ullLinearPosition = 0;
+ m_ullPresentationPosition = 0;
m_ulContentId = 0;
m_ulCurrentWritePosition = 0;
m_ulLastOsReadPacket = ULONG_MAX;
m_ulLastOsWritePacket = ULONG_MAX;
- m_llEoSPosition = (-1);
m_IsCurrentWritePositionUpdated = 0;
m_SignalProcessingMode = SignalProcessingMode;
+ m_bEoSReceived = FALSE;
+ m_bLastBufferRendered = FALSE;
#ifdef SYSVAD_BTH_BYPASS
m_ScoOpen = FALSE;
@@ -185,6 +190,9 @@ Return Value:
InitializeListHead(&m_NotificationList);
m_ulNotificationIntervalMs = 0;
+ // Initialize the spinlock to synchronize position updates
+ KeInitializeSpinLock(&m_PositionSpinLock);
+
m_pNotificationDpc = (PRKDPC)ExAllocatePoolWithTag(
NonPagedPoolNx,
sizeof(KDPC),
@@ -426,7 +434,9 @@ NTSTATUS CMiniportWaveRTStream::AllocateBufferWithNotification
{
NTSTATUS ntStatus;
- ntStatus = m_SaveData.SetMaxWriteSize(RequestedSize_);
+ // Sysvad uses following buffer to hold data before writing to a file.
+ // Allocating larger buffer will reduce File I/O operations.
+ ntStatus = m_SaveData.SetMaxWriteSize(RequestedSize_ * 4);
if (!NT_SUCCESS(ntStatus))
{
return ntStatus;
@@ -524,6 +534,7 @@ NTSTATUS CMiniportWaveRTStream::RegisterNotificationEvent
nleNew->NotificationEvent = NotificationEvent_;
+ // Fail if the notification event already exists in our list.
if (!IsListEmpty(&m_NotificationList))
{
PLIST_ENTRY leCurrent = m_NotificationList.Flink;
@@ -532,7 +543,6 @@ NTSTATUS CMiniportWaveRTStream::RegisterNotificationEvent
NotificationListEntry* nleCurrent = CONTAINING_RECORD( leCurrent, NotificationListEntry, ListEntry);
if (nleCurrent->NotificationEvent == NotificationEvent_)
{
- RemoveEntryList( leCurrent );
ExFreePoolWithTag( nleNew, MINWAVERTSTREAM_POOLTAG );
return STATUS_UNSUCCESSFUL;
}
@@ -731,6 +741,9 @@ NTSTATUS CMiniportWaveRTStream::GetPosition
return STATUS_NOT_SUPPORTED;
}
+ KIRQL oldIrql;
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
+
if (m_KsState == KSSTATE_RUN)
{
//
@@ -743,6 +756,8 @@ NTSTATUS CMiniportWaveRTStream::GetPosition
Position_->PlayOffset = m_ullPlayPosition;
Position_->WriteOffset = m_ullWritePosition;
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
+
ntStatus = STATUS_SUCCESS;
#ifdef SYSVAD_BTH_BYPASS
@@ -807,19 +822,19 @@ NTSTATUS CMiniportWaveRTStream::GetReadPacket
return ntStatus;
}
- if (m_KsState == KSSTATE_RUN)
- {
- //
- // Get the current time and update simulated position.
- //
- LARGE_INTEGER ilQPC = KeQueryPerformanceCounter(NULL);
+ KIRQL oldIrql;
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
- UpdatePosition(ilQPC);
- }
+ LONGLONG packetCounter = m_llPacketCounter;
+ ULONGLONG ullLinearPosition = m_ullLinearPosition;
+ ULONGLONG hnsElapsedTimeCarryForward = m_hnsElapsedTimeCarryForward;
+ ULONGLONG ullDmaTimeStamp = m_ullDmaTimeStamp;
+
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
// The 0-based number of the last completed packet
// FUTURE-2014/10/27 Update to allow different numbers of packets per WaveRT buffer
- availablePacketNumber = LODWORD(m_llPacketCounter - 1); // Note this might be ULONG_MAX if called during the first packet
+ availablePacketNumber = LODWORD(packetCounter - 1); // Note this might be ULONG_MAX if called during the first packet
// If no new packets are available...
if (availablePacketNumber == m_ulLastOsReadPacket)
@@ -843,10 +858,12 @@ NTSTATUS CMiniportWaveRTStream::GetReadPacket
// driver, it is extrapolated from the sample driver's internal simulated position corrleation
// [m_ullLinearPosition @ m_ullDmaTimeStamp] and the sample's internal 64-bit packet counter, subtracting
// 1 from the packet counter to compute the time at the start of that last completed packet.
- ULONGLONG linearPositionOfAvailablePacket = (m_llPacketCounter - 1) * (m_ulDmaBufferSize / m_ulNotificationsPerBuffer);
- ULONGLONG deltaLinearPosition = m_ullLinearPosition - linearPositionOfAvailablePacket;
+ ULONGLONG linearPositionOfAvailablePacket = (packetCounter - 1) * (m_ulDmaBufferSize / m_ulNotificationsPerBuffer);
+ // Need to divide by (1000 * 10000 because m_ulDmaMovementRate is average bytes per sec
+ ULONGLONG carryForwardBytes = (hnsElapsedTimeCarryForward * m_ulDmaMovementRate) / 10000000;
+ ULONGLONG deltaLinearPosition = ullLinearPosition + carryForwardBytes - linearPositionOfAvailablePacket;
ULONGLONG deltaTimeInHns = deltaLinearPosition * 10000000 / m_ulDmaMovementRate;
- ULONGLONG timeOfAvailablePacketInHns = m_ullDmaTimeStamp - deltaTimeInHns;
+ ULONGLONG timeOfAvailablePacketInHns = ullDmaTimeStamp - deltaTimeInHns;
ULONGLONG timeOfAvailablePacketInQpc = timeOfAvailablePacketInHns * m_ullPerformanceCounterFrequency.QuadPart / 10000000;
*PerformanceCounterValue = timeOfAvailablePacketInQpc;
@@ -882,9 +899,9 @@ NTSTATUS CMiniportWaveRTStream::GetReadPacket
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSTATUS CMiniportWaveRTStream::SetWritePacket
(
-_In_ ULONG PacketNumber,
-_In_ DWORD Flags,
-_In_ ULONG EosPacketLength
+ _In_ ULONG PacketNumber,
+ _In_ DWORD Flags,
+ _In_ ULONG EosPacketLength
)
{
NTSTATUS ntStatus;
@@ -898,21 +915,16 @@ _In_ ULONG EosPacketLength
ULONG oldLastOsWritePacket = m_ulLastOsWritePacket;
// This function should not be called once EoS has been set.
- if (m_llEoSPosition >= 0)
+ if (m_bEoSReceived)
{
return STATUS_INVALID_DEVICE_STATE;
}
- // Update linear positions
- if (m_KsState == KSSTATE_RUN)
- {
- // Get the current time and update simulated position.
- LARGE_INTEGER ilQPC = KeQueryPerformanceCounter(NULL);
- UpdatePosition(ilQPC);
- }
-
+ KIRQL oldIrql;
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
// 1-based count of completed packets, 0-based packet number of current packet
LONGLONG currentPacket = m_llPacketCounter;
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
// If not running, the current packet hasn't actually started transfering so OS should be writing
// to the current packet. If running, then the current packing is already transfering to hardware
@@ -949,7 +961,7 @@ _In_ ULONG EosPacketLength
// EOS position will be after the total completed packets, plus the packet in progress,
// plus this EOS packet length
m_ulLastOsWritePacket = PacketNumber;
- m_llEoSPosition = ((m_llPacketCounter + 1) * packetSize) + EosPacketLength;
+ ulCurrentWritePosition += EosPacketLength;
ntStatus = SetStreamCurrentWritePositionForLastBuffer(ulCurrentWritePosition);
}
}
@@ -962,12 +974,13 @@ _In_ ULONG EosPacketLength
// Will not return an error when the passed in parameter is 0.
// Will also check if this function was called with the same write position(in event mode only)
// Underruning will also be checked via timer mechanism
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
ntStatus = SetCurrentWritePositionInternal(ulCurrentWritePosition);
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
}
if (!NT_SUCCESS(ntStatus))
{
- m_llEoSPosition = (-1);
m_ulLastOsWritePacket = oldLastOsWritePacket;
}
@@ -1002,13 +1015,16 @@ NTSTATUS CMiniportWaveRTStream::GetPacketCount
)
{
ASSERT(pPacketCount);
-
+
// The call must be from event driven mode
if(m_ulNotificationsPerBuffer == 0)
{
return STATUS_NOT_SUPPORTED;
}
+ KIRQL oldIrql;
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
+
if (m_KsState == KSSTATE_RUN)
{
// Get the current time and update simulated position.
@@ -1017,49 +1033,54 @@ NTSTATUS CMiniportWaveRTStream::GetPacketCount
}
*pPacketCount = LODWORD(m_llPacketCounter);
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
return STATUS_SUCCESS;
}
//=============================================================================
-#pragma code_seg("PAGE")
+#pragma code_seg()
NTSTATUS CMiniportWaveRTStream::SetState
(
_In_ KSSTATE State_
)
{
- PAGED_CODE();
-
NTSTATUS ntStatus = STATUS_SUCCESS;
PADAPTERCOMMON pAdapterComm = m_pMiniport->GetAdapterCommObj();
+ KIRQL oldIrql;
// Spew an event for a pin state change request from portcls
//Event type: eMINIPORT_PIN_STATE
- //Parameter 1: Current linear buffer position
- //Parameter 2: Current WaveRtBufferWritePosition
+ //Parameter 1: Current linear buffer position
+ //Parameter 2: Current WaveRtBufferWritePosition
//Parameter 3: Pin State 0->KS_STOP, 1->KS_ACQUIRE, 2->KS_PAUSE, 3->KS_RUN
//Parameter 4:0
pAdapterComm->WriteEtwEvent(eMINIPORT_PIN_STATE,
- 100, // replace with the correct "Current linear buffer position"
- m_ulCurrentWritePosition, // replace with the previous WaveRtBufferWritePosition that the drive received
- State_, // repalce with the correct "Data length completed"
+ 100, // replace with the correct "Current linear buffer position"
+ m_ulCurrentWritePosition, // replace with the previous WaveRtBufferWritePosition that the driver received
+ State_, // replace with the correct "Data length completed"
0); // always zero
switch (State_)
{
case KSSTATE_STOP:
+ KeAcquireSpinLock(&m_PositionSpinLock, &oldIrql);
// Reset DMA
m_llPacketCounter = 0;
m_ullPlayPosition = 0;
m_ullWritePosition = 0;
m_ullLinearPosition = 0;
+ m_ullPresentationPosition = 0;
// Reset OS read/write positions
m_ulLastOsReadPacket = ULONG_MAX;
m_ulCurrentWritePosition = 0;
m_ulLastOsWritePacket = ULONG_MAX;
- m_llEoSPosition = (-1);
-
+ m_bEoSReceived = FALSE;
+ m_bLastBufferRendered = FALSE;
+
+ KeReleaseSpinLock(&m_PositionSpinLock, oldIrql);
+
// Wait until all work items are completed.
if (!m_bCapture && !g_DoNotCreateDataFiles)
{
@@ -1116,7 +1137,6 @@ NTSTATUS CMiniportWaveRTStream::SetState
break;
case KSSTATE_PAUSE:
- ULONGLONG ullPositionTemp;
if (m_KsState > KSSTATE_PAUSE)
{
@@ -1136,9 +1156,8 @@ NTSTATUS CMiniportWaveRTStream::SetState
KeFlushQueuedDpcs();
}
}
-
- // This call updates the linear buffer position.
- GetLinearBufferPosition(&ullPositionTemp, NULL);
+ // This call updates the linear buffer and presentation positions.
+ GetPositions(NULL, NULL, NULL);
break;
case KSSTATE_RUN:
@@ -1149,23 +1168,24 @@ NTSTATUS CMiniportWaveRTStream::SetState
m_pMiniport->m_KeywordDetector.Run();
}
ullPerfCounterTemp = KeQueryPerformanceCounter(&m_ullPerformanceCounterFrequency);
- m_ullDmaTimeStamp = KSCONVERT_PERFORMANCE_TIME(m_ullPerformanceCounterFrequency.QuadPart, ullPerfCounterTemp);
- m_hnsElapsedTimeCarryForward = 0;
+ m_ullLastDPCTimeStamp = m_ullDmaTimeStamp = KSCONVERT_PERFORMANCE_TIME(m_ullPerformanceCounterFrequency.QuadPart, ullPerfCounterTemp);
if (m_ulNotificationIntervalMs > 0)
{
LARGE_INTEGER delay;
- delay.QuadPart = (-2) * (((LONGLONG)m_ulNotificationIntervalMs) * HNSTIME_PER_MILLISECOND);
+ delay.QuadPart = (-1) * HNSTIME_PER_MILLISECOND;
- // ISSUE-2014/10/20 Set resolution based on packet size
ExSetTimerResolution(HNSTIME_PER_MILLISECOND, TRUE);
-
+ // Set timer for 1 ms. This will cause DPC to run every 1 ms but driver will send out
+ // notification events only after notification interval. This timer is used by Sysvad to
+ // emulate hardware and send out notification event. Real hardware should not use this
+ // timer to fire notification event as it will drain power if the timer is running at 1 msec.
KeSetTimerEx
(
m_pNotificationTimer,
delay,
- m_ulNotificationIntervalMs,
+ 1, // 1 ms
m_pNotificationDpc
);
}
@@ -1228,22 +1248,44 @@ VOID CMiniportWaveRTStream::UpdatePosition
// lose some bytes, so we will carry the remainder forward to the next GetPosition() call.
//
// need to divide by 1000 because m_ulDmaMovementRate is average bytes per sec.
- ULONG ByteDisplacement = (m_ulDmaMovementRate * TimeElapsedInMS) / 1000;
-
+
+ ULONG ByteDisplacement = ((m_ulDmaMovementRate * TimeElapsedInMS) + m_byteDisplacementCarryForward) / 1000 ;
+ m_byteDisplacementCarryForward = ((m_ulDmaMovementRate * TimeElapsedInMS) + m_byteDisplacementCarryForward) % 1000;
+
+ // Increment presentation position even after last buffer is rendered.
+ m_ullPresentationPosition += ByteDisplacement;
+
if (m_bCapture)
{
// Write sine wave to buffer.
WriteBytes(ByteDisplacement);
}
- else if (!g_DoNotCreateDataFiles)
+ else
{
- // Read from buffer and write to a file.
- ReadBytes(ByteDisplacement);
-
+ if (m_bEoSReceived)
+ {
+ // since EoS flag is set, we'll need to make sure not to read data beyond EOS position.
+ // If driver's current position is less than EoS position, then make sure not to read data beyond EoS.
+ if (m_ullWritePosition <= m_ulCurrentWritePosition)
+ {
+ ByteDisplacement = min(ByteDisplacement, m_ulCurrentWritePosition - (ULONG)m_ullWritePosition);
+ }
+ // If our current position is ahead of EoS position and we'll wrap around after new position then adjust
+ // new position if it crosses EoS.
+ else if ((m_ullWritePosition + ByteDisplacement) % m_ulDmaBufferSize < m_ullWritePosition)
+ {
+ if ((m_ullWritePosition + ByteDisplacement) % m_ulDmaBufferSize > m_ulCurrentWritePosition)
+ {
+ ByteDisplacement = ByteDisplacement - (((ULONG)m_ullWritePosition + ByteDisplacement) % m_ulDmaBufferSize - m_ulCurrentWritePosition);
+ }
+ }
+ }
+
// If the last packet was rendered(read in the sample driver's case), send out an etw event.
- if ( (m_llEoSPosition >= 0)
- && ((m_llEoSPosition - m_ullLinearPosition) < ByteDisplacement))
+ if ( m_bEoSReceived && !m_bLastBufferRendered
+ && (m_ullWritePosition + ByteDisplacement) % m_ulDmaBufferSize == m_ulCurrentWritePosition)
{
+ m_bLastBufferRendered = TRUE;
PADAPTERCOMMON pAdapterComm = m_pMiniport->GetAdapterCommObj();
pAdapterComm->WriteEtwEvent(eMINIPORT_LAST_BUFFER_RENDERED,
m_ullLinearPosition + ByteDisplacement, // Current linear buffer position
@@ -1251,6 +1293,12 @@ VOID CMiniportWaveRTStream::UpdatePosition
0,
0);
}
+
+ if (!g_DoNotCreateDataFiles)
+ {
+ // Read from buffer and write to a file.
+ ReadBytes(ByteDisplacement);
+ }
}
// Increment the DMA position by the number of bytes displaced since the last
@@ -1273,7 +1321,7 @@ VOID CMiniportWaveRTStream::UpdatePosition
#pragma code_seg()
VOID CMiniportWaveRTStream::WriteBytes
(
-_In_ ULONG ByteDisplacement
+ _In_ ULONG ByteDisplacement
)
/*++
@@ -1304,7 +1352,7 @@ ByteDisplacement - # of bytes to process.
#pragma code_seg()
VOID CMiniportWaveRTStream::ReadBytes
(
-_In_ ULONG ByteDisplacement
+ _In_ ULONG ByteDisplacement
)
/*++
@@ -1490,14 +1538,39 @@ TimerNotifyRT
return;
}
- InterlockedIncrement64(&_this->m_llPacketCounter);
+ KIRQL oldIrql;
+ KeAcquireSpinLock(&_this->m_PositionSpinLock, &oldIrql);
+ // Convert ticks to 100ns units.
+ LONGLONG hnsCurrentTime = KSCONVERT_PERFORMANCE_TIME(_this->m_ullPerformanceCounterFrequency.QuadPart, qpc);
+
+ // Calculate the time elapsed since the last we ran DPC that matched Notification interval. Note that the division by 10000
+ // to convert to milliseconds may cause us to lose some of the time, so we will carry the remainder forward.
+
+ ULONG TimeElapsedInMS = (ULONG)(hnsCurrentTime - _this->m_ullLastDPCTimeStamp + _this->m_hnsDPCTimeCarryForward)/10000;
+
+ if (TimeElapsedInMS < _this->m_ulNotificationIntervalMs && !_this->m_bEoSReceived)
+ {
+ goto End;
+ }
+
+ // Carry forward the remainder of this division
+ _this->m_hnsDPCTimeCarryForward = (hnsCurrentTime - _this->m_ullLastDPCTimeStamp + _this->m_hnsDPCTimeCarryForward) % 10000;
+ // Save the last time DPC ran at notification interval
+ _this->m_ullLastDPCTimeStamp = (ULONG)hnsCurrentTime;
+
+ _this->UpdatePosition(qpc);
+
+ if (!_this->m_bEoSReceived)
+ {
+ _this->m_llPacketCounter++;
+ }
#ifdef SYSVAD_BTH_BYPASS
if (_this->m_ScoOpen)
{
if (!NT_SUCCESS(_this->GetScoStreamNtStatus()))
{
- return;
+ goto End;
}
}
#endif // SYSVAD_BTH_BYPASS
@@ -1506,13 +1579,13 @@ TimerNotifyRT
if (_this->m_KsState != KSSTATE_RUN)
{
- return;
+ goto End;
}
PADAPTERCOMMON pAdapterComm = _this->m_pMiniport->GetAdapterCommObj();
// Simple buffer underrun detection.
- if (!_this->IsCurrentWaveRTWritePositionUpdated())
+ if (!_this->IsCurrentWaveRTWritePositionUpdated() && !_this->m_bEoSReceived)
{
//Event type: eMINIPORT_GLITCH_REPORT
//Parameter 1: Current linear buffer position
@@ -1526,21 +1599,23 @@ TimerNotifyRT
0);
}
- if (!IsListEmpty(&_this->m_NotificationList))
+ if (!IsListEmpty(&_this->m_NotificationList) &&
+ (TimeElapsedInMS >= _this->m_ulNotificationIntervalMs || _this->m_bLastBufferRendered))
{
PLIST_ENTRY leCurrent = _this->m_NotificationList.Flink;
while (leCurrent != &_this->m_NotificationList)
{
NotificationListEntry* nleCurrent = CONTAINING_RECORD( leCurrent, NotificationListEntry, ListEntry);
//Event type: eMINIPORT_BUFFER_COMPLETE
- //Parameter 1: Current linear buffer position
- //Parameter 2: the previous WaveRtBufferWritePosition that the drive received
- //Parameter 3: Data length completed
+ //Parameter 1: Current linear buffer position
+ //Parameter 2: the previous WaveRtBufferWritePosition that the driver received
+ //Parameter 3: Data length completed
//Parameter 4:0
+
pAdapterComm->WriteEtwEvent(eMINIPORT_BUFFER_COMPLETE,
- 100, // replace with the correct "Current linear buffer position"
- _this->GetCurrentWaveRTWritePosition(),
- 300, // repalce with the correct "Data length completed"
+ 100, // replace with the correct "Current linear buffer position"
+ _this->GetCurrentWaveRTWritePosition(),
+ 300, // replace with the correct "Data length completed"
0); // always zero
KeSetEvent(nleCurrent->NotificationEvent, 0, 0);
@@ -1548,6 +1623,15 @@ TimerNotifyRT
leCurrent = leCurrent->Flink;
}
}
+
+ if (_this->m_bLastBufferRendered)
+ {
+ KeCancelTimer(_this->m_pNotificationTimer);
+ }
+
+End:
+ KeReleaseSpinLock(&_this->m_PositionSpinLock, oldIrql);
+ return;
}
//=============================================================================
diff --git a/audio/sysvad/EndpointsCommon/minwavertstream.h b/audio/sysvad/EndpointsCommon/minwavertstream.h
index 78be0e15..c429956d 100644
--- a/audio/sysvad/EndpointsCommon/minwavertstream.h
+++ b/audio/sysvad/EndpointsCommon/minwavertstream.h
@@ -102,13 +102,16 @@ protected:
ULONGLONG m_ullPlayPosition;
ULONGLONG m_ullWritePosition;
ULONGLONG m_ullLinearPosition;
+ ULONGLONG m_ullPresentationPosition;
ULONG m_ulLastOsReadPacket;
ULONG m_ulLastOsWritePacket;
- LONGLONG m_llEoSPosition;
LONGLONG m_llPacketCounter;
ULONGLONG m_ullDmaTimeStamp;
LARGE_INTEGER m_ullPerformanceCounterFrequency;
ULONGLONG m_hnsElapsedTimeCarryForward;
+ ULONGLONG m_ullLastDPCTimeStamp;
+ ULONGLONG m_hnsDPCTimeCarryForward;
+ ULONG m_byteDisplacementCarryForward;
ULONG m_ulDmaMovementRate;
BOOL m_bLfxEnabled;
PBOOL m_pbMuted;
@@ -119,6 +122,9 @@ protected:
CSaveData m_SaveData;
ToneGenerator m_ToneGenerator;
GUID m_SignalProcessingMode;
+ BOOLEAN m_bEoSReceived;
+ BOOLEAN m_bLastBufferRendered;
+ KSPIN_LOCK m_PositionSpinLock;
#ifdef SYSVAD_BTH_BYPASS
BOOLEAN m_ScoOpen;
@@ -245,9 +251,10 @@ private:
_In_ ULONG ulCurrentWritePosition
);
- NTSTATUS GetLinearBufferPosition
+ NTSTATUS GetPositions
(
_Out_ ULONGLONG *pullLinearBufferPosition,
+ _Out_ ULONGLONG *pullPresentationPosition,
_Out_ LARGE_INTEGER *_pliQPCTime
);
diff --git a/audio/sysvad/EndpointsCommon/speakerhpwavtable.h b/audio/sysvad/EndpointsCommon/speakerhpwavtable.h
index 2b5b61ed..2f36ac06 100644
--- a/audio/sysvad/EndpointsCommon/speakerhpwavtable.h
+++ b/audio/sysvad/EndpointsCommon/speakerhpwavtable.h
@@ -32,11 +32,11 @@ Abstract:
#define SPEAKERHP_OFFLOAD_MIN_SAMPLE_RATE 44100 // Min Sample Rate
#define SPEAKERHP_OFFLOAD_MAX_SAMPLE_RATE 48000 // Max Sample Rate
-#define SPEAKERHP_LOOPBACK_MAX_CHANNELS 2 // Max Channels.
-#define SPEAKERHP_LOOPBACK_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
-#define SPEAKERHP_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define SPEAKERHP_LOOPBACK_MIN_SAMPLE_RATE 24000 // Min Sample Rate
-#define SPEAKERHP_LOOPBACK_MAX_SAMPLE_RATE 48000 // Max Sample Rate
+#define SPEAKERHP_LOOPBACK_MAX_CHANNELS SPEAKERHP_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define SPEAKERHP_LOOPBACK_MIN_BITS_PER_SAMPLE SPEAKERHP_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define SPEAKERHP_LOOPBACK_MAX_BITS_PER_SAMPLE SPEAKERHP_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define SPEAKERHP_LOOPBACK_MIN_SAMPLE_RATE SPEAKERHP_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define SPEAKERHP_LOOPBACK_MAX_SAMPLE_RATE SPEAKERHP_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define SPEAKERHP_DOLBY_DIGITAL_MAX_CHANNELS 2 // Max Channels.
#define SPEAKERHP_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
@@ -47,7 +47,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define SPEAKERHP_MAX_INPUT_SYSTEM_STREAMS 2 // Raw + Default streams
+#define SPEAKERHP_MAX_INPUT_SYSTEM_STREAMS 6
#define SPEAKERHP_MAX_INPUT_OFFLOAD_STREAMS MAX_INPUT_OFFLOAD_STREAMS
#define SPEAKERHP_MAX_OUTPUT_LOOPBACK_STREAMS MAX_OUTPUT_LOOPBACK_STREAMS
@@ -392,111 +392,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpeakerHpOffloadPinSupportedDeviceFormats[] =
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpeakerHpLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 24000,
- 96000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 32000,
- 128000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 2
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 44100,
- 176400,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 3
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 48000,
- 192000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -565,8 +460,8 @@ PIN_DEVICE_FORMATS_AND_MODES SpeakerHpPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- SpeakerHpLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(SpeakerHpLoopbackPinSupportedDeviceFormats),
+ SpeakerHpHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(SpeakerHpHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/EndpointsCommon/speakerwavtable.h b/audio/sysvad/EndpointsCommon/speakerwavtable.h
index 3322b0a7..cb2c2481 100644
--- a/audio/sysvad/EndpointsCommon/speakerwavtable.h
+++ b/audio/sysvad/EndpointsCommon/speakerwavtable.h
@@ -33,11 +33,11 @@ Abstract:
#define SPEAKER_OFFLOAD_MIN_SAMPLE_RATE 44100 // Min Sample Rate
#define SPEAKER_OFFLOAD_MAX_SAMPLE_RATE 48000 // Max Sample Rate
-#define SPEAKER_LOOPBACK_MAX_CHANNELS 2 // Max Channels.
-#define SPEAKER_LOOPBACK_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
-#define SPEAKER_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define SPEAKER_LOOPBACK_MIN_SAMPLE_RATE 24000 // Min Sample Rate
-#define SPEAKER_LOOPBACK_MAX_SAMPLE_RATE 48000 // Max Sample Rate
+#define SPEAKER_LOOPBACK_MAX_CHANNELS SPEAKER_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define SPEAKER_LOOPBACK_MIN_BITS_PER_SAMPLE SPEAKER_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define SPEAKER_LOOPBACK_MAX_BITS_PER_SAMPLE SPEAKER_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define SPEAKER_LOOPBACK_MIN_SAMPLE_RATE SPEAKER_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define SPEAKER_LOOPBACK_MAX_SAMPLE_RATE SPEAKER_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define SPEAKER_DOLBY_DIGITAL_MAX_CHANNELS 2 // Max Channels.
#define SPEAKER_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
@@ -48,7 +48,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define SPEAKER_MAX_INPUT_SYSTEM_STREAMS 2 // Raw + Default streams
+#define SPEAKER_MAX_INPUT_SYSTEM_STREAMS 6
#define SPEAKER_MAX_INPUT_OFFLOAD_STREAMS MAX_INPUT_OFFLOAD_STREAMS
#define SPEAKER_MAX_OUTPUT_LOOPBACK_STREAMS MAX_OUTPUT_LOOPBACK_STREAMS
@@ -393,111 +393,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpeakerOffloadPinSupportedDeviceFormats[] =
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpeakerLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 24000,
- 96000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 32000,
- 128000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 2
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 44100,
- 176400,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 3
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 48000,
- 192000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -566,8 +461,8 @@ PIN_DEVICE_FORMATS_AND_MODES SpeakerPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- SpeakerLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(SpeakerLoopbackPinSupportedDeviceFormats),
+ SpeakerHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(SpeakerHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
@@ -836,7 +731,6 @@ PCPROPERTY_ITEM PropertiesSpeakerWaveFilter[] =
KSPROPERTY_TYPE_GET | KSPROPERTY_TYPE_BASICSUPPORT,
PropertyHandler_WaveFilter
}
-
};
DEFINE_PCAUTOMATION_TABLE_PROP(AutomationSpeakerWaveFilter, PropertiesSpeakerWaveFilter);
diff --git a/audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj b/audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj
deleted file mode 100644
index 29fa6d04..00000000
--- a/audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj
+++ /dev/null
@@ -1,232 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{92E28772-ADE3-4367-B679-6DCF6FFA75F1}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <SupportsPackaging>false</SupportsPackaging>
- <RequiresPackageProject>true</RequiresPackageProject>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{B1EE584B-A24D-4186-9759-A08E50D9F301}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>KeywordDetectorContosoAdapter</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>KeywordDetectorContosoAdapter</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>KeywordDetectorContosoAdapter</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>KeywordDetectorContosoAdapter</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;mfplat.lib;runtimeobject.lib</AdditionalDependencies>
- <ModuleDefinitionFile>KeywordDetectorContosoAdapter.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;mfplat.lib;runtimeobject.lib</AdditionalDependencies>
- <ModuleDefinitionFile>KeywordDetectorContosoAdapter.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;mfplat.lib;runtimeobject.lib</AdditionalDependencies>
- <ModuleDefinitionFile>KeywordDetectorContosoAdapter.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='false'">MultiThreaded</RuntimeLibrary>
- <RuntimeLibrary Condition="'$(UseDebugLibraries)'=='true'">MultiThreadedDebug</RuntimeLibrary>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;mfplat.lib;runtimeobject.lib</AdditionalDependencies>
- <ModuleDefinitionFile>KeywordDetectorContosoAdapter.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="dllmain.cpp" />
- <ClCompile Include="KeywordDetectorContosoAdapter.cpp" />
- <ClCompile Include="stdafx.cpp" />
- <Midl Include="KeywordDetectorContosoAdapter.idl" />
- <ResourceCompile Include="KeywordDetectorContosoAdapter.rc" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj.Filters b/audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj.Filters
deleted file mode 100644
index 470f3402..00000000
--- a/audio/sysvad/KeywordDetectorAdapter/KeywordDetectorContosoAdapter.vcxproj.Filters
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{B50B7E60-1411-4963-BE4B-B214F230A656}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{0BDF6F65-E222-4DE0-B90F-7DE3C57089E8}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{F589D76A-014F-48A8-A294-56C98193C5A1}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="dllmain.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="KeywordDetectorContosoAdapter.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="stdafx.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <Midl Include="KeywordDetectorContosoAdapter.idl">
- <Filter>Source Files</Filter>
- </Midl>
- <None Include="KeywordDetectorContosoAdapter.def">
- <Filter>Source Files</Filter>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="KeywordDetectorContosoAdapter.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/Package/package.VcxProj b/audio/sysvad/Package/package.VcxProj
deleted file mode 100644
index c35f4ee5..00000000
--- a/audio/sysvad/Package/package.VcxProj
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\KeywordDetectorAdapter\KeywordDetectorContosoAdapter.vcxproj">
- <Project>{92E28772-ADE3-4367-B679-6DCF6FFA75F1}</Project>
- </ProjectReference>
- <ProjectReference Include="..\PhoneAudioSample\PhoneAudioSample.vcxproj">
- <Project>{43FF11E5-B4C4-409A-AE4B-13342918B6F8}</Project>
- </ProjectReference>
- <ProjectReference Include="..\SwapAPO\APO\SwapAPO.vcxproj">
- <Project>{2A1B7375-D9CB-4067-AEDE-180D75B5934D}</Project>
- </ProjectReference>
- <ProjectReference Include="..\SwapAPO\PropPageExtensions\PropPageExt.vcxproj">
- <Project>{76DBA957-38F6-47ED-A5C0-AD587D08FF12}</Project>
- </ProjectReference>
- <ProjectReference Include="..\TabletAudioSample\TabletAudioSample.vcxproj">
- <Project>{29A5DD25-AB56-4DEE-96AB-21EC2926A300}</Project>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\phoneaudiosample.inf" />
- <None Include="..\tabletaudiosample.inf" />
- </ItemGroup>
- <PropertyGroup Label="PropertySheets">
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Utility</ConfigurationType>
- <DriverType>Package</DriverType>
- <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
- <Configuration>Debug</Configuration>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Globals">
- <ProjectGuid>{5F7004D7-03BD-44AA-9FDD-6677B2C93469}</ProjectGuid>
- <SampleGuid>{24733FBE-11F1-4558-97A6-983B6BB36797}</SampleGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>true</UseDebugLibraries>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>false</UseDebugLibraries>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup />
- <PropertyGroup>
- <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
- <ImportToStore>False</ImportToStore>
- <InstallMode>None</InstallMode>
- <HardwareIdString />
- <CommandLine />
- <ScriptPath />
- <DeployFiles />
- <ScriptName />
- <ScriptDeviceQuery>%PathToInf%</ScriptDeviceQuery>
- <EnableVerifier>False</EnableVerifier>
- <AllDrivers>False</AllDrivers>
- <VerifyProjectOutput>True</VerifyProjectOutput>
- <VerifyDrivers />
- <VerifyFlags>133563</VerifyFlags>
- </PropertyGroup>
- <ItemDefinitionGroup>
- </ItemDefinitionGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/Package/package.VcxProj.Filters b/audio/sysvad/Package/package.VcxProj.Filters
deleted file mode 100644
index 9cca51f2..00000000
--- a/audio/sysvad/Package/package.VcxProj.Filters
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{64F96D78-EC33-4578-89CD-4D57E4661BB1}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{D77D2DFB-9D29-470D-8D22-893952C6C47D}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{3C34DD80-8AEE-4672-BEF4-BF6971E63C85}</UniqueIdentifier>
- </Filter>
- <Filter Include="Driver Files">
- <Extensions>inf;inv;inx;mof;mc;</Extensions>
- <UniqueIdentifier>{1028BDCB-C3D9-4F31-845E-AA1B26F6E4BF}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\phoneaudiosample.inf">
- <Filter>Driver Files</Filter>
- </None>
- <None Include="..\tabletaudiosample.inf">
- <Filter>Driver Files</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/PhoneAudioSample/Cellularwavtable.h b/audio/sysvad/PhoneAudioSample/Cellularwavtable.h
index aeb91e74..7f9447ec 100644
--- a/audio/sysvad/PhoneAudioSample/Cellularwavtable.h
+++ b/audio/sysvad/PhoneAudioSample/Cellularwavtable.h
@@ -27,7 +27,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define CELLULAR_MAX_INPUT_SYSTEM_STREAMS 1 // Raw stream
+#define CELLULAR_MAX_INPUT_SYSTEM_STREAMS 1
//=============================================================================
diff --git a/audio/sysvad/PhoneAudioSample/FMWavTable.h b/audio/sysvad/PhoneAudioSample/FMWavTable.h
index a549e06d..0fe0337c 100644
--- a/audio/sysvad/PhoneAudioSample/FMWavTable.h
+++ b/audio/sysvad/PhoneAudioSample/FMWavTable.h
@@ -26,7 +26,7 @@ Abstract:
#define FMRX_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
#define FMRX_MIN_SAMPLE_RATE 48000 // Min Sample Rate
#define FMRX_MAX_SAMPLE_RATE 48000 // Max Sample Rate
-#define FMRX_MAX_INPUT_SYSTEM_STREAMS 1 // Raw stream
+#define FMRX_MAX_INPUT_SYSTEM_STREAMS 1
//=============================================================================
diff --git a/audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj b/audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj
deleted file mode 100644
index 02fe961a..00000000
--- a/audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj
+++ /dev/null
@@ -1,300 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{43FF11E5-B4C4-409A-AE4B-13342918B6F8}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
- <SupportsPackaging>false</SupportsPackaging>
- <RequiresPackageProject>true</RequiresPackageProject>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{05A9D8CD-F200-4641-A6EE-EF0F678D00EA}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Universal</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>PhoneAudioSample</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>PhoneAudioSample</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>PhoneAudioSample</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>PhoneAudioSample</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_IPortClsRuntimePower</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\adapter.cpp" />
- <ClCompile Include="..\basetopo.cpp" />
- <ClCompile Include="..\common.cpp" />
- <ClCompile Include="..\hw.cpp" />
- <ClCompile Include="..\kshelper.cpp" />
- <ClCompile Include="..\savedata.cpp" />
- <ClCompile Include="..\tonegenerator.cpp" />
- <ClCompile Include="cellulartopo.cpp" />
- <ClCompile Include="cellularwave.cpp" />
- <ClCompile Include="fmtopo.cpp" />
- <ClCompile Include="fmwave.cpp" />
- <ClCompile Include="handsetmictopo.cpp" />
- <ClCompile Include="handsetspeakertopo.cpp" />
- <ClCompile Include="michstopo.cpp" />
- <ClCompile Include="speakerhstopo.cpp" />
- <ResourceCompile Include="..\sysvad.rc" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj.Filters b/audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj.Filters
deleted file mode 100644
index 369dd396..00000000
--- a/audio/sysvad/PhoneAudioSample/PhoneAudioSample.vcxproj.Filters
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{25674444-F6A7-49F9-A19E-92D6B2B8C1CE}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{9F8DB742-298E-4030-84A4-9B1F2C92C863}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{38FD0692-2121-4F6C-BA1E-76CCDF3C0FF9}</UniqueIdentifier>
- </Filter>
- <Filter Include="Driver Files">
- <Extensions>inf;inv;inx;mof;mc;</Extensions>
- <UniqueIdentifier>{E6A2DFAA-E516-4CB2-86BA-6A2985FEEEAB}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\adapter.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\basetopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\common.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\hw.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\kshelper.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\savedata.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\tonegenerator.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="cellulartopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="cellularwave.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="fmtopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="fmwave.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="handsetmictopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="handsetspeakertopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="michstopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="speakerhstopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="..\sysvad.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/PhoneAudioSample/handsetmicwavtable.h b/audio/sysvad/PhoneAudioSample/handsetmicwavtable.h
index 5f9929f6..45f35ce1 100644
--- a/audio/sysvad/PhoneAudioSample/handsetmicwavtable.h
+++ b/audio/sysvad/PhoneAudioSample/handsetmicwavtable.h
@@ -27,7 +27,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define HANDSETMIC_MAX_INPUT_STREAMS 2 // Raw + Default streams
+#define HANDSETMIC_MAX_INPUT_STREAMS 4
//=============================================================================
static
diff --git a/audio/sysvad/PhoneAudioSample/handsetspeakerwavtable.h b/audio/sysvad/PhoneAudioSample/handsetspeakerwavtable.h
index 4a1cfbb3..4eaa32ee 100644
--- a/audio/sysvad/PhoneAudioSample/handsetspeakerwavtable.h
+++ b/audio/sysvad/PhoneAudioSample/handsetspeakerwavtable.h
@@ -30,11 +30,11 @@ Abstract:
#define HANDSETSPEAKER_HOST_MIN_SAMPLE_RATE 24000 // Min Sample Rate
#define HANDSETSPEAKER_HOST_MAX_SAMPLE_RATE 96000 // Max Sample Rate
-#define HANDSETSPEAKER_LOOPBACK_MAX_CHANNELS 2 // Max Channels.
-#define HANDSETSPEAKER_LOOPBACK_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
-#define HANDSETSPEAKER_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define HANDSETSPEAKER_LOOPBACK_MIN_SAMPLE_RATE 24000 // Min Sample Rate
-#define HANDSETSPEAKER_LOOPBACK_MAX_SAMPLE_RATE 48000 // Max Sample Rate
+#define HANDSETSPEAKER_LOOPBACK_MAX_CHANNELS HANDSETSPEAKER_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define HANDSETSPEAKER_LOOPBACK_MIN_BITS_PER_SAMPLE HANDSETSPEAKER_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define HANDSETSPEAKER_LOOPBACK_MAX_BITS_PER_SAMPLE HANDSETSPEAKER_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define HANDSETSPEAKER_LOOPBACK_MIN_SAMPLE_RATE HANDSETSPEAKER_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define HANDSETSPEAKER_LOOPBACK_MAX_SAMPLE_RATE HANDSETSPEAKER_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define HANDSETSPEAKER_DOLBY_DIGITAL_MAX_CHANNELS 2 // Max Channels.
#define HANDSETSPEAKER_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
@@ -45,7 +45,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define HANDSETSPEAKER_MAX_INPUT_SYSTEM_STREAMS 2 // Raw + Default streams
+#define HANDSETSPEAKER_MAX_INPUT_SYSTEM_STREAMS 3
#define HANDSETSPEAKER_MAX_OUTPUT_LOOPBACK_STREAMS MAX_OUTPUT_LOOPBACK_STREAMS
//=============================================================================
@@ -204,111 +204,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE HandsetSpeakerHostPinSupportedDeviceFormats[]
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE HandsetSpeakerLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 24000,
- 96000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 32000,
- 128000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 2
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 44100,
- 176400,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 3
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 48000,
- 192000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -345,8 +240,8 @@ PIN_DEVICE_FORMATS_AND_MODES HandsetSpeakerPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- HandsetSpeakerLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(HandsetSpeakerLoopbackPinSupportedDeviceFormats),
+ HandsetSpeakerHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(HandsetSpeakerHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/PhoneAudioSample/michstopo.cpp b/audio/sysvad/PhoneAudioSample/michstopo.cpp
index 0662cd97..f96a58e5 100644
--- a/audio/sysvad/PhoneAudioSample/michstopo.cpp
+++ b/audio/sysvad/PhoneAudioSample/michstopo.cpp
@@ -216,6 +216,7 @@ Return Value:
return ntStatus;
}
+
//=============================================================================
NTSTATUS
PropertyHandler_MicHsTopoFilter
diff --git a/audio/sysvad/PhoneAudioSample/michstoptable.h b/audio/sysvad/PhoneAudioSample/michstoptable.h
index d3d57dd2..0b4ed73c 100644
--- a/audio/sysvad/PhoneAudioSample/michstoptable.h
+++ b/audio/sysvad/PhoneAudioSample/michstoptable.h
@@ -15,6 +15,8 @@ Abstract:
#ifndef _SYSVAD_MICHSTOPTABLE_H_
#define _SYSVAD_MICHSTOPTABLE_H_
+#include <mintopo.h>
+
// Function declarations.
NTSTATUS
PropertyHandler_MicHsTopoFilter(
@@ -101,7 +103,6 @@ KSJACK_DESCRIPTION MicHsJackDesc =
eGenLocPrimaryBox,
ePortConnJack,
FALSE // NOTE: For convenience, wired headset jacks will be "unplugged" at boot.
- // However, we need to introduce a test hook to toggle jack state of this and other endpoints.
};
//=============================================================================
@@ -222,7 +223,17 @@ PCPROPERTY_ITEM MicHsPropertiesTopoFilter[] =
}
};
-DEFINE_PCAUTOMATION_TABLE_PROP(AutomationMicHsTopoFilter, MicHsPropertiesTopoFilter);
+static PCEVENT_ITEM MicHsJackInfoChangeEvent[] =
+{
+ {
+ &KSEVENTSETID_PinCapsChange, // Something changed
+ KSEVENT_PINCAPS_JACKINFOCHANGE, // Jack Info Changes
+ KSEVENT_TYPE_ENABLE | KSEVENT_TYPE_BASICSUPPORT,
+ CMiniportTopology_EventHandler_JackState
+ }
+};
+
+DEFINE_PCAUTOMATION_TABLE_PROP_EVENT(AutomationMicHsTopoFilter, MicHsPropertiesTopoFilter, MicHsJackInfoChangeEvent);
//=============================================================================
static
diff --git a/audio/sysvad/PhoneAudioSample/michswavtable.h b/audio/sysvad/PhoneAudioSample/michswavtable.h
index 5d0ab11f..5b46eb43 100644
--- a/audio/sysvad/PhoneAudioSample/michswavtable.h
+++ b/audio/sysvad/PhoneAudioSample/michswavtable.h
@@ -27,7 +27,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define MICHS_MAX_INPUT_STREAMS 2 // Raw + Default streams
+#define MICHS_MAX_INPUT_STREAMS 4
//=============================================================================
static
diff --git a/audio/sysvad/PhoneAudioSample/minipairs.h b/audio/sysvad/PhoneAudioSample/minipairs.h
index 3f7e9f24..7f2c5fb8 100644
--- a/audio/sysvad/PhoneAudioSample/minipairs.h
+++ b/audio/sysvad/PhoneAudioSample/minipairs.h
@@ -75,6 +75,73 @@ CreateMiniportTopologySYSVAD
);
//
+// Describe buffer size constraints for WaveRT buffers
+//
+static struct
+{
+ KSAUDIO_PACKETSIZE_CONSTRAINTS2 TransportPacketConstraints;
+ KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT AdditionalProcessingConstraints[1];
+} SysvadWaveRtPacketSizeConstraintsRender =
+{
+ {
+ 2 * HNSTIME_PER_MILLISECOND, // 2 ms minimum processing interval
+ FILE_BYTE_ALIGNMENT, // 1 byte packet size alignment
+ 0, // no maximum packet size constraint
+ 2, // 2 processing constraints follow
+ {
+ STATIC_AUDIO_SIGNALPROCESSINGMODE_DEFAULT, // constraint for default processing mode
+ 128, // 128 samples per processing frame
+ 0, // NA hns per processing frame
+ },
+ },
+ {
+ {
+ STATIC_AUDIO_SIGNALPROCESSINGMODE_MOVIE, // constraint for movie processing mode
+ 1024, // 1024 samples per processing frame
+ 0, // NA hns per processing frame
+ },
+ }
+};
+
+const SYSVAD_DEVPROPERTY SysvadWaveFilterInterfacePropertiesRender[] =
+{
+ {
+ &DEVPKEY_KsAudio_PacketSize_Constraints2, // Key
+ DEVPROP_TYPE_BINARY, // Type
+ sizeof(SysvadWaveRtPacketSizeConstraintsRender), // BufferSize
+ &SysvadWaveRtPacketSizeConstraintsRender, // Buffer
+ },
+};
+
+static struct
+{
+ KSAUDIO_PACKETSIZE_CONSTRAINTS2 TransportPacketConstraints;
+} SysvadWaveRtPacketSizeConstraintsCapture =
+{
+ {
+ 2 * HNSTIME_PER_MILLISECOND, // 2 ms minimum processing interval
+ FILE_BYTE_ALIGNMENT, // 1 byte packet size alignment
+ 0x100000, // 1 MB maximum packet size
+ 1, // 1 processing constraint follows
+ {
+ STATIC_AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS, // constraint for communications processing mode
+ 0, // NA samples per processing frame
+ 20 * HNSTIME_PER_MILLISECOND, // 200000 hns (20ms) per processing frame
+ },
+ },
+};
+
+const SYSVAD_DEVPROPERTY SysvadWaveFilterInterfacePropertiesCapture[] =
+{
+ {
+ &DEVPKEY_KsAudio_PacketSize_Constraints2, // Key
+ DEVPROP_TYPE_BINARY, // Type
+ sizeof(SysvadWaveRtPacketSizeConstraintsCapture), // BufferSize
+ &SysvadWaveRtPacketSizeConstraintsCapture, // Buffer
+ },
+};
+
+//
// Render miniports.
//
@@ -111,7 +178,8 @@ ENDPOINT_MINIPAIR SpeakerMiniports =
L"WaveSpeaker", // make sure this name matches with KSNAME_WaveSpeaker in the inf's [Strings] section
CreateMiniportWaveRTSYSVAD,
&SpeakerWaveMiniportFilterDescriptor,
- 0, NULL, // Interface properties
+ ARRAYSIZE(SysvadWaveFilterInterfacePropertiesRender), // Interface properties
+ SysvadWaveFilterInterfacePropertiesRender,
SPEAKER_DEVICE_MAX_CHANNELS,
SpeakerPinDeviceFormatsAndModes,
SIZEOF_ARRAY(SpeakerPinDeviceFormatsAndModes),
@@ -242,7 +310,8 @@ ENDPOINT_MINIPAIR MicArray1Miniports =
L"WaveMicArray1", // make sure this name matches with KSNAME_WaveMicArray1 in the inf's [Strings] section
CreateMiniportWaveRTSYSVAD,
&MicArrayWaveMiniportFilterDescriptor,
- 0, NULL, // Interface properties
+ ARRAYSIZE(SysvadWaveFilterInterfacePropertiesCapture), // Interface properties
+ SysvadWaveFilterInterfacePropertiesCapture,
MICARRAY_DEVICE_MAX_CHANNELS,
MicArrayPinDeviceFormatsAndModes,
SIZEOF_ARRAY(MicArrayPinDeviceFormatsAndModes),
diff --git a/audio/sysvad/phoneaudiosample.inf b/audio/sysvad/PhoneAudioSample/phoneaudiosample.inf
index a949197a..5c7fb491 100644
--- a/audio/sysvad/phoneaudiosample.inf
+++ b/audio/sysvad/PhoneAudioSample/phoneaudiosample.inf
Binary files differ
diff --git a/audio/sysvad/PhoneAudioSample/speakerhstopo.cpp b/audio/sysvad/PhoneAudioSample/speakerhstopo.cpp
index 4d69ac04..bbd7a97c 100644
--- a/audio/sysvad/PhoneAudioSample/speakerhstopo.cpp
+++ b/audio/sysvad/PhoneAudioSample/speakerhstopo.cpp
@@ -216,6 +216,7 @@ Return Value:
return ntStatus;
}
+
//=============================================================================
NTSTATUS
PropertyHandler_SpeakerHsTopoFilter
diff --git a/audio/sysvad/PhoneAudioSample/speakerhstoptable.h b/audio/sysvad/PhoneAudioSample/speakerhstoptable.h
index 15d2e86c..adb941ff 100644
--- a/audio/sysvad/PhoneAudioSample/speakerhstoptable.h
+++ b/audio/sysvad/PhoneAudioSample/speakerhstoptable.h
@@ -15,6 +15,8 @@ Abstract:
#ifndef _SYSVAD_SPEAKERHSTOPTABLE_H_
#define _SYSVAD_SPEAKERHSTOPTABLE_H_
+#include <mintopo.h>
+
//=============================================================================
static
KSDATARANGE SpeakerHsTopoPinDataRangesBridge[] =
@@ -93,7 +95,6 @@ KSJACK_DESCRIPTION SpeakerHsJackDesc =
eGenLocPrimaryBox,
ePortConnJack,
FALSE // NOTE: For convenience, wired headset jacks will be "unplugged" at boot.
- // However, we need to introduce a test hook to toggle jack state of this and other endpoints.
};
//=============================================================================
@@ -132,7 +133,17 @@ PCPROPERTY_ITEM PropertiesSpeakerHsTopoFilter[] =
}
};
-DEFINE_PCAUTOMATION_TABLE_PROP(AutomationSpeakerHsTopoFilter, PropertiesSpeakerHsTopoFilter);
+static PCEVENT_ITEM SpeakerHsJackInfoChangeEvent[] =
+{
+ {
+ &KSEVENTSETID_PinCapsChange, // Something changed
+ KSEVENT_PINCAPS_JACKINFOCHANGE, // Jack Info Changes
+ KSEVENT_TYPE_ENABLE | KSEVENT_TYPE_BASICSUPPORT,
+ CMiniportTopology_EventHandler_JackState
+ }
+};
+
+DEFINE_PCAUTOMATION_TABLE_PROP_EVENT(AutomationSpeakerHsTopoFilter, PropertiesSpeakerHsTopoFilter, SpeakerHsJackInfoChangeEvent);
//=============================================================================
static
diff --git a/audio/sysvad/PhoneAudioSample/speakerhswavtable.h b/audio/sysvad/PhoneAudioSample/speakerhswavtable.h
index d1103e63..9cd103ef 100644
--- a/audio/sysvad/PhoneAudioSample/speakerhswavtable.h
+++ b/audio/sysvad/PhoneAudioSample/speakerhswavtable.h
@@ -32,11 +32,11 @@ Abstract:
#define SPEAKERHS_OFFLOAD_MIN_SAMPLE_RATE 44100 // Min Sample Rate
#define SPEAKERHS_OFFLOAD_MAX_SAMPLE_RATE 48000 // Max Sample Rate
-#define SPEAKERHS_LOOPBACK_MAX_CHANNELS 2 // Max Channels.
-#define SPEAKERHS_LOOPBACK_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
-#define SPEAKERHS_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define SPEAKERHS_LOOPBACK_MIN_SAMPLE_RATE 24000 // Min Sample Rate
-#define SPEAKERHS_LOOPBACK_MAX_SAMPLE_RATE 48000 // Max Sample Rate
+#define SPEAKERHS_LOOPBACK_MAX_CHANNELS SPEAKERHS_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define SPEAKERHS_LOOPBACK_MIN_BITS_PER_SAMPLE SPEAKERHS_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define SPEAKERHS_LOOPBACK_MAX_BITS_PER_SAMPLE SPEAKERHS_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define SPEAKERHS_LOOPBACK_MIN_SAMPLE_RATE SPEAKERHS_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define SPEAKERHS_LOOPBACK_MAX_SAMPLE_RATE SPEAKERHS_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define SPEAKERHS_DOLBY_DIGITAL_MAX_CHANNELS 2 // Max Channels.
#define SPEAKERHS_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
@@ -47,7 +47,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define SPEAKERHS_MAX_INPUT_SYSTEM_STREAMS 2 // Raw + Default streams
+#define SPEAKERHS_MAX_INPUT_SYSTEM_STREAMS 6
#define SPEAKERHS_MAX_INPUT_OFFLOAD_STREAMS MAX_INPUT_OFFLOAD_STREAMS
#define SPEAKERHS_MAX_OUTPUT_LOOPBACK_STREAMS MAX_OUTPUT_LOOPBACK_STREAMS
@@ -392,111 +392,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpeakerHsOffloadPinSupportedDeviceFormats[] =
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpeakerHsLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 24000,
- 96000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 32000,
- 128000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE)-sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 2
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 44100,
- 176400,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 3
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 48000,
- 192000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -565,8 +460,8 @@ PIN_DEVICE_FORMATS_AND_MODES SpeakerHsPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- SpeakerHsLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(SpeakerHsLoopbackPinSupportedDeviceFormats),
+ SpeakerHsHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(SpeakerHsHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/README.md b/audio/sysvad/README.md
index ffbeab12..bb553998 100644
--- a/audio/sysvad/README.md
+++ b/audio/sysvad/README.md
@@ -1,15 +1,18 @@
-SYSVAD Audio Device Driver Sample
+Slate Virtual Audio Device Driver Sample
========================================
-The SYSVAD audio device driver sample shows how to develop a WDM audio driver that exposes support for multiple audio devices.
+The Microsoft Slate Virtual Audio Device Driver (SYSVAD) shows how to develop a WDM audio driver that exposes support for multiple audio devices.
Some of these audio devices are embedded in the system (for example, speakers, microphone arrays) while others are pluggable (like headphones, speakers, microphones, Bluetooth headsets etc.). The driver uses WaveRT and audio offloading for rendering devices. The driver uses a "virtual audio device" instead of an actual hardware-based adapter, and highlights the different aspects of the audio offloading WDM audio driver architecture.
Driver developers can use the framework in this sample to provide support for various audio devices without concern for hardware dependencies. The framework includes implementations of the following interfaces:
-- The *CAdapterCommon* interface gives the miniports access to virtual mixer hardware. It also implements the **IAdapterPowerManagement** interface.
+- The CAdapterCommon interface gives the miniports access to virtual mixer hardware. It also implements the **IAdapterPowerManagement** interface.
+
+- The CMiniportTopologyMSVAD interface is the base class for all sample topologies. It has very basic common functions. In addition, this class contains common topology property handlers.
+
+The following table shows the features that are implemented in the various subdirectories of this sample.
-- The *CMiniportTopologySYSVAD* interface is the base class for all sample topologies. It has very basic common functions. In addition, this class contains common topology property handlers.
For more information about the Windows audio engine, see [Exposing Hardware-Offloaded Audio Processing in Windows](http://msdn.microsoft.com/en-us/windows/hardware/br259116), and note that audio hardware that is offload-capable replicates the architecture that is presented in the diagram shown in the topic.
@@ -17,7 +20,7 @@ For more information about the Windows audio engine, see [Exposing Hardware-Offl
Build the sample
----------------
-If you simply want to Build this sample driver and don't intend to run or test it, then you do not need a target computer (also called a test computer). If, however, you would like to deploy, run and test this sample driver, then you need a second computer that will server as your target computer. Instructions are provided in the **Run the sample** section to show you how to set up the target computer.
+If you simply want to Build this sample driver and don't intend to run or test it, then you do not need a target computer (also called a test computer). If, however, you would like to deploy, run and test this sample driver, then you need a second computer that will server as your target computer. Instructions are provided in the **Run the sample** section to show you how to set up the target computer - also referred to as *provisioning* a target computer.
Perform the following steps to build this sample driver.
@@ -29,7 +32,7 @@ In Visual Studio locate the Solution Explorer. (If this is not already open, cho
**2. Set the sample's configuration and platform**
-In Solution Explorer, right-click **Solution 'sysvad' (7 projects)**, and choose **Configuration Manager**. Make sure that the configuration and platform settings are the same for the four projects. By default, the configuration is set to **Debug**, and the platform is set to **Win32** for all the projects. If you make any configuration and/or platform changes for one project, you must make the same changes for all of the other projects.
+In Solution Explorer, right-click **Solution 'sysvad' (4 projects)**, and choose **Configuration Manager**. Make sure that the configuration and platform settings are the same for the four projects. By default, the configuration is set to **Debug**, and the platform is set to **Win32** for all the projects. If you make any configuration and/or platform changes for one project, you must make the same changes for the remaining three projects.
**3. Build the sample using Visual Studio**
@@ -43,27 +46,57 @@ In the folder, the location of the driver package varies depending on the config
The package should contain these files:
-File | Description
+File | Description
-----|------------
-PropPageExt.dll | A sample driver extension for a property page.
-TabletAudioSample.sys | The tablet (PC) sample driver file.
-PhoneAudioSample.sys | The tablet (PC) sample driver file.
-SwapAPO.dll | A sample driver extension for a UI to manage APOs.
-KeywordDetectorContosoAdapter.dll| A sample keyword detector that is used with voice activation.
-
-Locate the inf file for the platform that you want to work with. For example tabletaudiosample.inf and copy it to the same *package* folder.
+PropPageExt.dll | A sample driver extension for a property page.
+SlateAudioSample.sys | The driver file.
+SwapAPO.dll | A sample driver extension for a UI to manage APOs.
+sysvad.cat | A signed catalog file, which serves as the signature for the entire package.
+sysvad.inf | An information (INF) file that contains information needed to install the driver.
+WdfCoinstaller01011.dll | The coinstaller for version 1.xx of KMDF.
Run the sample
--------------
The computer where you install the driver is called the *target computer* or the *test computer*. Typically this is a separate computer from the computer on which you develop and build the driver package. The computer where you develop and build the driver is called the *host computer*.
-The process of moving the driver package to the target computer and installing the driver is called *deploying* the driver. You can deploy the sample driver, SysvadAudioSample, automatically or manually.
+The process of moving the driver package to the target computer and installing the driver is called *deploying* the driver. You can deploy the sample driver, SlateAudioSample, automatically or manually.
+
+### Automatic deployment
+
+Before you automatically deploy a driver, you must provision the target computer. Verify that the target computer has an ethernet cable connecting it to your local network, and that your host and target computers can ping each other. Then perform the following steps to prepare your host and target computers.
+
+**1. Provision the target computer**
+
+On the target computer install the latest [Windows Driver Kit](http://msdn.microsoft.com/en-us/windows/hardware/gg454513.aspx) (WDK), and then when the installation is completed, navigate to the following folder:
+
+\\Program Files (x86)\\Windows Kits\\10\\Remote\\<*architecture*>\\
+
+For example, if your target computer is an x64 machine, you would navigate to:
+
+\\Program Files (x86)\\Windows Kits\\10\\Remote\\x64\\
+
+Double-click the *WDK Test Target Setup x64-x64\_en-us.msi* file to run it. This program prepares the target computer for provisioning.
+On the host computer, in Visual Studio click **Driver** \> **Test** \> **Configure Computers...**, and then click **Add a new computer**.
+
+Type the name of the target computer, select **Provision computer and choose debugger settings**, and click **Next**. In the next window, verify that the **Connection Type** is set to Network. Leave the other (default) settings as they are, and click **Next**. For more information about the settings in this window, see [Getting Set Up for Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/hh450944(v=vs.85).aspx).
+
+**2. Prepare the host computer**
+
+If you haven't already done so, then preform the steps in the **Build the sample** section, to build the sample driver.
+
+In Visual Studio, in Solution Explorer, right click **package** (lower case), and choose **Properties**. Navigate to **Configuration Properties** \> **Driver Install** \> **Deployment**.
+
+Check , **Enable deployment** and check **Remove previous driver versions before deployment**. For **Target Computer Name**, select the name of a target computer that you provisioned previously. Select **Hardware ID Driver Update**, and enter *\*SYSVAD\_SLATEAUDIO* for the hardware ID. Click **OK**.
+
+On the **Build** menu, choose **Deploy Package** or **Build Solution**. This will deploy the sample driver to your target computer.
+
+On the target computer, perform the steps in the **Test the sample** section to test the sample driver.
### Manual deployment
-Before you manually deploy a driver, you must prepare the target computer by turning on test signing. You also need to locate the DevCon tool in your WDK installation. After that you're ready to install and test driver sample.
+Before you manually deploy a driver, you must prepare the target computer by turning on test signing and by installing a certificate. You also need to locate the DevCon tool in your WDK installation. After that you're ready to run the built driver sample.
**1. Prepare the target computer**
@@ -79,37 +112,35 @@ Copy *devcon.exe* to a folder on the target computer where it is easier to find.
Create a folder on the target for the built driver package (for example, *C:\\SysvadDriver*). Copy all the files from the built driver package on the host computer and save them to the folder that you created on the target computer.
-If you need more detailed instructions for setting up the target computer, see [Preparing a Computer for Manual Driver Deployment](http://msdn.microsoft.com/library/windows/hardware/dn265571.aspx).
+Create a folder on the target computer for the certificate created by the build process. For example, you could create a folder named *C:\\Certificates* on the target computer, and then copy *package.cer* to it from the host computer. You can find this certificate in the same folder on the host computer, as the *package* folder that contains the built driver files. On the target computer, right-click the certificate file, and click **Install**, then follow the prompts to install the test certificate.
+
+If you need more detailed instructions for setting up the target computer, see [Preparing a Computer for Manual Driver Deployment](http://msdn.microsoft.com/en-us/library/windows/hardware/dn265571(v=vs.85).aspx).
**2. Install the driver**
-The package folder contains the sample drivers and the three driver extension DLL samples. The following instructions show you how to install and test the sample driver. Here's the general syntax for the devcon tool that you will use to install the driver:
+The SlateAudioSample driver package contains a sample driver and 2 driver extension samples. The following instructions show you how to install and test the sample driver. Here's the general syntax for the devcon tool that you will use to install the driver:
**devcon install \<*INF file*>\<*hardware ID*\>**
-The INF file required for installing this driver is *tabletaudiosample.inf*. Here's how to find the hardware ID for installing the *TabletAudioSample.sys* sample: On the target computer, navigate to the folder that contains the files for your driver (for example, *C:\\SysvadDriver*). Then right-click the INF file (*tabletaudiosample.inf*) and open it with Notepad. Use Ctrl+F to find the [HardwareIds] section. Note that there is a comma-separated element at the end of the row. The element after the comma shows the hardware ID. So for this sample, the hardware ID is *Root\sysvad_TabletAudioSample*.
+The INF file required for installing this driver is *sysvad.inf*. Here's how to find the hardware ID for installing the *SlateAudioSample.sys* sample: On the target computer, navigate to the folder that contains the files for your driver (for example, *C:\\SysvadDriver*). Then right-click the INF file (*sysvad.inf*) and open it with Notepad. Use Ctrl+F to find the [MicrosoftDS] section. Note that there is a comma-separated element at the end of the row. The element after the comma shows the hardware ID. So for this sample, the hardware ID is \*SYSVAD\_SLATEAUDIO.
On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter the following command:
-**devcon install tabletaudiosample.inf Root\sysvad_TabletAudioSample**
+**devcon install sysvad.inf \*SYSVAD\_SLATEAUDIO**
+
+If you get an error message about *devcon* not being recognized, try adding the path to the *devcon* tool. For example, if you copied it to a folder called *C:\\Tools*, then try using the following command:
-If the driver doesn't install, view this log file for additional information using notepad:
-**%windir%\inf\setupapi.dev.log**
+**c:\\tools\\devcon install sysvad.inf \*SYSVAD\_SLATEAUDIO**
For more detailed instructions, see [Configuring a Computer for Driver Deployment, Testing, and Debugging](http://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspx).
After successfully installing the sample driver, you're now ready to test it.
-### Automatic deployment
-
-For information on automatic deployment, see [Provision a computer for driver deployment and testing](https://msdn.microsoft.com/library/windows/hardware/dn745909.aspx).
-
### Test the driver
-On the target computer, in a Command Prompt window, enter **devmgmt** to open Device Manager. In Device Manager, on the **View** menu, choose **Devices by type**. In the device tree, locate *Microsoft Virtual Audio Device (WDM) - Tablet Sample*. This is typically under the **Sound, video and game controllers** node.
+On the target computer, in a Command Prompt window, enter **devmgmt** to open Device Manager. In Device Manager, on the **View** menu, choose **Devices by type**. In the device tree, locate *Microsoft Virtual Audio Device (WDM) - Slate Sample*. This is typically under the **Sound, video and game controllers** node.
-On the target computer, open Control Panel and navigate to **Hardware and Sound** \> **Manage audio devices**. In the Sound dialog box, select the speaker icon labeled as *Microsoft Virtual Audio Device (WDM) - Tablet Sample*, then click **Set Default**, but do not click **OK**. This will keep the Sound dialog box open.
+On the target computer, open Control Panel and navigate to **Hardware and Sound** \> **Manage audio devices**. In the Sound dialog box, select the speaker icon labeled as *Microsoft Virtual Audio Device (WDM) - Slate Sample*, then click **Set Default**, but do not click **OK**. This will keep the Sound dialog box open.
-Locate an MP3 or other audio file on the target computer and double-click to play it. Then in the Sound dialog box, verify that there is activity in the volume level indicator associated with the *Microsoft Virtual Audio Device (WDM) - Tablet Sample* driver.
+Locate an MP3 or other audio file on the target computer and double-click to play it. Then in the Sound dialog box, verify that there is activity in the volume level indicator associated with the *Microsoft Virtual Audio Device (WDM) - Slate Sample* driver.
-You can attach a debugger and set breakpoints to step through the driver code as it runs. For more information, see [Getting Started with Windows Debugging](https://msdn.microsoft.com/library/windows/hardware/mt219729.aspx).
diff --git a/audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj b/audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj
deleted file mode 100644
index 9f79895e..00000000
--- a/audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj
+++ /dev/null
@@ -1,242 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{2A1B7375-D9CB-4067-AEDE-180D75B5934D}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <SupportsPackaging>false</SupportsPackaging>
- <RequiresPackageProject>true</RequiresPackageProject>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{0ADE9CDB-E126-4F11-8496-335EA4A1B368}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <EmbedManifest>false</EmbedManifest>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <EmbedManifest>false</EmbedManifest>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <EmbedManifest>false</EmbedManifest>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <EmbedManifest>false</EmbedManifest>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>SwapAPO</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>SwapAPO</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>SwapAPO</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>SwapAPO</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;AudioBaseProcessingObjectV140.lib;audiomediatypecrt.lib;AudioEng.lib</AdditionalDependencies>
- <ModuleDefinitionFile>SwapAPODll.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;AudioBaseProcessingObjectV140.lib;audiomediatypecrt.lib;AudioEng.lib</AdditionalDependencies>
- <ModuleDefinitionFile>SwapAPODll.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;AudioBaseProcessingObjectV140.lib;audiomediatypecrt.lib;AudioEng.lib</AdditionalDependencies>
- <ModuleDefinitionFile>SwapAPODll.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WINDLL;_USRDLL;UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..\inc;..\..\</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);Kernel32.lib;ole32.lib;oleaut32.lib;advapi32.lib;user32.lib;uuid.lib;AudioBaseProcessingObjectV140.lib;audiomediatypecrt.lib;AudioEng.lib</AdditionalDependencies>
- <ModuleDefinitionFile>SwapAPODll.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="Swap.cpp" />
- <ClCompile Include="SwapAPODll.cpp" />
- <ClCompile Include="SwapAPOMFX.cpp" />
- <ClCompile Include="SwapAPOSFX.cpp" />
- <Midl Include="SwapAPODll.idl" />
- <Midl Include="SwapAPOInterface.idl" />
- <ResourceCompile Include="SwapAPODll.rc" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj.Filters b/audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj.Filters
deleted file mode 100644
index 10ad06cd..00000000
--- a/audio/sysvad/SwapAPO/APO/SwapAPO.vcxproj.Filters
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{3D2AE2AB-4A59-4C45-8B37-DF9973DE29F4}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{D2776F29-9EAD-4F9A-B1DB-827FEBAE9166}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{AC7F517D-37C5-4622-9D43-DFFD0B196012}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="Swap.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="SwapAPODll.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="SwapAPOMFX.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="SwapAPOSFX.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <Midl Include="SwapAPODll.idl">
- <Filter>Source Files</Filter>
- </Midl>
- <Midl Include="SwapAPOInterface.idl">
- <Filter>Source Files</Filter>
- </Midl>
- <None Include="SwapAPODll.def">
- <Filter>Source Files</Filter>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="SwapAPODll.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj b/audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj
deleted file mode 100644
index 61fd0d38..00000000
--- a/audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj
+++ /dev/null
@@ -1,275 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{76DBA957-38F6-47ED-A5C0-AD587D08FF12}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <SupportsPackaging>false</SupportsPackaging>
- <RequiresPackageProject>true</RequiresPackageProject>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{3D348571-DCCC-4D1B-B986-C7B51C270E20}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType />
- <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>PropPageExt</TargetName>
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>PropPageExt</TargetName>
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>PropPageExt</TargetName>
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>PropPageExt</TargetName>
- <UseOfAtl>Dynamic</UseOfAtl>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <ExceptionHandling>Sync</ExceptionHandling>
- </ClCompile>
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <ExceptionHandling>Sync</ExceptionHandling>
- </ClCompile>
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <ExceptionHandling>Sync</ExceptionHandling>
- </ClCompile>
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <ExceptionHandling>Sync</ExceptionHandling>
- </ClCompile>
- <Link>
- <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol>
- <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <AdditionalOptions>%(AdditionalOptions) /wd4127</AdditionalOptions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;kernel32.lib;user32.lib;ole32.lib;oleaut32.lib;uuid.lib;shlwapi.lib;comctl32.lib;rpcrt4.lib</AdditionalDependencies>
- <ModuleDefinitionFile>PropPageExt.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <AdditionalOptions>%(AdditionalOptions) /wd4127</AdditionalOptions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;kernel32.lib;user32.lib;ole32.lib;oleaut32.lib;uuid.lib;shlwapi.lib;comctl32.lib;rpcrt4.lib</AdditionalDependencies>
- <ModuleDefinitionFile>PropPageExt.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <AdditionalOptions>%(AdditionalOptions) /wd4127</AdditionalOptions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;kernel32.lib;user32.lib;ole32.lib;oleaut32.lib;uuid.lib;shlwapi.lib;comctl32.lib;rpcrt4.lib</AdditionalDependencies>
- <ModuleDefinitionFile>PropPageExt.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <AdditionalOptions>%(AdditionalOptions) /wd4127</AdditionalOptions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);UNICODE;_UNICODE</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\Inc;$(DDK_INC_PATH)</AdditionalIncludeDirectories>
- </ResourceCompile>
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);advapi32.lib;kernel32.lib;user32.lib;ole32.lib;oleaut32.lib;uuid.lib;shlwapi.lib;comctl32.lib;rpcrt4.lib</AdditionalDependencies>
- <ModuleDefinitionFile>PropPageExt.def</ModuleDefinitionFile>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="AdvEndpointPropPage.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Use</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <ClCompile Include="CplExt.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Use</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <ClCompile Include="Parts.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Use</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <ClCompile Include="stdafxsrc.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Create</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <ClCompile Include="SwapPropPage.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Use</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <ClCompile Include="TopologyExaminers.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Use</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <ClCompile Include="UIWidgets.cpp">
- <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreCompiledHeaderFile>stdafx.h</PreCompiledHeaderFile>
- <PreCompiledHeader>Use</PreCompiledHeader>
- <PreCompiledHeaderOutputFile>$(IntDir)\stdafx.pch</PreCompiledHeaderOutputFile>
- </ClCompile>
- <Midl Include="CplExt.idl" />
- <ResourceCompile Include="CplExt.rc" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj.Filters b/audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj.Filters
deleted file mode 100644
index bf37ff4d..00000000
--- a/audio/sysvad/SwapAPO/PropPageExtensions/PropPageExt.vcxproj.Filters
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{531ADE68-0355-4EB7-BA48-144A9A3C8B98}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{DFFDE202-63D4-4633-A6F6-661E34DAE36E}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{9592BEFC-255E-4BD1-B21A-3D100EE35A6A}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="AdvEndpointPropPage.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="CplExt.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="Parts.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="stdafxsrc.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="SwapPropPage.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="TopologyExaminers.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="UIWidgets.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <Midl Include="CplExt.idl">
- <Filter>Source Files</Filter>
- </Midl>
- <None Include="PropPageExt.def">
- <Filter>Source Files</Filter>
- </None>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="CplExt.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/SwapAPO/PropPageExtensions/stdafxsrc.cpp b/audio/sysvad/SwapAPO/PropPageExtensions/stdafxsrc.cpp
deleted file mode 100644
index 1577c4e3..00000000
--- a/audio/sysvad/SwapAPO/PropPageExtensions/stdafxsrc.cpp
+++ /dev/null
@@ -1 +0,0 @@
-#include "stdafx.h" \ No newline at end of file
diff --git a/audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj b/audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj
deleted file mode 100644
index b2723d08..00000000
--- a/audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj
+++ /dev/null
@@ -1,295 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{29A5DD25-AB56-4DEE-96AB-21EC2926A300}</ProjectGuid>
- <RootNamespace>$(MSBuildProjectName)</RootNamespace>
- <KMDF_VERSION_MAJOR>1</KMDF_VERSION_MAJOR>
- <SupportsPackaging>false</SupportsPackaging>
- <RequiresPackageProject>true</RequiresPackageProject>
- <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
- <Platform Condition="'$(Platform)' == ''">Win32</Platform>
- <SampleGuid>{D75C2887-9174-43D6-993C-B20E6F396D03}</SampleGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>False</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetVersion>Windows10</TargetVersion>
- <UseDebugLibraries>True</UseDebugLibraries>
- <DriverTargetPlatform>Desktop</DriverTargetPlatform>
- <DriverType>KMDF</DriverType>
- <PlatformToolset>WindowsKernelModeDriver10.0</PlatformToolset>
- <ConfigurationType>Driver</ConfigurationType>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <PropertyGroup>
- <OutDir>$(IntDir)</OutDir>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
- </ImportGroup>
- <ItemGroup Label="WrappedTaskItems" />
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\portcls.lib;$(DDK_LIB_PATH)\stdunk.lib;$(DDK_LIB_PATH)\libcntpr.lib</AdditionalDependencies>
- </Link>
- <ResourceCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ResourceCompile>
- <ClCompile>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <TreatWarningAsError>true</TreatWarningAsError>
- <WarningLevel>Level4</WarningLevel>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </ClCompile>
- <Midl>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(DDK_INC_PATH);..</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN32;UNICODE;_UNICODE;PC_IMPLEMENTATION</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);DEBUG_LEVEL=DEBUGLVL_TERSE</PreprocessorDefinitions>
- </Midl>
- </ItemDefinitionGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <TargetName>TabletAudioSample</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <TargetName>TabletAudioSample</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <TargetName>TabletAudioSample</TargetName>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <TargetName>TabletAudioSample</TargetName>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Link>
- <AdditionalDependencies>%(AdditionalDependencies);.\..\EndpointsCommon\$(IntDir)\EndpointsCommon.lib</AdditionalDependencies>
- </Link>
- <ClCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- <ExceptionHandling>
- </ExceptionHandling>
- </ClCompile>
- <Midl>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </Midl>
- <ResourceCompile>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_WAVERT_;SYSVAD_BTH_BYPASS</PreprocessorDefinitions>
- <PreprocessorDefinitions>%(PreprocessorDefinitions);_USE_SingleComponentMultiFxStates</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\EndpointsCommon</AdditionalIncludeDirectories>
- </ResourceCompile>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\adapter.cpp" />
- <ClCompile Include="..\basetopo.cpp" />
- <ClCompile Include="..\common.cpp" />
- <ClCompile Include="..\hw.cpp" />
- <ClCompile Include="..\kshelper.cpp" />
- <ClCompile Include="..\savedata.cpp" />
- <ClCompile Include="..\tonegenerator.cpp" />
- <ClCompile Include="hdmitopo.cpp" />
- <ClCompile Include="micintopo.cpp" />
- <ClCompile Include="spdiftopo.cpp" />
- <ResourceCompile Include="..\sysvad.rc" />
- </ItemGroup>
- <ItemGroup>
- <Inf Exclude="@(Inf)" Include="*.inf" />
- <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" />
- </ItemGroup>
- <ItemGroup>
- <None Exclude="@(None)" Include="*.txt;*.htm;*.html" />
- <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" />
- <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj.Filters b/audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj.Filters
deleted file mode 100644
index 14b93639..00000000
--- a/audio/sysvad/TabletAudioSample/TabletAudioSample.vcxproj.Filters
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions>
- <UniqueIdentifier>{D13BC5E0-7771-4687-83A0-245941715858}</UniqueIdentifier>
- </Filter>
- <Filter Include="Header Files">
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- <UniqueIdentifier>{E07941ED-CD6E-4BAE-A9DE-5B7A970BA57B}</UniqueIdentifier>
- </Filter>
- <Filter Include="Resource Files">
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions>
- <UniqueIdentifier>{D9A3BF33-CD62-4610-BA9D-5137A76BD2C9}</UniqueIdentifier>
- </Filter>
- <Filter Include="Driver Files">
- <Extensions>inf;inv;inx;mof;mc;</Extensions>
- <UniqueIdentifier>{D7BA1DD3-90E0-45B3-9C70-34C9A6F43FEC}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\adapter.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\basetopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\common.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\hw.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\kshelper.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\savedata.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\tonegenerator.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="hdmitopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="micintopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="spdiftopo.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="..\sysvad.rc">
- <Filter>Resource Files</Filter>
- </ResourceCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/audio/sysvad/TabletAudioSample/hdmiwavtable.h b/audio/sysvad/TabletAudioSample/hdmiwavtable.h
index a5f63c62..7d786a64 100644
--- a/audio/sysvad/TabletAudioSample/hdmiwavtable.h
+++ b/audio/sysvad/TabletAudioSample/hdmiwavtable.h
@@ -32,11 +32,11 @@ Abstract:
#define HDMI_HOST_MIN_SAMPLE_RATE 44100 // Min Sample Rate
#define HDMI_HOST_MAX_SAMPLE_RATE 96000 // Max Sample Rate
-#define HDMI_LOOPBACK_MAX_CHANNELS 2 // Max Channels.
-#define HDMI_LOOPBACK_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
-#define HDMI_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define HDMI_LOOPBACK_MIN_SAMPLE_RATE 44100 // Min Sample Rate
-#define HDMI_LOOPBACK_MAX_SAMPLE_RATE 48000 // Max Sample Rate
+#define HDMI_LOOPBACK_MAX_CHANNELS HDMI_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define HDMI_LOOPBACK_MIN_BITS_PER_SAMPLE HDMI_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define HDMI_LOOPBACK_MAX_BITS_PER_SAMPLE HDMI_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define HDMI_LOOPBACK_MIN_SAMPLE_RATE HDMI_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define HDMI_LOOPBACK_MAX_SAMPLE_RATE HDMI_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define HDMI_DOLBY_DIGITAL_MAX_CHANNELS 2 // Max Channels.
#define HDMI_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
@@ -47,7 +47,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define HDMI_MAX_INPUT_SYSTEM_STREAMS 2 // Raw + Default streams
+#define HDMI_MAX_INPUT_SYSTEM_STREAMS 2
#define HDMI_MAX_OUTPUT_LOOPBACK_STREAMS MAX_OUTPUT_LOOPBACK_STREAMS
@@ -207,61 +207,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE HdmiHostPinSupportedDeviceFormats[] =
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE HdmiLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 44100,
- 176400,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 48000,
- 192000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -294,8 +239,8 @@ PIN_DEVICE_FORMATS_AND_MODES HdmiPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- HdmiLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(HdmiLoopbackPinSupportedDeviceFormats),
+ HdmiHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(HdmiHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/TabletAudioSample/micarray3wavtable.h b/audio/sysvad/TabletAudioSample/micarray3wavtable.h
index 34e3df18..ba2b0569 100644
--- a/audio/sysvad/TabletAudioSample/micarray3wavtable.h
+++ b/audio/sysvad/TabletAudioSample/micarray3wavtable.h
@@ -28,7 +28,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define MICARRAY3_MAX_INPUT_STREAMS 2 // Raw + Default streams
+#define MICARRAY3_MAX_INPUT_STREAMS 2
//=============================================================================
static
@@ -309,11 +309,21 @@ KSDATARANGE_AUDIO MicArray3PinDataRangesProcessedStream[] =
},
};
+// if MicArray3PinDataRangesProcessedStream is changed, we MUST update MicArray3PinDataRangePointersStream too!
+C_ASSERT(SIZEOF_ARRAY(MicArray3PinDataRangesProcessedStream) == 4);
+
static
PKSDATARANGE MicArray3PinDataRangePointersStream[] =
{
+ // All supported device formats should be listed in the DataRange.
PKSDATARANGE(&MicArray3PinDataRangesProcessedStream[0]),
PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArray3PinDataRangesProcessedStream[1]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArray3PinDataRangesProcessedStream[2]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
+ PKSDATARANGE(&MicArray3PinDataRangesProcessedStream[3]),
+ PKSDATARANGE(&PinDataRangeAttributeList),
PKSDATARANGE(&MicArray3PinDataRangesRawStream[0]),
PKSDATARANGE(&PinDataRangeAttributeList),
};
diff --git a/audio/sysvad/TabletAudioSample/micinwavtable.h b/audio/sysvad/TabletAudioSample/micinwavtable.h
index 42598c4e..c22ac94c 100644
--- a/audio/sysvad/TabletAudioSample/micinwavtable.h
+++ b/audio/sysvad/TabletAudioSample/micinwavtable.h
@@ -27,7 +27,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define MICIN_MAX_INPUT_STREAMS 2 // Raw + Default streams
+#define MICIN_MAX_INPUT_STREAMS 4
//=============================================================================
static
diff --git a/audio/sysvad/TabletAudioSample/minipairs.h b/audio/sysvad/TabletAudioSample/minipairs.h
index f35398d4..320aed6f 100644
--- a/audio/sysvad/TabletAudioSample/minipairs.h
+++ b/audio/sysvad/TabletAudioSample/minipairs.h
@@ -71,14 +71,14 @@ CreateMiniportTopologySYSVAD
//
static struct
{
- KSAUDIO_PACKETSIZE_CONSTRAINTS TransportPacketConstraints;
+ KSAUDIO_PACKETSIZE_CONSTRAINTS2 TransportPacketConstraints;
KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT AdditionalProcessingConstraints[1];
} SysvadWaveRtPacketSizeConstraintsRender =
{
{
- 1 * HNSTIME_PER_MILLISECOND, // 1 ms minimum processing interval
- FILE_256_BYTE_ALIGNMENT, // 256 byte packet size alignment
- 0, // reserved
+ 2 * HNSTIME_PER_MILLISECOND, // 2 ms minimum processing interval
+ FILE_BYTE_ALIGNMENT, // 1 byte packet size alignment
+ 0, // no maximum packet size constraint
2, // 2 processing constraints follow
{
STATIC_AUDIO_SIGNALPROCESSINGMODE_DEFAULT, // constraint for default processing mode
@@ -98,7 +98,7 @@ static struct
const SYSVAD_DEVPROPERTY SysvadWaveFilterInterfacePropertiesRender[] =
{
{
- &DEVPKEY_KsAudio_PacketSize_Constraints, // Key
+ &DEVPKEY_KsAudio_PacketSize_Constraints2, // Key
DEVPROP_TYPE_BINARY, // Type
sizeof(SysvadWaveRtPacketSizeConstraintsRender), // BufferSize
&SysvadWaveRtPacketSizeConstraintsRender, // Buffer
@@ -107,13 +107,13 @@ const SYSVAD_DEVPROPERTY SysvadWaveFilterInterfacePropertiesRender[] =
static struct
{
- KSAUDIO_PACKETSIZE_CONSTRAINTS TransportPacketConstraints;
+ KSAUDIO_PACKETSIZE_CONSTRAINTS2 TransportPacketConstraints;
} SysvadWaveRtPacketSizeConstraintsCapture =
{
{
- 0, // no minimum processing interval
- FILE_128_BYTE_ALIGNMENT, // 128 byte packet size alignment
- 0, // reserved
+ 2 * HNSTIME_PER_MILLISECOND, // 2 ms minimum processing interval
+ FILE_BYTE_ALIGNMENT, // 1 byte packet size alignment
+ 0x100000, // 1 MB maximum packet size
1, // 1 processing constraint follows
{
STATIC_AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS, // constraint for communications processing mode
@@ -126,7 +126,7 @@ static struct
const SYSVAD_DEVPROPERTY SysvadWaveFilterInterfacePropertiesCapture[] =
{
{
- &DEVPKEY_KsAudio_PacketSize_Constraints, // Key
+ &DEVPKEY_KsAudio_PacketSize_Constraints2, // Key
DEVPROP_TYPE_BINARY, // Type
sizeof(SysvadWaveRtPacketSizeConstraintsCapture), // BufferSize
&SysvadWaveRtPacketSizeConstraintsCapture, // Buffer
diff --git a/audio/sysvad/TabletAudioSample/spdifwavtable.h b/audio/sysvad/TabletAudioSample/spdifwavtable.h
index 963822a8..36b0e903 100644
--- a/audio/sysvad/TabletAudioSample/spdifwavtable.h
+++ b/audio/sysvad/TabletAudioSample/spdifwavtable.h
@@ -35,11 +35,11 @@ Abstract:
#define SPDIF_OFFLOAD_MIN_SAMPLE_RATE 44100 // Min Sample Rate
#define SPDIF_OFFLOAD_MAX_SAMPLE_RATE 96000 // Max Sample Rate
-#define SPDIF_LOOPBACK_MAX_CHANNELS 2 // Max Channels.
-#define SPDIF_LOOPBACK_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
-#define SPDIF_LOOPBACK_MAX_BITS_PER_SAMPLE 16 // Max Bits Per Sample
-#define SPDIF_LOOPBACK_MIN_SAMPLE_RATE 44100 // Min Sample Rate
-#define SPDIF_LOOPBACK_MAX_SAMPLE_RATE 48000 // Max Sample Rate
+#define SPDIF_LOOPBACK_MAX_CHANNELS SPDIF_HOST_MAX_CHANNELS // Must be equal to host pin's Max Channels.
+#define SPDIF_LOOPBACK_MIN_BITS_PER_SAMPLE SPDIF_HOST_MIN_BITS_PER_SAMPLE // Must be equal to host pin's Min Bits Per Sample
+#define SPDIF_LOOPBACK_MAX_BITS_PER_SAMPLE SPDIF_HOST_MAX_BITS_PER_SAMPLE // Must be equal to host pin's Max Bits Per Sample
+#define SPDIF_LOOPBACK_MIN_SAMPLE_RATE SPDIF_HOST_MIN_SAMPLE_RATE // Must be equal to host pin's Min Sample Rate
+#define SPDIF_LOOPBACK_MAX_SAMPLE_RATE SPDIF_HOST_MAX_SAMPLE_RATE // Must be equal to host pin's Max Sample Rate
#define SPDIF_DOLBY_DIGITAL_MAX_CHANNELS 2 // Max Channels.
#define SPDIF_DOLBY_DIGITAL_MIN_BITS_PER_SAMPLE 16 // Min Bits Per Sample
@@ -50,7 +50,7 @@ Abstract:
//
// Max # of pin instances.
//
-#define SPDIF_MAX_INPUT_SYSTEM_STREAMS 2 // Raw + Default streams
+#define SPDIF_MAX_INPUT_SYSTEM_STREAMS 2
#define SPDIF_MAX_INPUT_OFFLOAD_STREAMS MAX_INPUT_OFFLOAD_STREAMS
#define SPDIF_MAX_OUTPUT_LOOPBACK_STREAMS MAX_OUTPUT_LOOPBACK_STREAMS
@@ -421,61 +421,6 @@ KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpdifOffloadPinSupportedDeviceFormats[] =
}
};
-static
-KSDATAFORMAT_WAVEFORMATEXTENSIBLE SpdifLoopbackPinSupportedDeviceFormats[] =
-{
- { // 0
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 44100,
- 176400,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- },
- { // 1
- {
- sizeof(KSDATAFORMAT_WAVEFORMATEXTENSIBLE),
- 0,
- 0,
- 0,
- STATICGUIDOF(KSDATAFORMAT_TYPE_AUDIO),
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM),
- STATICGUIDOF(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
- },
- {
- {
- WAVE_FORMAT_EXTENSIBLE,
- 2,
- 48000,
- 192000,
- 4,
- 16,
- sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX)
- },
- 16,
- KSAUDIO_SPEAKER_STEREO,
- STATICGUIDOF(KSDATAFORMAT_SUBTYPE_PCM)
- }
- }
-};
-
//
// Supported modes (only on streaming pins).
//
@@ -528,8 +473,8 @@ PIN_DEVICE_FORMATS_AND_MODES SpdifPinDeviceFormatsAndModes[] =
},
{
RenderLoopbackPin,
- SpdifLoopbackPinSupportedDeviceFormats,
- SIZEOF_ARRAY(SpdifLoopbackPinSupportedDeviceFormats),
+ SpdifHostPinSupportedDeviceFormats, // Must support all the formats supported by host pin
+ SIZEOF_ARRAY(SpdifHostPinSupportedDeviceFormats),
NULL, // loopback doesn't support modes.
0
},
diff --git a/audio/sysvad/tabletaudiosample.inf b/audio/sysvad/TabletAudioSample/tabletaudiosample.inf
index 04a672c2..0e85d33b 100644
--- a/audio/sysvad/tabletaudiosample.inf
+++ b/audio/sysvad/TabletAudioSample/tabletaudiosample.inf
Binary files differ
diff --git a/audio/sysvad/ToneGenerator.cpp b/audio/sysvad/ToneGenerator.cpp
index 24a85eba..807c50c3 100644
--- a/audio/sysvad/ToneGenerator.cpp
+++ b/audio/sysvad/ToneGenerator.cpp
@@ -18,6 +18,8 @@ Abstract:
const double TONE_AMPLITUDE = 0.5; // Scalar value, should be between 0.0 - 1.0
const double TWO_PI = M_PI * 2;
+extern DWORD g_DisableToneGenerator;
+
//
// Double to short conversion.
//
@@ -131,8 +133,10 @@ void ToneGenerator::GenerateSine
BYTE * buffer;
size_t length;
size_t copyBytes;
-
- if (m_Mute)
+
+ // if muted, or tone generator disabled via registry,
+ // we deliver silence.
+ if (m_Mute || g_DisableToneGenerator)
{
goto ZeroBuffer;
}
diff --git a/audio/sysvad/adapter.cpp b/audio/sysvad/adapter.cpp
index 08e83a45..12e57156 100644
--- a/audio/sysvad/adapter.cpp
+++ b/audio/sysvad/adapter.cpp
@@ -32,6 +32,7 @@ Abstract:
+
typedef void (*fnPcDriverUnload) (PDRIVER_OBJECT);
fnPcDriverUnload gPCDriverUnloadRoutine = NULL;
extern "C" DRIVER_UNLOAD DriverUnload;
@@ -62,7 +63,6 @@ C_ASSERT(sizeof(POHANDLE) == sizeof(PVOID));
#define SYSVAD_DEEPEST_FSTATE_LATENCY_IN_MS SYSVAD_F3_LATENCY_IN_MS
#define SYSVAD_DEEPEST_FSTATE_RESIDENCY_IN_SEC SYSVAD_F3_RESIDENCY_IN_SEC
-
//-----------------------------------------------------------------------------
// PoFx - Single Component - Multi Fx States support.
//-----------------------------------------------------------------------------
@@ -243,7 +243,8 @@ DRIVER_DISPATCH PnpHandler;
// Rendering streams are saved to a file by default. Use the registry value
// DoNotCreateDataFiles (DWORD) > 0 to override this default.
//
-DWORD g_DoNotCreateDataFiles = 0;
+DWORD g_DoNotCreateDataFiles = 0; // default is off.
+DWORD g_DisableToneGenerator = 0; // default is to generate tones.
#ifdef SYSVAD_BTH_BYPASS
@@ -252,7 +253,7 @@ DWORD g_DoNotCreateDataFiles = 0;
// default. Use the registry value DisableBthScoBypass (DWORD) > 0 to override
// this default.
//
-DWORD g_DisableBthScoBypass = 0;
+DWORD g_DisableBthScoBypass = 0; // default is SCO bypass enabled.
#endif // SYSVAD_BTH_BYPASS
//-----------------------------------------------------------------------------
@@ -307,6 +308,7 @@ Environment:
WdfDriverMiniportUnload(WdfGetDriver());
}
+
Done:
return;
}
@@ -340,10 +342,18 @@ Returns:
{
NTSTATUS ntStatus;
UNICODE_STRING parametersPath;
- RTL_QUERY_REGISTRY_TABLE paramTable[4];
-
+ RTL_QUERY_REGISTRY_TABLE paramTable[] = {
+ // QueryRoutine Flags Name EntryContext DefaultType DefaultData DefaultLength
+ { NULL, RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_TYPECHECK, L"DoNotCreateDataFiles", &g_DoNotCreateDataFiles, (REG_DWORD << RTL_QUERY_REGISTRY_TYPECHECK_SHIFT) | REG_DWORD, &g_DoNotCreateDataFiles, sizeof(ULONG)},
+ { NULL, RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_TYPECHECK, L"DisableToneGenerator", &g_DisableToneGenerator, (REG_DWORD << RTL_QUERY_REGISTRY_TYPECHECK_SHIFT) | REG_DWORD, &g_DisableToneGenerator, sizeof(ULONG)},
+#ifdef SYSVAD_BTH_BYPASS
+ { NULL, RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_TYPECHECK, L"DisableBthScoBypass", &g_DisableBthScoBypass, (REG_DWORD << RTL_QUERY_REGISTRY_TYPECHECK_SHIFT) | REG_DWORD, &g_DisableBthScoBypass, sizeof(ULONG)},
+#endif
+ { NULL, 0, NULL, NULL, 0, NULL, 0}
+ };
+
DPF(D_TERSE, ("[GetRegistrySettings]"));
-
+
PAGED_CODE();
RtlInitUnicodeString(&parametersPath, NULL);
@@ -362,29 +372,6 @@ Returns:
RtlAppendUnicodeToString(&parametersPath, RegistryPath->Buffer);
RtlAppendUnicodeToString(&parametersPath, L"\\Parameters");
- RtlZeroMemory(&paramTable[0], sizeof(paramTable));
-
- g_DoNotCreateDataFiles = 0; // default is off.
-
- paramTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
- paramTable[0].Name = L"DoNotCreateDataFiles";
- paramTable[0].EntryContext = &g_DoNotCreateDataFiles;
- paramTable[0].DefaultType = REG_DWORD;
- paramTable[0].DefaultData = &g_DoNotCreateDataFiles;
- paramTable[0].DefaultLength = sizeof(ULONG);
-
-#ifdef SYSVAD_BTH_BYPASS
- g_DisableBthScoBypass = 0; // default is off.
-
- paramTable[1].Flags = RTL_QUERY_REGISTRY_DIRECT;
- paramTable[1].Name = L"DisableBthScoBypass";
- paramTable[1].EntryContext = &g_DisableBthScoBypass;
- paramTable[1].DefaultType = REG_DWORD;
- paramTable[1].DefaultData = &g_DisableBthScoBypass;
- paramTable[1].DefaultLength = sizeof(ULONG);
-#endif // SYSVAD_BTH_BYPASS
-
-
ntStatus = RtlQueryRegistryValues(
RTL_REGISTRY_ABSOLUTE | RTL_REGISTRY_OPTIONAL,
parametersPath.Buffer,
@@ -405,10 +392,11 @@ Returns:
// Dump settings.
//
DPF(D_VERBOSE, ("DoNotCreateDataFiles: %u", g_DoNotCreateDataFiles));
+ DPF(D_VERBOSE, ("DisableToneGenerator: %u", g_DisableToneGenerator));
#ifdef SYSVAD_BTH_BYPASS
DPF(D_VERBOSE, ("DisableBthScoBypass: %u", g_DisableBthScoBypass));
#endif // SYSVAD_BTH_BYPASS
-
+
//
// Cleanup.
//
@@ -452,7 +440,6 @@ Return Value:
WDF_DRIVER_CONFIG config;
DPF(D_TERSE, ("[DriverEntry]"));
-
//
// Get registry configuration.
//
@@ -590,6 +577,7 @@ Return Value:
);
+
return ntStatus;
} // AddDevice
@@ -635,6 +623,7 @@ InstallEndpointRenderFilters(
PPORTCLSRUNTIMEPOWER pPortClsRuntimePower = NULL;
#endif // _USE_IPortClsRuntimePower
PPORTCLSStreamResourceManager pPortClsResMgr = NULL;
+ PPORTCLSStreamResourceManager2 pPortClsResMgr2 = NULL;
PAGED_CODE();
@@ -645,7 +634,8 @@ InstallEndpointRenderFilters(
_pAeMiniports,
NULL,
&unknownTopology,
- &unknownWave);
+ &unknownWave,
+ NULL, NULL);
if (unknownWave) // IID_IPortClsEtwHelper and IID_IPortClsRuntimePower interfaces are only exposed on the WaveRT port.
{
@@ -696,8 +686,9 @@ InstallEndpointRenderFilters(
//
// Test: add and remove current thread as streaming audio resource.
// In a real driver you should only add interrupts and driver-owned threads
- // (i.e., do not add the current thread as streaming resource).
+ // (i.e., do NOT add the current thread as streaming resource).
//
+ // testing IPortClsStreamResourceManager:
ntStatus = unknownWave->QueryInterface(IID_IPortClsStreamResourceManager, (PVOID *)&pPortClsResMgr);
if (NT_SUCCESS(ntStatus))
{
@@ -721,6 +712,31 @@ InstallEndpointRenderFilters(
pPortClsResMgr->Release();
pPortClsResMgr = NULL;
}
+
+ // testing IPortClsStreamResourceManager2:
+ ntStatus = unknownWave->QueryInterface(IID_IPortClsStreamResourceManager2, (PVOID *)&pPortClsResMgr2);
+ if (NT_SUCCESS(ntStatus))
+ {
+ PCSTREAMRESOURCE_DESCRIPTOR res;
+ PCSTREAMRESOURCE hRes = NULL;
+ PDEVICE_OBJECT pdo = NULL;
+
+ PcGetPhysicalDeviceObject(_pDeviceObject, &pdo);
+ PCSTREAMRESOURCE_DESCRIPTOR_INIT(&res);
+ res.Pdo = pdo;
+ res.Type = ePcStreamResourceThread;
+ res.Resource.Thread = PsGetCurrentThread();
+
+ NTSTATUS ntStatusTest = pPortClsResMgr2->AddStreamResource2(pdo, NULL, &res, &hRes);
+ if (NT_SUCCESS(ntStatusTest))
+ {
+ pPortClsResMgr2->RemoveStreamResource(hRes);
+ hRes = NULL;
+ }
+
+ pPortClsResMgr2->Release();
+ pPortClsResMgr2 = NULL;
+ }
}
SAFE_RELEASE(unknownTopology);
@@ -774,7 +790,8 @@ InstallEndpointCaptureFilters(
_pAeMiniports,
NULL,
NULL,
- NULL);
+ NULL,
+ NULL, NULL);
return ntStatus;
}
diff --git a/audio/sysvad/common.cpp b/audio/sysvad/common.cpp
index dae94f3d..e4af55e4 100644
--- a/audio/sysvad/common.cpp
+++ b/audio/sysvad/common.cpp
@@ -219,7 +219,9 @@ class CAdapterCommon :
_In_ PENDPOINT_MINIPAIR MiniportPair,
_In_opt_ PVOID DeviceContext,
_Out_opt_ PUNKNOWN * UnknownTopology,
- _Out_opt_ PUNKNOWN * UnknownWave
+ _Out_opt_ PUNKNOWN * UnknownWave,
+ _Out_opt_ PUNKNOWN * UnknownMiniportTopology,
+ _Out_opt_ PUNKNOWN * UnknownMiniportWave
);
STDMETHODIMP_(NTSTATUS) RemoveEndpointFilters
@@ -303,6 +305,7 @@ class CAdapterCommon :
);
#endif // SYSVAD_BTH_BYPASS
+
private:
LIST_ENTRY m_SubdeviceCache;
@@ -838,15 +841,13 @@ Return Value:
// This sample supports only one instance of this object.
// (b/c of CSaveData's static members and Bluetooth HFP logic).
//
- if (CAdapterCommon::m_AdapterInstances != 0)
+ if (InterlockedCompareExchange(&CAdapterCommon::m_AdapterInstances, 1, 0) != 0)
{
ntStatus = STATUS_DEVICE_BUSY;
DPF(D_ERROR, ("NewAdapterCommon failed, only one instance is allowed"));
goto Done;
}
- CAdapterCommon::m_AdapterInstances++;
-
//
// Allocate an adapter object.
//
@@ -909,7 +910,7 @@ Return Value:
m_WdfDevice = NULL;
}
- CAdapterCommon::m_AdapterInstances--;
+ InterlockedDecrement(&CAdapterCommon::m_AdapterInstances);
ASSERT(CAdapterCommon::m_AdapterInstances == 0);
} // ~CAdapterCommon
@@ -1027,6 +1028,8 @@ Return Value:
m_BthHfpEnableCleanup = FALSE;
#endif // SYSVAD_BTH_BYPASS
+
+
m_pServiceGroupWave = NULL;
m_pDeviceObject = DeviceObject;
m_pPhysicalDeviceObject = NULL;
@@ -2574,7 +2577,9 @@ CAdapterCommon::InstallEndpointFilters
_In_ PENDPOINT_MINIPAIR MiniportPair,
_In_opt_ PVOID DeviceContext,
_Out_opt_ PUNKNOWN * UnknownTopology,
- _Out_opt_ PUNKNOWN * UnknownWave
+ _Out_opt_ PUNKNOWN * UnknownWave,
+ _Out_opt_ PUNKNOWN * UnknownMiniportTopology,
+ _Out_opt_ PUNKNOWN * UnknownMiniportWave
)
{
PAGED_CODE();
@@ -2585,7 +2590,10 @@ CAdapterCommon::InstallEndpointFilters
PUNKNOWN unknownWave = NULL;
BOOL bTopologyCreated = FALSE;
BOOL bWaveCreated = FALSE;
+ PUNKNOWN unknownMiniTopo = NULL;
+ PUNKNOWN unknownMiniWave = NULL;
+ // Initialize output optional parameters if needed
if (UnknownTopology)
{
*UnknownTopology = NULL;
@@ -2595,12 +2603,20 @@ CAdapterCommon::InstallEndpointFilters
{
*UnknownWave = NULL;
}
+
+ if (UnknownMiniportTopology)
+ {
+ *UnknownMiniportTopology = NULL;
+ }
- ntStatus = GetCachedSubdevice(MiniportPair->TopoName, &unknownTopology, NULL);
- if (!NT_SUCCESS(ntStatus) || NULL == unknownTopology)
+ if (UnknownMiniportWave)
{
- PUNKNOWN unknownMiniportTopology = NULL;
+ *UnknownMiniportWave = NULL;
+ }
+ ntStatus = GetCachedSubdevice(MiniportPair->TopoName, &unknownTopology, &unknownMiniTopo);
+ if (!NT_SUCCESS(ntStatus) || NULL == unknownTopology || NULL == unknownMiniTopo)
+ {
bTopologyCreated = TRUE;
// Install SYSVAD topology miniport for the render endpoint.
@@ -2618,21 +2634,17 @@ CAdapterCommon::InstallEndpointFilters
IID_IPortTopology,
NULL,
&unknownTopology,
- &unknownMiniportTopology
+ &unknownMiniTopo
);
if (NT_SUCCESS(ntStatus))
{
- ntStatus = CacheSubdevice(MiniportPair->TopoName, unknownTopology, unknownMiniportTopology);
+ ntStatus = CacheSubdevice(MiniportPair->TopoName, unknownTopology, unknownMiniTopo);
}
-
- SAFE_RELEASE(unknownMiniportTopology);
}
- ntStatus = GetCachedSubdevice(MiniportPair->WaveName, &unknownWave, NULL);
- if (!NT_SUCCESS(ntStatus) || NULL == unknownWave)
+ ntStatus = GetCachedSubdevice(MiniportPair->WaveName, &unknownWave, &unknownMiniWave);
+ if (!NT_SUCCESS(ntStatus) || NULL == unknownWave || NULL == unknownMiniWave)
{
- PUNKNOWN unknownMiniportWave = NULL;
-
bWaveCreated = TRUE;
// Install SYSVAD wave miniport for the render endpoint.
@@ -2650,15 +2662,13 @@ CAdapterCommon::InstallEndpointFilters
IID_IPortWaveRT,
NULL,
&unknownWave,
- &unknownMiniportWave
+ &unknownMiniWave
);
if (NT_SUCCESS(ntStatus))
{
- ntStatus = CacheSubdevice(MiniportPair->WaveName, unknownWave, unknownMiniportWave);
+ ntStatus = CacheSubdevice(MiniportPair->WaveName, unknownWave, unknownMiniWave);
}
-
- SAFE_RELEASE(unknownMiniportWave);
}
if (unknownTopology && unknownWave)
@@ -2691,6 +2701,18 @@ CAdapterCommon::InstallEndpointFilters
unknownWave->AddRef();
*UnknownWave = unknownWave;
}
+ if (UnknownMiniportTopology != NULL && unknownMiniTopo != NULL)
+ {
+ unknownMiniTopo->AddRef();
+ *UnknownMiniportTopology = unknownMiniTopo;
+ }
+
+ if (UnknownMiniportWave != NULL && unknownMiniWave != NULL)
+ {
+ unknownMiniWave->AddRef();
+ *UnknownMiniportWave = unknownMiniWave;
+ }
+
}
else
{
@@ -2707,7 +2729,9 @@ CAdapterCommon::InstallEndpointFilters
}
}
+ SAFE_RELEASE(unknownMiniTopo);
SAFE_RELEASE(unknownTopology);
+ SAFE_RELEASE(unknownMiniWave);
SAFE_RELEASE(unknownWave);
return ntStatus;
@@ -6032,7 +6056,7 @@ Routine Description:
m_SpeakerMiniports,
PBTHHFPDEVICECOMMON(this),
&m_UnknownSpeakerTopology,
- &m_UnknownSpeakerWave
+ &m_UnknownSpeakerWave, NULL, NULL
);
IF_FAILED_ACTION_JUMP(
@@ -6045,7 +6069,7 @@ Routine Description:
m_MicMiniports,
PBTHHFPDEVICECOMMON(this),
&m_UnknownMicTopology,
- &m_UnknownMicWave
+ &m_UnknownMicWave, NULL, NULL
);
IF_FAILED_ACTION_JUMP(
diff --git a/audio/sysvad/common.h b/audio/sysvad/common.h
index 4e4e8a01..ee37445a 100644
--- a/audio/sysvad/common.h
+++ b/audio/sysvad/common.h
@@ -27,6 +27,18 @@ Abstract:
//-------------------------------------------------------------------------
// Description:
//
+// jump to the given label.
+//
+// Parameters:
+//
+// label - [in] label to jump if condition is met
+//
+#define JUMP(label) \
+ goto label;
+
+//-------------------------------------------------------------------------
+// Description:
+//
// If the condition evaluates to TRUE, jump to the given label.
//
// Parameters:
@@ -175,6 +187,7 @@ typedef struct _PIN_DEVICE_FORMATS_AND_MODES
} PIN_DEVICE_FORMATS_AND_MODES, *PPIN_DEVICE_FORMATS_AND_MODES;
+
// forward declaration.
typedef struct _ENDPOINT_MINIPAIR *PENDPOINT_MINIPAIR;
@@ -232,7 +245,7 @@ typedef struct _ENDPOINT_MINIPAIR
USHORT DeviceMaxChannels;
PIN_DEVICE_FORMATS_AND_MODES* PinDeviceFormatsAndModes;
ULONG PinDeviceFormatsAndModesCount;
-
+
// Miniport physical connections.
PHYSICALCONNECTIONTABLE* PhysicalConnections;
ULONG PhysicalConnectionCount;
@@ -435,7 +448,9 @@ DECLARE_INTERFACE_(IAdapterCommon, IUnknown)
_In_ PENDPOINT_MINIPAIR MiniportPair,
_In_opt_ PVOID DeviceContext,
_Out_opt_ PUNKNOWN * UnknownTopology,
- _Out_opt_ PUNKNOWN * UnknownWave
+ _Out_opt_ PUNKNOWN * UnknownWave,
+ _Out_opt_ PUNKNOWN * UnknownMiniportTopology,
+ _Out_opt_ PUNKNOWN * UnknownMiniportWave
);
STDMETHOD_(NTSTATUS, RemoveEndpointFilters)
diff --git a/audio/sysvad/savedata.cpp b/audio/sysvad/savedata.cpp
index d621a21a..573e491f 100644
--- a/audio/sysvad/savedata.cpp
+++ b/audio/sysvad/savedata.cpp
@@ -43,7 +43,7 @@ Abstract:
#define FMT__TAG 0x20746D66;
#define DATA_TAG 0x61746164;
-#define DEFAULT_FRAME_COUNT 2
+#define DEFAULT_FRAME_COUNT 4
#define DEFAULT_FRAME_SIZE PAGE_SIZE * 4
#define DEFAULT_BUFFER_SIZE DEFAULT_FRAME_SIZE * DEFAULT_FRAME_COUNT
diff --git a/audio/sysvad/sources.inc b/audio/sysvad/sources.inc
deleted file mode 100644
index 7396cf46..00000000
--- a/audio/sysvad/sources.inc
+++ /dev/null
@@ -1,34 +0,0 @@
-TARGETTYPE=DRIVER
-
-TARGETLIBS= \
- $(DDK_LIB_PATH)\portcls.lib\
- $(DDK_LIB_PATH)\stdunk.lib \
- $(SDK_LIB_PATH)\libcntpr.lib
-
-INCLUDES= \
- $(DDK_INC_PATH); \
- ..
-
-MSC_WARNING_LEVEL=-W4 -WX
-
-C_DEFINES= $(C_DEFINES) -D_WIN32 -DUNICODE -D_UNICODE -DPC_IMPLEMENTATION
-
-#
-# Different levels of debug printage. First is nothing but
-# catastrophic errors, last is everything under the sun.
-#
-#C_DEFINES= $(C_DEFINES) -DDEBUG_LEVEL=DEBUGLVL_ERROR
-C_DEFINES= $(C_DEFINES) -DDEBUG_LEVEL=DEBUGLVL_TERSE
-#C_DEFINES= $(C_DEFINES) -DDEBUG_LEVEL=DEBUGLVL_VERBOSE
-#C_DEFINES= $(C_DEFINES) -DDEBUG_LEVEL=DEBUGLVL_BLAB
-
-SOURCES=\
- ..\adapter.cpp \
- ..\basetopo.cpp \
- ..\common.cpp \
- ..\hw.cpp \
- ..\kshelper.cpp \
- ..\savedata.cpp \
- ..\tonegenerator.cpp \
- ..\sysvad.rc
-
diff --git a/audio/sysvad/sysvad.sln b/audio/sysvad/sysvad.sln
deleted file mode 100644
index a177531a..00000000
--- a/audio/sysvad/sysvad.sln
+++ /dev/null
@@ -1,121 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0
-MinimumVisualStudioVersion = 12.0
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Package", "Package", "{C3727A52-F4BA-46A5-87DD-422C5A6E6487}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KeywordDetectorAdapter", "KeywordDetectorAdapter", "{CAA240C8-9145-42EC-850F-72D0A9D611D8}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PropPageExtensions", "PropPageExtensions", "{4894017C-6595-4FE8-8E11-D89D220C30A6}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SwapAPO", "SwapAPO", "{AC42EA6C-395E-4886-8BEF-7B348AD02B2B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "APO", "APO", "{2CED13CF-D957-488D-981D-0D68A8964814}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EndpointsCommon", "EndpointsCommon", "{0ADDFDA3-E93A-49F4-8506-4F0F77C94BBC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PhoneAudioSample", "PhoneAudioSample", "{90897FF0-653E-44A3-A37D-AE5B59FDAE64}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TabletAudioSample", "TabletAudioSample", "{E93D14DB-304C-457B-AF3F-70F74A9B9D8E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "Package\package.VcxProj", "{5F7004D7-03BD-44AA-9FDD-6677B2C93469}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KeywordDetectorContosoAdapter", "KeywordDetectorAdapter\KeywordDetectorContosoAdapter.vcxproj", "{92E28772-ADE3-4367-B679-6DCF6FFA75F1}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PropPageExt", "SwapAPO\PropPageExtensions\PropPageExt.vcxproj", "{76DBA957-38F6-47ED-A5C0-AD587D08FF12}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SwapAPO", "SwapAPO\APO\SwapAPO.vcxproj", "{2A1B7375-D9CB-4067-AEDE-180D75B5934D}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EndpointsCommon", "EndpointsCommon\EndpointsCommon.vcxproj", "{E3BA10BE-08FF-4244-86C6-C788072CEA25}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PhoneAudioSample", "PhoneAudioSample\PhoneAudioSample.vcxproj", "{43FF11E5-B4C4-409A-AE4B-13342918B6F8}"
- ProjectSection(ProjectDependencies) = postProject
- {E3BA10BE-08FF-4244-86C6-C788072CEA25} = {E3BA10BE-08FF-4244-86C6-C788072CEA25}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TabletAudioSample", "TabletAudioSample\TabletAudioSample.vcxproj", "{29A5DD25-AB56-4DEE-96AB-21EC2926A300}"
- ProjectSection(ProjectDependencies) = postProject
- {E3BA10BE-08FF-4244-86C6-C788072CEA25} = {E3BA10BE-08FF-4244-86C6-C788072CEA25}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- Debug|x64 = Debug|x64
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Debug|Win32.ActiveCfg = Debug|Win32
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Debug|Win32.Build.0 = Debug|Win32
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Release|Win32.ActiveCfg = Release|Win32
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Release|Win32.Build.0 = Release|Win32
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Debug|x64.ActiveCfg = Debug|x64
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Debug|x64.Build.0 = Debug|x64
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Release|x64.ActiveCfg = Release|x64
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469}.Release|x64.Build.0 = Release|x64
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Debug|Win32.ActiveCfg = Debug|Win32
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Debug|Win32.Build.0 = Debug|Win32
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Release|Win32.ActiveCfg = Release|Win32
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Release|Win32.Build.0 = Release|Win32
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Debug|x64.ActiveCfg = Debug|x64
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Debug|x64.Build.0 = Debug|x64
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Release|x64.ActiveCfg = Release|x64
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1}.Release|x64.Build.0 = Release|x64
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Debug|Win32.ActiveCfg = Debug|Win32
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Debug|Win32.Build.0 = Debug|Win32
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Release|Win32.ActiveCfg = Release|Win32
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Release|Win32.Build.0 = Release|Win32
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Debug|x64.ActiveCfg = Debug|x64
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Debug|x64.Build.0 = Debug|x64
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Release|x64.ActiveCfg = Release|x64
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12}.Release|x64.Build.0 = Release|x64
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Debug|Win32.ActiveCfg = Debug|Win32
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Debug|Win32.Build.0 = Debug|Win32
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Release|Win32.ActiveCfg = Release|Win32
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Release|Win32.Build.0 = Release|Win32
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Debug|x64.ActiveCfg = Debug|x64
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Debug|x64.Build.0 = Debug|x64
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Release|x64.ActiveCfg = Release|x64
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D}.Release|x64.Build.0 = Release|x64
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Debug|Win32.ActiveCfg = Debug|Win32
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Debug|Win32.Build.0 = Debug|Win32
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Release|Win32.ActiveCfg = Release|Win32
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Release|Win32.Build.0 = Release|Win32
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Debug|x64.ActiveCfg = Debug|x64
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Debug|x64.Build.0 = Debug|x64
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Release|x64.ActiveCfg = Release|x64
- {E3BA10BE-08FF-4244-86C6-C788072CEA25}.Release|x64.Build.0 = Release|x64
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Debug|Win32.ActiveCfg = Debug|Win32
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Debug|Win32.Build.0 = Debug|Win32
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Release|Win32.ActiveCfg = Release|Win32
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Release|Win32.Build.0 = Release|Win32
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Debug|x64.ActiveCfg = Debug|x64
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Debug|x64.Build.0 = Debug|x64
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Release|x64.ActiveCfg = Release|x64
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8}.Release|x64.Build.0 = Release|x64
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Debug|Win32.ActiveCfg = Debug|Win32
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Debug|Win32.Build.0 = Debug|Win32
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Release|Win32.ActiveCfg = Release|Win32
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Release|Win32.Build.0 = Release|Win32
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Debug|x64.ActiveCfg = Debug|x64
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Debug|x64.Build.0 = Debug|x64
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Release|x64.ActiveCfg = Release|x64
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {5F7004D7-03BD-44AA-9FDD-6677B2C93469} = {C3727A52-F4BA-46A5-87DD-422C5A6E6487}
- {92E28772-ADE3-4367-B679-6DCF6FFA75F1} = {CAA240C8-9145-42EC-850F-72D0A9D611D8}
- {76DBA957-38F6-47ED-A5C0-AD587D08FF12} = {4894017C-6595-4FE8-8E11-D89D220C30A6}
- {2A1B7375-D9CB-4067-AEDE-180D75B5934D} = {2CED13CF-D957-488D-981D-0D68A8964814}
- {E3BA10BE-08FF-4244-86C6-C788072CEA25} = {0ADDFDA3-E93A-49F4-8506-4F0F77C94BBC}
- {43FF11E5-B4C4-409A-AE4B-13342918B6F8} = {90897FF0-653E-44A3-A37D-AE5B59FDAE64}
- {29A5DD25-AB56-4DEE-96AB-21EC2926A300} = {E93D14DB-304C-457B-AF3F-70F74A9B9D8E}
- {4894017C-6595-4FE8-8E11-D89D220C30A6} = {AC42EA6C-395E-4886-8BEF-7B348AD02B2B}
- {2CED13CF-D957-488D-981D-0D68A8964814} = {AC42EA6C-395E-4886-8BEF-7B348AD02B2B}
- EndGlobalSection
-EndGlobal