Cleanup override files to be more like the original
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
8758fd53d1
commit
2c3867ca6a
7 changed files with 100 additions and 75 deletions
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This file is an edited version of VCVRack's Engine.cpp
|
* This file is an edited version of VCVRack's engine/Engine.cpp
|
||||||
* Copyright (C) 2016-2021 VCV.
|
* Copyright (C) 2016-2021 VCV.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or
|
* This program is free software: you can redistribute it and/or
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This file is an edited version of VCVRack's MenuBar.cpp
|
* This file is an edited version of VCVRack's app/MenuBar.cpp
|
||||||
* Copyright (C) 2016-2021 VCV.
|
* Copyright (C) 2016-2021 VCV.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or
|
* This program is free software: you can redistribute it and/or
|
||||||
|
@ -160,7 +160,6 @@ struct FileButton : MenuButton {
|
||||||
|
|
||||||
// Load selection
|
// Load selection
|
||||||
menu->addChild(createMenuItem("Import selection", "", [=]() {
|
menu->addChild(createMenuItem("Import selection", "", [=]() {
|
||||||
// APP->scene->rack->loadSelectionDialog();
|
|
||||||
patchUtils::loadSelectionDialog();
|
patchUtils::loadSelectionDialog();
|
||||||
}, false, true));
|
}, false, true));
|
||||||
|
|
||||||
|
@ -622,7 +621,6 @@ struct MenuBar : widget::OpaqueWidget {
|
||||||
|
|
||||||
MenuBar(const bool isStandalone)
|
MenuBar(const bool isStandalone)
|
||||||
: widget::OpaqueWidget()
|
: widget::OpaqueWidget()
|
||||||
// : context(ctx)
|
|
||||||
{
|
{
|
||||||
const float margin = 5;
|
const float margin = 5;
|
||||||
box.size.y = BND_WIDGET_HEIGHT + 2 * margin;
|
box.size.y = BND_WIDGET_HEIGHT + 2 * margin;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This file is an edited version of VCVRack's Model.cpp
|
* This file is an edited version of VCVRack's plugin/Model.cpp
|
||||||
* Copyright (C) 2016-2021 VCV.
|
* Copyright (C) 2016-2021 VCV.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or
|
* This program is free software: you can redistribute it and/or
|
||||||
|
@ -44,7 +44,7 @@ namespace plugin {
|
||||||
|
|
||||||
|
|
||||||
void Model::fromJson(json_t* rootJ) {
|
void Model::fromJson(json_t* rootJ) {
|
||||||
assert(plugin);
|
DISTRHO_SAFE_ASSERT_RETURN(plugin != nullptr,);
|
||||||
|
|
||||||
json_t* nameJ = json_object_get(rootJ, "name");
|
json_t* nameJ = json_object_get(rootJ, "name");
|
||||||
if (nameJ)
|
if (nameJ)
|
||||||
|
@ -95,7 +95,7 @@ void Model::fromJson(json_t* rootJ) {
|
||||||
|
|
||||||
|
|
||||||
std::string Model::getFullName() {
|
std::string Model::getFullName() {
|
||||||
assert(plugin);
|
DISTRHO_SAFE_ASSERT_RETURN(plugin, {});
|
||||||
return plugin->getBrand() + " " + name;
|
return plugin->getBrand() + " " + name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This file is an edited version of VCVRack's Scene.cpp
|
* This file is an edited version of VCVRack's app/Scene.cpp
|
||||||
* Copyright (C) 2016-2021 VCV.
|
* Copyright (C) 2016-2021 VCV.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or
|
* This program is free software: you can redistribute it and/or
|
||||||
|
@ -27,6 +27,8 @@
|
||||||
|
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
|
#include <osdialog.h>
|
||||||
|
|
||||||
#include <app/Scene.hpp>
|
#include <app/Scene.hpp>
|
||||||
#include <app/Browser.hpp>
|
#include <app/Browser.hpp>
|
||||||
#include <app/TipWindow.hpp>
|
#include <app/TipWindow.hpp>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This file is an edited version of VCVRack's Window.cpp
|
* This file is an edited version of VCVRack's window/Window.cpp
|
||||||
* Copyright (C) 2016-2021 VCV.
|
* Copyright (C) 2016-2021 VCV.
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or
|
* This program is free software: you can redistribute it and/or
|
||||||
|
@ -56,7 +56,23 @@ namespace rack {
|
||||||
namespace window {
|
namespace window {
|
||||||
|
|
||||||
|
|
||||||
static const math::Vec minWindowSize = math::Vec(648, 538);
|
static const math::Vec WINDOW_SIZE_MIN = math::Vec(648, 538);
|
||||||
|
|
||||||
|
|
||||||
|
struct FontWithOriginalContext : Font {
|
||||||
|
int ohandle = -1;
|
||||||
|
std::string ofilename;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ImageWithOriginalContext : Image {
|
||||||
|
int ohandle = -1;
|
||||||
|
std::string ofilename;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Font::~Font() {
|
||||||
|
// There is no NanoVG deleteFont() function yet, so do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Font::loadFile(const std::string& filename, NVGcontext* vg) {
|
void Font::loadFile(const std::string& filename, NVGcontext* vg) {
|
||||||
|
@ -75,13 +91,15 @@ void Font::loadFile(const std::string& filename, NVGcontext* vg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Font::~Font() {
|
std::shared_ptr<Font> Font::load(const std::string& filename) {
|
||||||
// There is no NanoVG deleteFont() function yet, so do nothing
|
return APP->window->loadFont(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<Font> Font::load(const std::string& filename) {
|
Image::~Image() {
|
||||||
return APP->window->loadFont(filename);
|
// TODO What if handle is invalid?
|
||||||
|
if (handle >= 0)
|
||||||
|
nvgDeleteImage(vg, handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,30 +114,14 @@ void Image::loadFile(const std::string& filename, NVGcontext* vg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Image::~Image() {
|
|
||||||
// TODO What if handle is invalid?
|
|
||||||
if (handle >= 0)
|
|
||||||
nvgDeleteImage(vg, handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
std::shared_ptr<Image> Image::load(const std::string& filename) {
|
std::shared_ptr<Image> Image::load(const std::string& filename) {
|
||||||
return APP->window->loadImage(filename);
|
return APP->window->loadImage(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct FontWithOriginalContext : Font {
|
|
||||||
int ohandle = -1;
|
|
||||||
std::string ofilename;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ImageWithOriginalContext : Image {
|
|
||||||
int ohandle = -1;
|
|
||||||
std::string ofilename;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct Window::Internal {
|
struct Window::Internal {
|
||||||
|
std::string lastWindowTitle;
|
||||||
|
|
||||||
DISTRHO_NAMESPACE::UI* ui = nullptr;
|
DISTRHO_NAMESPACE::UI* ui = nullptr;
|
||||||
DISTRHO_NAMESPACE::WindowParameters params;
|
DISTRHO_NAMESPACE::WindowParameters params;
|
||||||
DISTRHO_NAMESPACE::WindowParametersCallback* callback = nullptr;
|
DISTRHO_NAMESPACE::WindowParametersCallback* callback = nullptr;
|
||||||
|
@ -130,16 +132,16 @@ struct Window::Internal {
|
||||||
NVGcontext* o_vg = nullptr;
|
NVGcontext* o_vg = nullptr;
|
||||||
NVGcontext* o_fbVg = nullptr;
|
NVGcontext* o_fbVg = nullptr;
|
||||||
|
|
||||||
math::Vec size = minWindowSize;
|
math::Vec size = WINDOW_SIZE_MIN;
|
||||||
std::string lastWindowTitle;
|
|
||||||
|
|
||||||
int mods = 0;
|
int mods = 0;
|
||||||
|
int currentRateLimit = 0;
|
||||||
|
|
||||||
int frame = 0;
|
int frame = 0;
|
||||||
int frameSwapInterval = 1;
|
int frameSwapInterval = 1;
|
||||||
double monitorRefreshRate = 60.0; // FIXME
|
double monitorRefreshRate = 60.0;
|
||||||
double frameTime = 0.0;
|
double frameTime = 0.0;
|
||||||
double lastFrameDuration = 0.0;
|
double lastFrameDuration = 0.0;
|
||||||
int currentRateLimit = 0;
|
|
||||||
|
|
||||||
std::map<std::string, std::shared_ptr<FontWithOriginalContext>> fontCache;
|
std::map<std::string, std::shared_ptr<FontWithOriginalContext>> fontCache;
|
||||||
std::map<std::string, std::shared_ptr<ImageWithOriginalContext>> imageCache;
|
std::map<std::string, std::shared_ptr<ImageWithOriginalContext>> imageCache;
|
||||||
|
@ -327,7 +329,8 @@ math::Vec Window::getSize() {
|
||||||
|
|
||||||
|
|
||||||
void Window::setSize(math::Vec size) {
|
void Window::setSize(math::Vec size) {
|
||||||
internal->size = size.max(minWindowSize);
|
size = size.max(WINDOW_SIZE_MIN);
|
||||||
|
internal->size = size;
|
||||||
|
|
||||||
if (DISTRHO_NAMESPACE::UI* const ui = internal->ui)
|
if (DISTRHO_NAMESPACE::UI* const ui = internal->ui)
|
||||||
ui->setSize(internal->size.x, internal->size.y);
|
ui->setSize(internal->size.x, internal->size.y);
|
||||||
|
@ -391,24 +394,30 @@ void Window::step() {
|
||||||
APP->scene->step();
|
APP->scene->step();
|
||||||
|
|
||||||
// Render scene
|
// Render scene
|
||||||
// Update and render
|
{
|
||||||
nvgScale(vg, pixelRatio, pixelRatio);
|
// Update and render
|
||||||
|
nvgScale(vg, pixelRatio, pixelRatio);
|
||||||
|
|
||||||
// Draw scene
|
// Draw scene
|
||||||
widget::Widget::DrawArgs args;
|
widget::Widget::DrawArgs args;
|
||||||
args.vg = vg;
|
args.vg = vg;
|
||||||
args.clipBox = APP->scene->box.zeroPos();
|
args.clipBox = APP->scene->box.zeroPos();
|
||||||
APP->scene->draw(args);
|
APP->scene->draw(args);
|
||||||
|
|
||||||
glViewport(0, 0, fbWidth, fbHeight);
|
glViewport(0, 0, fbWidth, fbHeight);
|
||||||
glClearColor(0.0, 0.0, 0.0, 1.0);
|
glClearColor(0.0, 0.0, 0.0, 1.0);
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
++internal->frame;
|
++internal->frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Window::activateContext() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Window::screenshot(const std::string&) {
|
void Window::screenshot(const std::string&) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -524,6 +533,14 @@ int& Window::fbCount() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void init() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void destroy() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace window
|
} // namespace window
|
||||||
} // namespace rack
|
} // namespace rack
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -34,17 +34,16 @@
|
||||||
|
|
||||||
#include "DistrhoPluginUtils.hpp"
|
#include "DistrhoPluginUtils.hpp"
|
||||||
|
|
||||||
// fopen_u8
|
#if defined ARCH_WIN
|
||||||
#ifdef ARCH_WIN
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
FILE* fopen_u8(const char* filename, const char* mode)
|
FILE* fopen_u8(const char* filename, const char* mode) {
|
||||||
{
|
return _wfopen(rack::string::UTF8toUTF16(filename).c_str(), rack::string::UTF8toUTF16(mode).c_str());
|
||||||
return _wfopen(rack::string::UTF8toUTF16(filename).c_str(), rack::string::UTF8toUTF16(mode).c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Define the global names to indicate this is Cardinal and not VCVRack
|
|
||||||
namespace rack {
|
namespace rack {
|
||||||
|
|
||||||
const std::string APP_NAME = "Cardinal";
|
const std::string APP_NAME = "Cardinal";
|
||||||
|
@ -52,22 +51,24 @@ const std::string APP_EDITION = getPluginFormatName();
|
||||||
const std::string APP_EDITION_NAME = "Audio Plugin";
|
const std::string APP_EDITION_NAME = "Audio Plugin";
|
||||||
const std::string APP_VERSION_MAJOR = "2";
|
const std::string APP_VERSION_MAJOR = "2";
|
||||||
const std::string APP_VERSION = "2.0";
|
const std::string APP_VERSION = "2.0";
|
||||||
#if defined(ARCH_WIN)
|
#if defined ARCH_WIN
|
||||||
const std::string APP_OS = "win";
|
const std::string APP_OS = "win";
|
||||||
#elif defined(ARCH_MAC)
|
#elif ARCH_MAC
|
||||||
const std::string APP_OS = "mac";
|
const std::string APP_OS = "mac";
|
||||||
|
#elif defined ARCH_LIN
|
||||||
|
const std::string APP_OS = "lin";
|
||||||
#else
|
#else
|
||||||
const std::string APP_OS = "lin";
|
#error ARCH_LIN undefined
|
||||||
#endif
|
#endif
|
||||||
const std::string API_URL = "";
|
const std::string API_URL = "";
|
||||||
|
|
||||||
|
|
||||||
Exception::Exception(const char* format, ...)
|
Exception::Exception(const char* format, ...) {
|
||||||
{
|
va_list args;
|
||||||
va_list args;
|
va_start(args, format);
|
||||||
va_start(args, format);
|
msg = string::fV(format, args);
|
||||||
msg = string::fV(format, args);
|
va_end(args);
|
||||||
va_end(args);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
} // namespace rack
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* DISTRHO Cardinal Plugin
|
* DISTRHO Cardinal Plugin
|
||||||
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
|
* Copyright (C) 2021-2022 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
|
||||||
|
@ -46,26 +46,33 @@ Context::~Context() {
|
||||||
|
|
||||||
// Set pointers to NULL so other objects will segfault when attempting to access them
|
// Set pointers to NULL so other objects will segfault when attempting to access them
|
||||||
|
|
||||||
|
INFO("Deleting window");
|
||||||
delete window;
|
delete window;
|
||||||
window = NULL;
|
window = NULL;
|
||||||
|
|
||||||
|
INFO("Deleting patch manager");
|
||||||
delete patch;
|
delete patch;
|
||||||
patch = NULL;
|
patch = NULL;
|
||||||
|
|
||||||
|
INFO("Deleting scene");
|
||||||
delete scene;
|
delete scene;
|
||||||
scene = NULL;
|
scene = NULL;
|
||||||
|
|
||||||
|
INFO("Deleting event state");
|
||||||
delete event;
|
delete event;
|
||||||
event = NULL;
|
event = NULL;
|
||||||
|
|
||||||
|
INFO("Deleting history state");
|
||||||
delete history;
|
delete history;
|
||||||
history = NULL;
|
history = NULL;
|
||||||
|
|
||||||
|
INFO("Deleting engine");
|
||||||
delete engine;
|
delete engine;
|
||||||
engine = NULL;
|
engine = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static thread_local Context* threadContext = nullptr;
|
|
||||||
|
static thread_local Context* threadContext = NULL;
|
||||||
|
|
||||||
Context* contextGet() {
|
Context* contextGet() {
|
||||||
DISTRHO_SAFE_ASSERT(threadContext != nullptr);
|
DISTRHO_SAFE_ASSERT(threadContext != nullptr);
|
||||||
|
@ -76,9 +83,9 @@ Context* contextGet() {
|
||||||
#ifdef ARCH_MAC
|
#ifdef ARCH_MAC
|
||||||
__attribute__((optnone))
|
__attribute__((optnone))
|
||||||
#endif
|
#endif
|
||||||
void contextSet(Context* const context) {
|
void contextSet(Context* context) {
|
||||||
// DISTRHO_SAFE_ASSERT(threadContext == nullptr);
|
|
||||||
threadContext = context;
|
threadContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace rack
|
} // namespace rack
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue