Loading...
Searching...
No Matches
gx_engine.h
Go to the documentation of this file.
/*
* Copyright (C) 2009, 2010 Hermann Meyer, James Warden, Andreas Degert
* Copyright (C) 2011 Pete Shorthose
*
* 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 2 of the License, or
* (at your option) 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* --------------------------------------------------------------------------
*/
/* ------- This is the guitarix Engine namespace ------- */
#pragma once
#ifndef SRC_HEADERS_GX_ENGINE_H_
#define SRC_HEADERS_GX_ENGINE_H_
namespace gx_engine {
/* -- guitarix main engine -- */
/****************************************************************
** class ModuleSelectorFromList
*/
class ModuleSelectorFromList: public ModuleSelector, private PluginDef {
private:
int selector;
const char* select_id;
const char* select_name;
Plugin* current_plugin;
PluginDef **modules;
unsigned int size;
value_pair *values;
static int static_register(const ParamReg& reg);
int register_parameter(const ParamReg& reg);
public:
Plugin plugin;
ModuleSelectorFromList(
EngineControl& seq, const char* id, const char* name,
const char *category, plugindef_creator module_ids[], const char* select_id,
const char* select_name, uiloader loader, const char** groups = 0, int flags = 0);
~ModuleSelectorFromList();
void set_module();
};
/****************************************************************
** class GxEngine
*/
struct PluginChange {
Plugin *pl;
enum pc { remove, update, update_category, add } status;
PluginChange(Plugin *pl_, pc status_): pl(pl_), status(status_) {}
};
class GxEngine: public ModuleSequencer {
private:
gx_resample::BufferResampler resamp;
sigc::signal<void,Plugin*,PluginChange::pc> plugin_changed;
LadspaLoader ladspaloader;
void load_static_plugins();
std::vector<Glib::ustring> list;
public:
MidiControllerList controller_map;
// ModuleSelector's
ModuleSelectorFromList crybaby;
ModuleSelectorFromList wah;
ModuleSelectorFromList tonestack;
ModuleSelectorFromList ampstack;
ModuleSelectorFromList poweramps;
// internal audio modules
NoiseGate noisegate;
OutPutGate outputgate;
MonoMute monomute;
StereoMute stereomute;
TunerAdapter tuner;
#ifndef GUITARIX_AS_PLUGIN
Drumout drumout;
#endif
Directout directout;
MaxLevel maxlevel;
OscilloscopeAdapter oscilloscope;
ConvolverMonoAdapter mono_convolver;
ConvolverStereoAdapter stereo_convolver;
CabinetConvolver cabinet;
CabinetStereoConvolver cabinet_st;
PreampConvolver preamp;
PreampStereoConvolver preamp_st;
ContrastConvolver contrast;
LiveLooper loop;
#ifndef GUITARIX_AS_PLUGIN
SCapture record;
SCapture record_st;
DrumSequencer dseq;
#endif
smbPitchShift detune;
NeuralAmp neural_amp;
NeuralAmp sneural_amp;
NeuralAmpMulti mneural_amp;
RtNeural rtneural;
RtNeural srtneural;
RtNeuralMulti rtneuralmulti;
//
public:
GxEngine(const string& plugin_dir, ParameterGroups& groups, const gx_system::CmdlineOptions& options);
~GxEngine();
void ladspaloader_update_plugins();
sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed() { return plugin_changed; }
std::vector<Glib::ustring>& get_file_list_by_id(const std::string& id);
};
/* ------------------------------------------------------------------- */
} /* end of gx_engine namespace */
#endif // SRC_HEADERS_GX_ENGINE_H_
gx_engine::CabinetConvolver
Definition gx_internal_plugins.h:503
gx_engine::CabinetStereoConvolver
Definition gx_internal_plugins.h:535
gx_engine::ContrastConvolver
Definition gx_internal_plugins.h:642
gx_engine::ConvolverMonoAdapter
Definition gx_internal_plugins.h:418
gx_engine::ConvolverStereoAdapter
Definition gx_internal_plugins.h:398
gx_engine::Directout
Definition gx_internal_plugins.h:796
gx_engine::DrumSequencer
Definition gx_internal_plugins.h:1096
gx_engine::Drumout
Definition gx_internal_plugins.h:1080
gx_engine::EngineControl
Definition gx_modulesequencer.h:245
gx_engine::GxEngine::stereomute
StereoMute stereomute
Definition gx_engine.h:89
gx_engine::GxEngine::detune
smbPitchShift detune
Definition gx_engine.h:110
gx_engine::GxEngine::preamp_st
PreampStereoConvolver preamp_st
Definition gx_engine.h:102
gx_engine::GxEngine::crybaby
ModuleSelectorFromList crybaby
Definition gx_engine.h:80
gx_engine::GxEngine::directout
Directout directout
Definition gx_engine.h:94
gx_engine::GxEngine::cabinet_st
CabinetStereoConvolver cabinet_st
Definition gx_engine.h:100
gx_engine::GxEngine::cabinet
CabinetConvolver cabinet
Definition gx_engine.h:99
gx_engine::GxEngine::mono_convolver
ConvolverMonoAdapter mono_convolver
Definition gx_engine.h:97
gx_engine::GxEngine::contrast
ContrastConvolver contrast
Definition gx_engine.h:103
gx_engine::GxEngine::controller_map
MidiControllerList controller_map
Definition gx_engine.h:78
gx_engine::GxEngine::sneural_amp
NeuralAmp sneural_amp
Definition gx_engine.h:112
gx_engine::GxEngine::tuner
TunerAdapter tuner
Definition gx_engine.h:90
gx_engine::GxEngine::preamp
PreampConvolver preamp
Definition gx_engine.h:101
gx_engine::GxEngine::loop
LiveLooper loop
Definition gx_engine.h:104
gx_engine::GxEngine::ampstack
ModuleSelectorFromList ampstack
Definition gx_engine.h:83
gx_engine::GxEngine::outputgate
OutPutGate outputgate
Definition gx_engine.h:87
gx_engine::GxEngine::noisegate
NoiseGate noisegate
Definition gx_engine.h:86
gx_engine::GxEngine::poweramps
ModuleSelectorFromList poweramps
Definition gx_engine.h:84
gx_engine::GxEngine::plugin_changed
sigc::signal< void, Plugin *, PluginChange::pc > plugin_changed
Definition gx_engine.h:73
gx_engine::GxEngine::drumout
Drumout drumout
Definition gx_engine.h:92
gx_engine::GxEngine::get_file_list_by_id
std::vector< Glib::ustring > & get_file_list_by_id(const std::string &id)
gx_engine::GxEngine::record
SCapture record
Definition gx_engine.h:106
gx_engine::GxEngine::neural_amp
NeuralAmp neural_amp
Definition gx_engine.h:111
gx_engine::GxEngine::oscilloscope
OscilloscopeAdapter oscilloscope
Definition gx_engine.h:96
gx_engine::GxEngine::rtneural
RtNeural rtneural
Definition gx_engine.h:114
gx_engine::GxEngine::ladspaloader_update_plugins
void ladspaloader_update_plugins()
gx_engine::GxEngine::rtneuralmulti
RtNeuralMulti rtneuralmulti
Definition gx_engine.h:116
gx_engine::GxEngine::resamp
gx_resample::BufferResampler resamp
Definition gx_engine.h:72
gx_engine::GxEngine::signal_plugin_changed
sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
Definition gx_engine.h:122
gx_engine::GxEngine::srtneural
RtNeural srtneural
Definition gx_engine.h:115
gx_engine::GxEngine::load_static_plugins
void load_static_plugins()
gx_engine::GxEngine::~GxEngine
~GxEngine()
gx_engine::GxEngine::tonestack
ModuleSelectorFromList tonestack
Definition gx_engine.h:82
gx_engine::GxEngine::monomute
MonoMute monomute
Definition gx_engine.h:88
gx_engine::GxEngine::list
std::vector< Glib::ustring > list
Definition gx_engine.h:76
gx_engine::GxEngine::stereo_convolver
ConvolverStereoAdapter stereo_convolver
Definition gx_engine.h:98
gx_engine::GxEngine::dseq
DrumSequencer dseq
Definition gx_engine.h:108
gx_engine::GxEngine::ladspaloader
LadspaLoader ladspaloader
Definition gx_engine.h:74
gx_engine::GxEngine::maxlevel
MaxLevel maxlevel
Definition gx_engine.h:95
gx_engine::GxEngine::wah
ModuleSelectorFromList wah
Definition gx_engine.h:81
gx_engine::GxEngine::record_st
SCapture record_st
Definition gx_engine.h:107
gx_engine::GxEngine::mneural_amp
NeuralAmpMulti mneural_amp
Definition gx_engine.h:113
gx_engine::GxEngine::GxEngine
GxEngine(const string &plugin_dir, ParameterGroups &groups, const gx_system::CmdlineOptions &options)
gx_engine::LadspaLoader
Definition gx_internal_plugins.h:753
gx_engine::LiveLooper
Definition gx_internal_plugins.h:827
gx_engine::MaxLevel
Definition gx_internal_plugins.h:50
gx_engine::MidiControllerList
Definition gx_parameter.h:768
gx_engine::ModuleSelectorFromList
Definition gx_engine.h:37
gx_engine::ModuleSelectorFromList::modules
PluginDef ** modules
Definition gx_engine.h:43
gx_engine::ModuleSelectorFromList::select_id
const char * select_id
Definition gx_engine.h:40
gx_engine::ModuleSelectorFromList::plugin
Plugin plugin
Definition gx_engine.h:50
gx_engine::ModuleSelectorFromList::values
value_pair * values
Definition gx_engine.h:45
gx_engine::ModuleSelectorFromList::current_plugin
Plugin * current_plugin
Definition gx_engine.h:42
gx_engine::ModuleSelectorFromList::select_name
const char * select_name
Definition gx_engine.h:41
gx_engine::ModuleSelectorFromList::static_register
static int static_register(const ParamReg &reg)
gx_engine::ModuleSelectorFromList::~ModuleSelectorFromList
~ModuleSelectorFromList()
gx_engine::ModuleSelectorFromList::selector
int selector
Definition gx_engine.h:39
gx_engine::ModuleSelectorFromList::size
unsigned int size
Definition gx_engine.h:44
gx_engine::ModuleSelectorFromList::ModuleSelectorFromList
ModuleSelectorFromList(EngineControl &seq, const char *id, const char *name, const char *category, plugindef_creator module_ids[], const char *select_id, const char *select_name, uiloader loader, const char **groups=0, int flags=0)
gx_engine::ModuleSelectorFromList::register_parameter
int register_parameter(const ParamReg &reg)
gx_engine::ModuleSelectorFromList::set_module
void set_module()
gx_engine::ModuleSelector::ModuleSelector
ModuleSelector(EngineControl &seq_)
Definition gx_modulesequencer.h:33
gx_engine::ModuleSelector::seq
EngineControl & seq
Definition gx_modulesequencer.h:31
gx_engine::ModuleSequencer::ModuleSequencer
ModuleSequencer()
gx_engine::MonoMute
Definition gx_internal_plugins.h:35
gx_engine::NeuralAmp
Definition gx_neural_plugins.h:68
gx_engine::NeuralAmpMulti
Definition gx_neural_plugins.h:117
gx_engine::NoiseGate
Definition gx_internal_plugins.h:113
gx_engine::OscilloscopeAdapter
Definition gx_internal_plugins.h:200
gx_engine::OutPutGate
Definition gx_internal_plugins.h:134
gx_engine::ParameterGroups
Definition gx_parameter.h:47
gx_engine::Plugin
Definition gx_pluginloader.h:45
gx_engine::PreampConvolver
Definition gx_internal_plugins.h:573
gx_engine::PreampStereoConvolver
Definition gx_internal_plugins.h:605
gx_engine::RtNeural
Definition gx_neural_plugins.h:198
gx_engine::RtNeuralMulti
Definition gx_neural_plugins.h:247
gx_engine::SCapture
Definition gx_internal_plugins.h:1007
gx_engine::StereoMute
Definition gx_internal_plugins.h:42
gx_engine::TunerAdapter
Definition gx_internal_plugins.h:80
gx_engine::smbPitchShift
Definition gx_internal_plugins.h:1198
gx_resample::BufferResampler
Definition gx_resampler.h:49
gx_system::CmdlineOptions
Definition gx_system.h:395
uiloader
int(* uiloader)(const UiBuilder &builder, int format)
Definition gx_plugin.h:170
gx_engine
Definition gx_convolver.h:37
gx_engine::plugindef_creator
PluginDef *(* plugindef_creator)()
Definition gx_pluginloader.h:127
ParamReg
Parameter registration function pointers.
Definition gx_plugin.h:141
PluginDef
Definition gx_plugin.h:195
PluginDef::groups
const char ** groups
Definition gx_plugin.h:201
PluginDef::name
const char * name
Definition gx_plugin.h:200
PluginDef::flags
int flags
Definition gx_plugin.h:197
PluginDef::category
const char * category
Definition gx_plugin.h:204
gx_engine::PluginChange::PluginChange
PluginChange(Plugin *pl_, pc status_)
Definition gx_engine.h:67
gx_engine::PluginChange::pl
Plugin * pl
Definition gx_engine.h:65
gx_engine::PluginChange::pc
pc
Definition gx_engine.h:66
gx_engine::PluginChange::remove
@ remove
Definition gx_engine.h:66
gx_engine::PluginChange::update
@ update
Definition gx_engine.h:66
gx_engine::PluginChange::update_category
@ update_category
Definition gx_engine.h:66
gx_engine::PluginChange::add
@ add
Definition gx_engine.h:66
gx_engine::PluginChange::status
enum gx_engine::PluginChange::pc status
value_pair
Definition gx_plugin.h:117