2#include "trkn/tracktion.hh"
19 aseplugin_ (aseplugin), plugin_state_ (aseplugin_.plugin_->state)
31 if (property == tracktion::engine::IDs::name)
33 else if (property == tracktion::engine::IDs::enabled)
35 else if (property == tracktion::engine::IDs::frozen)
41 void valueTreeChildOrderChanged (
juce::ValueTree&,
int,
int)
override {}
46PluginImpl::from_trkn (tracktion::Plugin &p)
50 return shared_ptr_cast<PluginImpl> (
plugin);
51 PluginImplP pluginp = PluginImpl::make_shared (p);
55PluginImpl::PluginImpl (tracktion::Plugin &plugin) :
56 plugin_ (&plugin), plugin_type_ (plugin.getPluginType().toStdString())
62PluginImpl::~PluginImpl()
65 state_listener_ =
nullptr;
70PluginImpl::name()
const
72 if (
auto pluginp = plugin_.get())
73 return pluginp->getName().toStdString();
78PluginImpl::fallback_name()
const
80 if (
auto pluginp = plugin_.get())
81 return pluginp->getName().toStdString();
82 return DeviceImpl::fallback_name();
94 if (
auto pluginp = plugin_.get())
95 return pluginp->isEnabled();
102 if (
auto pluginp = plugin_.get())
103 pluginp->setEnabled (enabled);
109 if (
auto pluginp = plugin_.get())
110 return pluginp->isFrozen();
117 if (
auto pluginp = plugin_.get())
118 pluginp->setFrozen (frozen);
125 if (
auto pluginp = plugin_.get()) {
126 info.uri = pluginp->getIdentifierString().toStdString();
127 info.name = pluginp->getName().toStdString();
128 info.description = pluginp->getTooltip().toStdString();
136 auto *
plugin = plugin_.get();
138 plugin->removeFromParent();
140 state_listener_ =
nullptr;
void emit_notify(const String &detail) override
Emit notify:detail, multiple notifications maybe coalesced if a CoalesceNotifies instance exists.
GadgetImpl * _parent() const override
Retrieve parent container.
void remove_self() override
Remove self from parent container.
Ase::Plugin implementation wrapping tracktion::Plugin.
tracktion::Plugin * plugin() const noexcept
Access underlying tracktion::Plugin (for internal use).
bool is_frozen() const override
Check if plugin is frozen.
String plugin_type() const override
Plugin type identifier.
void remove_self() override
Remove self from parent container.
bool is_enabled() const override
Check if plugin is enabled.
void set_frozen(bool frozen) override
Freeze or unfreeze the plugin.
void set_enabled(bool enabled) override
Enable or disable the plugin.
DeviceInfo device_info() override
Describe this Device type.
Mimick tracktion::engine::SafeSelectable<> for tracktion::Selectable descendants.
void addListener(Listener *listener)
void removeListener(Listener *listener)
#define assert_return(expr,...)
Return from the current function if expr is unmet and issue an assertion warning.
The Anklang C++ API namespace.
void register_ase_obj(VirtualBase *ase_impl, tracktion::Selectable &selectable)
Helper: register AseImpl with a tracktion Selectable via ase_obj_.
std::string String
Convenience alias for std::string.
void unregister_ase_obj(VirtualBase *ase_impl, tracktion::Selectable *selectable)
Helper: unregister AseImpl from a tracktion Selectable (selectable may be nullptr)