Audacity 3.2.0
|
#include <ComponentHandler.h>
Public Types | |
using | PendingChangesPtr = std::unique_ptr< Steinberg::Vst::IParameterChanges, std::function< void(Steinberg::Vst::IParameterChanges *)> > |
Public Member Functions | |
ComponentHandler () | |
virtual | ~ComponentHandler () |
Steinberg::tresult PLUGIN_API | beginEdit (Steinberg::Vst::ParamID id) override |
Steinberg::tresult PLUGIN_API | performEdit (Steinberg::Vst::ParamID id, Steinberg::Vst::ParamValue valueNormalized) override |
Steinberg::tresult PLUGIN_API | endEdit (Steinberg::Vst::ParamID id) override |
Steinberg::tresult PLUGIN_API | restartComponent (Steinberg::int32 flags) override |
PendingChangesPtr | getPendingChanges () |
Private Attributes | |
std::atomic< Steinberg::Vst::IParameterChanges * > | mFirst { nullptr } |
std::atomic< Steinberg::Vst::IParameterChanges * > | mSecond { nullptr } |
std::atomic< Steinberg::Vst::IParameterChanges * > | mPendingChanges { nullptr } |
Stores all pending changes from the editor, and safely transfers them to the processing thread on request. It's lock and wait free (given that there are two threads), but it's theoretically possible that processing thread will never get pending changes, but in real life should never be the case. Current implementation isn't strict about begin/perform/endEdit order correctness(actually it's completely ignored right now, but that might change in future).
Definition at line 40 of file ComponentHandler.h.
using internal::ComponentHandler::PendingChangesPtr = std::unique_ptr< Steinberg::Vst::IParameterChanges, std::function<void (Steinberg::Vst::IParameterChanges*)> > |
Definition at line 47 of file ComponentHandler.h.
internal::ComponentHandler::ComponentHandler | ( | ) |
Definition at line 19 of file ComponentHandler.cpp.
|
virtual |
Definition at line 41 of file ComponentHandler.cpp.
|
override |
Definition at line 54 of file ComponentHandler.cpp.
|
override |
Definition at line 99 of file ComponentHandler.cpp.
internal::ComponentHandler::PendingChangesPtr internal::ComponentHandler::getPendingChanges | ( | ) |
Definition at line 109 of file ComponentHandler.cpp.
|
override |
Definition at line 59 of file ComponentHandler.cpp.
|
override |
Definition at line 104 of file ComponentHandler.cpp.
|
private |
Definition at line 42 of file ComponentHandler.h.
Referenced by ComponentHandler().
|
private |
Definition at line 44 of file ComponentHandler.h.
|
private |
Definition at line 43 of file ComponentHandler.h.
Referenced by ComponentHandler().