bool RemotePlugin::processMessage( const message & _m ) { lock(); message reply_message( _m.id ); bool reply = false; switch( _m.id ) { case IdUndefined: unlock(); return false; case IdInitDone: reply = true; break; case IdSampleRateInformation: reply = true; reply_message.addInt( Engine::mixer()->processingSampleRate() ); break; case IdBufferSizeInformation: reply = true; reply_message.addInt( Engine::mixer()->framesPerPeriod() ); break; case IdChangeInputCount: m_inputCount = _m.getInt( 0 ); resizeSharedProcessingMemory(); break; case IdChangeOutputCount: m_outputCount = _m.getInt( 0 ); resizeSharedProcessingMemory(); break; case IdChangeInputOutputCount: m_inputCount = _m.getInt( 0 ); m_outputCount = _m.getInt( 1 ); resizeSharedProcessingMemory(); break; case IdDebugMessage: fprintf( stderr, "RemotePlugin::DebugMessage: %s", _m.getString( 0 ).c_str() ); break; case IdProcessingDone: case IdQuit: default: break; } if( reply ) { sendMessage( reply_message ); } unlock(); return true; }
bool VstPlugin::processMessage( const message & _m ) { switch( _m.id ) { case IdVstPluginWindowID: m_pluginWindowID = _m.getInt(); if( m_embedMethod == "none" ) { #ifdef LMMS_BUILD_WIN32 // We're changing the owner, not the parent, // so this is legal despite MSDN's warning SetWindowLongPtr( (HWND)(intptr_t) m_pluginWindowID, GWLP_HWNDPARENT, (LONG_PTR) gui->mainWindow()->winId() ); #endif #ifdef LMMS_BUILD_LINUX XSetTransientForHint( QX11Info::display(), m_pluginWindowID, gui->mainWindow()->winId() ); #endif } break; case IdVstPluginEditorGeometry: m_pluginGeometry = QSize( _m.getInt( 0 ), _m.getInt( 1 ) ); break; case IdVstPluginName: m_name = _m.getQString(); break; case IdVstPluginVersion: m_version = _m.getInt(); break; case IdVstPluginVendorString: m_vendorString = _m.getQString(); break; case IdVstPluginProductString: m_productString = _m.getQString(); break; case IdVstCurrentProgram: m_currentProgram = _m.getInt(); break; case IdVstCurrentProgramName: m_currentProgramName = _m.getQString(); break; case IdVstProgramNames: m_allProgramNames = _m.getQString(); break; case IdVstPluginUniqueID: // TODO: display graphically in case of failure printf("unique ID: %s\n", _m.getString().c_str() ); break; case IdVstParameterDump: { m_parameterDump.clear(); const int num_params = _m.getInt(); int p = 0; for( int i = 0; i < num_params; ++i ) { VstParameterDumpItem item; item.index = _m.getInt( ++p ); item.shortLabel = _m.getString( ++p ); item.value = _m.getFloat( ++p ); m_parameterDump["param" + QString::number( item.index )] = QString::number( item.index ) + ":" + /*uncomented*/ /*QString( item.shortLabel )*/ QString::fromStdString(item.shortLabel) + ":" + QString::number( item.value ); } break; } default: return RemotePlugin::processMessage( _m ); } return true; }
bool VstPlugin::processMessage( const message & _m ) { switch( _m.id ) { case IdVstBadDllFormat: m_badDllFormat = true; break; case IdVstPluginWindowID: m_pluginWindowID = _m.getInt(); break; case IdVstPluginEditorGeometry: m_pluginGeometry = QSize( _m.getInt( 0 ), _m.getInt( 1 ) ); break; case IdVstPluginName: m_name = _m.getQString(); break; case IdVstPluginVersion: m_version = _m.getInt(); break; case IdVstPluginVendorString: m_vendorString = _m.getQString(); break; case IdVstPluginProductString: m_productString = _m.getQString(); break; case IdVstCurrentProgram: m_currentProgram = _m.getInt(); break; case IdVstCurrentProgramName: m_currentProgramName = _m.getQString(); break; case IdVstProgramNames: m_allProgramNames = _m.getQString(); break; case IdVstPluginUniqueID: // TODO: display graphically in case of failure printf("unique ID: %s\n", _m.getString().c_str() ); break; case IdVstParameterDump: { m_parameterDump.clear(); const int num_params = _m.getInt(); int p = 0; for( int i = 0; i < num_params; ++i ) { VstParameterDumpItem item; item.index = _m.getInt( ++p ); item.shortLabel = _m.getString( ++p ); item.value = _m.getFloat( ++p ); m_parameterDump["param" + QString::number( item.index )] = QString::number( item.index ) + ":" + /*uncomented*/ /*QString( item.shortLabel )*/ QString::fromStdString(item.shortLabel) + ":" + QString::number( item.value ); } break; } default: return RemotePlugin::processMessage( _m ); } return true; }