2#include "trkn/tracktion.hh"
19 aseplugin_ (aseplugin), plugin_state_ (aseplugin_.plugin_->state)
31 if (property == tracktion::engine::IDs::name || property == tracktion::engine::IDs::title)
33 else if (property == tracktion::engine::IDs::enabled)
35 else if (property == tracktion::engine::IDs::frozen)
41 void valueTreeChildOrderChanged (
juce::ValueTree&,
int,
int)
override {}
49 return &text->textTitle;
56PluginImpl::from_trkn (tracktion::Plugin &p)
60 return shared_ptr_cast<PluginImpl> (
plugin);
61 PluginImplP pluginp = PluginImpl::make_shared (p);
65PluginImpl::PluginImpl (tracktion::Plugin &plugin) :
66 plugin_ (&plugin), plugin_type_ (plugin.getPluginType().toStdString())
72PluginImpl::~PluginImpl()
75 state_listener_ =
nullptr;
80PluginImpl::name()
const
82 if (
auto pluginp = plugin_.get())
83 return pluginp->getName().toStdString();
91 if (
auto name = trkn_plugin_name (plugin_.get()); name && name->get() != new_name)
93 plugin_->getUndoManager()->beginNewTransaction (
"Set Plugin Name");
107 if (
auto pluginp = plugin_.get())
108 return pluginp->isEnabled();
115 if (
auto pluginp = plugin_.get())
122 if (
auto pluginp = plugin_.get())
123 return pluginp->isFrozen();
130 if (
auto pluginp = plugin_.get())
131 pluginp->setFrozen (
frozen);
138 if (
auto pluginp = plugin_.get()) {
139 info.uri = pluginp->getIdentifierString().toStdString();
140 info.name = pluginp->getName().toStdString();
141 info.description = pluginp->getTooltip().toStdString();
149 return trkn_plugin_name (plugin_.get()) ?
StringS {} :
StringS {
"name" };
155 auto *
plugin = plugin_.get();
157 plugin->removeFromParent();
159 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 enabled() const override
Check if plugin is enabled.
StringS read_only_properties() const override
List x()/x (v) properties that this object can't change, their setters ignore the value or warn.
String plugin_type() const override
Plugin type identifier.
void remove_self() override
Remove self from parent container.
bool frozen() const override
Check if plugin is frozen.
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)