Due to optimizations in the graphics subsystem of Qt 4.5
songEditor::paintEvent() didn't get called regularly anymore and thus
the range of the horizontal scrollbar didn't get updated at all.
This commit makes the GUI track all changes related to the length of
the song.
The slot LocalResourcesProvider::reloadDirectory() contained various bugs
so it did not record changes in filesystem properly. This also fixes lots
of QFileSystemWatcher messages in console window when saving a new project
inside LMMS.
Updated 3rdparty libsamplerate to version 0.1.7 and bumped requirement
to system's libsamplerate to version 0.1.7.
Besides minor stuff, version 0.1.7 has one important fix:
* src/src_sinc.c
Fix a segfault which occurs when memcpy is passed a bad length parameter.
This bug has zero security implications beyond the ability to cause a
program hitting this bug to exit immediately with a segfault.
When doing FM/PM, the value of sub-oscillator is globally/locally added to
phase. However when doing this, a ratio between fixed default samplerate and
actual samplerate needs to be taken into account in the phase calculation.
This commit fixes missounding render output when rendering projects with
FM/PM inside at higher samplerates. (Thanks to Skiessi for his ladspa2.mmpz
which clearly brought up this bug)
Calling alignedMemClear() when getNextBuffer() returns 0 is superfluous and
causes crashes in some situations. Simply get out of the outer loop as soon
as quit==true.
This commit ensures that all defined data types in include/lmms_basics.h are
suffxed with "_t" to keep consistency as well as to fix issues on systems
with older STL/libstdc++.
check for nodeName being "connection" - do not try to load an instrument
called "connection" if one of the basic parameters of the InstrumentTrack
is automated
directory items and fixed usage of ResourcesItem::fullName() - makes
format of XML cache file more consistent and also speeds up string
comparisonswhen filtering
merged databases into its own database (and also keep them up to date).
Furthermore added code to properly destroy merged databases and their
providers in desctrutor.
scanning local directories and filling its ResourcesDB.
The ResourcesDB is responsible for writing local catalogue files. It
automatically loads back the appropriate catalogue file (depending on
the provider that operates on the ResourcesDB object) at initialization.
Will be useful for WebResourcesProvider as well to cache metadata of
online resources.
All you have to do now is to create an according ResourcesProvider which
will automatically setup a ResourcesDB that can be operated on by the
ResourcesTreeModel.
invalidating itself in instrumentTrack's m_notes array - fixes recording
with instruments that under certain circumstances call
notePlayHandle::noteOff() on their own (e.g. Kicker)
and hash-map) - avoids local copies of objects as well as accidently
overwritten ResourcesDB::Item's in hash-map, which resulted in
inconsistencies in tree and finally crashes in several situations, e.g
removal of previously existing objects (closes#2584125)