The former virtuals returned `const char*`, which lead to invalid reads when
`LadspaSubPluginFeatures` returned pointers to temporary `QByteArray::data`.
* Move m_key member of Effect into Plugin
* Pass key to Instrument ctors and instantiaters
* Add pluginKeys to all plugin selector widgets, and let them pass the keys
when instantiating the instruments; or, if the keys must be passed over
threads, pass the keys to the Engine using `Engine::setDndPluginKey()`
* As instrument plugin libraries now also need to get their key passed, their
second argument, which was always the same as the first, is now used to pass
the sub plugin keys. This affects *all* instrument plugins.
* Plugin.h: Add more virtuals to `SubPluginFeatures` in order to draw logos
and images into instrument selector widgets
* LadspaSubPluginFeatures: Implement the `displayName` virtual because the
new behaviour to resolve displayNames is to first look at the
SubPluginFeatures, which, without override, returns the superior plugin's
name (Plugin.cpp)
Additional:
* PluginFactory.h: Allow setting up search paths without discovering plugins
yet
* Plugin.h: Add full documentation (should be checked)
Switch back to `ENV{PKG_CONFIG}` to ensure that
FindPkgConfig doesn't overwrite `PKG_CONFIG_EXECUTABLE`.
Since CMake 3.3 supports the environment variable,
it's safe to use that.
Switches some signal-slot connections to Qt::DirectConnection.
Now LMMS can handle loop points correctly and export samples without glitches.
Also tweaks some Mixer-related code to avoid related deadlocks on export.
Resolves the incompatibility between FluidSynth 1.x and 2.x
due to some API changes by shimming some functions.
Note that 1.x and 2.x are not binary compatible.
Previously BBTrackContainerView::dropEvent always deleted
the TCOs of dropped tracks. It made dropped tracks unusable.
As of this commit, the function checks for correct TCOs.
If incorrect TCOs exist, the function remove them and add empty ones.
Due to the wrong condition for GUI handling, empty patterns longer than 1 bar
was treated as BB patterns though they don't really look like.
This commit drops the erroneous check and fixes related GUI issues.
* Save `AutomatableModel` nodename in attribute if it must be quoted
* Loading an `AutomatableModel` with name <name> now means it
- either <name> must be `QDomElement::nodeName()` (as before)
*and* must not have a `nodename` attribute (new)
- or must have a `nodename` attribute with value <name>
* Update the LMMS logo and mimetypes
* fix bmp for nsis installer
* Update window and About icons, rename icons, change the file association logic
* Fix NSIS
* Revert nsh patch
* Fix small icon
* Always write DefaultIcon in the registry
* Fix file permissions
* Fix nsis branding
* Fix nsis branding #2
* update the icon windows and linux
* Update apple icon, add windows visual manifest
* try to fix windows installation
* typo
* typo 2
* Set small logo to conform to 48x48 grid
Some plugins don't initialise it themselves, expecting it already to be
done for them, and so are liable to hang without it (e.g. TX16Wx).
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: Dominic Clark <mrdomclark@gmail.com>
Changed according to feedback from AudioBlast. The flag used to be set most of the time, now it is only set when playback starts/stops, looping is toggled, or playback jumps around.