lmms
Cross-platform music production software
Loading...
Searching...
No Matches
lmms::CarlaInstrument Class Reference

#include <Carla.h>

Inheritance diagram for lmms::CarlaInstrument:
lmms::Instrument lmms::Plugin lmms::Model lmms::JournallingObject lmms::SerializingObject

Signals

void uiClosed ()
void paramsUpdated ()
Signals inherited from lmms::Model
void dataChanged ()
void dataUnchanged ()
void propertiesChanged ()

Public Member Functions

 CarlaInstrument (InstrumentTrack *const instrumentTrack, const Descriptor *const descriptor, const bool isPatchbay)
 ~CarlaInstrument () override
uint32_t handleGetBufferSize () const
double handleGetSampleRate () const
bool handleIsOffline () const
const NativeTimeInfo * handleGetTimeInfo () const
void handleUiParameterChanged (const uint32_t index, const float value) const
void handleUiClosed ()
intptr_t handleDispatcher (const NativeHostDispatcherOpcode opcode, const int32_t index, const intptr_t value, void *const ptr, const float opt)
QString nodeName () const override
void saveSettings (QDomDocument &doc, QDomElement &parent) override
void loadSettings (const QDomElement &elem) override
void play (SampleFrame *workingBuffer) override
bool handleMidiEvent (const MidiEvent &event, const TimePos &time, f_cnt_t offset) override
gui::PluginView * instantiateView (QWidget *parent) override
 Create a view for the model.
Public Member Functions inherited from lmms::Instrument
 Instrument (InstrumentTrack *_instrument_track, const Descriptor *_descriptor, const Descriptor::SubPluginFeatures::Key *key=nullptr, Flags flags=Flag::NoFlags)
 ~Instrument () override=default
virtual bool hasNoteInput () const
virtual void playNote (NotePlayHandle *, SampleFrame *)
virtual void deleteNotePluginData (NotePlayHandle *_note_to_play)
virtual auto midiPatch () const -> std::optional< MidiPatch >
 For applicable instruments: Provides host with current MIDI bank and program.
virtual auto childModel (std::string_view modelName) -> AutomatableModel *
virtual f_cnt_t beatLen (NotePlayHandle *_n) const
virtual float desiredReleaseTimeMs () const
f_cnt_t desiredReleaseFrames () const
sample_rate_t getSampleRate () const
bool isSingleStreamed () const
bool isMidiBased () const
bool isBendable () const
QString fullDisplayName () const override
virtual bool isFromTrack (const Track *_track) const
InstrumentTrack * instrumentTrack () const
Public Member Functions inherited from lmms::Plugin
 Plugin (const Descriptor *descriptor, Model *parent, const Descriptor::SubPluginFeatures::Key *key=nullptr)
 Constructor of a plugin.
 ~Plugin () override=default
QString displayName () const override
 Return display-name out of sub plugin or descriptor.
const PixmapLoader * logo () const
 Return logo out of sub plugin or descriptor.
Type type () const
 Return plugin type.
const Descriptor * descriptor () const
 Return plugin Descriptor.
const Descriptor::SubPluginFeatures::Key & key () const
virtual void loadFile (const QString &file)
gui::PluginView * createView (QWidget *parent)
 Create a view for the model.
Public Member Functions inherited from lmms::Model
 Model (Model *parent, QString displayName=QString(), bool defaultConstructed=false)
 ~Model () override=default
bool isDefaultConstructed () const
Model * parentModel () const
virtual void setDisplayName (const QString &displayName)
Public Member Functions inherited from lmms::JournallingObject
 JournallingObject ()
 ~JournallingObject () override
jo_id_t id () const
void saveJournallingState (const bool newState)
void restoreJournallingState ()
void addJournalCheckPoint ()
QDomElement saveState (QDomDocument &_doc, QDomElement &_parent) override
void restoreState (const QDomElement &_this) override
bool isJournalling () const
void setJournalling (const bool _sr)
bool testAndSetJournalling (const bool newState)
bool isJournallingStateStackEmpty () const
Public Member Functions inherited from lmms::SerializingObject
 SerializingObject ()
virtual ~SerializingObject ()
void setHook (SerializingObjectHook *_hook)
SerializingObjectHook * hook ()

Static Public Attributes

static const uint32_t kMaxMidiEvents = 512

Private Slots

void sampleRateChanged ()
void refreshParams (bool init=false)
void clearParamModels ()
void paramModelChanged (uint32_t index)
void updateParamModel (uint32_t index)

Private Attributes

const bool kIsPatchbay
NativePluginHandle fHandle
NativeHostDescriptor fHost
const NativePluginDescriptor * fDescriptor
uint32_t fMidiEventCount
NativeMidiEvent fMidiEvents [kMaxMidiEvents]
NativeTimeInfo fTimeInfo
QMutex fMutex
uint8_t m_paramGroupCount
std::vector< CarlaParamFloatModel * > m_paramModels
QDomElement m_settingsElem
QCompleter * m_paramsCompleter
QStringListModel * m_completerModel

Friends

class gui::CarlaInstrumentView
class gui::CarlaParamsView

Additional Inherited Members

