Reorganize files, add Fundamental plugins
This commit is contained in:
parent
934e7ad021
commit
2a5769a6ca
27 changed files with 515 additions and 157 deletions
9
.gitmodules
vendored
9
.gitmodules
vendored
|
@ -1,12 +1,15 @@
|
||||||
[submodule "plugins/Cardinal/Rack"]
|
[submodule "plugins/Cardinal/Rack"]
|
||||||
path = plugins/Cardinal/Rack
|
path = src/Rack
|
||||||
url = https://github.com/VCVRack/Rack.git
|
url = https://github.com/VCVRack/Rack.git
|
||||||
[submodule "dpf"]
|
[submodule "dpf"]
|
||||||
path = dpf
|
path = dpf
|
||||||
url = https://github.com/DISTRHO/DPF.git
|
url = https://github.com/DISTRHO/DPF.git
|
||||||
[submodule "plugins/Cardinal/mingw-std-threads"]
|
[submodule "plugins/Cardinal/mingw-std-threads"]
|
||||||
path = plugins/Cardinal/mingw-std-threads
|
path = src/mingw-std-threads
|
||||||
url = https://github.com/meganz/mingw-std-threads.git
|
url = https://github.com/meganz/mingw-std-threads.git
|
||||||
[submodule "plugins/Cardinal/sse2neon"]
|
[submodule "plugins/Cardinal/sse2neon"]
|
||||||
path = plugins/Cardinal/sse2neon
|
path = src/sse2neon
|
||||||
url = https://github.com/DLTcollab/sse2neon.git
|
url = https://github.com/DLTcollab/sse2neon.git
|
||||||
|
[submodule "plugins/Fundamental"]
|
||||||
|
path = plugins/Fundamental
|
||||||
|
url = https://github.com/VCVRack/Fundamental.git
|
||||||
|
|
29
Makefile
29
Makefile
|
@ -6,18 +6,25 @@
|
||||||
|
|
||||||
include dpf/Makefile.base.mk
|
include dpf/Makefile.base.mk
|
||||||
|
|
||||||
all: dgl plugins gen
|
all: cardinal deps dgl plugins gen
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
|
||||||
|
cardinal: deps dgl plugins
|
||||||
|
$(MAKE) all -C src
|
||||||
|
|
||||||
|
deps:
|
||||||
|
$(MAKE) all -C deps
|
||||||
|
|
||||||
dgl:
|
dgl:
|
||||||
$(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl
|
$(MAKE) USE_NANOVG_FBO=true USE_RGBA=true -C dpf/dgl opengl
|
||||||
|
# $(MAKE) opengl -C dpf/dgl USE_NANOVG_FBO=true USE_RGBA=true
|
||||||
|
|
||||||
plugins: dgl
|
plugins: deps
|
||||||
$(MAKE) all -C plugins/Cardinal
|
$(MAKE) all -C plugins
|
||||||
|
|
||||||
ifneq ($(CROSS_COMPILING),true)
|
ifneq ($(CROSS_COMPILING),true)
|
||||||
gen: plugins dpf/utils/lv2_ttl_generator
|
gen: cardinal dpf/utils/lv2_ttl_generator
|
||||||
@$(CURDIR)/dpf/utils/generate-ttl.sh
|
@$(CURDIR)/dpf/utils/generate-ttl.sh
|
||||||
ifeq ($(MACOS),true)
|
ifeq ($(MACOS),true)
|
||||||
@$(CURDIR)/dpf/utils/generate-vst-bundles.sh
|
@$(CURDIR)/dpf/utils/generate-vst-bundles.sh
|
||||||
|
@ -32,19 +39,13 @@ endif
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
$(MAKE) clean -C deps
|
||||||
$(MAKE) clean -C dpf/dgl
|
$(MAKE) clean -C dpf/dgl
|
||||||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator
|
$(MAKE) clean -C dpf/utils/lv2-ttl-generator
|
||||||
$(MAKE) clean -C plugins/Cardinal
|
$(MAKE) clean -C plugins
|
||||||
|
$(MAKE) clean -C src
|
||||||
rm -rf bin build
|
rm -rf bin build
|
||||||
rm -rf plugins/Cardinal/Rack/dep/bin
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/include
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/lib
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/share
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/jansson-2.12
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/libarchive-3.4.3
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/speexdsp-SpeexDSP-1.2rc3
|
|
||||||
rm -rf plugins/Cardinal/Rack/dep/zstd-1.4.5
|
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
|
|
||||||
.PHONY: plugins
|
.PHONY: deps plugins
|
||||||
|
|
149
deps/Makefile
vendored
Normal file
149
deps/Makefile
vendored
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# Makefile for Cardinal #
|
||||||
|
# --------------------- #
|
||||||
|
# Created by falkTX
|
||||||
|
#
|
||||||
|
|
||||||
|
DEP_PATH = $(abspath ../src/Rack/dep)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Import base definitions
|
||||||
|
|
||||||
|
USE_NANOVG_FBO = true
|
||||||
|
USE_RGBA = true
|
||||||
|
include ../dpf/Makefile.base.mk
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# override VCV arch.mk stuff so we can build more architectures
|
||||||
|
|
||||||
|
ifeq ($(CPU_ARM),true)
|
||||||
|
ARCH_NAME = arm
|
||||||
|
MACHINE = i686-bring-forth-the-rack
|
||||||
|
else ifeq ($(CPU_ARM64),true)
|
||||||
|
ARCH_NAME = arm64
|
||||||
|
MACHINE = x86_64-bring-forth-the-rack
|
||||||
|
else ifeq ($(CPU_AARCH64),true)
|
||||||
|
ARCH_NAME = aarch64
|
||||||
|
MACHINE = x86_64-bring-forth-the-rack
|
||||||
|
else
|
||||||
|
MACHINE = $(TARGET_MACHINE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(MACOS_OR_WINDOWS),true)
|
||||||
|
MACHINE_SUFFIX = -linux
|
||||||
|
endif
|
||||||
|
|
||||||
|
# NOTE speex fails to build when neon is enabled
|
||||||
|
CONFIGURE = ./configure --prefix="$(DEP_PATH)" --host=$(TARGET_MACHINE) --enable-neon=no
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Fix up cmake
|
||||||
|
|
||||||
|
SPACE =
|
||||||
|
SPACE +=
|
||||||
|
|
||||||
|
CMAKE = cmake
|
||||||
|
|
||||||
|
ifneq (,$(findstring -arch$(SPACE),$(CXXFLAGS)))
|
||||||
|
CMAKE += -DCMAKE_OSX_ARCHITECTURES='$(subst $(SPACE),;,$(subst -arch=,,$(filter -arch=%,$(subst -arch$(SPACE),-arch=,$(CXXFLAGS)))))'
|
||||||
|
endif
|
||||||
|
ifneq (,$(findstring -mmacosx-version-min=,$(CXXFLAGS)))
|
||||||
|
CMAKE += -DCMAKE_OSX_DEPLOYMENT_TARGET=$(subst -mmacosx-version-min=,,$(filter -mmacosx-version-min=%,$(CXXFLAGS)))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(WINDOWS),true)
|
||||||
|
CMAKE += -G 'Unix Makefiles'
|
||||||
|
CMAKE += -DCMAKE_RC_COMPILER=$(subst gcc,windres,$(CC))
|
||||||
|
CMAKE += -DCMAKE_SYSTEM_NAME=Windows
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(DEBUG),true)
|
||||||
|
CMAKE += -DCMAKE_BUILD_TYPE=Debug
|
||||||
|
else
|
||||||
|
CMAKE += -DCMAKE_BUILD_TYPE=Release
|
||||||
|
endif
|
||||||
|
|
||||||
|
CMAKE += -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX='$(DEP_PATH)'
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# VCV internal dependencies target
|
||||||
|
|
||||||
|
$(DEP_PATH)/lib/%.a:
|
||||||
|
$(MAKE) \
|
||||||
|
ARCH_NAME=$(ARCH_NAME) \
|
||||||
|
CFLAGS="$(BUILD_C_FLAGS)" \
|
||||||
|
CXXFLAGS="$(BUILD_CXX_FLAGS)" \
|
||||||
|
LDFLAGS="$(LINK_FLAGS)" \
|
||||||
|
CMAKE="$(CMAKE)" \
|
||||||
|
CONFIGURE="$(CONFIGURE)" \
|
||||||
|
DEP_FLAGS="$(BASE_FLAGS)" \
|
||||||
|
DEP_MAC_SDK_FLAGS= \
|
||||||
|
MACHINE=$(MACHINE)$(MACHINE_SUFFIX) \
|
||||||
|
-C $(DEP_PATH) lib/$*.a
|
||||||
|
|
||||||
|
$(DEP_PATH)/lib/libarchive.a: $(DEP_PATH)/lib/libzstd.a
|
||||||
|
|
||||||
|
$(DEP_PATH)/lib/libarchive_static.a: $(DEP_PATH)/lib/libzstd.a
|
||||||
|
|
||||||
|
ifeq ($(MACOS),true)
|
||||||
|
# zstd cmake is borked, see https://github.com/facebook/zstd/issues/1401
|
||||||
|
$(DEP_PATH)/lib/libzstd.a: $(DEP_PATH)/zstd-1.4.5/.stamp-patched
|
||||||
|
|
||||||
|
$(DEP_PATH)/zstd-1.4.5/.stamp-patched:
|
||||||
|
$(MAKE) -C $(DEP_PATH) zstd-1.4.5
|
||||||
|
sed -i -e "56,66d" $(DEP_PATH)/zstd-1.4.5/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
|
||||||
|
touch $@
|
||||||
|
endif
|
||||||
|
|
||||||
|
# libsamplerate fails to link its tests in some systems
|
||||||
|
$(DEP_PATH)/libsamplerate-0.1.9:
|
||||||
|
$(MAKE) -C $(DEP_PATH) libsamplerate-0.1.9
|
||||||
|
|
||||||
|
$(DEP_PATH)/lib/libsamplerate.a: $(DEP_PATH)/libsamplerate-0.1.9
|
||||||
|
cd $(DEP_PATH)/libsamplerate-0.1.9 && $(CONFIGURE) --disable-fftw --disable-sndfile
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/termination_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/simple_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/misc_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/callback_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/reset_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/varispeed_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/float_short_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/multi_channel_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/callback_hang_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/src-evaluate
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/throughput_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/multichan_throughput_test
|
||||||
|
touch $(DEP_PATH)/libsamplerate-0.1.9/tests/downsample_test
|
||||||
|
$(MAKE) -C $(DEP_PATH)/libsamplerate-0.1.9
|
||||||
|
$(MAKE) -C $(DEP_PATH)/libsamplerate-0.1.9 install
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Build targets
|
||||||
|
|
||||||
|
TARGETS += $(DEP_PATH)/lib/libjansson.a
|
||||||
|
TARGETS += $(DEP_PATH)/lib/libsamplerate.a
|
||||||
|
TARGETS += $(DEP_PATH)/lib/libspeexdsp.a
|
||||||
|
|
||||||
|
ifeq ($(WINDOWS),true)
|
||||||
|
TARGETS += $(DEP_PATH)/lib/libarchive_static.a
|
||||||
|
else
|
||||||
|
TARGETS += $(DEP_PATH)/lib/libarchive.a
|
||||||
|
endif
|
||||||
|
|
||||||
|
TARGETS += $(DEP_PATH)/lib/libzstd.a
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGETS)
|
||||||
|
rm -rf $(DEP_PATH)/bin
|
||||||
|
rm -rf $(DEP_PATH)/include
|
||||||
|
rm -rf $(DEP_PATH)/lib
|
||||||
|
rm -rf $(DEP_PATH)/share
|
||||||
|
rm -rf $(DEP_PATH)/jansson-2.12
|
||||||
|
rm -rf $(DEP_PATH)/libarchive-3.4.3
|
||||||
|
rm -rf $(DEP_PATH)/libsamplerate-0.1.9
|
||||||
|
rm -rf $(DEP_PATH)/speexdsp-SpeexDSP-1.2rc3
|
||||||
|
rm -rf $(DEP_PATH)/zstd-1.4.5
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
2
dpf
2
dpf
|
@ -1 +1 @@
|
||||||
Subproject commit 2711cbefa481c3ebed1ca9dbda190bf915d8b0b9
|
Subproject commit 2f1b5127cc2da84e3c3f155808efb34d650b3489
|
|
@ -1,24 +0,0 @@
|
||||||
/*
|
|
||||||
* DISTRHO Cardinal Plugin
|
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
|
||||||
*
|
|
||||||
* 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 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.
|
|
||||||
*
|
|
||||||
* For a full copy of the GNU General Public License see the LICENSE file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#ifdef NDEBUG
|
|
||||||
# undef DEBUG
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "OpenGL.hpp"
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 042a9ce026d253700ea14e340182900162ab4653
|
|
1
plugins/Fundamental
Submodule
1
plugins/Fundamental
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit baaf463db2bcd9d4f577f209b3795d7321a174fe
|
99
plugins/Makefile
Normal file
99
plugins/Makefile
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
# Makefile for Cardinal #
|
||||||
|
# --------------------- #
|
||||||
|
# Created by falkTX
|
||||||
|
#
|
||||||
|
|
||||||
|
DEP_PATH = $(abspath ../src/Rack/dep)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Import base definitions
|
||||||
|
|
||||||
|
USE_NANOVG_FBO = true
|
||||||
|
USE_RGBA = true
|
||||||
|
include ../dpf/Makefile.base.mk
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Files to build
|
||||||
|
|
||||||
|
PLUGIN_FILES = plugins.cpp
|
||||||
|
|
||||||
|
# Fundamental
|
||||||
|
PLUGIN_FILES += $(filter-out Fundamental/src/plugin.cpp,$(wildcard Fundamental/src/*.cpp))
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Build setup
|
||||||
|
|
||||||
|
BUILD_DIR = ../build/plugins
|
||||||
|
|
||||||
|
PLUGIN_OBJS = $(PLUGIN_FILES:%=$(BUILD_DIR)/%.o)
|
||||||
|
|
||||||
|
ifeq ($(MACOS),true)
|
||||||
|
BASE_FLAGS += -DARCH_MAC
|
||||||
|
else ifeq ($(WINDOWS),true)
|
||||||
|
BASE_FLAGS += -DARCH_WIN
|
||||||
|
else
|
||||||
|
BASE_FLAGS += -DARCH_LIN
|
||||||
|
endif
|
||||||
|
|
||||||
|
BUILD_C_FLAGS += -std=gnu11
|
||||||
|
|
||||||
|
BASE_FLAGS += -I../dpf/dgl/src/nanovg
|
||||||
|
BASE_FLAGS += -I../src
|
||||||
|
BASE_FLAGS += -I../src/neon-compat
|
||||||
|
BASE_FLAGS += -I../src/Rack/include
|
||||||
|
BASE_FLAGS += -I../src/Rack/dep/include
|
||||||
|
# BASE_FLAGS += -I../src/Rack/dep/filesystem/include
|
||||||
|
# BASE_FLAGS += -I../src/Rack/dep/fuzzysearchdatabase/src
|
||||||
|
BASE_FLAGS += -I../src/Rack/dep/glfw/include
|
||||||
|
BASE_FLAGS += -I../src/Rack/dep/nanosvg/src
|
||||||
|
# BASE_FLAGS += -I../src/Rack/dep/osdialog
|
||||||
|
BASE_FLAGS += -I../src/Rack/dep/oui-blendish
|
||||||
|
BASE_FLAGS += -I../src/Rack/dep/pffft
|
||||||
|
BASE_FLAGS += -pthread
|
||||||
|
|
||||||
|
ifeq ($(WINDOWS),true)
|
||||||
|
BASE_FLAGS += -Imingw-compat
|
||||||
|
BASE_FLAGS += -Imingw-std-threads
|
||||||
|
endif
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# FIXME lots of warnings from VCV side
|
||||||
|
|
||||||
|
BASE_FLAGS += -Wno-unused-parameter
|
||||||
|
BASE_FLAGS += -Wno-unused-variable
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Build targets
|
||||||
|
|
||||||
|
TARGET = plugins.a
|
||||||
|
|
||||||
|
all: $(TARGET)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGET)
|
||||||
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Build commands
|
||||||
|
|
||||||
|
$(TARGET): $(PLUGIN_OBJS)
|
||||||
|
@echo "Creating $@"
|
||||||
|
$(SILENT)rm -f $@
|
||||||
|
$(SILENT)$(AR) crs $@ $^
|
||||||
|
|
||||||
|
$(BUILD_DIR)/plugins.cpp.o: plugins.cpp
|
||||||
|
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
|
||||||
|
@echo "Compiling $<"
|
||||||
|
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__Fundamental -c -o $@
|
||||||
|
|
||||||
|
$(BUILD_DIR)/Fundamental/%.cpp.o: Fundamental/%.cpp
|
||||||
|
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
|
||||||
|
@echo "Compiling $<"
|
||||||
|
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DpluginInstance=pluginInstance__Fundamental -c -o $@
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
|
||||||
|
-include $(PLUGIN_OBJS:%.o=%.d)
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
67
plugins/plugins.cpp
Normal file
67
plugins/plugins.cpp
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* DISTRHO Cardinal Plugin
|
||||||
|
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
||||||
|
*
|
||||||
|
* 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 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.
|
||||||
|
*
|
||||||
|
* For a full copy of the GNU General Public License see the LICENSE file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <plugin.hpp>
|
||||||
|
|
||||||
|
#include "Fundamental/src/plugin.hpp"
|
||||||
|
|
||||||
|
Plugin* pluginInstance__Fundamental;
|
||||||
|
|
||||||
|
namespace rack {
|
||||||
|
namespace plugin {
|
||||||
|
|
||||||
|
static void initStatic__Fundamental()
|
||||||
|
{
|
||||||
|
Plugin* p = new Plugin;
|
||||||
|
pluginInstance__Fundamental = p;
|
||||||
|
p->addModel(modelVCO);
|
||||||
|
p->addModel(modelVCO2);
|
||||||
|
p->addModel(modelVCF);
|
||||||
|
p->addModel(modelVCA_1);
|
||||||
|
p->addModel(modelVCA);
|
||||||
|
p->addModel(modelLFO);
|
||||||
|
p->addModel(modelLFO2);
|
||||||
|
p->addModel(modelDelay);
|
||||||
|
p->addModel(modelADSR);
|
||||||
|
p->addModel(modelVCMixer);
|
||||||
|
p->addModel(model_8vert);
|
||||||
|
p->addModel(modelUnity);
|
||||||
|
p->addModel(modelMutes);
|
||||||
|
p->addModel(modelPulses);
|
||||||
|
p->addModel(modelScope);
|
||||||
|
p->addModel(modelSEQ3);
|
||||||
|
p->addModel(modelSequentialSwitch1);
|
||||||
|
p->addModel(modelSequentialSwitch2);
|
||||||
|
p->addModel(modelOctave);
|
||||||
|
p->addModel(modelQuantizer);
|
||||||
|
p->addModel(modelSplit);
|
||||||
|
p->addModel(modelMerge);
|
||||||
|
p->addModel(modelSum);
|
||||||
|
p->addModel(modelViz);
|
||||||
|
p->addModel(modelMidSide);
|
||||||
|
p->addModel(modelNoise);
|
||||||
|
p->addModel(modelRandom);
|
||||||
|
plugins.push_back(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
void initStaticPlugins()
|
||||||
|
{
|
||||||
|
initStatic__Fundamental();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -40,6 +40,12 @@
|
||||||
#endif
|
#endif
|
||||||
#include "DistrhoPlugin.hpp"
|
#include "DistrhoPlugin.hpp"
|
||||||
|
|
||||||
|
namespace rack {
|
||||||
|
namespace plugin {
|
||||||
|
void initStaticPlugins();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
START_NAMESPACE_DISTRHO
|
START_NAMESPACE_DISTRHO
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
@ -111,6 +117,8 @@ struct Initializer {
|
||||||
midi::init(); // does nothing
|
midi::init(); // does nothing
|
||||||
plugin::init();
|
plugin::init();
|
||||||
ui::init();
|
ui::init();
|
||||||
|
|
||||||
|
plugin::initStaticPlugins();
|
||||||
}
|
}
|
||||||
|
|
||||||
~Initializer()
|
~Initializer()
|
124
src/GL/glew.h
Normal file
124
src/GL/glew.h
Normal file
|
@ -0,0 +1,124 @@
|
||||||
|
/*
|
||||||
|
* DISTRHO Cardinal Plugin
|
||||||
|
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
||||||
|
*
|
||||||
|
* 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 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.
|
||||||
|
*
|
||||||
|
* For a full copy of the GNU General Public License see the LICENSE file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// this file matches the top of `OpenGL.hpp` provided by DPF
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef NDEBUG
|
||||||
|
# undef DEBUG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Check OS */
|
||||||
|
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
|
||||||
|
# define DISTRHO_OS_WINDOWS 1
|
||||||
|
#else
|
||||||
|
# if defined(__APPLE__)
|
||||||
|
# define DISTRHO_OS_MAC 1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
// Fix OpenGL includes for Windows, based on glfw code (part 1)
|
||||||
|
|
||||||
|
#undef DGL_CALLBACK_DEFINED
|
||||||
|
#undef DGL_WINGDIAPI_DEFINED
|
||||||
|
|
||||||
|
#ifdef DISTRHO_OS_WINDOWS
|
||||||
|
|
||||||
|
#ifndef APIENTRY
|
||||||
|
# define APIENTRY __stdcall
|
||||||
|
#endif // APIENTRY
|
||||||
|
|
||||||
|
/* We need WINGDIAPI defined */
|
||||||
|
#ifndef WINGDIAPI
|
||||||
|
# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__POCC__)
|
||||||
|
# define WINGDIAPI __declspec(dllimport)
|
||||||
|
# elif defined(__LCC__)
|
||||||
|
# define WINGDIAPI __stdcall
|
||||||
|
# else
|
||||||
|
# define WINGDIAPI extern
|
||||||
|
# endif
|
||||||
|
# define DGL_WINGDIAPI_DEFINED
|
||||||
|
#endif // WINGDIAPI
|
||||||
|
|
||||||
|
/* Some <GL/glu.h> files also need CALLBACK defined */
|
||||||
|
#ifndef CALLBACK
|
||||||
|
# if defined(_MSC_VER)
|
||||||
|
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
|
||||||
|
# define CALLBACK __stdcall
|
||||||
|
# else
|
||||||
|
# define CALLBACK
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define CALLBACK __stdcall
|
||||||
|
# endif
|
||||||
|
# define DGL_CALLBACK_DEFINED
|
||||||
|
#endif // CALLBACK
|
||||||
|
|
||||||
|
/* Most GL/glu.h variants on Windows need wchar_t */
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
#endif // DISTRHO_OS_WINDOWS
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
// OpenGL includes
|
||||||
|
|
||||||
|
#ifdef DISTRHO_OS_MAC
|
||||||
|
# ifdef DGL_USE_OPENGL3
|
||||||
|
# include <OpenGL/gl3.h>
|
||||||
|
# include <OpenGL/gl3ext.h>
|
||||||
|
# else
|
||||||
|
# include <OpenGL/gl.h>
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# ifdef DISTRHO_OS_WINDOWS
|
||||||
|
# define GL_GLEXT_PROTOTYPES
|
||||||
|
# endif
|
||||||
|
# ifndef __GLEW_H__
|
||||||
|
# include <GL/gl.h>
|
||||||
|
# include <GL/glext.h>
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
// Missing OpenGL defines
|
||||||
|
|
||||||
|
#if defined(GL_BGR_EXT) && !defined(GL_BGR)
|
||||||
|
# define GL_BGR GL_BGR_EXT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(GL_BGRA_EXT) && !defined(GL_BGRA)
|
||||||
|
# define GL_BGRA GL_BGRA_EXT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_CLAMP_TO_BORDER
|
||||||
|
# define GL_CLAMP_TO_BORDER 0x812D
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
// Fix OpenGL includes for Windows, based on glfw code (part 2)
|
||||||
|
|
||||||
|
#ifdef DGL_CALLBACK_DEFINED
|
||||||
|
# undef CALLBACK
|
||||||
|
# undef DGL_CALLBACK_DEFINED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DGL_WINGDIAPI_DEFINED
|
||||||
|
# undef WINGDIAPI
|
||||||
|
# undef DGL_WINGDIAPI_DEFINED
|
||||||
|
#endif
|
|
@ -25,7 +25,7 @@ FILES_UI = \
|
||||||
|
|
||||||
USE_NANOVG_FBO = true
|
USE_NANOVG_FBO = true
|
||||||
USE_RGBA = true
|
USE_RGBA = true
|
||||||
include ../../dpf/Makefile.base.mk
|
include ../dpf/Makefile.base.mk
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
# Files to build (VCV stuff)
|
# Files to build (VCV stuff)
|
||||||
|
@ -50,107 +50,26 @@ FILES_DSP += $(wildcard Rack/src/*/*.c)
|
||||||
FILES_DSP += $(filter-out Rack/src/dep.cpp Rack/src/discord.cpp Rack/src/gamepad.cpp Rack/src/keyboard.cpp Rack/src/library.cpp Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
|
FILES_DSP += $(filter-out Rack/src/dep.cpp Rack/src/discord.cpp Rack/src/gamepad.cpp Rack/src/keyboard.cpp Rack/src/library.cpp Rack/src/network.cpp Rack/src/rtaudio.cpp Rack/src/rtmidi.cpp, $(wildcard Rack/src/*.cpp))
|
||||||
FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
|
FILES_DSP += $(filter-out Rack/src/window/Window.cpp, $(wildcard Rack/src/*/*.cpp))
|
||||||
|
|
||||||
EXTRA_DEPENDENCIES += Rack/dep/lib/libjansson.a
|
# --------------------------------------------------------------
|
||||||
EXTRA_DEPENDENCIES += Rack/dep/lib/libspeexdsp.a
|
# Extra libraries to link against
|
||||||
|
|
||||||
|
EXTRA_LIBS = ../plugins/plugins.a
|
||||||
|
EXTRA_LIBS += Rack/dep/lib/libjansson.a
|
||||||
|
EXTRA_LIBS += Rack/dep/lib/libsamplerate.a
|
||||||
|
EXTRA_LIBS += Rack/dep/lib/libspeexdsp.a
|
||||||
ifeq ($(WINDOWS),true)
|
ifeq ($(WINDOWS),true)
|
||||||
EXTRA_DEPENDENCIES += Rack/dep/lib/libarchive_static.a
|
EXTRA_LIBS += Rack/dep/lib/libarchive_static.a
|
||||||
else
|
else
|
||||||
EXTRA_DEPENDENCIES += Rack/dep/lib/libarchive.a
|
EXTRA_LIBS += Rack/dep/lib/libarchive.a
|
||||||
endif
|
endif
|
||||||
|
EXTRA_LIBS += Rack/dep/lib/libzstd.a
|
||||||
EXTRA_DEPENDENCIES += Rack/dep/lib/libzstd.a
|
|
||||||
|
|
||||||
EXTRA_LIBS = $(EXTRA_DEPENDENCIES)
|
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
# Do some magic
|
# Do some magic
|
||||||
|
|
||||||
include ../../dpf/Makefile.plugins.mk
|
DPF_PATH = ../dpf
|
||||||
|
DPF_TARGET_DIR = ../bin
|
||||||
# --------------------------------------------------------------
|
include ../dpf/Makefile.plugins.mk
|
||||||
# override VCV arch.mk stuff so we can build more architectures
|
|
||||||
|
|
||||||
DEP_PATH = $(abspath Rack/dep)
|
|
||||||
|
|
||||||
ifeq ($(CPU_ARM),true)
|
|
||||||
ARCH_NAME = arm
|
|
||||||
MACHINE = i686-bring-forth-the-rack
|
|
||||||
else ifeq ($(CPU_ARM64),true)
|
|
||||||
ARCH_NAME = arm64
|
|
||||||
MACHINE = x86_64-bring-forth-the-rack
|
|
||||||
else ifeq ($(CPU_AARCH64),true)
|
|
||||||
ARCH_NAME = aarch64
|
|
||||||
MACHINE = x86_64-bring-forth-the-rack
|
|
||||||
else
|
|
||||||
MACHINE = $(TARGET_MACHINE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(MACOS_OR_WINDOWS),true)
|
|
||||||
MACHINE_SUFFIX = -linux
|
|
||||||
endif
|
|
||||||
|
|
||||||
# NOTE speex fails to build when neon is enabled
|
|
||||||
CONFIGURE = ./configure --prefix="$(DEP_PATH)" --host=$(TARGET_MACHINE) --enable-neon=no
|
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
# Fix up cmake
|
|
||||||
|
|
||||||
SPACE =
|
|
||||||
SPACE +=
|
|
||||||
|
|
||||||
CMAKE = cmake
|
|
||||||
|
|
||||||
ifneq (,$(findstring -arch$(SPACE),$(CXXFLAGS)))
|
|
||||||
CMAKE += -DCMAKE_OSX_ARCHITECTURES='$(subst $(SPACE),;,$(subst -arch=,,$(filter -arch=%,$(subst -arch$(SPACE),-arch=,$(CXXFLAGS)))))'
|
|
||||||
endif
|
|
||||||
ifneq (,$(findstring -mmacosx-version-min=,$(CXXFLAGS)))
|
|
||||||
CMAKE += -DCMAKE_OSX_DEPLOYMENT_TARGET=$(subst -mmacosx-version-min=,,$(filter -mmacosx-version-min=%,$(CXXFLAGS)))
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(WINDOWS),true)
|
|
||||||
CMAKE += -G 'Unix Makefiles'
|
|
||||||
CMAKE += -DCMAKE_RC_COMPILER=$(subst gcc,windres,$(CC))
|
|
||||||
CMAKE += -DCMAKE_SYSTEM_NAME=Windows
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(DEBUG),true)
|
|
||||||
CMAKE += -DCMAKE_BUILD_TYPE=Debug
|
|
||||||
else
|
|
||||||
CMAKE += -DCMAKE_BUILD_TYPE=Release
|
|
||||||
endif
|
|
||||||
|
|
||||||
CMAKE += -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_INSTALL_PREFIX='$(DEP_PATH)'
|
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
|
||||||
# VCV internal dependencies target
|
|
||||||
|
|
||||||
Rack/dep/lib/%.a:
|
|
||||||
$(MAKE) \
|
|
||||||
ARCH_NAME=$(ARCH_NAME) \
|
|
||||||
CFLAGS="$(BUILD_C_FLAGS)" \
|
|
||||||
CXXFLAGS="$(BUILD_CXX_FLAGS)" \
|
|
||||||
LDFLAGS="$(LINK_FLAGS)" \
|
|
||||||
CMAKE="$(CMAKE)" \
|
|
||||||
CONFIGURE="$(CONFIGURE)" \
|
|
||||||
DEP_FLAGS="$(BASE_FLAGS)" \
|
|
||||||
DEP_MAC_SDK_FLAGS= \
|
|
||||||
MACHINE=$(MACHINE)$(MACHINE_SUFFIX) \
|
|
||||||
-C Rack/dep lib/$*.a
|
|
||||||
|
|
||||||
Rack/dep/lib/libarchive.a: Rack/dep/lib/libzstd.a
|
|
||||||
|
|
||||||
Rack/dep/lib/libarchive_static.a: Rack/dep/lib/libzstd.a
|
|
||||||
|
|
||||||
ifeq ($(MACOS),true)
|
|
||||||
# zstd cmake is borked, see https://github.com/facebook/zstd/issues/1401
|
|
||||||
Rack/dep/lib/libzstd.a: Rack/dep/zstd-1.4.5/.stamp-patched
|
|
||||||
|
|
||||||
Rack/dep/zstd-1.4.5/.stamp-patched:
|
|
||||||
$(MAKE) -C Rack/dep zstd-1.4.5
|
|
||||||
sed -i -e "56,66d" Rack/dep/zstd-1.4.5/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake
|
|
||||||
touch $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
# Extra flags for VCV stuff
|
# Extra flags for VCV stuff
|
||||||
|
@ -163,18 +82,8 @@ else
|
||||||
BASE_FLAGS += -DARCH_LIN
|
BASE_FLAGS += -DARCH_LIN
|
||||||
endif
|
endif
|
||||||
|
|
||||||
BUILD_C_FLAGS += -std=gnu11
|
|
||||||
|
|
||||||
# temporary macro just to get the ball rolling
|
|
||||||
ifeq ($(EXE_WRAPPER),wine)
|
|
||||||
SOURCE_DIR = Z:$(subst /,\\,$(CURDIR))
|
|
||||||
else
|
|
||||||
SOURCE_DIR = $(CURDIR)
|
|
||||||
endif
|
|
||||||
BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"'
|
|
||||||
|
|
||||||
BASE_FLAGS += -D_APP_VERSION=Cardinal
|
BASE_FLAGS += -D_APP_VERSION=Cardinal
|
||||||
BASE_FLAGS += -I$(DPF_PATH)/dgl/src/nanovg
|
BASE_FLAGS += -I../dpf/dgl/src/nanovg
|
||||||
BASE_FLAGS += -IRack/include
|
BASE_FLAGS += -IRack/include
|
||||||
BASE_FLAGS += -IRack/dep/include
|
BASE_FLAGS += -IRack/dep/include
|
||||||
BASE_FLAGS += -IRack/dep/filesystem/include
|
BASE_FLAGS += -IRack/dep/filesystem/include
|
||||||
|
@ -184,20 +93,25 @@ BASE_FLAGS += -IRack/dep/nanosvg/src
|
||||||
BASE_FLAGS += -IRack/dep/osdialog
|
BASE_FLAGS += -IRack/dep/osdialog
|
||||||
BASE_FLAGS += -IRack/dep/oui-blendish
|
BASE_FLAGS += -IRack/dep/oui-blendish
|
||||||
BASE_FLAGS += -IRack/dep/pffft
|
BASE_FLAGS += -IRack/dep/pffft
|
||||||
BASE_FLAGS += -pthread
|
|
||||||
|
|
||||||
BASE_FLAGS += -Ineon-compat
|
BASE_FLAGS += -Ineon-compat
|
||||||
|
BASE_FLAGS += -pthread
|
||||||
|
|
||||||
ifeq ($(WINDOWS),true)
|
ifeq ($(WINDOWS),true)
|
||||||
BASE_FLAGS += -Imingw-compat
|
BASE_FLAGS += -Imingw-compat
|
||||||
BUILD_CXX_FLAGS += -Imingw-std-threads
|
BASE_FLAGS += -Imingw-std-threads
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
BUILD_C_FLAGS += -std=gnu11
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
# FIXME lots of warnings from VCV side
|
# FIXME lots of warnings from VCV side
|
||||||
|
|
||||||
BASE_FLAGS += -Wno-unused-parameter
|
BASE_FLAGS += -Wno-unused-parameter
|
||||||
BASE_FLAGS += -Wno-unused-variable
|
BASE_FLAGS += -Wno-unused-variable
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
# extra linker flags
|
# extra linker flags
|
||||||
|
|
||||||
ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
|
ifneq ($(HAIKU_OR_MACOS_OR_WINDOWS),true)
|
||||||
LINK_FLAGS += -ldl
|
LINK_FLAGS += -ldl
|
||||||
endif
|
endif
|
||||||
|
@ -209,10 +123,19 @@ LINK_FLAGS += -ldbghelp -lshlwapi
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
# Enable all possible plugin types
|
# temporary macro just to get the ball rolling
|
||||||
|
|
||||||
TARGETS = jack lv2 vst2 vst3
|
ifeq ($(EXE_WRAPPER),wine)
|
||||||
|
SOURCE_DIR = Z:$(subst /,\\,$(CURDIR))
|
||||||
|
else
|
||||||
|
SOURCE_DIR = $(CURDIR)
|
||||||
|
endif
|
||||||
|
|
||||||
all: $(TARGETS)
|
BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_SOURCE_DIR='"$(SOURCE_DIR)"'
|
||||||
|
|
||||||
|
# --------------------------------------------------------------
|
||||||
|
# Enable all possible plugin types
|
||||||
|
|
||||||
|
all: jack lv2 vst2 vst3
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
1
src/Rack
Submodule
1
src/Rack
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 420e781fa7bfdcf47163ab1fa976c171c91cb92b
|
|
@ -17,6 +17,7 @@
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
# undef DEBUG
|
# undef DEBUG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "DistrhoUI.hpp"
|
#include "DistrhoUI.hpp"
|
||||||
|
|
||||||
namespace rack {
|
namespace rack {
|
|
@ -7,8 +7,14 @@
|
||||||
#endif
|
#endif
|
||||||
#include "OpenGL.hpp"
|
#include "OpenGL.hpp"
|
||||||
|
|
||||||
#define BLENDISH_IMPLEMENTATION
|
#ifdef DEBUG
|
||||||
#include <blendish.h>
|
// fix blendish build, missing symbol in debug mode
|
||||||
|
extern "C" {
|
||||||
|
float bnd_clamp(float v, float mn, float mx) {
|
||||||
|
return (v > mx)?mx:(v < mn)?mn:v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define NANOSVG_IMPLEMENTATION
|
#define NANOSVG_IMPLEMENTATION
|
||||||
#define NANOSVG_ALL_COLOR_KEYWORDS
|
#define NANOSVG_ALL_COLOR_KEYWORDS
|
Loading…
Add table
Add a link
Reference in a new issue