| @@ -0,0 +1,42 @@ | |||
| name: Bug Report | |||
| description: Report a bug with Cardinal | |||
| body: | |||
| - type: input | |||
| id: version | |||
| attributes: | |||
| label: Version | |||
| value: "24.04" | |||
| validations: | |||
| required: true | |||
| - type: dropdown | |||
| id: plugin-type | |||
| attributes: | |||
| label: Plugin type | |||
| multiple: true | |||
| options: | |||
| - Native / JACK | |||
| - AU | |||
| - CLAP | |||
| - LV2 | |||
| - VST2 | |||
| - VST3 | |||
| validations: | |||
| required: true | |||
| - type: input | |||
| id: os | |||
| attributes: | |||
| label: OS | |||
| validations: | |||
| required: true | |||
| - type: input | |||
| id: daw-host | |||
| attributes: | |||
| label: "DAW / Host (if applicable)" | |||
| validations: | |||
| required: false | |||
| - type: textarea | |||
| id: bug-description | |||
| attributes: | |||
| label: Description | |||
| validations: | |||
| required: true | |||
| @@ -0,0 +1,8 @@ | |||
| blank_issues_enabled: false | |||
| contact_links: | |||
| - name: Module request | |||
| url: https://github.com/DISTRHO/Cardinal/wiki/Possible-modules-to-include | |||
| about: To request a new module, add it to the wiki page here | |||
| - name: Discussions | |||
| url: https://github.com/DISTRHO/Cardinal/discussions | |||
| about: Ask other questions or share what you've made with Cardinal | |||
| @@ -0,0 +1,9 @@ | |||
| name: Feature request | |||
| description: Request a new feature | |||
| body: | |||
| - type: textarea | |||
| id: feature-description | |||
| attributes: | |||
| label: Description | |||
| validations: | |||
| required: true | |||
| @@ -233,6 +233,15 @@ | |||
| [submodule "plugins/DHE-Modules"] | |||
| path = plugins/DHE-Modules | |||
| url = https://github.com/dhemery/DHE-Modules.git | |||
| [submodule "plugins/Computerscare"] | |||
| path = plugins/Computerscare | |||
| url = https://github.com/freddyz/computerscare-vcv-modules.git | |||
| [submodule "plugins/CVfunk"] | |||
| path = plugins/CVfunk | |||
| url = https://github.com/codygeary/CVfunk-Modules.git | |||
| [submodule "plugins/StarlingVia"] | |||
| path = plugins/StarlingVia | |||
| url = https://github.com/starlingcode/Via-for-Rack.git | |||
| [submodule "plugins/Biset"] | |||
| path = plugins/Biset | |||
| url = https://github.com/gibbonjoyeux/VCV-Biset.git | |||
| @@ -10,11 +10,12 @@ include $(ROOT)/Makefile.base.mk | |||
| # Set version | |||
| # also set in: | |||
| # .github/ISSUE_TEMPLATE/bug.yaml | |||
| # src/CardinalCommon.cpp `CARDINAL_VERSION` | |||
| # src/CardinalPlugin.cpp `getVersion` | |||
| # utils/macOS/Info_{JACK,Native}.plist | |||
| # src/CardinalCommon.cpp src/CardinalPlugin.cpp utils/macOS/Info_{JACK,Native}.plist | |||
| VERSION = 24.03 | |||
| # .github/ISSUE_TEMPLATE/bug.yaml src/CardinalCommon.cpp src/CardinalPlugin.cpp utils/macOS/Info_{JACK,Native}.plist | |||
| VERSION = 24.04 | |||
| # -------------------------------------------------------------- | |||
| # Build targets | |||
| @@ -139,6 +139,7 @@ At the moment the following 3rd-party modules are provided: | |||
| - [Catro/Modulo](https://github.com/catronomix/catro-modulo) | |||
| - [cf](https://github.com/cfoulc/cf) | |||
| - [ChowDSP](https://github.com/jatinchowdhury18/ChowDSP-VCV) | |||
| - [Computerscare](https://github.com/freddyz/computerscare-vcv-modules) | |||
| - [CVfunk](https://github.com/codygeary/CVfunk-Modules) | |||
| - [dBiz](https://github.com/dBiz/dBiz) | |||
| - [DHE Modules](https://github.com/dhemery/DHE-Modules) | |||
| @@ -185,6 +186,7 @@ At the moment the following 3rd-party modules are provided: | |||
| - [Sapphire](https://github.com/cosinekitty/sapphire) | |||
| - [Sonus Modular](https://gitlab.com/sonusdept/sonusmodular) | |||
| - [stocaudio](https://github.com/aptrn/stocaudio-modules) | |||
| - [Starling Via](https://github.com/starlingcode/Via-for-Rack) | |||
| - [Stoermelder Pack-One](https://github.com/stoermelder/vcvrack-packone) | |||
| - [Surge XT](https://github.com/surge-synthesizer/surge-rack) | |||
| - [unless_modules](https://gitlab.com/unlessgames/unless_modules) | |||
| @@ -1 +1 @@ | |||
| Subproject commit 66afe24a08790732cc17d81d4b846a1e0cfa0118 | |||
| Subproject commit 3c7d0e7b914d38a32b733cc5ced0b5696d2f9a03 | |||
| @@ -1 +1 @@ | |||
| Subproject commit b84d0ec2d1bb5c7d7fd05d4a8d7f4af71306c425 | |||
| Subproject commit 0edef2120e7fd493493e66967438c0b2ea8c8552 | |||
| @@ -29,10 +29,12 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||
| | Bacon Music | GPL-3.0-or-later | | | |||
| | Befaco | GPL-3.0-or-later | | | |||
| | Bidoo | GPL-3.0-or-later | | | |||
| | Biset | MIT | | | |||
| | Bogaudio | GPL-3.0-or-later | | | |||
| | Catro/Modulo | BSD-3-Clause | | | |||
| | cf | BSD-3-Clause | | | |||
| | ChowDSP | GPL-3.0-or-later | | | |||
| | Computerscare | BSD-3-Clause | | | |||
| | CVfunk | MIT | | | |||
| | dBiz | GPL-3.0-or-later | | | |||
| | DHE-Modules | MIT | | | |||
| @@ -78,6 +80,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||
| | RebelTech | GPL-2.0-or-later | | | |||
| | Sapphire | GPL-3.0-or-later | | | |||
| | Sonus Modular | GPL-3.0-or-later | | | |||
| | Starling Via | MIT | | | |||
| | stocaudio | GPL-3.0-or-later | | | |||
| | Stoermelder Pack-One | GPL-3.0-or-later | | | |||
| | Surge XT | GPL-3.0-or-later | | | |||
| @@ -145,6 +148,9 @@ Below is a list of artwork licenses from plugins | |||
| | Befaco/components/* | CC-BY-NC-4.0 | | | |||
| | Befaco/fonts/Segment7Standard.otf | OFL-1.1-RFN | | | |||
| | Befaco/panels/* | Custom | Copyright © [Befaco](https://www.befaco.org/), [used and distributed with permission](LICENSE-PERMISSIONS.md#befaco-manu-retamero--befaco) | | |||
| | Biset/* | MIT | No artwork specific license provided | | |||
| | Biset/FT88-Regular.ttf | OFL | | | |||
| | Biset/Recursive_VF_1.085.ttf | OFL-1.1-no-RFN | | | |||
| | BogaudioModules/* | CC-BY-SA-4.0 | | | |||
| | BogaudioModules/fonts/audiowide.ttf | OFL-1.1-RFN | | | |||
| | BogaudioModules/fonts/inconsolata*.ttf | OFL-1.1-no-RFN | | | |||
| @@ -158,6 +164,9 @@ Below is a list of artwork licenses from plugins | |||
| | cf/VT323-Regular.ttf | OFL-1.1-no-RFN | | | |||
| | ChowDSP/* | GPL-3.0-or-later | Same license as source code | | |||
| | ChowDSP/fonts/RobotoCondensed-*.ttf | Apache-2.0 | | | |||
| | Computerscare/* | BSD-3-Clause | No artwork specific license provided | | |||
| | Computerscare/Oswald-Regular.ttf | OFL-1.1 | | | |||
| | Computerscare/Segment7Standard.ttf | OFL-1.1-RFN | | | |||
| | CVfunk/* | MIT | Same license as source code | | |||
| | dBiz/* | CC-BY-NC-ND-4.0 | | | |||
| | dBiz/DejaVuSansMono.ttf | Bitstream-Vera | | | |||
| @@ -231,6 +240,7 @@ Below is a list of artwork licenses from plugins | |||
| | RebelTech/* | CC-BY-NC-4.0 | | | |||
| | Sapphire/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | sonusmodular/* | GPL-3.0-or-later | [Same license as source code](https://gitlab.com/sonusdept/sonusmodular/-/issues/14) | | |||
| | StarlingVia/* | MIT | No artwork specific license provided | | |||
| | stocaudio/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | stoermelder-packone/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | stoermelder-packone/fonts/RedkostComic.otf | OFL-1.1-RFN | | | |||
| @@ -1 +1 @@ | |||
| Subproject commit 045b943199393053c606b530fc882661502d53d7 | |||
| Subproject commit 01aca7649c1a3a5ee20a47c5ecd3cb2e29395f89 | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -29,6 +29,8 @@ | |||
| #include "choc/choc_SmallVector.h" | |||
| #include <jansson.h> | |||
| namespace rack { | |||
| /** Abstraction for all MIDI drivers in Rack */ | |||
| namespace midi { | |||
| @@ -111,6 +113,18 @@ struct Message { | |||
| }; | |||
| struct InputQueue { | |||
| struct Internal; | |||
| Internal* internal; | |||
| InputQueue(); | |||
| ~InputQueue(); | |||
| bool tryPop(Message* const messageOut, int64_t maxFrame); | |||
| json_t* toJson() const; | |||
| void fromJson(json_t* rootJ); | |||
| }; | |||
| /* NOTE all the other MIDI stuff (drivers, ports etc) is purposefully missing here, unwanted in Cardinal | |||
| */ | |||
| struct Port; | |||
| @@ -1,37 +1,67 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 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. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #include "plugin.hpp" | |||
| #include "DistrhoUtils.hpp" | |||
| #ifdef BUILDING_PLUGIN_MODULES | |||
| #include "rack.hpp" | |||
| #endif | |||
| namespace rack { | |||
| namespace midi { | |||
| struct Message; | |||
| } | |||
| } | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| // Base DISTRHO classes | |||
| #ifndef DISTRHO_DETAILS_HPP_INCLUDED | |||
| namespace CardinalDISTRHO { | |||
| class Plugin; | |||
| class UI; | |||
| struct MidiEvent { | |||
| static const uint32_t kDataSize = 4; | |||
| uint32_t frame; | |||
| uint32_t size; | |||
| uint8_t data[kDataSize]; | |||
| const uint8_t* dataExt; | |||
| }; | |||
| } | |||
| #endif | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| // Base DGL classes | |||
| #include "../dgl/Base.hpp" | |||
| #ifndef DGL_BASE_HPP_INCLUDED | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| // from PluginContext.hpp | |||
| namespace CardinalDGL { | |||
| START_NAMESPACE_DGL | |||
| class TopLevelWidget; | |||
| template <class BaseWidget> class NanoBaseWidget; | |||
| typedef NanoBaseWidget<TopLevelWidget> NanoTopLevelWidget; | |||
| END_NAMESPACE_DGL | |||
| START_NAMESPACE_DISTRHO | |||
| struct IdleCallback { | |||
| virtual ~IdleCallback() {} | |||
| virtual void idleCallback() = 0; | |||
| }; | |||
| } | |||
| #endif | |||
| using CardinalDGL::IdleCallback; | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| // Cardinal specific context | |||
| static constexpr const uint32_t kModuleParameterCount = 24; | |||
| @@ -43,17 +73,6 @@ enum CardinalVariant { | |||
| kCardinalVariantSynth, | |||
| }; | |||
| class Plugin; | |||
| class UI; | |||
| struct MidiEvent { | |||
| static const uint32_t kDataSize = 4; | |||
| uint32_t frame; | |||
| uint32_t size; | |||
| uint8_t data[kDataSize]; | |||
| const uint8_t* dataExt; | |||
| }; | |||
| struct CardinalPluginContext : rack::Context { | |||
| uint32_t bufferSize, processCounter; | |||
| double sampleRate; | |||
| @@ -67,23 +86,23 @@ struct CardinalPluginContext : rack::Context { | |||
| uintptr_t nativeWindowId; | |||
| const float* const* dataIns; | |||
| float** dataOuts; | |||
| const MidiEvent* midiEvents; | |||
| const CardinalDISTRHO::MidiEvent* midiEvents; | |||
| uint32_t midiEventCount; | |||
| Plugin* const plugin; | |||
| DGL_NAMESPACE::NanoTopLevelWidget* tlw; | |||
| UI* ui; | |||
| CardinalPluginContext(Plugin* const p); | |||
| CardinalDISTRHO::Plugin* const plugin; | |||
| #ifndef HEADLESS | |||
| CardinalDGL::NanoTopLevelWidget* tlw; | |||
| CardinalDISTRHO::UI* ui; | |||
| #endif | |||
| CardinalPluginContext(CardinalDISTRHO::Plugin* const p); | |||
| void writeMidiMessage(const rack::midi::Message& message, uint8_t channel); | |||
| #ifndef HEADLESS | |||
| #ifndef HEADLESS | |||
| bool addIdleCallback(IdleCallback* cb) const; | |||
| void removeIdleCallback(IdleCallback* cb) const; | |||
| #endif | |||
| #endif | |||
| }; | |||
| #ifndef HEADLESS | |||
| void handleHostParameterDrag(const CardinalPluginContext* pcontext, uint index, bool started); | |||
| #endif | |||
| END_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit a697109733cf0d0f022cf01e06896a1e78b236f6 | |||
| @@ -1,11 +1,11 @@ | |||
| /* | |||
| * AIDA-X Cardinal plugin | |||
| * Copyright (C) 2022-2023 Massimo Pennazio <maxipenna@libero.it> | |||
| * Copyright (C) 2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2023-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #include "plugincontext.hpp" | |||
| #include "plugin.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #ifndef HEADLESS | |||
| @@ -250,7 +250,6 @@ struct AidaPluginModule : Module { | |||
| NUM_LIGHTS | |||
| }; | |||
| CardinalPluginContext* const pcontext; | |||
| bool fileChanged = false; | |||
| std::string currentFile; | |||
| @@ -272,7 +271,6 @@ struct AidaPluginModule : Module { | |||
| #endif | |||
| AidaPluginModule() | |||
| : pcontext(static_cast<CardinalPluginContext*>(APP)) | |||
| { | |||
| config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); | |||
| @@ -656,8 +654,6 @@ struct AidaPluginModule : Module { | |||
| cachedParams[kParameterPRESENCE]); | |||
| } | |||
| #endif | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AidaPluginModule) | |||
| }; | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -1093,8 +1089,6 @@ struct AidaWidget : ModuleWidgetWithSideScrews<23> { | |||
| menu->addChild(new LoadModelFileItem(module)); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AidaWidget) | |||
| }; | |||
| #else | |||
| struct AidaWidget : ModuleWidget { | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,6 +15,7 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "extra/Runner.hpp" | |||
| @@ -39,6 +40,7 @@ const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| using namespace CARLA_BACKEND_NAMESPACE; | |||
| using namespace DISTRHO_NAMESPACE; | |||
| static uint32_t host_get_buffer_size(NativeHostHandle); | |||
| static double host_get_sample_rate(NativeHostHandle); | |||
| @@ -335,8 +337,6 @@ struct CarlaInternalPluginModule : Module, Runner { | |||
| 0, 0, nullptr, e.sampleRate); | |||
| fCarlaPluginDescriptor->activate(fCarlaPluginHandle); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaInternalPluginModule) | |||
| }; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -679,8 +679,6 @@ struct AudioFileWidget : ModuleWidgetWithSideScrews<23> { | |||
| menu->addChild(new LoadAudioFileItem(module)); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AudioFileWidget) | |||
| }; | |||
| #else | |||
| struct AudioFileWidget : ModuleWidget { | |||
| @@ -1,7 +1,7 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Bram Giesen | |||
| * Copyright (C) 2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2022-2024 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 | |||
| @@ -16,7 +16,7 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugincontext.hpp" | |||
| #include "plugin.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "Widgets.hpp" | |||
| @@ -24,8 +24,6 @@ extern "C" { | |||
| #include "aubio.h" | |||
| } | |||
| USE_NAMESPACE_DISTRHO; | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| // aubio setup values (tested under 48 kHz sample rate) | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,6 +15,7 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "Expander.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| @@ -427,8 +428,6 @@ struct CarlaModule : Module { | |||
| 0, 0, nullptr, e.sampleRate); | |||
| fCarlaPluginDescriptor->activate(fCarlaPluginHandle); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaModule) | |||
| }; | |||
| static_assert((int)CarlaModule::NUM_INPUTS == (int)CarlaModule::NUM_OUTPUTS, "inputs must match outputs"); | |||
| @@ -715,8 +714,6 @@ struct CarlaModuleWidget : ModuleWidgetWith9HP, IdleCallback { | |||
| e.consume(this); | |||
| showUI(); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaModuleWidget) | |||
| }; | |||
| static void host_ui_closed(NativeHostHandle handle) | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,9 +15,11 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "Widgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,8 +15,10 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -25,9 +25,11 @@ | |||
| * the License, or (at your option) any later version. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "Widgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| #include <algorithm> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -25,9 +25,11 @@ | |||
| * the License, or (at your option) any later version. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "Widgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| #include <algorithm> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -25,9 +25,11 @@ | |||
| * the License, or (at your option) any later version. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "Widgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| #include <algorithm> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -25,7 +25,9 @@ | |||
| * the License, or (at your option) any later version. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include <algorithm> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -25,9 +25,11 @@ | |||
| * the License, or (at your option) any later version. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "Widgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,8 +15,10 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,8 +15,10 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "ModuleWidgets.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -25,6 +25,7 @@ | |||
| * the License, or (at your option) any later version. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "Expander.hpp" | |||
| @@ -98,6 +99,7 @@ namespace ildaeil { | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| using namespace CARLA_BACKEND_NAMESPACE; | |||
| using namespace DISTRHO_NAMESPACE; | |||
| static uint32_t host_get_buffer_size(NativeHostHandle); | |||
| static double host_get_sample_rate(NativeHostHandle); | |||
| @@ -768,8 +770,6 @@ struct IldaeilModule : Module { | |||
| 0, 0, nullptr, e.sampleRate); | |||
| fCarlaPluginDescriptor->activate(fCarlaPluginHandle); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(IldaeilModule) | |||
| }; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -2252,8 +2252,6 @@ struct IldaeilWidget : ImGuiWidget, IdleCallback, Runner { | |||
| ImGui::End(); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(IldaeilWidget) | |||
| }; | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -2435,8 +2433,6 @@ struct IldaeilModuleWidget : ModuleWidgetWithSideScrews<26> { | |||
| ModuleWidgetWithSideScrews<26>::step(); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(IldaeilModuleWidget) | |||
| }; | |||
| #else | |||
| static void host_ui_parameter_changed(NativeHostHandle, uint32_t, float) {} | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,12 +15,15 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugin.hpp" | |||
| #include "plugincontext.hpp" | |||
| #ifndef HEADLESS | |||
| # include "EmbedWidget.hpp" | |||
| # include "extra/ExternalWindow.hpp" | |||
| #endif | |||
| USE_NAMESPACE_DISTRHO; | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| struct CardinalEmbedModule : Module { | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,7 +15,7 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugincontext.hpp" | |||
| #include "plugin.hpp" | |||
| #include "ImGuiWidget.hpp" | |||
| #include "sassy/sassy.hpp" | |||
| #include "sassy/sassy_scope.cpp" | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -15,7 +15,7 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "plugincontext.hpp" | |||
| #include "plugin.hpp" | |||
| #ifndef HEADLESS | |||
| # include "ImGuiTextEditor.hpp" | |||
| @@ -412,8 +412,6 @@ struct TextEditorModuleWidget : ModuleWidget { | |||
| menu->addChild(new ui::MenuSeparator); | |||
| menu->addChild(createMenuItem("Select all", RACK_MOD_CTRL_NAME "+A", [=]{ textEditorWidget->selectAll(); })); | |||
| } | |||
| DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(TextEditorModuleWidget) | |||
| }; | |||
| #else | |||
| struct TextEditorModuleWidget : ModuleWidget { | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -18,11 +18,8 @@ | |||
| #pragma once | |||
| #include "rack.hpp" | |||
| #include "engine/TerminalModule.hpp" | |||
| #ifdef NDEBUG | |||
| # undef DEBUG | |||
| #endif | |||
| // #include "engine/TerminalModule.hpp" | |||
| // #include "plugincontext.hpp" | |||
| using namespace rack; | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit 5baab047242088e45c99c9999b6e2d9082981ef1 | |||
| @@ -572,6 +572,15 @@ PLUGIN_FILES += BidooDark/plugin.cpp | |||
| BIDOO_CUSTOM = ChannelDisplay InstantiateExpanderItem LadderFilter PitchShifter $(DRWAV) | |||
| BIDOO_CUSTOM_PER_FILE = channel channel filterType | |||
| # -------------------------------------------------------------- | |||
| # Biset | |||
| PLUGIN_FILES += $(filter-out Biset/src/plugin.cpp,$(wildcard Biset/src/*.cpp)) | |||
| PLUGIN_FILES += $(wildcard Biset/src/*/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| BISET_CUSTOM = Blank ButtonTrigger Clock Tree TreeDisplay | |||
| # -------------------------------------------------------------- | |||
| # BogaudioModules | |||
| @@ -645,6 +654,14 @@ PLUGIN_FILES += $(filter-out cf/src/plugin.cpp,$(wildcard cf/src/*.cpp)) | |||
| # modules/types which are present in other plugins | |||
| CF_CUSTOM = $(DRWAV) | |||
| # -------------------------------------------------------------- | |||
| # Computerscare | |||
| PLUGIN_FILES += $(filter-out Computerscare/src/Computerscare.cpp Computerscare/src/test.cpp,$(wildcard Computerscare/src/*.cpp)) | |||
| # modules/types which are present in other plugins | |||
| COMPUTERSCARE_CUSTOM = Quantizer PanelBorder | |||
| # -------------------------------------------------------------- | |||
| # CVfunk | |||
| @@ -1003,6 +1020,23 @@ PLUGIN_FILES += $(filter-out Sapphire/src/plugin.cpp,$(wildcard Sapphire/src/*.c | |||
| PLUGIN_FILES += $(filter-out sonusmodular/src/sonusmodular.cpp,$(wildcard sonusmodular/src/*.cpp)) | |||
| # -------------------------------------------------------------- | |||
| # Starling Via | |||
| PLUGIN_FILES += $(wildcard StarlingVia/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard StarlingVia/Via/io/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard StarlingVia/Via/ui/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard StarlingVia/Via/modules/*/*.cpp) | |||
| PLUGIN_BINARIES += StarlingVia/res/original.gateseq | |||
| PLUGIN_BINARIES += StarlingVia/res/original.meta | |||
| PLUGIN_BINARIES += StarlingVia/res/original.osc3 | |||
| PLUGIN_BINARIES += StarlingVia/res/original.scanner | |||
| PLUGIN_BINARIES += StarlingVia/res/original.sync | |||
| PLUGIN_BINARIES += StarlingVia/res/original.sync3 | |||
| # modules/types which are present in other plugins | |||
| STARLINGVIA_CUSTOM = Scanner Scale Wavetable | |||
| # -------------------------------------------------------------- | |||
| # stocaudio | |||
| @@ -1284,6 +1318,7 @@ BUILD_DIR = ../build/plugins | |||
| endif | |||
| BASE_FLAGS += -DBUILDING_PLUGIN_MODULES | |||
| BASE_FLAGS += -DDONT_SET_USING_DISTRHO_NAMESPACE | |||
| BASE_FLAGS += -I$(abspath $(ROOT)/include/osdialog-stub) | |||
| ifeq ($(BSD)$(WASM),true) | |||
| @@ -1402,11 +1437,11 @@ RESOURCE_FILES += Befaco/res/SpringReverbIR.f32 | |||
| RESOURCE_FILES += cf/playeroscs | |||
| RESOURCE_FILES += DHE-Modules/svg | |||
| RESOURCE_FILES += DrumKit/res/samples | |||
| RESOURCE_FILES += Meander/res | |||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets | |||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes | |||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldPresets | |||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldShapes | |||
| RESOURCE_FILES += Meander/res | |||
| RESOURCE_FILES += Mog/res | |||
| RESOURCE_FILES += nonlinearcircuits/res | |||
| RESOURCE_FILES += ParableInstruments/res/Neil.png | |||
| @@ -2168,6 +2203,13 @@ $(BUILD_DIR)/Bidoo%.cpp.o: Bidoo%.cpp | |||
| -Wno-sign-compare \ | |||
| -Wno-unused-function | |||
| $(BUILD_DIR)/Biset/src/%.cpp.o: Biset/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(BISET_CUSTOM),$(call custom_module_names,$(m),Biset)) \ | |||
| -DpluginInstance=pluginInstance__Biset | |||
| $(BUILD_DIR)/BogaudioModules/src/follower_base.cpp.o: BogaudioModules/src/follower_base.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -2207,6 +2249,13 @@ $(BUILD_DIR)/cf/src/%.cpp.o: cf/src/%.cpp | |||
| -DpluginInstance=pluginInstance__cf \ | |||
| -Wno-misleading-indentation | |||
| $(BUILD_DIR)/Computerscare/src/%.cpp.o: Computerscare/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(COMPUTERSCARE_CUSTOM),$(call custom_module_names,$(m),Computerscare)) \ | |||
| -DpluginInstance=pluginInstance__Computerscare | |||
| $(BUILD_DIR)/CVfunk/src/%.cpp.o: CVfunk/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -2630,6 +2679,21 @@ $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp | |||
| $(foreach m,$(SONUSMODULAR_CUSTOM),$(call custom_module_names,$(m),sonusmodular)) \ | |||
| -DpluginInstance=pluginInstance__sonusmodular | |||
| $(BUILD_DIR)/StarlingVia/%.cpp.o: StarlingVia/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(STARLINGVIA_CUSTOM),$(call custom_module_names,$(m),StarlingVia)) \ | |||
| -DpluginInstance=pluginInstance__StarlingVia \ | |||
| -DBUILD_VIRTUAL \ | |||
| -IStarlingVia/dep/starling-dsp \ | |||
| -IStarlingVia/Via/modules/inc \ | |||
| -IStarlingVia/Via/synthesis/inc \ | |||
| -IStarlingVia/Via/io/inc \ | |||
| -IStarlingVia/Via/ui/inc \ | |||
| -IStarlingVia/src/dep/starling-dsp \ | |||
| -IStarlingVia/src/dep/starling-rack-ui | |||
| $(BUILD_DIR)/stoermelder-packone/%.cpp.o: stoermelder-packone/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1 +1 @@ | |||
| Subproject commit 18f4fa89ca08e9943e38548440d3e02e1ee2e170 | |||
| Subproject commit 8136f0c941b41c57af70a5ebb5839f0086518b2b | |||
| @@ -1 +1 @@ | |||
| Subproject commit 4bf2ad39eeaddcbfcc5cd345aef8c0c4cc722b73 | |||
| Subproject commit d26e157140ef6283906a33675733ea35e4dd26ac | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit a6b75fddc2df624ba64dab70c2e35b8e48ad8c1d | |||
| @@ -1 +1 @@ | |||
| Subproject commit 88f1bd64cff6e96a1a48566a1692de86b9a7de2a | |||
| Subproject commit d6933abe016eeb97c9fb0b0f955af756401403c1 | |||
| @@ -146,6 +146,35 @@ extern Model* modelChord; | |||
| // Bidoo | |||
| #include "Bidoo/src/plugin.hpp" | |||
| // Biset | |||
| /* NOTE too much noise in original include, do this a different way | |||
| // #include "Biset/src/plugin.hpp" | |||
| */ | |||
| #define modelBlank modelBisetBlank | |||
| #define modelTree modelBisetTree | |||
| extern Model* modelTracker; | |||
| extern Model* modelTrackerSynth; | |||
| extern Model* modelTrackerDrum; | |||
| extern Model* modelTrackerClock; | |||
| extern Model* modelTrackerPhase; | |||
| extern Model* modelTrackerQuant; | |||
| extern Model* modelTrackerState; | |||
| extern Model* modelTrackerControl; | |||
| extern Model* modelRegex; | |||
| extern Model* modelRegexCondensed; | |||
| extern Model* modelRegexExp; | |||
| extern Model* modelTree; | |||
| extern Model* modelTreeSeed; | |||
| extern Model* modelGbu; | |||
| extern Model* modelPkm; | |||
| extern Model* modelIgc; | |||
| extern Model* modelOmega3; | |||
| extern Model* modelOmega6; | |||
| extern Model* modelSegfault; | |||
| extern Model* modelBlank; | |||
| #undef modelBlank | |||
| #undef modelTree | |||
| // BogaudioModules - integrate theme/skin support | |||
| #include <mutex> | |||
| #include <string> | |||
| @@ -311,6 +340,9 @@ extern Model* modelTestVCF; | |||
| #include "ChowDSP/src/plugin.cpp" | |||
| #undef init | |||
| // Computerscare | |||
| #include "Computerscare/src/Computerscare.hpp" | |||
| // dBiz | |||
| #define DarkDefaultItem dBizDarkDefaultItem | |||
| #define OrangeLight dBizOrangeLight | |||
| @@ -779,6 +811,16 @@ void addThemeMenuItems(Menu*, ModuleTheme*) {} | |||
| // sonusmodular | |||
| #include "sonusmodular/src/sonusmodular.hpp" | |||
| // Starling Via | |||
| #define modelScanner modelStarlingViaScanner | |||
| #define Scale starlingViaScale | |||
| #define Wavetable starlingViaWavetable | |||
| #include "StarlingVia/src/starling.hpp" | |||
| #undef modelScanner | |||
| #undef Scale | |||
| #undef Wavetable | |||
| // stocaudio | |||
| #include "stocaudio/src/plugin.hpp" | |||
| @@ -862,10 +904,12 @@ Plugin* pluginInstance__Axioma; | |||
| Plugin* pluginInstance__Bacon; | |||
| Plugin* pluginInstance__Befaco; | |||
| Plugin* pluginInstance__Bidoo; | |||
| Plugin* pluginInstance__Biset; | |||
| Plugin* pluginInstance__BogaudioModules; | |||
| Plugin* pluginInstance__CatroModulo; | |||
| Plugin* pluginInstance__cf; | |||
| Plugin* pluginInstance__ChowDSP; | |||
| Plugin* pluginInstance__Computerscare; | |||
| Plugin* pluginInstance__CVfunk; | |||
| Plugin* pluginInstance__dBiz; | |||
| Plugin* pluginInstance__DHE; | |||
| @@ -910,6 +954,7 @@ Plugin* pluginInstance__RebelTech; | |||
| Plugin* pluginInstance__repelzen; | |||
| Plugin* pluginInstance__sapphire; | |||
| Plugin* pluginInstance__sonusmodular; | |||
| extern Plugin* pluginInstance__StarlingVia; | |||
| Plugin* pluginInstance__stocaudio; | |||
| extern Plugin* pluginInstance__stoermelder_p1; | |||
| Plugin* pluginInstance__surgext; | |||
| @@ -1598,6 +1643,46 @@ static void initStatic__Bidoo() | |||
| } | |||
| } | |||
| static void initStatic__Biset() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__Biset = p; | |||
| const StaticPluginLoader spl(p, "Biset"); | |||
| if (spl.ok()) | |||
| { | |||
| #define modelBlank modelBisetBlank | |||
| #define modelTree modelBisetTree | |||
| p->addModel(modelTracker); | |||
| p->addModel(modelTrackerSynth); | |||
| p->addModel(modelTrackerDrum); | |||
| p->addModel(modelTrackerClock); | |||
| p->addModel(modelTrackerPhase); | |||
| p->addModel(modelTrackerQuant); | |||
| p->addModel(modelTrackerState); | |||
| p->addModel(modelTrackerControl); | |||
| p->addModel(modelRegex); | |||
| p->addModel(modelRegexCondensed); | |||
| p->addModel(modelRegexExp); | |||
| p->addModel(modelTree); | |||
| p->addModel(modelTreeSeed); | |||
| p->addModel(modelGbu); | |||
| p->addModel(modelPkm); | |||
| p->addModel(modelIgc); | |||
| p->addModel(modelOmega3); | |||
| p->addModel(modelOmega6); | |||
| p->addModel(modelSegfault); | |||
| p->addModel(modelBlank); | |||
| #undef modelBlank | |||
| #undef modelTree | |||
| } | |||
| } | |||
| static void initStatic__BogaudioModules() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -1833,6 +1918,34 @@ static void initStatic__ChowDSP() | |||
| } | |||
| } | |||
| static void initStatic__Computerscare() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__Computerscare = p; | |||
| const StaticPluginLoader spl(p, "Computerscare"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelComputerscarePatchSequencer); | |||
| p->addModel(modelComputerscareDebug); | |||
| p->addModel(modelComputerscareLaundrySoup); | |||
| p->addModel(modelComputerscareILoveCookies); | |||
| p->addModel(modelComputerscareOhPeas); | |||
| p->addModel(modelComputerscareHorseADoodleDoo); | |||
| p->addModel(modelComputerscareKnolyPobs); | |||
| p->addModel(modelComputerscareBolyPuttons); | |||
| p->addModel(modelComputerscareRolyPouter); | |||
| p->addModel(modelComputerscareSolyPequencer); | |||
| p->addModel(modelComputerscareTolyPools); | |||
| p->addModel(modelComputerscareMolyPatrix); | |||
| p->addModel(modelComputerscareGolyPenerator); | |||
| p->addModel(modelComputerscareFolyPace); | |||
| p->addModel(modelComputerscareStolyFickPigure); | |||
| p->addModel(modelComputerscareBlank); | |||
| p->addModel(modelComputerscareBlankExpander); | |||
| } | |||
| } | |||
| static void initStatic__CVfunk() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -2956,6 +3069,29 @@ static void initStatic__sonusmodular() | |||
| } | |||
| } | |||
| static void initStatic__StarlingVia() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__StarlingVia = p; | |||
| const StaticPluginLoader spl(p, "StarlingVia"); | |||
| if (spl.ok()) | |||
| { | |||
| #define modelScanner modelStarlingViaScanner | |||
| p->addModel(modelMeta); | |||
| p->addModel(modelGateseq); | |||
| p->addModel(modelScanner); | |||
| p->addModel(modelSync); | |||
| p->addModel(modelAtsr); | |||
| p->addModel(modelOsc3); | |||
| p->addModel(modelSync3); | |||
| p->addModel(modelSync3XL); | |||
| p->addModel(modelSync3XLLevels); | |||
| #undef modelScanner | |||
| } | |||
| } | |||
| static void initStatic__stocaudio() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -3249,10 +3385,12 @@ void initStaticPlugins() | |||
| initStatic__Bacon(); | |||
| initStatic__Befaco(); | |||
| initStatic__Bidoo(); | |||
| initStatic__Biset(); | |||
| initStatic__BogaudioModules(); | |||
| initStatic__CatroModulo(); | |||
| initStatic__cf(); | |||
| initStatic__ChowDSP(); | |||
| initStatic__Computerscare(); | |||
| initStatic__CVfunk(); | |||
| initStatic__dBiz(); | |||
| initStatic__DHE(); | |||
| @@ -3297,6 +3435,7 @@ void initStaticPlugins() | |||
| initStatic__repelzen(); | |||
| initStatic__Sapphire(); | |||
| initStatic__sonusmodular(); | |||
| initStatic__StarlingVia(); | |||
| initStatic__stocaudio(); | |||
| initStatic__stoermelder_p1(); | |||
| initStatic__surgext(); | |||
| @@ -17,7 +17,7 @@ | |||
| #include "CardinalCommon.hpp" | |||
| #include "AsyncDialog.hpp" | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "DistrhoPluginUtils.hpp" | |||
| #include <asset.hpp> | |||
| @@ -99,9 +99,7 @@ void destroyStaticPlugins(); | |||
| } | |||
| } | |||
| const std::string CARDINAL_VERSION = "24.03"; | |||
| START_NAMESPACE_DISTRHO | |||
| const std::string CARDINAL_VERSION = "24.04"; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -126,6 +124,53 @@ void handleHostParameterDrag(const CardinalPluginContext* pcontext, uint index, | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| CardinalPluginContext::CardinalPluginContext(Plugin* const p) | |||
| : bufferSize(p != nullptr ? p->getBufferSize() : 0), | |||
| processCounter(0), | |||
| sampleRate(p != nullptr ? p->getSampleRate() : 0.0), | |||
| #if CARDINAL_VARIANT_MAIN | |||
| variant(kCardinalVariantMain), | |||
| #elif CARDINAL_VARIANT_MINI | |||
| variant(kCardinalVariantMini), | |||
| #elif CARDINAL_VARIANT_FX | |||
| variant(kCardinalVariantFX), | |||
| #elif CARDINAL_VARIANT_NATIVE | |||
| variant(kCardinalVariantNative), | |||
| #elif CARDINAL_VARIANT_SYNTH | |||
| variant(kCardinalVariantSynth), | |||
| #else | |||
| #error cardinal variant not set | |||
| #endif | |||
| bypassed(false), | |||
| playing(false), | |||
| reset(false), | |||
| bbtValid(false), | |||
| bar(1), | |||
| beat(1), | |||
| beatsPerBar(4), | |||
| beatType(4), | |||
| frame(0), | |||
| barStartTick(0.0), | |||
| beatsPerMinute(120.0), | |||
| tick(0.0), | |||
| tickClock(0.0), | |||
| ticksPerBeat(0.0), | |||
| ticksPerClock(0.0), | |||
| ticksPerFrame(0.0), | |||
| nativeWindowId(0), | |||
| dataIns(nullptr), | |||
| dataOuts(nullptr), | |||
| midiEvents(nullptr), | |||
| midiEventCount(0), | |||
| plugin(p) | |||
| #ifndef HEADLESS | |||
| , tlw(nullptr) | |||
| , ui(nullptr) | |||
| #endif | |||
| { | |||
| std::memset(parameters, 0, sizeof(parameters)); | |||
| } | |||
| #ifndef HEADLESS | |||
| bool CardinalPluginContext::addIdleCallback(IdleCallback* const cb) const | |||
| { | |||
| @@ -224,6 +269,86 @@ void CardinalPluginContext::writeMidiMessage(const rack::midi::Message& message, | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| namespace rack { | |||
| namespace midi { | |||
| struct InputQueue::Internal { | |||
| CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP); | |||
| const CardinalDISTRHO::MidiEvent* midiEvents = nullptr; | |||
| uint32_t midiEventsLeft = 0; | |||
| uint32_t lastProcessCounter = 0; | |||
| int64_t lastBlockFrame = 0; | |||
| }; | |||
| InputQueue::InputQueue() { | |||
| internal = new Internal; | |||
| } | |||
| InputQueue::~InputQueue() { | |||
| delete internal; | |||
| } | |||
| bool InputQueue::tryPop(Message* const messageOut, int64_t maxFrame) | |||
| { | |||
| const uint32_t processCounter = internal->pcontext->processCounter; | |||
| const bool processCounterChanged = internal->lastProcessCounter != processCounter; | |||
| if (processCounterChanged) | |||
| { | |||
| internal->lastBlockFrame = internal->pcontext->engine->getBlockFrame(); | |||
| internal->lastProcessCounter = processCounter; | |||
| internal->midiEvents = internal->pcontext->midiEvents; | |||
| internal->midiEventsLeft = internal->pcontext->midiEventCount; | |||
| } | |||
| if (internal->midiEventsLeft == 0 || maxFrame < internal->lastBlockFrame) | |||
| return false; | |||
| const uint32_t frame = maxFrame - internal->lastBlockFrame; | |||
| if (frame > internal->midiEvents->frame) | |||
| return false; | |||
| const CardinalDISTRHO::MidiEvent& midiEvent(*internal->midiEvents); | |||
| const uint8_t* data; | |||
| if (midiEvent.size > CardinalDISTRHO::MidiEvent::kDataSize) | |||
| { | |||
| data = midiEvent.dataExt; | |||
| messageOut->bytes.resize(midiEvent.size); | |||
| } | |||
| else | |||
| { | |||
| data = midiEvent.data; | |||
| } | |||
| messageOut->frame = frame; | |||
| std::memcpy(messageOut->bytes.data(), data, midiEvent.size); | |||
| ++internal->midiEvents; | |||
| --internal->midiEventsLeft; | |||
| return true; | |||
| } | |||
| json_t* InputQueue::toJson() const | |||
| { | |||
| return nullptr; | |||
| } | |||
| void InputQueue::fromJson(json_t* rootJ) | |||
| { | |||
| } | |||
| } | |||
| } | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| #ifdef HAVE_LIBLO | |||
| static void osc_error_handler(int num, const char* msg, const char* path) | |||
| { | |||
| @@ -12,6 +12,8 @@ | |||
| extern const std::string CARDINAL_VERSION; | |||
| struct CardinalPluginContext; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| namespace rack { | |||
| @@ -84,7 +86,6 @@ START_NAMESPACE_DISTRHO | |||
| class CardinalBasePlugin; | |||
| class CardinalBaseUI; | |||
| struct CardinalPluginContext; | |||
| struct Initializer | |||
| { | |||
| @@ -32,7 +32,7 @@ | |||
| #include "CardinalCommon.hpp" | |||
| #include "DistrhoPluginUtils.hpp" | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "extra/Base64.hpp" | |||
| #include "extra/ScopedDenormalDisable.hpp" | |||
| #include "extra/ScopedSafeLocale.hpp" | |||
| @@ -406,7 +406,7 @@ protected: | |||
| uint32_t getVersion() const override | |||
| { | |||
| return d_version(0, 24, 3); | |||
| return d_version(0, 24, 4); | |||
| } | |||
| int64_t getUniqueId() const override | |||
| @@ -36,29 +36,14 @@ | |||
| #ifndef HEADLESS | |||
| # include "DistrhoUI.hpp" | |||
| #else | |||
| # include "Base.hpp" | |||
| START_NAMESPACE_DGL | |||
| class TopLevelWidget; | |||
| template <class BaseWidget> class NanoBaseWidget; | |||
| typedef NanoBaseWidget<TopLevelWidget> NanoTopLevelWidget; | |||
| END_NAMESPACE_DGL | |||
| #endif | |||
| #include "plugincontext.hpp" | |||
| START_NAMESPACE_DISTRHO | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| static constexpr const uint kModuleParameterCount = 24; | |||
| enum CardinalVariant { | |||
| kCardinalVariantMain, | |||
| kCardinalVariantMini, | |||
| kCardinalVariantFX, | |||
| kCardinalVariantNative, | |||
| kCardinalVariantSynth, | |||
| }; | |||
| enum CardinalParameters { | |||
| kCardinalParameterCountAtModules = kModuleParameterCount, | |||
| kCardinalParameterBypass = kCardinalParameterCountAtModules, | |||
| @@ -126,82 +111,6 @@ static_assert(kCardinalParameterCountAtWindow == kModuleParameterCount + kWindow | |||
| static_assert(DISTRHO_PLUGIN_NUM_INPUTS == kCardinalParameterCountAtMiniBuffers - kCardinalParameterStartMiniBuffers, "valid parameter indexes"); | |||
| #endif | |||
| class UI; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| struct CardinalPluginContext : rack::Context { | |||
| uint32_t bufferSize, processCounter; | |||
| double sampleRate; | |||
| float parameters[kModuleParameterCount]; | |||
| CardinalVariant variant; | |||
| bool bypassed, playing, reset, bbtValid; | |||
| int32_t bar, beat, beatsPerBar, beatType; | |||
| uint64_t frame; | |||
| double barStartTick, beatsPerMinute; | |||
| double tick, tickClock, ticksPerBeat, ticksPerClock, ticksPerFrame; | |||
| uintptr_t nativeWindowId; | |||
| const float* const* dataIns; | |||
| float** dataOuts; | |||
| const MidiEvent* midiEvents; | |||
| uint32_t midiEventCount; | |||
| Plugin* const plugin; | |||
| NanoTopLevelWidget* tlw; | |||
| UI* ui; | |||
| CardinalPluginContext(Plugin* const p) | |||
| : bufferSize(p != nullptr ? p->getBufferSize() : 0), | |||
| processCounter(0), | |||
| sampleRate(p != nullptr ? p->getSampleRate() : 0.0), | |||
| #if CARDINAL_VARIANT_MAIN | |||
| variant(kCardinalVariantMain), | |||
| #elif CARDINAL_VARIANT_MINI | |||
| variant(kCardinalVariantMini), | |||
| #elif CARDINAL_VARIANT_FX | |||
| variant(kCardinalVariantFX), | |||
| #elif CARDINAL_VARIANT_NATIVE | |||
| variant(kCardinalVariantNative), | |||
| #elif CARDINAL_VARIANT_SYNTH | |||
| variant(kCardinalVariantSynth), | |||
| #else | |||
| #error cardinal variant not set | |||
| #endif | |||
| bypassed(false), | |||
| playing(false), | |||
| reset(false), | |||
| bbtValid(false), | |||
| bar(1), | |||
| beat(1), | |||
| beatsPerBar(4), | |||
| beatType(4), | |||
| frame(0), | |||
| barStartTick(0.0), | |||
| beatsPerMinute(120.0), | |||
| tick(0.0), | |||
| tickClock(0.0), | |||
| ticksPerBeat(0.0), | |||
| ticksPerClock(0.0), | |||
| ticksPerFrame(0.0), | |||
| nativeWindowId(0), | |||
| dataIns(nullptr), | |||
| dataOuts(nullptr), | |||
| midiEvents(nullptr), | |||
| midiEventCount(0), | |||
| plugin(p), | |||
| tlw(nullptr), | |||
| ui(nullptr) | |||
| { | |||
| std::memset(parameters, 0, sizeof(parameters)); | |||
| } | |||
| void writeMidiMessage(const rack::midi::Message& message, uint8_t channel); | |||
| #ifndef HEADLESS | |||
| bool addIdleCallback(IdleCallback* cb) const; | |||
| void removeIdleCallback(IdleCallback* cb) const; | |||
| #endif | |||
| }; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| #if DISTRHO_PLUGIN_WANT_DIRECT_ACCESS | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -24,7 +24,7 @@ | |||
| #endif | |||
| #include "CardinalRemote.hpp" | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "extra/Base64.hpp" | |||
| #include "extra/ScopedSafeLocale.hpp" | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -18,7 +18,7 @@ | |||
| #pragma once | |||
| #include "NanoVG.hpp" | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "WindowParameters.hpp" | |||
| #include <widget/Widget.hpp> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -30,7 +30,7 @@ | |||
| #include <engine/Engine.hpp> | |||
| #include <ui/common.hpp> | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "extra/ScopedValueSetter.hpp" | |||
| #define CARDINAL_TEMPLATE_NAME "init/main.vcv" | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -49,7 +49,7 @@ | |||
| #include "Application.hpp" | |||
| #include "AsyncDialog.hpp" | |||
| #include "CardinalCommon.hpp" | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "WindowParameters.hpp" | |||
| #include "extra/Base64.hpp" | |||
| @@ -1081,7 +1081,7 @@ protected: | |||
| int key; | |||
| switch (ev.key) | |||
| { | |||
| case '\t': key = GLFW_KEY_TAB; break; | |||
| case kKeyTab: key = GLFW_KEY_TAB; break; | |||
| case kKeyBackspace: key = GLFW_KEY_BACKSPACE; break; | |||
| case kKeyEnter: key = GLFW_KEY_ENTER; break; | |||
| case kKeyEscape: key = GLFW_KEY_ESCAPE; break; | |||
| @@ -316,6 +316,7 @@ SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/chopin | |||
| SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/debussy | |||
| SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg | |||
| SYMLINKED_DIRS_RESOURCES += cf/playeroscs | |||
| SYMLINKED_DIRS_RESOURCES += DHE-Modules/svg | |||
| SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples | |||
| SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | |||
| SYMLINKED_DIRS_RESOURCES += LyraeModules/presets | |||
| @@ -62,6 +62,7 @@ enum DarkMode { | |||
| kModeAudibleInstruments, | |||
| kModeBidoo, | |||
| kModeCf, | |||
| kModeComputerscare, | |||
| kModeDHE, | |||
| kModeDrumKit, | |||
| kModeESeries, | |||
| @@ -214,6 +215,29 @@ static const struct { | |||
| { kModeCf, "/cf/res/SUB.svg", {}, -1 }, | |||
| { kModeCf, "/cf/res/trSEQ.svg", {}, -1 }, | |||
| { kModeCf, "/cf/res/VARIABLE.svg", {}, -1 }, | |||
| // BSD-3 Clause | |||
| { kModeComputerscare, "/Computerscare/res/computerscare-clk-text.svg", {}, -1}, | |||
| { kModeComputerscare, "/Computerscare/res/vertical-x-1.svg", {}, -1}, | |||
| { kModeComputerscare, "/Computerscare/res/vertical-x-2.svg", {}, -1}, | |||
| { kModeComputerscare, "/Computerscare/res/vertical-x-3.svg", {}, -1}, | |||
| { kModeComputerscare, "/Computerscare/res/computerscare-logo-normal.svg", {}, -1}, | |||
| { kModeComputerscare, "/Computerscare/res/computerscare-logo-sad.svg", {}, -1}, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareDebugPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareOhPeasPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareFolyPacePanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareKnolyPobsPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareTolyPoolsPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareMolyPatrixPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareRolyPouterPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareBolyPuttonsPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareCustomBlankPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareLaundrySoupPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareILoveCookiesPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareGolyPeneratorPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareSolyPequencerPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscarePatchSequencerPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareHorseADoodleDooPanel.svg", {}, -1 }, | |||
| { kModeComputerscare, "/Computerscare/res/ComputerscareCustomBlankExpanderPanel.svg", {}, -1 }, | |||
| // MIT | |||
| { kModeDHE, "/DHE-Modules/svg/blossom.svg", {}, -1 }, | |||
| { kModeDHE, "/DHE-Modules/svg/booster-stage.svg", {}, -1 }, | |||
| @@ -362,6 +386,7 @@ enum LightMode { | |||
| kModeAutinn, | |||
| kModeBefaco, | |||
| kModeCardinal, | |||
| kModeComputerscareLight, | |||
| kModeExtratone, | |||
| kModeFehlerFabrik, | |||
| kModeForsitan, | |||
| @@ -450,6 +475,8 @@ static const struct { | |||
| { kModeCardinal, "/Cardinal/res/HostParamsMap.svg" }, | |||
| { kModeCardinal, "/Cardinal/res/HostTime.svg" }, | |||
| { kModeCardinal, "/Cardinal/res/Ildaeil.svg" }, | |||
| // BSD-3 Clause | |||
| { kModeComputerscareLight, "/Computerscare/res/ComputerscareStolyFickPigurePanel.svg" }, | |||
| // GPLv3+ | |||
| { kModeExtratone, "/Extratone/res/Darwinism.svg" }, | |||
| // { kModeExtratone, "/Extratone/res/HalluciMemory.svg" }, | |||
| @@ -664,6 +691,15 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai | |||
| } | |||
| } | |||
| break; | |||
| // Special case for Computerscare | |||
| case kModeComputerscare: | |||
| switch (paint.color) | |||
| { | |||
| // Just make vertical-x-* visible | |||
| case 0xffa6c924: | |||
| return false; | |||
| } | |||
| break; | |||
| // Special case for DHE, mark things darker instead of inverting | |||
| case kModeDHE: | |||
| paint.color = darkerColor(paint.color); | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -16,7 +16,7 @@ | |||
| */ | |||
| #include "Application.hpp" | |||
| #include "PluginContext.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include <GLFW/glfw3.h> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -53,7 +53,7 @@ | |||
| #include "../CardinalCommon.hpp" | |||
| #include "../CardinalRemote.hpp" | |||
| #include "../PluginContext.hpp" | |||
| #include "../CardinalPluginContext.hpp" | |||
| #include "DistrhoPlugin.hpp" | |||
| #include "DistrhoStandaloneUtils.hpp" | |||
| @@ -605,10 +605,8 @@ static void setAllFramebufferWidgetsDirty(widget::Widget* const widget) | |||
| for (widget::Widget* child : widget->children) | |||
| { | |||
| if (widget::FramebufferWidget* const fbw = dynamic_cast<widget::FramebufferWidget*>(child)) | |||
| { | |||
| fbw->setDirty(); | |||
| break; | |||
| } | |||
| setAllFramebufferWidgetsDirty(child); | |||
| } | |||
| } | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2024 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 | |||
| @@ -46,7 +46,7 @@ | |||
| #include "Application.hpp" | |||
| #include "extra/String.hpp" | |||
| #include "../CardinalCommon.hpp" | |||
| #include "../PluginContext.hpp" | |||
| #include "../CardinalPluginContext.hpp" | |||
| #include "../WindowParameters.hpp" | |||
| #ifndef DGL_NO_SHARED_RESOURCES | |||
| @@ -11,7 +11,7 @@ | |||
| <key>CFBundleIdentifier</key> | |||
| <string>studio.kx.distrho.cardinal.jack</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>23.03</string> | |||
| <string>23.04</string> | |||
| <key>LSMinimumSystemVersion</key> | |||
| <string>10.15</string> | |||
| <key>NSHumanReadableCopyright</key> | |||
| @@ -11,7 +11,7 @@ | |||
| <key>CFBundleIdentifier</key> | |||
| <string>studio.kx.distrho.cardinal.native</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>24.03</string> | |||
| <string>24.04</string> | |||
| <key>LSMinimumSystemVersion</key> | |||
| <string>10.15</string> | |||
| <key>NSHumanReadableCopyright</key> | |||