Public Types inherited from lmms::Instrument
enum class  Flag { NoFlags = 0x00 , IsSingleStreamed = 0x01 , IsMidiBased = 0x02 , IsNotBendable = 0x04 }
using Flags = lmms::Flags<Flag>
Public Types inherited from lmms::Plugin
enum class  Type {
  Instrument , Effect , ImportFilter , ExportFilter ,
  Tool , Library , Other , Undefined = 255
}
using DescriptorList = QList<Descriptor*>
Static Public Member Functions inherited from lmms::Instrument
static Instrument * instantiate (const QString &_plugin_name, InstrumentTrack *_instrument_track, const Plugin::Descriptor::SubPluginFeatures::Key *key, bool keyFromDnd=false)
Static Public Member Functions inherited from lmms::Plugin
static Plugin * instantiateWithKey (const QString &pluginName, Model *parent, const Descriptor::SubPluginFeatures::Key *key, bool keyFromDnd=false)
static Plugin * instantiate (const QString &pluginName, Model *parent, void *data)
Protected Member Functions inherited from lmms::Instrument
void applyFadeIn (SampleFrame *buf, NotePlayHandle *n)
void applyRelease (SampleFrame *buf, const NotePlayHandle *_n)
float computeReleaseTimeMsByFrameCount (f_cnt_t frames) const
Protected Member Functions inherited from lmms::Plugin
void collectErrorForUI (QString errMsg)
Protected Member Functions inherited from lmms::JournallingObject
void changeID (jo_id_t _id)

Constructor & Destructor Documentation

◆ CarlaInstrument()

lmms::CarlaInstrument::CarlaInstrument ( InstrumentTrack *const instrumentTrack,
const Descriptor *const descriptor,
const bool isPatchbay )

◆ ~CarlaInstrument()

lmms::CarlaInstrument::~CarlaInstrument ( )
override

Member Function Documentation

◆ clearParamModels

void lmms::CarlaInstrument::clearParamModels ( )
privateslot

◆ handleDispatcher()

intptr_t lmms::CarlaInstrument::handleDispatcher ( const NativeHostDispatcherOpcode opcode,
const int32_t index,
const intptr_t value,
void *const ptr,
const float opt )

◆ handleGetBufferSize()

uint32_t lmms::CarlaInstrument::handleGetBufferSize ( ) const

◆ handleGetSampleRate()

double lmms::CarlaInstrument::handleGetSampleRate ( ) const

◆ handleGetTimeInfo()

const NativeTimeInfo * lmms::CarlaInstrument::handleGetTimeInfo ( ) const

◆ handleIsOffline()

bool lmms::CarlaInstrument::handleIsOffline ( ) const

◆ handleMidiEvent()

bool lmms::CarlaInstrument::handleMidiEvent ( const MidiEvent & event,
const TimePos & time,
f_cnt_t offset )
overridevirtual

Reimplemented from lmms::Instrument.

◆ handleUiClosed()

void lmms::CarlaInstrument::handleUiClosed ( )

◆ handleUiParameterChanged()

void lmms::CarlaInstrument::handleUiParameterChanged ( const uint32_t index,
const float value ) const

◆ instantiateView()

gui::PluginView * lmms::CarlaInstrument::instantiateView ( QWidget * parent)
overridevirtual

Create a view for the model.

Implements lmms::Plugin.

◆ loadSettings()

void lmms::CarlaInstrument::loadSettings ( const QDomElement & elem)
overridevirtual

◆ nodeName()

QString lmms::CarlaInstrument::nodeName ( void ) const
overridevirtual

◆ paramModelChanged

void lmms::CarlaInstrument::paramModelChanged ( uint32_t index)
privateslot

◆ paramsUpdated

void lmms::CarlaInstrument::paramsUpdated ( )
signal

◆ play()

void lmms::CarlaInstrument::play ( SampleFrame * workingBuffer)
overridevirtual

Reimplemented from lmms::Instrument.

◆ refreshParams

void lmms::CarlaInstrument::refreshParams ( bool init = false)
privateslot

◆ sampleRateChanged

void lmms::CarlaInstrument::sampleRateChanged ( )
privateslot

◆ saveSettings()

void lmms::CarlaInstrument::saveSettings ( QDomDocument & doc,
QDomElement & parent )
overridevirtual

◆ uiClosed

void lmms::CarlaInstrument::uiClosed ( )
signal

◆ updateParamModel

void lmms::CarlaInstrument::updateParamModel ( uint32_t index)
privateslot

◆ gui::CarlaInstrumentView

friend class gui::CarlaInstrumentView
friend

◆ gui::CarlaParamsView

friend class gui::CarlaParamsView
friend

Member Data Documentation

◆ fDescriptor

const NativePluginDescriptor* lmms::CarlaInstrument::fDescriptor
private

◆ fHandle

NativePluginHandle lmms::CarlaInstrument::fHandle
private

◆ fHost

NativeHostDescriptor lmms::CarlaInstrument::fHost
private

◆ fMidiEventCount

uint32_t lmms::CarlaInstrument::fMidiEventCount
private

◆ fMidiEvents

NativeMidiEvent lmms::CarlaInstrument::fMidiEvents[kMaxMidiEvents]
private

◆ fMutex

QMutex lmms::CarlaInstrument::fMutex
private

◆ fTimeInfo

NativeTimeInfo lmms::CarlaInstrument::fTimeInfo
private

◆ kIsPatchbay

const bool lmms::CarlaInstrument::kIsPatchbay
private

◆ kMaxMidiEvents

const uint32_t lmms::CarlaInstrument::kMaxMidiEvents = 512
static

◆ m_completerModel

QStringListModel* lmms::CarlaInstrument::m_completerModel
private

◆ m_paramGroupCount

uint8_t lmms::CarlaInstrument::m_paramGroupCount
private

◆ m_paramModels

std::vector<CarlaParamFloatModel*> lmms::CarlaInstrument::m_paramModels
private

◆ m_paramsCompleter

QCompleter* lmms::CarlaInstrument::m_paramsCompleter
private

◆ m_settingsElem

QDomElement lmms::CarlaInstrument::m_settingsElem
private

The documentation for this class was generated from the following files: