Skip to content
Snippets Groups Projects
Commit 762c37fd authored by Aaron Cuevas Lopez's avatar Aaron Cuevas Lopez
Browse files

Add Xillybus PCIe Rhythm test plugin

parent 383f4433
No related branches found
No related tags found
No related merge requests found
Showing
with 7761 additions and 0 deletions
<?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="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{8F019559-89D4-4C33-BA0F-FF330C57BA2B}</ProjectGuid>
<RootNamespace>PCIeRhythm</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</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')" Label="LocalAppDataPlatform" />
<Import Project="..\Plugin_Debug32.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Plugin_Debug64.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')" Label="LocalAppDataPlatform" />
<Import Project="..\Plugin_Release32.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Plugin_Release64.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\OpenEphysLib.cpp" />
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Editor.cpp" />
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Thread.cpp" />
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000datablock.cpp" />
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000PCIe.cpp" />
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000registers.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Editor.h" />
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Thread.h" />
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000datablock.h" />
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000PCIe.h" />
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000registers.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Source Files\rhythm-api">
<UniqueIdentifier>{8ec4462a-3223-46ca-a2f1-cf88ba3c80f6}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Editor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Thread.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000datablock.cpp">
<Filter>Source Files\rhythm-api</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000registers.cpp">
<Filter>Source Files\rhythm-api</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000PCIe.cpp">
<Filter>Source Files\rhythm-api</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\Source\Plugins\PCIeRhythm\OpenEphysLib.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Editor.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\RHD2000Thread.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000datablock.h">
<Filter>Source Files\rhythm-api</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000registers.h">
<Filter>Source Files\rhythm-api</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\Source\Plugins\PCIeRhythm\rhythm-api\rhd2000PCIe.h">
<Filter>Source Files\rhythm-api</Filter>
</ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
...@@ -37,146 +37,230 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SpikeSorter", "SpikeSorter\ ...@@ -37,146 +37,230 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SpikeSorter", "SpikeSorter\
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExampleProcessor", "ExampleProcessor\ExampleProcessor.vcxproj", "{767D282E-0BE5-4B35-874A-3B1ED925F06B}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExampleProcessor", "ExampleProcessor\ExampleProcessor.vcxproj", "{767D282E-0BE5-4B35-874A-3B1ED925F06B}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PCIeRhythm", "PCIeRhythm\PCIeRhythm.vcxproj", "{8F019559-89D4-4C33-BA0F-FF330C57BA2B}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32 Release|Win32 = Release|Win32
Release|x64 = Release|x64 Release|x64 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{41BD734E-4939-47AD-9714-9629538F7206}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Debug|Win32.ActiveCfg = Debug|Win32 {41BD734E-4939-47AD-9714-9629538F7206}.Debug|Win32.ActiveCfg = Debug|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Debug|Win32.Build.0 = Debug|Win32 {41BD734E-4939-47AD-9714-9629538F7206}.Debug|Win32.Build.0 = Debug|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Debug|x64.ActiveCfg = Debug|x64 {41BD734E-4939-47AD-9714-9629538F7206}.Debug|x64.ActiveCfg = Debug|x64
{41BD734E-4939-47AD-9714-9629538F7206}.Debug|x64.Build.0 = Debug|x64 {41BD734E-4939-47AD-9714-9629538F7206}.Debug|x64.Build.0 = Debug|x64
{41BD734E-4939-47AD-9714-9629538F7206}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Release|Mixed Platforms.Build.0 = Release|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Release|Win32.ActiveCfg = Release|Win32 {41BD734E-4939-47AD-9714-9629538F7206}.Release|Win32.ActiveCfg = Release|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Release|Win32.Build.0 = Release|Win32 {41BD734E-4939-47AD-9714-9629538F7206}.Release|Win32.Build.0 = Release|Win32
{41BD734E-4939-47AD-9714-9629538F7206}.Release|x64.ActiveCfg = Release|x64 {41BD734E-4939-47AD-9714-9629538F7206}.Release|x64.ActiveCfg = Release|x64
{41BD734E-4939-47AD-9714-9629538F7206}.Release|x64.Build.0 = Release|x64 {41BD734E-4939-47AD-9714-9629538F7206}.Release|x64.Build.0 = Release|x64
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|Win32.ActiveCfg = Debug|Win32 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|Win32.ActiveCfg = Debug|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|Win32.Build.0 = Debug|Win32 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|Win32.Build.0 = Debug|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|x64.ActiveCfg = Debug|x64 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|x64.ActiveCfg = Debug|x64
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|x64.Build.0 = Debug|x64 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Debug|x64.Build.0 = Debug|x64
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|Mixed Platforms.Build.0 = Release|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|Win32.ActiveCfg = Release|Win32 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|Win32.ActiveCfg = Release|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|Win32.Build.0 = Release|Win32 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|Win32.Build.0 = Release|Win32
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|x64.ActiveCfg = Release|x64 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|x64.ActiveCfg = Release|x64
{554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|x64.Build.0 = Release|x64 {554C8744-32CD-427C-A9E5-BF9A44440CED}.Release|x64.Build.0 = Release|x64
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|Win32.ActiveCfg = Debug|Win32 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|Win32.ActiveCfg = Debug|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|Win32.Build.0 = Debug|Win32 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|Win32.Build.0 = Debug|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|x64.ActiveCfg = Debug|x64 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|x64.ActiveCfg = Debug|x64
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|x64.Build.0 = Debug|x64 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Debug|x64.Build.0 = Debug|x64
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|Mixed Platforms.Build.0 = Release|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|Win32.ActiveCfg = Release|Win32 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|Win32.ActiveCfg = Release|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|Win32.Build.0 = Release|Win32 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|Win32.Build.0 = Release|Win32
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|x64.ActiveCfg = Release|x64 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|x64.ActiveCfg = Release|x64
{7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|x64.Build.0 = Release|x64 {7B23828E-559F-4AD2-B75D-D05786F6329C}.Release|x64.Build.0 = Release|x64
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|Win32.ActiveCfg = Debug|Win32 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|Win32.ActiveCfg = Debug|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|Win32.Build.0 = Debug|Win32 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|Win32.Build.0 = Debug|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|x64.ActiveCfg = Debug|x64 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|x64.ActiveCfg = Debug|x64
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|x64.Build.0 = Debug|x64 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Debug|x64.Build.0 = Debug|x64
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|Mixed Platforms.Build.0 = Release|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|Win32.ActiveCfg = Release|Win32 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|Win32.ActiveCfg = Release|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|Win32.Build.0 = Release|Win32 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|Win32.Build.0 = Release|Win32
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|x64.ActiveCfg = Release|x64 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|x64.ActiveCfg = Release|x64
{D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|x64.Build.0 = Release|x64 {D5D58DAC-582B-4F39-9385-E1814D56BCA0}.Release|x64.Build.0 = Release|x64
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|Win32.ActiveCfg = Debug|Win32 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|Win32.ActiveCfg = Debug|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|Win32.Build.0 = Debug|Win32 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|Win32.Build.0 = Debug|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|x64.ActiveCfg = Debug|x64 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|x64.ActiveCfg = Debug|x64
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|x64.Build.0 = Debug|x64 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Debug|x64.Build.0 = Debug|x64
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|Mixed Platforms.Build.0 = Release|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|Win32.ActiveCfg = Release|Win32 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|Win32.ActiveCfg = Release|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|Win32.Build.0 = Release|Win32 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|Win32.Build.0 = Release|Win32
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|x64.ActiveCfg = Release|x64 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|x64.ActiveCfg = Release|x64
{AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|x64.Build.0 = Release|x64 {AC9EBFBF-1599-40CF-8159-3F3AA7DCFAE9}.Release|x64.Build.0 = Release|x64
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|Win32.ActiveCfg = Debug|Win32 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|Win32.ActiveCfg = Debug|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|Win32.Build.0 = Debug|Win32 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|Win32.Build.0 = Debug|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|x64.ActiveCfg = Debug|x64 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|x64.ActiveCfg = Debug|x64
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|x64.Build.0 = Debug|x64 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Debug|x64.Build.0 = Debug|x64
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|Mixed Platforms.Build.0 = Release|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|Win32.ActiveCfg = Release|Win32 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|Win32.ActiveCfg = Release|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|Win32.Build.0 = Release|Win32 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|Win32.Build.0 = Release|Win32
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|x64.ActiveCfg = Release|x64 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|x64.ActiveCfg = Release|x64
{9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|x64.Build.0 = Release|x64 {9D050DCC-52DF-429E-ABF0-EF0B64A9DA5A}.Release|x64.Build.0 = Release|x64
{79703461-0C53-417B-BEA2-B3903A41C123}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Debug|Win32.ActiveCfg = Debug|Win32 {79703461-0C53-417B-BEA2-B3903A41C123}.Debug|Win32.ActiveCfg = Debug|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Debug|Win32.Build.0 = Debug|Win32 {79703461-0C53-417B-BEA2-B3903A41C123}.Debug|Win32.Build.0 = Debug|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Debug|x64.ActiveCfg = Debug|x64 {79703461-0C53-417B-BEA2-B3903A41C123}.Debug|x64.ActiveCfg = Debug|x64
{79703461-0C53-417B-BEA2-B3903A41C123}.Debug|x64.Build.0 = Debug|x64 {79703461-0C53-417B-BEA2-B3903A41C123}.Debug|x64.Build.0 = Debug|x64
{79703461-0C53-417B-BEA2-B3903A41C123}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Release|Mixed Platforms.Build.0 = Release|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Release|Win32.ActiveCfg = Release|Win32 {79703461-0C53-417B-BEA2-B3903A41C123}.Release|Win32.ActiveCfg = Release|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Release|Win32.Build.0 = Release|Win32 {79703461-0C53-417B-BEA2-B3903A41C123}.Release|Win32.Build.0 = Release|Win32
{79703461-0C53-417B-BEA2-B3903A41C123}.Release|x64.ActiveCfg = Release|x64 {79703461-0C53-417B-BEA2-B3903A41C123}.Release|x64.ActiveCfg = Release|x64
{79703461-0C53-417B-BEA2-B3903A41C123}.Release|x64.Build.0 = Release|x64 {79703461-0C53-417B-BEA2-B3903A41C123}.Release|x64.Build.0 = Release|x64
{9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|Win32.ActiveCfg = Debug|Win32 {9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|Win32.ActiveCfg = Debug|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|Win32.Build.0 = Debug|Win32 {9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|Win32.Build.0 = Debug|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|x64.ActiveCfg = Debug|x64 {9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|x64.ActiveCfg = Debug|x64
{9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|x64.Build.0 = Debug|x64 {9C33B87F-24D7-4952-91C0-44759C77F491}.Debug|x64.Build.0 = Debug|x64
{9C33B87F-24D7-4952-91C0-44759C77F491}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Release|Mixed Platforms.Build.0 = Release|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Release|Win32.ActiveCfg = Release|Win32 {9C33B87F-24D7-4952-91C0-44759C77F491}.Release|Win32.ActiveCfg = Release|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Release|Win32.Build.0 = Release|Win32 {9C33B87F-24D7-4952-91C0-44759C77F491}.Release|Win32.Build.0 = Release|Win32
{9C33B87F-24D7-4952-91C0-44759C77F491}.Release|x64.ActiveCfg = Release|x64 {9C33B87F-24D7-4952-91C0-44759C77F491}.Release|x64.ActiveCfg = Release|x64
{9C33B87F-24D7-4952-91C0-44759C77F491}.Release|x64.Build.0 = Release|x64 {9C33B87F-24D7-4952-91C0-44759C77F491}.Release|x64.Build.0 = Release|x64
{75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|Win32.ActiveCfg = Debug|Win32 {75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|Win32.ActiveCfg = Debug|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|Win32.Build.0 = Debug|Win32 {75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|Win32.Build.0 = Debug|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|x64.ActiveCfg = Debug|x64 {75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|x64.ActiveCfg = Debug|x64
{75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|x64.Build.0 = Debug|x64 {75DEED7F-17D0-4805-9272-96288B79BA53}.Debug|x64.Build.0 = Debug|x64
{75DEED7F-17D0-4805-9272-96288B79BA53}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Release|Mixed Platforms.Build.0 = Release|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Release|Win32.ActiveCfg = Release|Win32 {75DEED7F-17D0-4805-9272-96288B79BA53}.Release|Win32.ActiveCfg = Release|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Release|Win32.Build.0 = Release|Win32 {75DEED7F-17D0-4805-9272-96288B79BA53}.Release|Win32.Build.0 = Release|Win32
{75DEED7F-17D0-4805-9272-96288B79BA53}.Release|x64.ActiveCfg = Release|x64 {75DEED7F-17D0-4805-9272-96288B79BA53}.Release|x64.ActiveCfg = Release|x64
{75DEED7F-17D0-4805-9272-96288B79BA53}.Release|x64.Build.0 = Release|x64 {75DEED7F-17D0-4805-9272-96288B79BA53}.Release|x64.Build.0 = Release|x64
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|Win32.ActiveCfg = Debug|Win32 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|Win32.ActiveCfg = Debug|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|Win32.Build.0 = Debug|Win32 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|Win32.Build.0 = Debug|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|x64.ActiveCfg = Debug|x64 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|x64.ActiveCfg = Debug|x64
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|x64.Build.0 = Debug|x64 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Debug|x64.Build.0 = Debug|x64
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|Mixed Platforms.Build.0 = Release|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|Win32.ActiveCfg = Release|Win32 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|Win32.ActiveCfg = Release|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|Win32.Build.0 = Release|Win32 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|Win32.Build.0 = Release|Win32
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|x64.ActiveCfg = Release|x64 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|x64.ActiveCfg = Release|x64
{A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|x64.Build.0 = Release|x64 {A29DFCB3-837D-491F-B9C4-3E0C93404128}.Release|x64.Build.0 = Release|x64
{88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|Win32.ActiveCfg = Debug|Win32 {88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|Win32.ActiveCfg = Debug|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|Win32.Build.0 = Debug|Win32 {88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|Win32.Build.0 = Debug|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|x64.ActiveCfg = Debug|x64 {88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|x64.ActiveCfg = Debug|x64
{88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|x64.Build.0 = Debug|x64 {88971DC8-9416-4229-AAB8-870988D9A81A}.Debug|x64.Build.0 = Debug|x64
{88971DC8-9416-4229-AAB8-870988D9A81A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Release|Mixed Platforms.Build.0 = Release|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Release|Win32.ActiveCfg = Release|Win32 {88971DC8-9416-4229-AAB8-870988D9A81A}.Release|Win32.ActiveCfg = Release|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Release|Win32.Build.0 = Release|Win32 {88971DC8-9416-4229-AAB8-870988D9A81A}.Release|Win32.Build.0 = Release|Win32
{88971DC8-9416-4229-AAB8-870988D9A81A}.Release|x64.ActiveCfg = Release|x64 {88971DC8-9416-4229-AAB8-870988D9A81A}.Release|x64.ActiveCfg = Release|x64
{88971DC8-9416-4229-AAB8-870988D9A81A}.Release|x64.Build.0 = Release|x64 {88971DC8-9416-4229-AAB8-870988D9A81A}.Release|x64.Build.0 = Release|x64
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|Win32.ActiveCfg = Debug|Win32 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|Win32.ActiveCfg = Debug|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|Win32.Build.0 = Debug|Win32 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|Win32.Build.0 = Debug|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|x64.ActiveCfg = Debug|x64 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|x64.ActiveCfg = Debug|x64
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|x64.Build.0 = Debug|x64 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Debug|x64.Build.0 = Debug|x64
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|Mixed Platforms.Build.0 = Release|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|Win32.ActiveCfg = Release|Win32 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|Win32.ActiveCfg = Release|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|Win32.Build.0 = Release|Win32 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|Win32.Build.0 = Release|Win32
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|x64.ActiveCfg = Release|x64 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|x64.ActiveCfg = Release|x64
{6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|x64.Build.0 = Release|x64 {6A7972E7-89DD-45F3-BFA5-C50F9B701B7D}.Release|x64.Build.0 = Release|x64
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|Win32.ActiveCfg = Debug|Win32 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|Win32.ActiveCfg = Debug|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|Win32.Build.0 = Debug|Win32 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|Win32.Build.0 = Debug|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|x64.ActiveCfg = Debug|x64 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|x64.ActiveCfg = Debug|x64
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|x64.Build.0 = Debug|x64 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Debug|x64.Build.0 = Debug|x64
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|Mixed Platforms.Build.0 = Release|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|Win32.ActiveCfg = Release|Win32 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|Win32.ActiveCfg = Release|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|Win32.Build.0 = Release|Win32 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|Win32.Build.0 = Release|Win32
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|x64.ActiveCfg = Release|x64 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|x64.ActiveCfg = Release|x64
{11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|x64.Build.0 = Release|x64 {11C301E8-35E7-48AE-978F-4AC651CEFC67}.Release|x64.Build.0 = Release|x64
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|Win32.ActiveCfg = Debug|Win32 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|Win32.ActiveCfg = Debug|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|Win32.Build.0 = Debug|Win32 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|Win32.Build.0 = Debug|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|x64.ActiveCfg = Debug|x64 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|x64.ActiveCfg = Debug|x64
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|x64.Build.0 = Debug|x64 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Debug|x64.Build.0 = Debug|x64
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|Mixed Platforms.Build.0 = Release|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|Win32.ActiveCfg = Release|Win32 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|Win32.ActiveCfg = Release|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|Win32.Build.0 = Release|Win32 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|Win32.Build.0 = Release|Win32
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|x64.ActiveCfg = Release|x64 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|x64.ActiveCfg = Release|x64
{3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|x64.Build.0 = Release|x64 {3A753B88-4374-4456-93D8-D0FDC9DCACF3}.Release|x64.Build.0 = Release|x64
{2A290337-FC79-4987-8488-A71F29252DB0}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Debug|Win32.ActiveCfg = Debug|Win32 {2A290337-FC79-4987-8488-A71F29252DB0}.Debug|Win32.ActiveCfg = Debug|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Debug|Win32.Build.0 = Debug|Win32 {2A290337-FC79-4987-8488-A71F29252DB0}.Debug|Win32.Build.0 = Debug|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Debug|x64.ActiveCfg = Debug|x64 {2A290337-FC79-4987-8488-A71F29252DB0}.Debug|x64.ActiveCfg = Debug|x64
{2A290337-FC79-4987-8488-A71F29252DB0}.Debug|x64.Build.0 = Debug|x64 {2A290337-FC79-4987-8488-A71F29252DB0}.Debug|x64.Build.0 = Debug|x64
{2A290337-FC79-4987-8488-A71F29252DB0}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Release|Mixed Platforms.Build.0 = Release|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Release|Win32.ActiveCfg = Release|Win32 {2A290337-FC79-4987-8488-A71F29252DB0}.Release|Win32.ActiveCfg = Release|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Release|Win32.Build.0 = Release|Win32 {2A290337-FC79-4987-8488-A71F29252DB0}.Release|Win32.Build.0 = Release|Win32
{2A290337-FC79-4987-8488-A71F29252DB0}.Release|x64.ActiveCfg = Release|x64 {2A290337-FC79-4987-8488-A71F29252DB0}.Release|x64.ActiveCfg = Release|x64
{2A290337-FC79-4987-8488-A71F29252DB0}.Release|x64.Build.0 = Release|x64 {2A290337-FC79-4987-8488-A71F29252DB0}.Release|x64.Build.0 = Release|x64
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|Win32.ActiveCfg = Debug|Win32 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|Win32.ActiveCfg = Debug|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|Win32.Build.0 = Debug|Win32 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|Win32.Build.0 = Debug|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|x64.ActiveCfg = Debug|x64 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|x64.ActiveCfg = Debug|x64
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|x64.Build.0 = Debug|x64 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Debug|x64.Build.0 = Debug|x64
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|Mixed Platforms.Build.0 = Release|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|Win32.ActiveCfg = Release|Win32 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|Win32.ActiveCfg = Release|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|Win32.Build.0 = Release|Win32 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|Win32.Build.0 = Release|Win32
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|x64.ActiveCfg = Release|x64 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|x64.ActiveCfg = Release|x64
{D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|x64.Build.0 = Release|x64 {D0AEE4AA-68A7-4598-89E4-3BF5A5EBCA2A}.Release|x64.Build.0 = Release|x64
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Debug|Win32.ActiveCfg = Debug|Win32 {767D282E-0BE5-4B35-874A-3B1ED925F06B}.Debug|Win32.ActiveCfg = Debug|Win32
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Debug|x64.ActiveCfg = Debug|x64 {767D282E-0BE5-4B35-874A-3B1ED925F06B}.Debug|x64.ActiveCfg = Debug|x64
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Release|Mixed Platforms.Build.0 = Release|Win32
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Release|Win32.ActiveCfg = Release|Win32 {767D282E-0BE5-4B35-874A-3B1ED925F06B}.Release|Win32.ActiveCfg = Release|Win32
{767D282E-0BE5-4B35-874A-3B1ED925F06B}.Release|x64.ActiveCfg = Release|x64 {767D282E-0BE5-4B35-874A-3B1ED925F06B}.Release|x64.ActiveCfg = Release|x64
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Debug|Win32.ActiveCfg = Debug|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Debug|Win32.Build.0 = Debug|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Debug|x64.ActiveCfg = Debug|x64
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Debug|x64.Build.0 = Debug|x64
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Release|Mixed Platforms.Build.0 = Release|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Release|Win32.ActiveCfg = Release|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Release|Win32.Build.0 = Release|Win32
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Release|x64.ActiveCfg = Release|x64
{8F019559-89D4-4C33-BA0F-FF330C57BA2B}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
......
/*
------------------------------------------------------------------
This file is part of the Open Ephys GUI
Copyright (C) 2013 Open Ephys
------------------------------------------------------------------
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <PluginInfo.h>
#include "RHD2000Thread.h"
#include <string>
#ifdef WIN32
#include <Windows.h>
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
using namespace Plugin;
#define NUM_PLUGINS 1
extern "C" EXPORT void getLibInfo(Plugin::LibraryInfo* info)
{
info->apiVersion = PLUGIN_API_VER;
info->name = "PCIe Rhythm interface";
info->libVersion = 1;
info->numPlugins = NUM_PLUGINS;
}
extern "C" EXPORT int getPluginInfo(int index, Plugin::PluginInfo* info)
{
switch (index)
{
case 0:
info->type = Plugin::DatathreadPlugin;
info->dataThread.name = "PCIe Rhythm";
info->dataThread.creator = &createDataThread<PCIeRhythm::RHD2000Thread>;
break;
default:
return -1;
break;
}
return 0;
}
#ifdef WIN32
BOOL WINAPI DllMain(IN HINSTANCE hDllHandle,
IN DWORD nReason,
IN LPVOID Reserved)
{
return TRUE;
}
#endif
\ No newline at end of file
This diff is collapsed.
/*
------------------------------------------------------------------
This file is part of the Open Ephys GUI
Copyright (C) 2014 Open Ephys
------------------------------------------------------------------
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __RHD2000EDITOR_H_2AD3C591__
#define __RHD2000EDITOR_H_2AD3C591__
#include <VisualizerEditorHeaders.h>
class UtilityButton;
/**
User interface for the RHD2000 source module.
@see SourceNode
*/
class SourceNode;
namespace PCIeRhythm {
class HeadstageOptionsInterface;
class SampleRateInterface;
class BandwidthInterface;
class DSPInterface;
class AudioInterface;
class ClockDivideInterface;
class RHD2000Thread;
struct ImpedanceData;
class FPGAchannelComponent;
class RHD2000Editor;
class FPGAcanvas;
class FPGAchannelList : public Component,
Button::Listener, ComboBox::Listener
{
public:
FPGAchannelList(GenericProcessor* proc, Viewport* p, FPGAcanvas* c);
~FPGAchannelList();
void setNewName(int channelIndex, String newName);
void setNewGain(int channel, float gain);
void disableAll();
void enableAll();
void paint(Graphics& g);
void buttonClicked(Button* btn);
void update();
void updateButtons();
int getNumChannels();
void comboBoxChanged(ComboBox* b);
void updateImpedance(Array<int> streams, Array<int> channels, Array<float> magnitude, Array<float> phase);
SourceNode* proc;
private:
Array<float> gains;
Array<ChannelType> types;
bool chainUpdate;
Viewport* viewport;
FPGAcanvas* canvas;
ScopedPointer<UtilityButton> impedanceButton;
ScopedPointer<ToggleButton> saveImpedanceButton;
ScopedPointer<ToggleButton> autoMeasureButton;
ScopedPointer<ComboBox> numberingScheme;
ScopedPointer<Label> numberingSchemeLabel;
OwnedArray<Label> staticLabels;
OwnedArray<FPGAchannelComponent> channelComponents;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(FPGAchannelList);
};
class FPGAchannelComponent : public Component, Button::Listener, public ComboBox::Listener, public Label::Listener
{
public:
FPGAchannelComponent(FPGAchannelList* cl, int ch, int gainIndex_, String name_, Array<float> gains_, ChannelType type_);
~FPGAchannelComponent();
Colour getDefaultColor(int ID);
void setImpedanceValues(float mag, float phase);
void disableEdit();
void enableEdit();
void setEnabledState(bool);
bool getEnabledState()
{
return isEnabled;
}
void buttonClicked(Button* btn);
void setUserDefinedData(int d);
int getUserDefinedData();
void comboBoxChanged(ComboBox* comboBox);
void labelTextChanged(Label* lbl);
void resized();
const ChannelType type;
private:
Array<float> gains;
FPGAchannelList* channelList;
ScopedPointer<Label> staticLabel, editName, impedance;
ScopedPointer<ComboBox> gainComboBox;
int channel;
String name;
int gainIndex;
int userDefinedData;
Font font;
bool isEnabled;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(FPGAchannelComponent);
};
class FPGAcanvas : public Visualizer, public Button::Listener
{
public:
FPGAcanvas(GenericProcessor* n);
~FPGAcanvas();
void paint(Graphics& g);
void refresh();
void beginAnimation();
void endAnimation();
void refreshState();
void update();
void setParameter(int, float);
void setParameter(int, int, int, float);
void updateImpedance(Array<int> streams, Array<int> channels, Array<float> magnitude, Array<float> phase);
void resized();
void buttonClicked(Button* button);
ScopedPointer<Viewport> channelsViewport;
SourceNode* processor;
ScopedPointer<FPGAchannelList> channelList;
};
class RHD2000Editor : public VisualizerEditor, public ComboBox::Listener, public AsyncUpdater
{
public:
RHD2000Editor(GenericProcessor* parentNode, RHD2000Thread*, bool useDefaultParameterEditors);
~RHD2000Editor();
void buttonEvent(Button* button);
void scanPorts();
void comboBoxChanged(ComboBox* comboBox);
void startAcquisition();
void stopAcquisition();
void channelChanged(int channel, bool newState) override;
void saveCustomParameters(XmlElement* xml);
void loadCustomParameters(XmlElement* xml);
Visualizer* createNewCanvas(void);
void measureImpedance();
void setSaveImpedance(bool en);
void setAutoMeasureImpedance(bool en);
bool getSaveImpedance();
bool getAutoMeasureImpedance();
void handleAsyncUpdate();
private:
OwnedArray<HeadstageOptionsInterface> headstageOptionsInterfaces;
OwnedArray<ElectrodeButton> electrodeButtons;
ScopedPointer<SampleRateInterface> sampleRateInterface;
ScopedPointer<BandwidthInterface> bandwidthInterface;
ScopedPointer<DSPInterface> dspInterface;
ScopedPointer<AudioInterface> audioInterface;
ScopedPointer<ClockDivideInterface> clockInterface;
ScopedPointer<UtilityButton> rescanButton, dacTTLButton;
ScopedPointer<UtilityButton> adcButton;
ScopedPointer<UtilityButton> ledButton;
ScopedPointer<UtilityButton> dspoffsetButton;
ScopedPointer<ComboBox> ttlSettleCombo, dacHPFcombo;
ScopedPointer<Label> audioLabel, ttlSettleLabel, dacHPFlabel;
bool saveImpedances, measureWhenRecording;
RHD2000Thread* board;
FPGAcanvas* canvas;
ScopedPointer<ImpedanceData> impedanceData;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(RHD2000Editor);
};
class HeadstageOptionsInterface : public Component,
public Button::Listener
{
public:
HeadstageOptionsInterface(RHD2000Thread*, RHD2000Editor*, int hsNum);
~HeadstageOptionsInterface();
void paint(Graphics& g);
void buttonClicked(Button* button);
void checkEnabledState();
private:
int hsNumber1, hsNumber2;
int channelsOnHs1, channelsOnHs2;
String name;
bool isEnabled;
RHD2000Thread* board;
RHD2000Editor* editor;
ScopedPointer<UtilityButton> hsButton1;
ScopedPointer<UtilityButton> hsButton2;
};
class BandwidthInterface : public Component,
public Label::Listener
{
public:
BandwidthInterface(RHD2000Thread*, RHD2000Editor*);
~BandwidthInterface();
void paint(Graphics& g);
void labelTextChanged(Label* te);
void setLowerBandwidth(double value);
void setUpperBandwidth(double value);
double getLowerBandwidth();
double getUpperBandwidth();
private:
String name;
String lastLowCutString, lastHighCutString;
RHD2000Thread* board;
RHD2000Editor* editor;
ScopedPointer<Label> upperBandwidthSelection;
ScopedPointer<Label> lowerBandwidthSelection;
double actualUpperBandwidth;
double actualLowerBandwidth;
};
class DSPInterface : public Component,
public Label::Listener
{
public:
DSPInterface(RHD2000Thread*, RHD2000Editor*);
~DSPInterface();
void paint(Graphics& g);
void labelTextChanged(Label* te);
void setDspCutoffFreq(double value);
double getDspCutoffFreq();
private:
String name;
RHD2000Thread* board;
RHD2000Editor* editor;
ScopedPointer<Label> dspOffsetSelection;
double actualDspCutoffFreq;
};
class SampleRateInterface : public Component,
public ComboBox::Listener
{
public:
SampleRateInterface(RHD2000Thread*, RHD2000Editor*);
~SampleRateInterface();
int getSelectedId();
void setSelectedId(int);
void paint(Graphics& g);
void comboBoxChanged(ComboBox* cb);
private:
int sampleRate;
String name;
RHD2000Thread* board;
RHD2000Editor* editor;
ScopedPointer<ComboBox> rateSelection;
StringArray sampleRateOptions;
};
class AudioInterface : public Component,
public Label::Listener
{
public:
AudioInterface(RHD2000Thread*, RHD2000Editor*);
~AudioInterface();
void paint(Graphics& g);
void labelTextChanged(Label* te);
void setNoiseSlicerLevel(int value);
int getNoiseSlicerLevel();
//void setGain(double value);
//double getGain();
private:
String name;
String lastNoiseSlicerString;
String lastGainString;
RHD2000Thread* board;
RHD2000Editor* editor;
ScopedPointer<Label> noiseSlicerLevelSelection;
//ScopedPointer<Label> gainSelection;
int actualNoiseSlicerLevel;
//double actualGain;
};
class ClockDivideInterface : public Component,
public Label::Listener
{
public:
ClockDivideInterface(RHD2000Thread*, RHD2000Editor*);
void paint(Graphics& g);
void labelTextChanged(Label* te);
void setClockDivideRatio(int value);
int getClockDivideRatio() const { return actualDivideRatio; };
private:
String name;
String lastDivideRatioString;
RHD2000Thread * board;
RHD2000Editor * editor;
ScopedPointer<Label> divideRatioSelection;
int actualDivideRatio;
};
};
#endif // __RHD2000EDITOR_H_2AD3C591__
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
//----------------------------------------------------------------------------------
// rhd2000datablock.h
//
// Intan Technoloies RHD2000 Rhythm Interface API
// Rhd2000DataBlock Class Header File
// Version 1.4 (26 February 2014)
//
// Copyright (c) 2013-2014 Intan Technologies LLC
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the
// use of this software.
//
// Permission is granted to anyone to use this software for any applications that
// use Intan Technologies integrated circuits, and to alter it and redistribute it
// freely.
//
// See http://www.intantech.com for documentation and product information.
//----------------------------------------------------------------------------------
#ifndef RHD2000DATABLOCK_H
#define RHD2000DATABLOCK_H
#define SAMPLES_PER_DATA_BLOCK_PCIE 16
#define RHD2000_HEADER_MAGIC_NUMBER 0xc691199927021942
using namespace std;
namespace PCIeRhythm {
class Rhd2000EvalBoard;
class Rhd2000DataBlock
{
public:
Rhd2000DataBlock(int numDataStreams);
vector<unsigned int> timeStamp;
vector<vector<vector<int> > > amplifierData;
vector<vector<vector<int> > > auxiliaryData;
vector<vector<int> > boardAdcData;
vector<int> ttlIn;
vector<int> ttlOut;
static unsigned int calculateDataBlockSizeInWords(int numDataStreams, int nSamples = -1);
static unsigned int getSamplesPerDataBlock();
void fillFromUsbBuffer(unsigned char usbBuffer[], int blockIndex, int numDataStreams, int nSamples = -1);
void print(int stream) const;
void write(ofstream &saveOut, int numDataStreams) const;
static bool checkUsbHeader(unsigned char usbBuffer[], int index);
static unsigned int convertUsbTimeStamp(unsigned char usbBuffer[], int index);
static int convertUsbWord(unsigned char usbBuffer[], int index);
private:
void allocateIntArray3D(vector<vector<vector<int> > > &array3D, int xSize, int ySize, int zSize);
void allocateIntArray2D(vector<vector<int> > &array2D, int xSize, int ySize);
void allocateIntArray1D(vector<int> &array1D, int xSize);
void allocateUIntArray1D(vector<unsigned int> &array1D, int xSize);
void writeWordLittleEndian(ofstream &outputStream, int dataWord) const;
const unsigned int samplesPerBlock;
bool usb3;
};
};
#endif // RHD2000DATABLOCK_H
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment