LMMS now properly builds and runs with Qt5. Various deprecated functions
had to be replaced like QString::toAscii()/fromAscii(). Also occurences
of FALSE/TRUE have been replaced with false/true.
LmmsStyle now derives from QProxyStyle and sets a style instance as base
style (Plastique for Qt4, Fusion for Qt5).
MOC files are not included anymore but added as regular source files.
What's missing is support for embedding VST plugins into a subwindow
inside LMMS on Linux/X11 due to missing QX11EmbedContainer class in Qt5.
Build instructions can be found in INSTALL.Qt5
Minimum version requirement for Qt4 has been raised to 4.6.0 for best
API compatibility between Qt4 and Qt5.
Recent builds of MinGW64 runtime include the winpthreads library which
is not linked statically anymore and thus doesn't required non-portable
(de-)initialization function calls.
Newer versions of GCC seem to assume an array size of 0 for arrays whose
size is not specified explicitely. This causes a warning about an
out-of-bounds array access.
Also removed all blocks similar to
```
#if QT_VERSION >= 0x040806
filedialog.setOption( QFileDialog::DontUseCustomDirectoryIcons );
#endif
```
as this now takes place in the new subclass's constructor.
It seems 64bit builds for some reason have problems with VST Sync feature on,
workaround seems to be converting VST sync patch from double to floats,
which does work both with 32 and 64bit builds. Double precision
seems to produce odd numbers with 64bit build. (tested on VirtualBox Linux
Mint 14.1 64 bit OS)
(cherry picked from commit 011f87e6e60cccd16f3783e9c4885e03d95c1e56)
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
This patch should bring VST to host synchronization for LMMS.
(e.g. for plugins like dBlue Glitch, TAL Filters).
Synchronization is done via shared memory, missing song time
positions are reccalculated and added to PPQ position sync values
(SHM - common input interface for sync of all VST plugins)
Master channel keeps freezing, when VST effects are placed directly
into Master channels FxChain, on slower computers.
Provided solution prolongs VST initialisation phase, by waiting on two extra messages,
which usually follows initialisation and are possibly not yet implemented well.
IdSampleRateInformation,
IdBufferSizeInformation
This seems to prevent Master channel freezes e.g. on VST effects like Tiny-Q.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Various fixes improvements:
+ Added support for VST parameters control for windows.
+ New `Close` button for VST parameter controls.
+ Faster GUI for all instruments, effects-loading, not only VSTs,
and both one-instrument track window mode and normal window
mode should be supported.
+ Better integration for VST GUIs on Linux, e.g. plugin window
should not stay always on top of other windows.
+ VST GUI overlook should remain same with different wine setups
( except for whole virtual desktops emulations ).
+ VST effect control window merged with VST effect editor window
should be more easier to control.
+ Little corections at effectviews model updates of instrument
tracks effect chains.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>