rewrote wide parts of LVSL backend, see ChangeLog for details (stable backport)

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/branches/lmms/stable-0.4@1901 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2008-12-10 00:42:09 +00:00
parent 55f606bc07
commit 46fe11b395
4 changed files with 396 additions and 219 deletions

View File

@@ -1,3 +1,23 @@
2008-12-10 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
* plugins/vst_base/communication.h:
* plugins/vst_base/vst_plugin.cpp:
* plugins/vst_base/remote_vst_plugin.cpp:
rewrote wide parts of LVSL backend:
- now supports two threading models which makes LMMS support plugins
like Sytrus, z3ta+ etc.
- on win32 create native widget as parent for plugin's GUI, fixes
warning message when loading KarmaSynth (closes #2276787)
- try more symbol names for entry procedure
* include/aeffectx.h:
- made "int"s to "const int"s
- added CCONST macro
* include/remote_plugin.h:
* src/core/remote_plugin.cpp:
added support for debug messages from remote plugin
2008-12-08 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
* plugins/vst_base/vst_plugin.cpp:

View File

@@ -72,6 +72,7 @@ enum VstRemoteMessageIDs
IdVstPluginVersion,
IdVstPluginVendorString,
IdVstPluginProductString,
IdVstPluginUniqueID,
IdVstParameterCount,
IdVstParameterDump,
IdVstParameterProperties

File diff suppressed because it is too large Load Diff

View File

@@ -93,11 +93,11 @@ vstPlugin::vstPlugin( const QString & _plugin ) :
lock();
#ifdef LMMS_BUILD_WIN32
QWidget * helper = new QWidget;
QHBoxLayout * l = new QHBoxLayout( helper );
QWidget * target = new QWidget( helper );
QHBoxLayout * l = new QHBoxLayout;
l->setSpacing( 0 );
l->setMargin( 0 );
l->addWidget( target );
helper->setLayout( l );
static int k = 0;
const QString t = QString( "vst%1%2" ).arg( GetCurrentProcessId()<<10 ).
@@ -334,23 +334,9 @@ bool vstPlugin::processMessage( const message & _m )
break;
case IdVstPluginEditorGeometry:
{
const int w = _m.getInt( 0 );
const int h = _m.getInt( 1 );
m_pluginGeometry = QSize( w, h );
/* if( m_pluginWidget != NULL )
{
m_pluginWidget->setFixedSize(
m_pluginGeometry );
if( m_pluginWidget->childAt( 0, 0 ) != NULL )
{
m_pluginWidget->childAt( 0, 0
)->setFixedSize(
m_pluginGeometry );
}
}*/
m_pluginGeometry = QSize( _m.getInt( 0 ),
_m.getInt( 1 ) );
break;
}
case IdVstPluginName:
m_name = _m.getQString();
@@ -368,6 +354,11 @@ bool vstPlugin::processMessage( const message & _m )
m_productString = _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();