Implementing fl.yin~
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
#include "FrameLib_Yin.h"
|
||||
#include "FrameLib_MaxClass.h"
|
||||
|
||||
extern "C" int C74_EXPORT main(void)
|
||||
{
|
||||
FrameLib_MaxClass_Expand<FrameLib_Yin>::makeClass("fl.yin~");
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
#include "FrameLib_Yin.h"
|
||||
|
||||
|
||||
// Constructor
|
||||
|
||||
FrameLib_Yin::FrameLib_Yin(FrameLib_Context context, FrameLib_Parameters::Serial *serialisedParameters, FrameLib_Proxy *proxy) : FrameLib_Processor(context, proxy, nullptr, 1, 1)
|
||||
{
|
||||
mParameters.addDouble(kF0Min, "f0Min", 0);
|
||||
mParameters.setClip(0.0, floor(mSamplingRate*0.5));
|
||||
mParameters.setInstantiation();
|
||||
mParameters.addEnum(kF0Max, "f0Max", 1);
|
||||
mParameters.setClip(0.0, floor(mSamplingRate*0.5));
|
||||
mParameters.setInstantiation();
|
||||
mParameters.addEnum(kHarmoThresh, "HarmoThresh", 2);
|
||||
mParameters.setClip(0.0, 1.0);
|
||||
mParameters.setInstantiation();
|
||||
|
||||
mParameters.set(serialisedParameters);
|
||||
}
|
||||
|
||||
// Info
|
||||
|
||||
std::string FrameLib_Yin::objectInfo(bool verbose)
|
||||
{
|
||||
return formatInfo("Output the cummulative sum of the input frame",
|
||||
"Output the cummulative sum of the input frame", verbose);
|
||||
}
|
||||
|
||||
std::string FrameLib_Yin::inputInfo(unsigned long idx, bool verbose)
|
||||
{
|
||||
return formatInfo("Input Frames", "Input Frames", verbose);
|
||||
}
|
||||
|
||||
std::string FrameLib_Yin::outputInfo(unsigned long idx, bool verbose)
|
||||
{
|
||||
return "cumulative sum of the frame";
|
||||
}
|
||||
|
||||
// Process
|
||||
void FrameLib_Yin::process()
|
||||
{
|
||||
|
||||
const double tauMin = floor(mParameters.getValue(kF0Min) / mSamplingRate);
|
||||
const double tauMax = floor(mParameters.getValue(kF0Max) / mSamplingRate);
|
||||
|
||||
unsigned long sizeIn;
|
||||
const double *input = getInput(0, &sizeIn);
|
||||
|
||||
unsigned long sizeOut = sizeIn;
|
||||
|
||||
requestOutputSize(0, sizeOut);
|
||||
allocateOutputs();
|
||||
|
||||
double *output = getOutput(0, &sizeOut);
|
||||
|
||||
if (output)
|
||||
{
|
||||
output[0] = input[0];
|
||||
for (unsigned long i=1; i < sizeOut; i++)
|
||||
{
|
||||
output[i] = input[i] + input[i - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const double * FrameLib_Yin::differenceFunction(double * x, unsigned int N, double tauMax)
|
||||
{
|
||||
tauMax = std::min(tauMax, static_cast<double>(N));
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
#ifndef FRAMELIB_YIN_H
|
||||
#define FRAMELIB_YIN_H
|
||||
|
||||
#include "FrameLib_DSP.h"
|
||||
|
||||
class FrameLib_Yin final : public FrameLib_Processor
|
||||
{
|
||||
enum ParameterList { kF0Min, kF0Max, kHarmoThresh };
|
||||
|
||||
struct ParameterInfo : public FrameLib_Parameters::Info { ParameterInfo(); };
|
||||
public:
|
||||
|
||||
// Constructor
|
||||
|
||||
FrameLib_Yin(FrameLib_Context context, FrameLib_Parameters::Serial *serialisedParameters, FrameLib_Proxy *proxy);
|
||||
|
||||
// Info
|
||||
|
||||
std::string objectInfo(bool verbose) override;
|
||||
std::string inputInfo(unsigned long idx, bool verbose) override;
|
||||
std::string outputInfo(unsigned long idx, bool verbose) override;
|
||||
|
||||
private:
|
||||
|
||||
// Process
|
||||
|
||||
void process() override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.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>
|
||||
<ClCompile Include="..\..\..\FrameLib_Max_Objects\Vector\fl.cumsum~.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{3F591F75-C3CD-4304-8C2E-F9D9C45D8E23}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>framelib</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>fl.cumsum~</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</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="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Debug_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win32_Config.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="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Release_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win32_Config.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')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Debug_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win64_Config.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Release_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win64_Config.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<TargetExt>.mxe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<TargetExt>.mxe64</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<TargetExt>.mxe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TargetExt>.mxe64</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link />
|
||||
<Link />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</Link>
|
||||
<ProjectReference />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link />
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.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>
|
||||
<ClCompile Include="..\..\..\FrameLib_Max_Objects\Vector\fl.cumsum~.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{3F591F75-C3CD-4304-8C2E-F9D9C45D8E23}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>framelib</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>fl.cumsum~</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</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="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Debug_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win32_Config.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="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Release_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win32_Config.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')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Debug_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win64_Config.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\01_Configs\FrameLib_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Base_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Release_Config.props" />
|
||||
<Import Project="..\01_Configs\FrameLib_Max_Win64_Config.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<TargetExt>.mxe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<TargetExt>.mxe64</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<TargetExt>.mxe</TargetExt>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TargetExt>.mxe64</TargetExt>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link />
|
||||
<Link />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</Link>
|
||||
<ProjectReference />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile />
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)FrameLib_Objects\Vector\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link />
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user