Initial release

This commit is contained in:
civ
2026-08-16 18:24:52 +07:00
commit 876886a39a
13244 changed files with 2353959 additions and 0 deletions
@@ -0,0 +1,94 @@
//-----------------------------------------------------------------------------
// Flags : clang-format SMTGSequencer
// Project : VST SDK
//
// Category : Validator
// Filename : public.sdk/source/vst/testsuite/noteexpression/keyswitch.cpp
// Created by : Steinberg, 04/2005
// Description : VST Test Suite
//
//-----------------------------------------------------------------------------
// This file is part of a Steinberg SDK. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this distribution
// and at www.steinberg.net/sdklicenses.
// No part of the SDK, including this file, may be copied, modified, propagated,
// or distributed except according to the terms contained in the LICENSE file.
//-----------------------------------------------------------------------------
#include "public.sdk/source/vst/testsuite/noteexpression/keyswitch.h"
#include "pluginterfaces/base/funknownimpl.h"
#include "pluginterfaces/vst/ivstnoteexpression.h"
//------------------------------------------------------------------------
namespace Steinberg {
namespace Vst {
//------------------------------------------------------------------------
// KeyswitchTest
//------------------------------------------------------------------------
KeyswitchTest::KeyswitchTest (ITestPlugProvider* plugProvider) : TestBase (plugProvider)
{
}
//------------------------------------------------------------------------
bool PLUGIN_API KeyswitchTest::run (ITestResult* testResult)
{
if (!testResult || !vstPlug)
return false;
printTestHeader (testResult);
if (!controller)
{
addMessage (testResult, STR ("No Edit Controller supplied!"));
return true;
}
auto keyswitch = U::cast<IKeyswitchController> (controller);
if (!keyswitch)
{
addMessage (testResult, STR ("No Keyswitch interface supplied!"));
return true;
}
int32 eventBusCount = vstPlug->getBusCount (kEvent, kInput);
for (int32 bus = 0; bus < eventBusCount; bus++)
{
BusInfo busInfo;
vstPlug->getBusInfo (kEvent, kInput, bus, busInfo);
for (int16 channel = 0; channel < busInfo.channelCount; channel++)
{
int32 count = keyswitch->getKeyswitchCount (bus, channel);
if (count > 0)
{
addMessage (testResult, printf ("Keyswitch support bus[%d], channel[%d]: %d", bus,
channel, count));
}
for (int32 i = 0; i < count; ++i)
{
KeyswitchInfo info;
if (keyswitch->getKeyswitchInfo (bus, channel, i, info) == kResultTrue)
{
}
else
{
addErrorMessage (
testResult,
printf ("Keyswitch getKeyswitchInfo (%d, %d, %d) return kResultFalse!", bus,
channel, i));
return false;
}
}
}
}
return true;
}
//------------------------------------------------------------------------
} // Vst
} // Steinberg
@@ -0,0 +1,44 @@
//-----------------------------------------------------------------------------
// Flags : clang-format SMTGSequencer
// Project : VST SDK
//
// Category : Validator
// Filename : public.sdk/source/vst/testsuite/noteexpression/keyswitch.h
// Created by : Steinberg, 04/2005
// Description : VST Test Suite
//
//-----------------------------------------------------------------------------
// This file is part of a Steinberg SDK. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this distribution
// and at www.steinberg.net/sdklicenses.
// No part of the SDK, including this file, may be copied, modified, propagated,
// or distributed except according to the terms contained in the LICENSE file.
//-----------------------------------------------------------------------------
#pragma once
#include "public.sdk/source/vst/testsuite/testbase.h"
//------------------------------------------------------------------------
namespace Steinberg {
namespace Vst {
//------------------------------------------------------------------------
/** Test Keyswitch.
* \ingroup TestClass
*/
class KeyswitchTest : public TestBase
{
public:
//------------------------------------------------------------------------
KeyswitchTest (ITestPlugProvider* plugProvider);
DECLARE_VSTTEST ("Keyswitch")
bool PLUGIN_API run (ITestResult* testResult) SMTG_OVERRIDE;
//------------------------------------------------------------------------
};
//------------------------------------------------------------------------
} // Vst
} // Steinberg
@@ -0,0 +1,164 @@
//-----------------------------------------------------------------------------
// Flags : clang-format SMTGSequencer
// Project : VST SDK
//
// Category : Validator
// Filename : public.sdk/source/vst/testsuite/noteexpression/noteexpression.cpp
// Created by : Steinberg, 04/2005
// Description : VST Test Suite
//
//-----------------------------------------------------------------------------
// This file is part of a Steinberg SDK. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this distribution
// and at www.steinberg.net/sdklicenses.
// No part of the SDK, including this file, may be copied, modified, propagated,
// or distributed except according to the terms contained in the LICENSE file.
//-----------------------------------------------------------------------------
#include "public.sdk/source/vst/testsuite/noteexpression/noteexpression.h"
#include "public.sdk/source/vst/utility/stringconvert.h"
#include "pluginterfaces/base/funknownimpl.h"
#include "pluginterfaces/vst/ivstnoteexpression.h"
#include "pluginterfaces/vst/ivstphysicalui.h"
//------------------------------------------------------------------------
namespace Steinberg {
namespace Vst {
//------------------------------------------------------------------------
// NoteExpressionTest
//------------------------------------------------------------------------
NoteExpressionTest::NoteExpressionTest (ITestPlugProvider* plugProvider) : TestBase (plugProvider)
{
}
//------------------------------------------------------------------------
bool PLUGIN_API NoteExpressionTest::run (ITestResult* testResult)
{
if (!testResult || !vstPlug)
return false;
printTestHeader (testResult);
if (!controller)
{
addMessage (testResult, STR ("No Edit Controller supplied!"));
return true;
}
auto noteExpression = U::cast<INoteExpressionController> (controller);
if (!noteExpression)
{
addMessage (testResult, STR ("No Note Expression interface supplied!"));
return true;
}
auto noteExpressionPUIMapping = U::cast<INoteExpressionPhysicalUIMapping> (controller);
if (!noteExpressionPUIMapping)
{
addMessage (testResult, STR ("No Note Expression PhysicalUIMapping interface supplied!"));
}
int32 eventBusCount = vstPlug->getBusCount (kEvent, kInput);
const uint32 maxPUI = kPUITypeCount;
PhysicalUIMap puiArray[maxPUI];
PhysicalUIMapList puiMap;
puiMap.count = maxPUI;
puiMap.map = puiArray;
for (uint32 i = 0; i < maxPUI; i++)
{
puiMap.map[i].physicalUITypeID = static_cast<PhysicalUITypeID> (i);
}
for (int32 bus = 0; bus < eventBusCount; bus++)
{
BusInfo busInfo;
vstPlug->getBusInfo (kEvent, kInput, bus, busInfo);
for (int16 channel = 0; channel < busInfo.channelCount; channel++)
{
int32 count = noteExpression->getNoteExpressionCount (bus, channel);
if (count > 0)
{
addMessage (testResult, printf ("Note Expression count bus[%d], channel[%d]: %d",
bus, channel, count));
}
for (int32 i = 0; i < count; ++i)
{
NoteExpressionTypeInfo info;
if (noteExpression->getNoteExpressionInfo (bus, channel, i, info) == kResultTrue)
{
addMessage (testResult, printf ("Note Expression TypeID: %d [%s]", info.typeId,
StringConvert::convert (info.title).data ()));
NoteExpressionTypeID id = info.typeId;
NoteExpressionValue valueNormalized = info.valueDesc.defaultValue;
String128 string;
if (noteExpression->getNoteExpressionStringByValue (
bus, channel, id, valueNormalized, string) != kResultTrue)
{
addMessage (
testResult,
printf (
"Note Expression getNoteExpressionStringByValue (%d, %d, %d) return kResultFalse!",
bus, channel, id));
}
if (noteExpression->getNoteExpressionValueByString (
bus, channel, id, string, valueNormalized) != kResultTrue)
{
addMessage (
testResult,
printf (
"Note Expression getNoteExpressionValueByString (%d, %d, %d) return kResultFalse!",
bus, channel, id));
}
}
else
{
addErrorMessage (
testResult,
printf (
"Note Expression getNoteExpressionInfo (%d, %d, %d) return kResultFalse!",
bus, channel, i));
return false;
}
}
if (noteExpressionPUIMapping)
{
for (uint32 i = 0; i < maxPUI; i++)
{
puiMap.map[i].noteExpressionTypeID = kInvalidTypeID;
}
if (noteExpressionPUIMapping->getPhysicalUIMapping (bus, channel, puiMap) ==
kResultFalse)
{
addMessage (
testResult,
printf (
"Note Expression getPhysicalUIMapping (%d, %d, ...) return kResultFalse!",
bus, channel));
}
else
{
for (uint32 i = 0; i < maxPUI; i++)
{
addMessage (testResult,
printf ("Note Expression PhysicalUIMapping: %d => %d",
puiMap.map[i].noteExpressionTypeID,
puiMap.map[i].physicalUITypeID));
}
}
}
}
}
return true;
}
//------------------------------------------------------------------------
} // Vst
} // Steinberg
@@ -0,0 +1,44 @@
//-----------------------------------------------------------------------------
// Flags : clang-format SMTGSequencer
// Project : VST SDK
//
// Category : Validator
// Filename : public.sdk/source/vst/testsuite/noteexpression/noteexpression.h
// Created by : Steinberg, 04/2005
// Description : VST Test Suite
//
//-----------------------------------------------------------------------------
// This file is part of a Steinberg SDK. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this distribution
// and at www.steinberg.net/sdklicenses.
// No part of the SDK, including this file, may be copied, modified, propagated,
// or distributed except according to the terms contained in the LICENSE file.
//-----------------------------------------------------------------------------
#pragma once
#include "public.sdk/source/vst/testsuite/testbase.h"
//------------------------------------------------------------------------
namespace Steinberg {
namespace Vst {
//------------------------------------------------------------------------
/** Test Note Expression.
* \ingroup TestClass
*/
class NoteExpressionTest : public TestBase
{
public:
//------------------------------------------------------------------------
NoteExpressionTest (ITestPlugProvider* plugProvider);
DECLARE_VSTTEST ("Note Expression")
bool PLUGIN_API run (ITestResult* testResult) SMTG_OVERRIDE;
//------------------------------------------------------------------------
};
//------------------------------------------------------------------------
} // Vst
} // Steinberg