gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

commit 324d1f808f192e08abebfbd4372533ed04f12867
parent 020ffa444819512515cf5a8cfacb9a06ad50bf7b
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date:   Wed, 30 Oct 2024 21:50:30 +0100

autogenerate header file for integrated skins

Diffstat:
Msource/CMakeLists.txt | 10+++++++++-
Msource/mqJucePlugin/.gitignore | 3++-
Msource/mqJucePlugin/CMakeLists.txt | 10+++++-----
Msource/mqJucePlugin/PluginEditorState.cpp | 8++------
Asource/nord/n2x/n2xJucePlugin/.gitignore | 2++
Msource/nord/n2x/n2xJucePlugin/CMakeLists.txt | 8++++----
Msource/nord/n2x/n2xJucePlugin/n2xPluginEditorState.cpp | 7++-----
Asource/osTIrusJucePlugin/.gitignore | 2++
Msource/osTIrusJucePlugin/CMakeLists.txt | 6++++--
Msource/osTIrusJucePlugin/OsTIrusEditorState.cpp | 6+-----
Asource/osirusJucePlugin/.gitignore | 2++
Msource/osirusJucePlugin/CMakeLists.txt | 10++++++----
Msource/osirusJucePlugin/OsirusEditorState.cpp | 8+-------
Asource/skins.cmake | 17+++++++++++++++++
Asource/skins.h.in | 6++++++
Msource/xtJucePlugin/.gitignore | 3++-
Msource/xtJucePlugin/CMakeLists.txt | 6+++---
Msource/xtJucePlugin/PluginEditorState.cpp | 7++-----
18 files changed, 72 insertions(+), 49 deletions(-)

diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt @@ -8,7 +8,14 @@ option(${CMAKE_PROJECT_NAME}_SYNTH_NODALRED2X "Build NodalRed2x" on) # ----------------- Add our cmake scripts to IDE -add_custom_target(cmakeScripts SOURCES findvst2.cmake juce.cmake macsetup.cmake macsetup.command.in runAuValidation.cmake ../base.cmake) +add_custom_target(cmakeScripts SOURCES + findvst2.cmake + juce.cmake + macsetup.cmake + macsetup.command.in + runAuValidation.cmake + skins.cmake + ../base.cmake) # ----------------- DSP56300 emulator @@ -25,6 +32,7 @@ add_subdirectory(synthLib) add_subdirectory(libresample) include(macsetup.cmake) +include(skins.cmake) # ----------------- Try to install VST2 SDK diff --git a/source/mqJucePlugin/.gitignore b/source/mqJucePlugin/.gitignore @@ -1 +1 @@ -/version.h +skins.h +\ No newline at end of file diff --git a/source/mqJucePlugin/CMakeLists.txt b/source/mqJucePlugin/CMakeLists.txt @@ -17,13 +17,13 @@ set(SOURCES mqPatchBrowser.h ) -# https://forum.juce.com/t/help-needed-using-binarydata-with-cmake-juce-6/40486 -# "This might be because the BinaryData files are generated during the build, so the IDE may not be able to find them until the build has been run once (and even then, some IDEs might need a bit of a nudge to re-index the binary directory…)" SET(ASSETS "parameterDescriptions_mq.json") -include(skins/mqFrontPanel/assets.cmake) -include(skins/mqDefault/assets.cmake) +addSkin("Vavra" "mqDefault" "skins/mqDefault" "mqDefault.json" "ASSETS_mqDefault") +addSkin("Vavra" "mqFrontPanel" "skins/mqFrontPanel" "mqFrontPanel.json" "ASSETS_mqFrontPanel") -juce_add_binary_data(mqJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_mqFrontPanel} ${ASSETS_mqDefault}) +buildSkinHeader() + +juce_add_binary_data(mqJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_SKINS}) createJucePluginWithFX(mqJucePlugin "Vavra" "Tmqs" "Tmqf" mqJucePlugin_BinaryData mqLib) diff --git a/source/mqJucePlugin/PluginEditorState.cpp b/source/mqJucePlugin/PluginEditorState.cpp @@ -7,14 +7,10 @@ #include "synthLib/os.h" +#include "skins.h" + namespace mqJucePlugin { - const std::vector<PluginEditorState::Skin> g_includedSkins = - { - {"Editor", "mqDefault.json", ""}, - {"Device", "mqFrontPanel.json", ""} - }; - PluginEditorState::PluginEditorState(AudioPluginAudioProcessor& _processor) : jucePluginEditorLib::PluginEditorState(_processor, _processor.getController(), g_includedSkins) { loadDefaultSkin(); diff --git a/source/nord/n2x/n2xJucePlugin/.gitignore b/source/nord/n2x/n2xJucePlugin/.gitignore @@ -0,0 +1 @@ +skins.h +\ No newline at end of file diff --git a/source/nord/n2x/n2xJucePlugin/CMakeLists.txt b/source/nord/n2x/n2xJucePlugin/CMakeLists.txt @@ -24,12 +24,12 @@ set(SOURCES skins/n2xTrancy/n2xTrancy.json ) -# https://forum.juce.com/t/help-needed-using-binarydata-with-cmake-juce-6/40486 -# "This might be because the BinaryData files are generated during the build, so the IDE may not be able to find them until the build has been run once (and even then, some IDEs might need a bit of a nudge to re-index the binary directory…)" SET(ASSETS "parameterDescriptions_n2x.json") -include(skins/n2xTrancy/assets.cmake) +addSkin("NodalRed2x" "n2xTrancy" "skins/n2xTrancy" "n2xTrancy.json" "ASSETS_n2xTrancy") -juce_add_binary_data(n2xJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_n2xTrancy}) +buildSkinHeader() + +juce_add_binary_data(n2xJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_SKINS}) createJucePlugin(n2xJucePlugin "NodalRed2x" TRUE "Tn2x" n2xJucePlugin_BinaryData n2xLib) diff --git a/source/nord/n2x/n2xJucePlugin/n2xPluginEditorState.cpp b/source/nord/n2x/n2xJucePlugin/n2xPluginEditorState.cpp @@ -7,13 +7,10 @@ #include "synthLib/os.h" +#include "skins.h" + namespace n2xJucePlugin { - const std::vector<PluginEditorState::Skin> g_includedSkins = - { - {"N2x", "n2xTrancy.json", ""}, - }; - PluginEditorState::PluginEditorState(AudioPluginAudioProcessor& _processor) : jucePluginEditorLib::PluginEditorState(_processor, _processor.getController(), g_includedSkins) { loadDefaultSkin(); diff --git a/source/osTIrusJucePlugin/.gitignore b/source/osTIrusJucePlugin/.gitignore @@ -0,0 +1 @@ +skins.h +\ No newline at end of file diff --git a/source/osTIrusJucePlugin/CMakeLists.txt b/source/osTIrusJucePlugin/CMakeLists.txt @@ -12,8 +12,10 @@ set(SOURCES SET(ASSETS "parameterDescriptions_TI.json") -include(skins/TrancyTI/assets.cmake) +addSkin("OsTIrus" "TrancyTI" "skins/TrancyTI" "VirusTI_Trancy.json" "ASSETS_VirusTI_Trancy") -juce_add_binary_data(osTIrusJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_VirusTI_Trancy}) +buildSkinHeader() + +juce_add_binary_data(osTIrusJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_SKINS}) createJucePluginWithFX(osTIrusJucePlugin "OsTIrus" "Ttip" "Ttif" osTIrusJucePlugin_BinaryData virusJucePlugin) diff --git a/source/osTIrusJucePlugin/OsTIrusEditorState.cpp b/source/osTIrusJucePlugin/OsTIrusEditorState.cpp @@ -1,10 +1,6 @@ #include "OsTIrusEditorState.h" -#include "OsTIrusProcessor.h" -const std::vector<jucePluginEditorLib::PluginEditorState::Skin> g_includedSkins = -{ - {"TI Trancy", "VirusTI_Trancy.json", ""} -}; +#include "skins.h" OsTIrusEditorState::OsTIrusEditorState(virus::VirusProcessor& _processor, pluginLib::Controller& _controller) : VirusEditorState(_processor, _controller, g_includedSkins) { diff --git a/source/osirusJucePlugin/.gitignore b/source/osirusJucePlugin/.gitignore @@ -0,0 +1 @@ +skins.h +\ No newline at end of file diff --git a/source/osirusJucePlugin/CMakeLists.txt b/source/osirusJucePlugin/CMakeLists.txt @@ -11,10 +11,12 @@ set(SOURCES SET(ASSETS "parameterDescriptions_C.json") -include(skins/Galaxpel/assets.cmake) -include(skins/Hoverland/assets.cmake) -include(skins/Trancy/assets.cmake) +addSkin("Osirus" "Hoverland" "skins/Hoverland" "VirusC_Hoverland.json" "ASSETS_VirusC_Hoverland") +addSkin("Osirus" "Galaxpel" "skins/Galaxpel" "VirusC_Galaxpel.json" "ASSETS_VirusC_Galaxpel") +addSkin("Osirus" "Trancy" "skins/Trancy" "VirusC_Trancy.json" "ASSETS_VirusC_Trancy") -juce_add_binary_data(osirusJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_VirusC_Galaxpel} ${ASSETS_VirusC_Hoverland} ${ASSETS_VirusC_Trancy}) +buildSkinHeader() + +juce_add_binary_data(osirusJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_SKINS}) createJucePluginWithFX(osirusJucePlugin "Osirus" "TusV" "TusF" osirusJucePlugin_BinaryData virusJucePlugin) diff --git a/source/osirusJucePlugin/OsirusEditorState.cpp b/source/osirusJucePlugin/OsirusEditorState.cpp @@ -1,12 +1,6 @@ #include "OsirusEditorState.h" -#include "OsirusProcessor.h" -const std::vector<jucePluginEditorLib::PluginEditorState::Skin> g_includedSkins = -{ - {"Hoverland", "VirusC_Hoverland.json", ""}, - {"Trancy", "VirusC_Trancy.json", ""}, - {"Galaxpel", "VirusC_Galaxpel.json", ""} -}; +#include "skins.h" OsirusEditorState::OsirusEditorState(virus::VirusProcessor& _processor, pluginLib::Controller& _controller) : VirusEditorState(_processor, _controller, g_includedSkins) { diff --git a/source/skins.cmake b/source/skins.cmake @@ -0,0 +1,17 @@ +set(SkinsHeaderDir ${CMAKE_CURRENT_LIST_DIR}) + +macro(addSkin productName skinName skinFolder skinJson assetName) + include(${skinFolder}/assets.cmake) + + if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${skinFolder}/${skinJson}) + message(FATAL_ERROR "${CMAKE_CURRENT_SOURCE_DIR}/${skinFolder}/${skinJson} not found") + endif() + + list(APPEND ASSETS_SKINS ${${assetName}}) + + string(JOIN ", " SKIN_CPP_ENTRIES ${SKIN_CPP_ENTRIES} "{\"${skinName}\", \"${skinJson}\", \"\"}") +endmacro() + +macro(buildSkinHeader) + configure_file(${SkinsHeaderDir}/skins.h.in ${CMAKE_CURRENT_SOURCE_DIR}/skins.h) +endmacro() diff --git a/source/skins.h.in b/source/skins.h.in @@ -0,0 +1,6 @@ +#pragma once + +const std::vector<jucePluginEditorLib::PluginEditorState::Skin> g_includedSkins = +{ + ${SKIN_CPP_ENTRIES} +}; diff --git a/source/xtJucePlugin/.gitignore b/source/xtJucePlugin/.gitignore @@ -1 +1 @@ -/version.h +skins.h +\ No newline at end of file diff --git a/source/xtJucePlugin/CMakeLists.txt b/source/xtJucePlugin/CMakeLists.txt @@ -39,11 +39,11 @@ set(SOURCES xtWaveEditorStyle.cpp xtWaveEditorStyle.h ) -# https://forum.juce.com/t/help-needed-using-binarydata-with-cmake-juce-6/40486 -# "This might be because the BinaryData files are generated during the build, so the IDE may not be able to find them until the build has been run once (and even then, some IDEs might need a bit of a nudge to re-index the binary directory…)" SET(ASSETS "parameterDescriptions_xt.json") -include(skins/xtDefault/assets.cmake) +addSkin("Xenia" "xtDefault" "skins/xtDefault" "xtDefault.json" "ASSETS_xtDefault") + +buildSkinHeader() juce_add_binary_data(xtJucePlugin_BinaryData SOURCES ${ASSETS} ${ASSETS_xtDefault}) diff --git a/source/xtJucePlugin/PluginEditorState.cpp b/source/xtJucePlugin/PluginEditorState.cpp @@ -5,13 +5,10 @@ #include "synthLib/os.h" +#include "skins.h" + namespace xtJucePlugin { - const std::vector<PluginEditorState::Skin> g_includedSkins = - { - {"XT", "xtDefault.json", ""}, - }; - PluginEditorState::PluginEditorState(AudioPluginAudioProcessor& _processor) : jucePluginEditorLib::PluginEditorState(_processor, _processor.getController(), g_includedSkins) { loadDefaultSkin();