LMMS
Loading...
Searching...
No Matches
lmms::RemoteVstPlugin Class Reference
Inheritance diagram for lmms::RemoteVstPlugin:
lmms::RemotePluginClient lmms::RemotePluginBase

Classes

struct  SuspendPlugin
struct  Sync
 Host to plugin synchronisation data structure. More...

Public Member Functions

 RemoteVstPlugin (const char *socketPath)
virtual ~RemoteVstPlugin ()
virtual bool processMessage (const message &_m)
void init (const std::string &_plugin_file)
void initEditor ()
void showEditor ()
void hideEditor ()
void destroyEditor ()
virtual void process (const SampleFrame *_in, SampleFrame *_out)
virtual void processMidiEvent (const MidiEvent &event, const f_cnt_t offset)
virtual void updateSampleRate ()
virtual void updateBufferSize ()
void setResumed (bool resumed)
bool isResumed () const
bool isInitialized () const
void setBPM (const bpm_t _bpm)
int pluginVersion ()
const char * pluginName ()
const char * pluginVendorString ()
const char * pluginProductString ()
const char * programName ()
void getParameterDisplays ()
void getParameterLabels ()
void sendCurrentProgramName ()
void getParameterDump ()
void setParameterDump (const message &_m)
void saveChunkToFile (const std::string &_file)
void loadChunkFromFile (const std::string &_file, std::size_t _len)
void loadPresetFile (const std::string &_file)
void setProgram (int index)
void rotateProgram (int offset)
void getProgramNames ()
void savePreset (const std::string &_file)
virtual int inputCount () const
virtual int outputCount () const
int updateInOutCount ()
void lockShm ()
bool tryLockShm ()
void unlockShm ()
bool isShmValid ()
void setShmIsValid (bool valid)
bool isProcessing () const
void setProcessing (bool processing)
void queueMessage (const message &m)
bool shouldGiveIdle () const
void setShouldGiveIdle (bool shouldGiveIdle)
void idle ()
void processUIThreadMessages ()
Public Member Functions inherited from lmms::RemotePluginClient
 RemotePluginClient (const char *socketPath)
 ~RemotePluginClient () override
const VstSyncDatagetVstSyncData ()
sample_rate_t sampleRate () const
f_cnt_t bufferSize () const
void setInputCount (int _i)
void setOutputCount (int _i)
void setInputOutputCount (int i, int o)
void debugMessage (const std::string &_s)
Public Member Functions inherited from lmms::RemotePluginBase
 RemotePluginBase ()
virtual ~RemotePluginBase ()
int sendMessage (const message &_m)
message receiveMessage ()
bool isInvalid () const
message waitForMessage (const message &_m, bool _busy_waiting=false)
message fetchAndProcessNextMessage ()
int32_t readInt ()
void writeInt (const int32_t &_i)
std::string readString ()
void writeString (const std::string &_s)
bool messagesLeft ()
void fetchAndProcessAllMessages ()

Static Public Member Functions

static DWORD WINAPI processingThread (LPVOID _param)
static bool setupMessageWindow ()
static DWORD WINAPI guiEventLoop ()
static LRESULT CALLBACK wndProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Static Public Member Functions inherited from lmms::RemotePluginBase
static bool isMainThreadWaiting ()

Private Types

enum class  GuiThreadMessage { None , ProcessPluginMessage , GiveIdle , ClosePlugin }
using VstMidiEventList = std::vector<VstMidiEvent>

Private Member Functions

bool load (const std::string &_plugin_file)
int pluginDispatch (int cmd, int param1=0, int param2=0, void *p=nullptr, float f=0)

Static Private Member Functions

static intptr_t VST_CALL_CONV hostCallback (AEffect *_effect, int32_t _opcode, int32_t _index, intptr_t _value, void *_ptr, float _opt)

Private Attributes

std::string m_shortName
HINSTANCE m_libInst
AEffectm_plugin
HWND m_window = nullptr
intptr_t m_windowID
int m_windowWidth
int m_windowHeight
bool m_initialized
bool m_resumed
bool m_processing
std::queue< messagem_messageList
bool m_shouldGiveIdle
float ** m_inputs
float ** m_outputs
std::mutex m_shmLock
bool m_shmValid
VstMidiEventList m_midiEvents
bpm_t m_bpm
double m_currentSamplePos
int m_currentProgram
Sync m_sync

Additional Inherited Members

