This commit is contained in:
falkTX 2021-10-08 10:33:14 +01:00
parent ee3f3771a4
commit 0845a0ffa2
17 changed files with 86 additions and 71 deletions

8
.gitmodules vendored
View file

@ -1,9 +1,9 @@
[submodule "plugins/CVCRack/Rack"] [submodule "plugins/Cardinal/Rack"]
path = plugins/CVCRack/Rack path = plugins/Cardinal/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/CVCRack/mingw-std-threads"] [submodule "plugins/Cardinal/mingw-std-threads"]
path = plugins/CVCRack/mingw-std-threads path = plugins/Cardinal/mingw-std-threads
url = https://github.com/meganz/mingw-std-threads.git url = https://github.com/meganz/mingw-std-threads.git

View file

@ -8,15 +8,13 @@ include dpf/Makefile.base.mk
all: dgl plugins gen all: dgl plugins gen
SKIP_NANOVG = true
# -------------------------------------------------------------- # --------------------------------------------------------------
dgl: dgl:
$(MAKE) -C dpf/dgl opengl $(MAKE) SKIP_NANOVG=true -C dpf/dgl opengl
plugins: dgl plugins: dgl
$(MAKE) all -C plugins/CVCRack $(MAKE) all -C plugins/Cardinal
ifneq ($(CROSS_COMPILING),true) ifneq ($(CROSS_COMPILING),true)
gen: plugins dpf/utils/lv2_ttl_generator gen: plugins dpf/utils/lv2_ttl_generator
@ -36,19 +34,19 @@ endif
clean: clean:
$(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/CVCRack $(MAKE) clean -C plugins/Cardinal
rm -rf bin build rm -rf bin build
rm -rf plugins/CVCRack/Rack/dep/bin rm -rf plugins/Cardinal/Rack/dep/bin
rm -rf plugins/CVCRack/Rack/dep/include rm -rf plugins/Cardinal/Rack/dep/include
rm -rf plugins/CVCRack/Rack/dep/lib rm -rf plugins/Cardinal/Rack/dep/lib
rm -rf plugins/CVCRack/Rack/dep/share rm -rf plugins/Cardinal/Rack/dep/share
rm -rf plugins/CVCRack/Rack/dep/curl-7.66.0 rm -rf plugins/Cardinal/Rack/dep/curl-7.66.0
rm -rf plugins/CVCRack/Rack/dep/glew-2.1.0 rm -rf plugins/Cardinal/Rack/dep/glew-2.1.0
rm -rf plugins/CVCRack/Rack/dep/jansson-2.12 rm -rf plugins/Cardinal/Rack/dep/jansson-2.12
rm -rf plugins/CVCRack/Rack/dep/libarchive-3.4.3 rm -rf plugins/Cardinal/Rack/dep/libarchive-3.4.3
rm -rf plugins/CVCRack/Rack/dep/openssl-1.1.1d rm -rf plugins/Cardinal/Rack/dep/openssl-1.1.1d
rm -rf plugins/CVCRack/Rack/dep/speexdsp-SpeexDSP-1.2rc3 rm -rf plugins/Cardinal/Rack/dep/speexdsp-SpeexDSP-1.2rc3
rm -rf plugins/CVCRack/Rack/dep/zstd-1.4.5 rm -rf plugins/Cardinal/Rack/dep/zstd-1.4.5
# -------------------------------------------------------------- # --------------------------------------------------------------

View file

@ -1,4 +1,6 @@
# DISTRHO CVCRack # DISTRHO Cardinal
*Cardinal, bring forth the Rack!*
WORK IN PROGRESS - nothing to see here WORK IN PROGRESS - nothing to see here

View file

@ -1,17 +1,18 @@
/* /*
* DISTRHO CVCRack Plugin * DISTRHO Cardinal Plugin
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com> * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
* *
* Permission to use, copy, modify, and/or distribute this software for any purpose with * This program is free software; you can redistribute it and/or
* or without fee is hereby granted, provided that the above copyright notice and this * modify it under the terms of the GNU General Public License as
* permission notice appear in all copies. * published by the Free Software Foundation; either version 3 of
* the License, or any later version.
* *
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD * This program is distributed in the hope that it will be useful,
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN * but WITHOUT ANY WARRANTY; without even the implied warranty of
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER * GNU General Public License for more details.
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN *
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * For a full copy of the GNU General Public License see the LICENSE file.
*/ */
#include <asset.hpp> #include <asset.hpp>
@ -35,6 +36,15 @@
START_NAMESPACE_DISTRHO START_NAMESPACE_DISTRHO
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------
// The following code was based from VCVRack adapters/standalone.cpp
/*
Copyright (C) 2016-2021 VCV
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 (at your option) any later version.
*/
struct Initializer { struct Initializer {
Initializer() Initializer()
@ -121,13 +131,12 @@ static const Initializer& getInitializerInstance()
return init; return init;
} }
/** // -----------------------------------------------------------------------------------------------------------
Plugin to demonstrate parameter outputs using meters.
*/ class CardinalPlugin : public Plugin
class CVCRackPlugin : public Plugin
{ {
public: public:
CVCRackPlugin() CardinalPlugin()
: Plugin(0, 0, 0) : Plugin(0, 0, 0)
{ {
} }
@ -142,7 +151,7 @@ protected:
*/ */
const char* getLabel() const override const char* getLabel() const override
{ {
return "CVCRack"; return "Cardinal";
} }
/** /**
@ -166,7 +175,7 @@ protected:
*/ */
const char* getHomePage() const override const char* getHomePage() const override
{ {
return "https://github.com/DISTRHO/CVCRack"; return "https://github.com/DISTRHO/Cardinal";
} }
/** /**
@ -192,7 +201,7 @@ protected:
*/ */
int64_t getUniqueId() const override int64_t getUniqueId() const override
{ {
return d_cconst('d', 'C', 'V', 'C'); return d_cconst('d', 'C', 'd', 'n');
} }
/* -------------------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------------------
@ -223,7 +232,7 @@ private:
/** /**
Set our plugin class as non-copyable and add a leak detector just in case. Set our plugin class as non-copyable and add a leak detector just in case.
*/ */
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CVCRackPlugin) DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CardinalPlugin)
}; };
/* ------------------------------------------------------------------------------------------------------------ /* ------------------------------------------------------------------------------------------------------------
@ -232,7 +241,7 @@ private:
Plugin* createPlugin() Plugin* createPlugin()
{ {
getInitializerInstance(); getInitializerInstance();
return new CVCRackPlugin(); return new CardinalPlugin();
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------

View file

@ -1,17 +1,18 @@
/* /*
* DISTRHO CVCRack Plugin * DISTRHO Cardinal Plugin
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com> * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
* *
* Permission to use, copy, modify, and/or distribute this software for any purpose with * This program is free software; you can redistribute it and/or
* or without fee is hereby granted, provided that the above copyright notice and this * modify it under the terms of the GNU General Public License as
* permission notice appear in all copies. * published by the Free Software Foundation; either version 3 of
* the License, or any later version.
* *
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD * This program is distributed in the hope that it will be useful,
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN * but WITHOUT ANY WARRANTY; without even the implied warranty of
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER * GNU General Public License for more details.
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN *
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * For a full copy of the GNU General Public License see the LICENSE file.
*/ */
#include <app/common.hpp> #include <app/common.hpp>
@ -64,16 +65,25 @@ static const Initializer2& getInitializer2Instance()
return init; return init;
} }
class CVCRackUI : public UI class CardinalUI : public UI
{ {
ResizeHandle fResizeHandle; ResizeHandle fResizeHandle;
public: public:
CVCRackUI() CardinalUI()
: UI(1280, 720), : UI(1280, 720),
fResizeHandle(this) fResizeHandle(this)
{ {
using namespace rack; using namespace rack;
/*
The following code was based from VCVRack adapters/standalone.cpp
Copyright (C) 2016-2021 VCV
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 (at your option) any later version.
*/
// Initialize context // Initialize context
INFO("Initializing context"); INFO("Initializing context");
window::lastUI = this; window::lastUI = this;
@ -92,7 +102,7 @@ public:
APP->engine->startFallbackThread(); APP->engine->startFallbackThread();
} }
~CVCRackUI() override ~CardinalUI() override
{ {
using namespace rack; using namespace rack;
@ -183,7 +193,7 @@ private:
/** /**
Set our UI class as non-copyable and add a leak detector just in case. Set our UI class as non-copyable and add a leak detector just in case.
*/ */
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CVCRackUI) DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CardinalUI)
}; };
/* ------------------------------------------------------------------------------------------------------------ /* ------------------------------------------------------------------------------------------------------------
@ -192,7 +202,7 @@ private:
UI* createUI() UI* createUI()
{ {
getInitializer2Instance(); getInitializer2Instance();
return new CVCRackUI(); return new CardinalUI();
} }
// ----------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------

View file

@ -1,10 +1,10 @@
/* /*
* DISTRHO CVCRack Plugin * DISTRHO Cardinal Plugin
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com> * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of * published by the Free Software Foundation; either version 3 of
* the License, or any later version. * the License, or any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
@ -12,15 +12,15 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* For a full copy of the license see the LICENSE file. * For a full copy of the GNU General Public License see the LICENSE file.
*/ */
#ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED #ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED
#define DISTRHO_PLUGIN_INFO_H_INCLUDED #define DISTRHO_PLUGIN_INFO_H_INCLUDED
#define DISTRHO_PLUGIN_BRAND "DISTRHO" #define DISTRHO_PLUGIN_BRAND "DISTRHO"
#define DISTRHO_PLUGIN_NAME "CVCRack" #define DISTRHO_PLUGIN_NAME "Cardinal"
#define DISTRHO_PLUGIN_URI "http://distrho.sf.net/plugins/CVCRack" #define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/cardinal"
#define DISTRHO_PLUGIN_HAS_UI 1 #define DISTRHO_PLUGIN_HAS_UI 1
#define DISTRHO_PLUGIN_NUM_INPUTS 2 #define DISTRHO_PLUGIN_NUM_INPUTS 2

View file

@ -7,16 +7,16 @@
# -------------------------------------------------------------- # --------------------------------------------------------------
# Project name, used for binaries # Project name, used for binaries
NAME = CVCRack NAME = Cardinal
# -------------------------------------------------------------- # --------------------------------------------------------------
# Files to build (DPF stuff) # Files to build (DPF stuff)
FILES_DSP = \ FILES_DSP = \
CVCRackPlugin.cpp CardinalPlugin.cpp
FILES_UI = \ FILES_UI = \
CVCRackUI.cpp \ CardinalUI.cpp \
Window.cpp Window.cpp
# -------------------------------------------------------------- # --------------------------------------------------------------

View file

@ -72,15 +72,10 @@ struct Window::Internal {
std::string lastWindowTitle; std::string lastWindowTitle;
int lastWindowX = 0;
int lastWindowY = 0;
int lastWindowWidth = 0;
int lastWindowHeight = 0;
int frame = 0; int frame = 0;
bool ignoreNextMouseDelta = false; bool ignoreNextMouseDelta = false;
int frameSwapInterval = -1; int frameSwapInterval = -1;
double monitorRefreshRate = 0.0; double monitorRefreshRate = 60.0; // FIXME
double frameTime = 0.0; double frameTime = 0.0;
double lastFrameDuration = 0.0; double lastFrameDuration = 0.0;
@ -131,6 +126,7 @@ Window::Window() {
osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, "Could not initialize NanoVG. Does your graphics card support OpenGL 2.0 or greater? If so, make sure you have the latest graphics drivers installed."); osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, "Could not initialize NanoVG. Does your graphics card support OpenGL 2.0 or greater? If so, make sure you have the latest graphics drivers installed.");
exit(1); exit(1);
} }
d_stderr2("framebuffer is %p", fbVg);
// Load default Blendish font // Load default Blendish font
uiFont = loadFont(asset::system("res/fonts/DejaVuSans.ttf")); uiFont = loadFont(asset::system("res/fonts/DejaVuSans.ttf"));
@ -305,7 +301,7 @@ void Window::cursorUnlock() {
bool Window::isCursorLocked() { bool Window::isCursorLocked() {
return false; return internal->ignoreNextMouseDelta;
} }