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,62 @@
cmake_minimum_required(VERSION 3.25.0)
if(NOT SMTG_AAX_SDK_PATH OR NOT SMTG_ENABLE_VSTGUI_SUPPORT)
return()
endif()
project(smtg-vst3-hostchecker-aax
VERSION ${vstsdk_VERSION}.0
DESCRIPTION "Steinberg VST 3 hostchecker AAX example"
)
include(SMTG_AddAAXLibrary)
smtg_add_aaxplugin(host-checker-aax
../hostchecker/resource/hostchecker.uidesc
../hostchecker/source/cids.h
../hostchecker/source/editorsizecontroller.cpp
../hostchecker/source/editorsizecontroller.h
../hostchecker/source/eventlistcheck.cpp
../hostchecker/source/eventlistcheck.h
../hostchecker/source/eventlogdatabrowsersource.cpp
../hostchecker/source/eventlogdatabrowsersource.h
../hostchecker/source/eventlogger.cpp
../hostchecker/source/eventlogger.h
../hostchecker/source/factory.cpp
../hostchecker/source/hostcheck.cpp
../hostchecker/source/hostcheck.h
../hostchecker/source/hostcheckercontroller.cpp
../hostchecker/source/hostcheckercontroller.h
../hostchecker/source/hostcheckerprocessor.cpp
../hostchecker/source/hostcheckerprocessor.h
../hostchecker/source/logevents.h
../hostchecker/source/parameterchangescheck.cpp
../hostchecker/source/parameterchangescheck.h
../hostchecker/source/processcontextcheck.cpp
../hostchecker/source/processcontextcheck.h
../hostchecker/source/processsetupcheck.cpp
../hostchecker/source/processsetupcheck.h
../hostchecker/source/version.h
source/hostchecker_aax.cpp
)
target_include_directories(host-checker-aax
PUBLIC
${SDK_ROOT}/public.sdk/samples/vst/hostchecker/source
)
target_link_libraries(host-checker-aax
PRIVATE
vstgui_support
aax_wrapper
)
smtg_target_add_plugin_resources(host-checker-aax
RESOURCES
../hostchecker/resource/hostchecker.uidesc
../hostchecker/resource/bypass.png
../hostchecker/resource/knob.png
)
smtg_target_setup_as_vst3_example(host-checker-aax)
@@ -0,0 +1,18 @@
# VST 3 Host Checker AAX
## Introduction
This plug-in is the AAX version of the *VST 3 Host Checker* plug-in. It tracks all incoming function calls, monitors calling sequences and performs various other tests.
> See also: [Online Documentation](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/Plug-in+Examples.html?highlight=host%20checker#hostchecker).
## Getting Started
This plug-in is part of the VST 3 SDK package. It is created with the VST 3 SDK root project.
> See the top-level README of the VST 3 SDK: https://github.com/steinbergmedia/vst3sdk.git
## Getting Help
* Read through the SDK documentation on the **[VST 3 Developer Portal](https://steinbergmedia.github.io/vst3_dev_portal/pages/index.html)**
* Ask some real people in the official **[VST 3 Developer Forum](https://forums.steinberg.net/c/developer/103)**
@@ -0,0 +1,49 @@
#include <windows.h>
#include "../source/version.h"
#define APSTUDIO_READONLY_SYMBOLS
knob.png PNG "../../hostchecker/resource/knob.png"
bypass.png PNG "../../hostchecker/resource/bypass.png"
hostchecker.uidesc DATA "../../hostchecker/resource/hostchecker.uidesc"
/////////////////////////////////////////////////////////////////////////////
// Version
/////////////////////////////////////////////////////////////////////////////
VS_VERSION_INFO VERSIONINFO
FILEVERSION MAJOR_VERSION_INT,SUB_VERSION_INT,RELEASE_NUMBER_INT,BUILD_NUMBER_INT
PRODUCTVERSION MAJOR_VERSION_INT,SUB_VERSION_INT,RELEASE_NUMBER_INT,BUILD_NUMBER_INT
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040004e4"
BEGIN
VALUE "FileVersion", FULL_VERSION_STR
VALUE "ProductVersion", FULL_VERSION_STR
VALUE "OriginalFilename", stringOriginalFilename
VALUE "FileDescription", stringFileDescription
VALUE "InternalName", stringFileDescription
VALUE "ProductName", stringFileDescription
VALUE "CompanyName", stringCompanyName
VALUE "LegalCopyright", stringLegalCopyright
VALUE "LegalTrademarks", stringLegalTrademarks
//VALUE "PrivateBuild", " \0"
//VALUE "SpecialBuild", " \0"
//VALUE "Comments", " \0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x400, 1252
END
END
@@ -0,0 +1,119 @@
//------------------------------------------------------------------------
// Project : VST SDK
//
// Category : Examples
// Filename : public.sdk/samples/vst/hostchecker/source/hostchecker_aax.cpp
// Created by : Steinberg, 04/2019
// Description : HostChecker AAX Example for VST SDK 3
//
//-----------------------------------------------------------------------------
// 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/aaxwrapper/aaxwrapper_description.h"
#include "cids.h"
#include "hostcheckercontroller.h"
#include "pluginterfaces/base/futils.h"
//------------------------------------------------------------------------
#if 0 // for additional outputs
AAX_Aux_Desc effAux_stereo[] =
{
// name, channel count
{ "AGain AUX2", 2 },
{ nullptr }
};
#endif
//------------------------------------------------------------------------
#if 1 // MIDI inputs for instruments or Fx with MIDI input
AAX_MIDI_Desc effMIDI[] =
{
// port name, channel mask
{ "HostChecker MIDI", 0xffff },
{ nullptr }
};
#endif
//------------------------------------------------------------------------
// Input/Output meters
/*
AAX_Meter_Desc effMeters[] =
{
// not used { "Input", CCONST ('A', 'G', 'I', 'n'), 0 / *AAX_eMeterOrientation_Default* /, 0 / *AAX_eMeterType_Input* / },
{ "Output", kVuPPMId, 0 / *AAX_eMeterOrientation_Default* /, 1 / *AAX_eMeterType_Output* / },
{ nullptr }
};
*/
//------------------------------------------------------------------------
AAX_Plugin_Desc effPlugins[] = {
// effect-ID, name,
// Native ID, AudioSuite ID,
// InChannels, OutChannels, InSideChain channels,
// MIDI, Aux,
// Meters
// Latency
// note: IDs must be unique across plugins
// Mono variant
{"com.steinberg.hostchecker.mono",
"HostChecker",
CCONST ('H', 'C', 'h', '1'),
CCONST ('H', 'C', 'H', '1'),
1, /*mInputChannels*/
1, /*mOutputChannels*/
1, /*mSideChainInputChannels*/
effMIDI, /*effMIDI*/
nullptr, /*effAux*/
nullptr, /*effMeters*/
0 /*Latency*/
},
// Stereo variant
{"com.steinberg.hostchecker.stereo",
"HostChecker",
CCONST ('H', 'C', 'h', '2'),
CCONST ('H', 'C', 'H', '2'),
2, /*mInputChannels*/
2, /*mOutputChannels*/
2, /*mSideChainInputChannels*/
effMIDI, /*effMIDI*/
nullptr, /*effAux*/
nullptr, /*effMeters*/
0 /*Latency*/
},
{nullptr}
};
//------------------------------------------------------------------------
AAX_Effect_Desc effDesc = {
"Steinberg", // manufacturer
"HostChecker", // product
CCONST ('S', 'M', 'T', 'G'), // manufacturer ID
CCONST ('H', 'C', 'H', 'E'), // product ID
PlugVST3Category, // VST category (define cids.h)
{0}, // VST3 class ID (set later)
1, // version
nullptr, // no pagetable file "hostchecker.xml",
effPlugins,
};
//------------------------------------------------------------------------
// this drag's in all the craft from the AAX library
int* forceLinkAAXWrapper = &AAXWrapper_linkAnchor;
//------------------------------------------------------------------------
AAX_Effect_Desc* AAXWrapper_GetDescription ()
{
// cannot initialize in global descriptor, and it might be link order dependent
memcpy (effDesc.mVST3PluginID, (const char*)Steinberg::Vst::HostCheckerProcessorUID,
sizeof (effDesc.mVST3PluginID));
return &effDesc;
}