Protected Member Functions inherited from lmms::RemotePluginBase
void invalidate ()
Protected Attributes inherited from lmms::RemotePluginBase
int m_socket

Member Typedef Documentation

◆ VstMidiEventList

Member Enumeration Documentation

◆ GuiThreadMessage

enum class lmms::RemoteVstPlugin::GuiThreadMessage
strongprivate
Enumerator
None 
ProcessPluginMessage 
GiveIdle 
ClosePlugin 

Constructor & Destructor Documentation

◆ RemoteVstPlugin()

lmms::RemoteVstPlugin::RemoteVstPlugin ( const char * socketPath)

◆ ~RemoteVstPlugin()

lmms::RemoteVstPlugin::~RemoteVstPlugin ( )
virtual

Member Function Documentation

◆ destroyEditor()

void lmms::RemoteVstPlugin::destroyEditor ( )

◆ getParameterDisplays()

void lmms::RemoteVstPlugin::getParameterDisplays ( )

◆ getParameterDump()

void lmms::RemoteVstPlugin::getParameterDump ( )

◆ getParameterLabels()

void lmms::RemoteVstPlugin::getParameterLabels ( )

◆ getProgramNames()

void lmms::RemoteVstPlugin::getProgramNames ( )

◆ guiEventLoop()

DWORD WINAPI lmms::RemoteVstPlugin::guiEventLoop ( )
static

◆ hideEditor()

void lmms::RemoteVstPlugin::hideEditor ( )

◆ hostCallback()

intptr_t lmms::RemoteVstPlugin::hostCallback ( AEffect * _effect,
int32_t _opcode,
int32_t _index,
intptr_t _value,
void * _ptr,
float _opt )
staticprivate

◆ idle()

void lmms::RemoteVstPlugin::idle ( )

◆ init()

void lmms::RemoteVstPlugin::init ( const std::string & _plugin_file)

◆ initEditor()

void lmms::RemoteVstPlugin::initEditor ( )

◆ inputCount()

virtual int lmms::RemoteVstPlugin::inputCount ( ) const
inlinevirtual

Reimplemented from lmms::RemotePluginClient.

◆ isInitialized()

bool lmms::RemoteVstPlugin::isInitialized ( ) const
inline

◆ isProcessing()

bool lmms::RemoteVstPlugin::isProcessing ( ) const
inline

◆ isResumed()

bool lmms::RemoteVstPlugin::isResumed ( ) const
inline

◆ isShmValid()

bool lmms::RemoteVstPlugin::isShmValid ( )
inline

◆ load()

bool lmms::RemoteVstPlugin::load ( const std::string & _plugin_file)
private

◆ loadChunkFromFile()

void lmms::RemoteVstPlugin::loadChunkFromFile ( const std::string & _file,
std::size_t _len )

◆ loadPresetFile()

void lmms::RemoteVstPlugin::loadPresetFile ( const std::string & _file)

◆ lockShm()

void lmms::RemoteVstPlugin::lockShm ( )
inline

◆ outputCount()

virtual int lmms::RemoteVstPlugin::outputCount ( ) const
inlinevirtual

Reimplemented from lmms::RemotePluginClient.

◆ pluginDispatch()

int lmms::RemoteVstPlugin::pluginDispatch ( int cmd,
int param1 = 0,
int param2 = 0,
void * p = nullptr,
float f = 0 )
inlineprivate

◆ pluginName()

const char * lmms::RemoteVstPlugin::pluginName ( )

◆ pluginProductString()

const char * lmms::RemoteVstPlugin::pluginProductString ( )

◆ pluginVendorString()

const char * lmms::RemoteVstPlugin::pluginVendorString ( )

◆ pluginVersion()

int lmms::RemoteVstPlugin::pluginVersion ( )
inline

◆ process()

void lmms::RemoteVstPlugin::process ( const SampleFrame * _in,
SampleFrame * _out )
virtual

◆ processingThread()

DWORD WINAPI lmms::RemoteVstPlugin::processingThread ( LPVOID _param)
static

◆ processMessage()

bool lmms::RemoteVstPlugin::processMessage ( const message & _m)
virtual

Reimplemented from lmms::RemotePluginClient.

◆ processMidiEvent()

void lmms::RemoteVstPlugin::processMidiEvent ( const MidiEvent & event,
const f_cnt_t offset )
virtual

Reimplemented from lmms::RemotePluginClient.

◆ processUIThreadMessages()

void lmms::RemoteVstPlugin::processUIThreadMessages ( )

◆ programName()

const char * lmms::RemoteVstPlugin::programName ( )

◆ queueMessage()

void lmms::RemoteVstPlugin::queueMessage ( const message & m)
inline

◆ rotateProgram()

void lmms::RemoteVstPlugin::rotateProgram ( int offset)

◆ saveChunkToFile()

void lmms::RemoteVstPlugin::saveChunkToFile ( const std::string & _file)

◆ savePreset()

void lmms::RemoteVstPlugin::savePreset ( const std::string & _file)

◆ sendCurrentProgramName()

void lmms::RemoteVstPlugin::sendCurrentProgramName ( )

◆ setBPM()

void lmms::RemoteVstPlugin::setBPM ( const bpm_t _bpm)
inline

◆ setParameterDump()

void lmms::RemoteVstPlugin::setParameterDump ( const message & _m)

◆ setProcessing()

void lmms::RemoteVstPlugin::setProcessing ( bool processing)
inline

◆ setProgram()

void lmms::RemoteVstPlugin::setProgram ( int index)

◆ setResumed()

void lmms::RemoteVstPlugin::setResumed ( bool resumed)
inline

◆ setShmIsValid()

void lmms::RemoteVstPlugin::setShmIsValid ( bool valid)
inline

◆ setShouldGiveIdle()

void lmms::RemoteVstPlugin::setShouldGiveIdle ( bool shouldGiveIdle)
inline

◆ setupMessageWindow()

bool lmms::RemoteVstPlugin::setupMessageWindow ( )
static

◆ shouldGiveIdle()

bool lmms::RemoteVstPlugin::shouldGiveIdle ( ) const
inline

◆ showEditor()

void lmms::RemoteVstPlugin::showEditor ( )

◆ tryLockShm()

bool lmms::RemoteVstPlugin::tryLockShm ( )
inline

◆ unlockShm()

void lmms::RemoteVstPlugin::unlockShm ( )
inline

◆ updateBufferSize()

virtual void lmms::RemoteVstPlugin::updateBufferSize ( )
inlinevirtual

Reimplemented from lmms::RemotePluginClient.

◆ updateInOutCount()

int lmms::RemoteVstPlugin::updateInOutCount ( )

◆ updateSampleRate()

virtual void lmms::RemoteVstPlugin::updateSampleRate ( )
inlinevirtual

Reimplemented from lmms::RemotePluginClient.

◆ wndProc()

LRESULT CALLBACK lmms::RemoteVstPlugin::wndProc ( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam )
static

Member Data Documentation

◆ m_bpm

bpm_t lmms::RemoteVstPlugin::m_bpm
private

◆ m_currentProgram

int lmms::RemoteVstPlugin::m_currentProgram
private

◆ m_currentSamplePos

double lmms::RemoteVstPlugin::m_currentSamplePos
private

◆ m_initialized

bool lmms::RemoteVstPlugin::m_initialized
private

◆ m_inputs

float* * lmms::RemoteVstPlugin::m_inputs
private

◆ m_libInst

HINSTANCE lmms::RemoteVstPlugin::m_libInst
private

◆ m_messageList

std::queue<message> lmms::RemoteVstPlugin::m_messageList
private

◆ m_midiEvents

VstMidiEventList lmms::RemoteVstPlugin::m_midiEvents
private

◆ m_outputs

float* * lmms::RemoteVstPlugin::m_outputs
private

◆ m_plugin

AEffect* lmms::RemoteVstPlugin::m_plugin
private

◆ m_processing

bool lmms::RemoteVstPlugin::m_processing
private

◆ m_resumed

bool lmms::RemoteVstPlugin::m_resumed
private

◆ m_shmLock

std::mutex lmms::RemoteVstPlugin::m_shmLock
private

◆ m_shmValid

bool lmms::RemoteVstPlugin::m_shmValid
private

◆ m_shortName

std::string lmms::RemoteVstPlugin::m_shortName
private

◆ m_shouldGiveIdle

bool lmms::RemoteVstPlugin::m_shouldGiveIdle
private

◆ m_sync

Sync lmms::RemoteVstPlugin::m_sync
private

◆ m_window

HWND lmms::RemoteVstPlugin::m_window = nullptr
private

◆ m_windowHeight

int lmms::RemoteVstPlugin::m_windowHeight
private

◆ m_windowID

intptr_t lmms::RemoteVstPlugin::m_windowID
private

◆ m_windowWidth

int lmms::RemoteVstPlugin::m_windowWidth
private

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