|
LMMS
|
#include <EffectMgr.h>
Public Attributes | |
| const bool | insertion |
| float * | efxoutl |
| float * | efxoutr |
| FilterParams * | filterpars |
| int | nefx |
| Effect * | efx |
| const AbsTime * | time |
| Public Attributes inherited from zyncarla::Presets | |
| char | type [MAX_PRESETTYPE_SIZE] |
Static Public Attributes | |
| static const rtosc::Ports & | ports = local_ports |
Private Attributes | |
| char | preset |
| char | settings [128] |
| bool | dryonly |
| Allocator & | memory |
| const SYNTH_T & | synth |
Additional Inherited Members | |
| Protected Member Functions inherited from zyncarla::Presets | |
| void | setpresettype (const char *type) |
Effect manager, an interface between the program and effects
| EffectMgr::EffectMgr | ( | Allocator & | alloc, |
| const SYNTH_T & | synth, | ||
| const bool | insertion_, | ||
| const AbsTime * | time_ = nullptr ) |
| EffectMgr::~EffectMgr | ( | ) |
|
virtual |
Implements zyncarla::Presets.
| void EffectMgr::changepreset | ( | unsigned char | npreset | ) |
| unsigned char EffectMgr::geteffectpar | ( | int | npar | ) |
| unsigned char EffectMgr::geteffectparrt | ( | int | npar | ) |
| float EffectMgr::getEQfreqresponse | ( | float | freq | ) |
| void EffectMgr::getfromXML | ( | XMLwrapper & | xml | ) |
| unsigned char EffectMgr::getpreset | ( | void | ) |
| void EffectMgr::out | ( | float * | smpsl, |
| float * | smpsr ) |
| void EffectMgr::setdryonly | ( | bool | value | ) |
| float EffectMgr::sysefxgetvolume | ( | void | ) |
get the output(to speakers) volume of the systemeffect
|
private |
| Effect* zyncarla::EffectMgr::efx |
| float* zyncarla::EffectMgr::efxoutl |
| float * zyncarla::EffectMgr::efxoutr |
| FilterParams* zyncarla::EffectMgr::filterpars |
| const bool zyncarla::EffectMgr::insertion |
|
private |
| int zyncarla::EffectMgr::nefx |
|
static |
|
private |
|
private |
When loading an effect from XML the child effect cannot be loaded directly as it would require access to the realtime memory pool, which cannot be done outside of the realtime thread. Therefore, parameters are loaded to this array which can then be used to construct the full effect (via init()) once the object is in the realtime context.
Additionally this structure is used in the case of pasting effects as pasted effect object are not fully initialized when they're put on the middleware -> backend ringbuffer, but settings has the values loaded from the XML serialization. The settings values can be pasted once they're on the realtime thread and then they can be applied.
The requirement that the realtime memory pool is used to create the effect is in place as it is possible to change the effect type in the realtime thread and thus the new effect would draw from the realtime memory pool and the old object would be expected to be freed to the realtime memory pool.
See also: PresetExtractor.cpp