| 
							- /*
 -  * DISTRHO Cardinal Plugin
 -  * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
 -  *
 -  * This program is free software; you can redistribute it and/or
 -  * modify it under the terms of the GNU General Public License as
 -  * published by the Free Software Foundation; either version 3 of
 -  * the License, or any later version.
 -  *
 -  * This program is distributed in the hope that it will be useful,
 -  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 -  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 -  * GNU General Public License for more details.
 -  *
 -  * For a full copy of the GNU General Public License see the LICENSE file.
 -  */
 - 
 - #include <rack.hpp>
 - #include <context.hpp>
 - 
 - #include "DistrhoUtils.hpp"
 - 
 - using namespace rack;
 - 
 - extern Model* modelSpringReverb;
 - Plugin* pluginInstance__Befaco;
 - 
 - namespace rack {
 - Context::~Context() {
 - }
 - static thread_local Context* threadContext;
 - Context* contextGet() {
 - 	DISTRHO_SAFE_ASSERT(threadContext != nullptr);
 - 	return threadContext;
 - }
 - // Apple's clang incorrectly compiles this function when -O2 or higher is enabled.
 - #ifdef ARCH_MAC
 - __attribute__((optnone))
 - #endif
 - void contextSet(Context* const context) {
 - 	// DISTRHO_SAFE_ASSERT(threadContext == nullptr);
 - 	threadContext = context;
 - }
 - Exception::Exception(const char* format, ...)
 - {
 -     va_list args;
 -     va_start(args, format);
 -     msg = string::fV(format, args);
 -     va_end(args);
 - }
 - namespace asset {
 - std::string plugin(plugin::Plugin* plugin, std::string filename) { return {}; }
 - std::string system(std::string filename) { return {}; }
 - }
 - namespace engine {
 - float Engine::getParamValue(Module* module, int paramId) { return 0.0f; }
 - float Engine::getParamSmoothValue(Module* module, int paramId) { return 0.0f; }
 - void Engine::setParamValue(Module* module, int paramId, float value) {}
 - void Engine::setParamSmoothValue(Module* module, int paramId, float value) {}
 - }
 - namespace plugin {
 - void Plugin::addModel(Model* model)
 - {
 - 	// Check that the model is not added to a plugin already
 -     DISTRHO_SAFE_ASSERT_RETURN(model != nullptr,);
 - 	DISTRHO_SAFE_ASSERT_RETURN(model->plugin == nullptr,);
 - 	model->plugin = this;
 - 	models.push_back(model);
 - }
 - Model* modelFromJson(json_t* moduleJ) {
 -     return nullptr;
 - }
 - std::vector<Plugin*> plugins;
 - } // namespace plugin
 - } // namespace rack
 - 
 - int main()
 - {
 -     Plugin* const p = new Plugin;
 -     pluginInstance__Befaco = p;
 -     p->addModel(modelSpringReverb);
 -     engine::Module* module = modelSpringReverb->createModule();
 - 
 -     d_stdout("modelSpringReverb is %p %p", modelSpringReverb, module);
 -     d_stdout("modelSpringReverb has %d ins, %d outs, %d lights, %d params",
 -              module->getNumInputs(), module->getNumOutputs(), module->getNumLights(), module->getNumParams());
 - 
 -     for (int i=0; i<module->getNumInputs(); ++i)
 -         d_stdout("  in %d has name '%s'; description '%s'",
 -                  i+1, module->getInputInfo(i)->getFullName().c_str(), module->getInputInfo(i)->getDescription().c_str());
 - 
 -     for (int i=0; i<module->getNumOutputs(); ++i)
 -         d_stdout("  out %d has name '%s'; description '%s'",
 -                  i+1, module->getOutputInfo(i)->getFullName().c_str(), module->getOutputInfo(i)->getDescription().c_str());
 - 
 - //     for (int i=0; i<module->getNumLights(); ++i)
 - //     {
 - //         LightInfo* l = module->getLightInfo(i);
 - //         DISTRHO_SAFE_ASSERT_CONTINUE(l != nullptr);
 - //         d_stdout("  light %d has name '%s'; description '%s'",
 - //                  i+1, l->getName().c_str(), l->getDescription().c_str());
 - //     }
 - 
 -     for (int i=0; i<module->getNumParams(); ++i)
 -     {
 -         ParamQuantity* q = module->getParamQuantity(i);
 -         d_stdout("  param %d has name '%s'; description '%s'; unit '%s'; min %f; max %f; def %f",
 -                  i+1, q->name.c_str(), q->getDescription().c_str(), q->unit.c_str(),
 -                  q->minValue, q->maxValue, q->defaultValue);
 -     }
 - 
 -     Module::ProcessArgs args = {
 -         48000.0f,
 -         1.0f / 48000.0f,
 -         0
 -     };
 -     for (int i=0; i<96000; ++i)
 -     {
 -         module->process(args);
 -         ++args.frame;
 -     }
 -     return 0;
 - }
 
 
  |