Adjust Mixer::getPeakValues so client do not have to allocate the
variables that will store the peak values.
Adjust both existing clients: FxMixer and VisualizationWidget.
* Give our threads names
It helps with debugging.
* Use Q_OBJECT macro to automatically name threads.
By default, QThread sets its name based on the Qt meta class. To get an
accurate metaclass, the class which inherits QThread must declare
Q_OBJECT in its header. Futhermore, Qt's MOC requires that a Qt type be
the primary base class when declaring Q_OBJECT, hence the order of
base classes has been rearranged for some classes.
Default project when cancelling project loading
If a user isn't aware that the loading of a project has been
cancelled, it may be in an incomplete state. Saving such a project
will overwrite the original file and result in data loss. This is
solved by loading the default project on cancelling project loading.
Add Mixer::clearNewPlayHandles() to prevent crash when cancelling
loading of a single streamed instrument.
* Support jack midi input
* If jack is used for audio then use the same connection for midi as well
* Remove old FreeBSD adjustment for portaudio as multiple version support has been dropped.
* Disable jack midi out port until it is functional
Removes some repeated calls to Qt's font layouting by using QStaticText
in FxLine and removing the overridden method ComboBox::sizeHint.
Unifies Mixer::peakValueLeft and Mixer::peakValueRight into
Mixer::getPeakValues so the array is only iterated once.
Put every access to m_playHandlesToRemove between lockPlayHandleRemoval() and
unlockPlayHandleRemoval(). Fixes#2610 where a SIGSEGV would occur due to
concurrent access.
This fixes a problem where a PresetPreviewPlayHandle would be put in
m_newPlayHandles to be added, then "removed" before it was actually added,
leaving it dangling.
This adds libsoundio (http://libsound.io/) as an available audio
backend. libsoundio supports JACK, PulseAudio, ALSA, CoreAudio,
WASAPI, and a dummy backend.
There is a new tool button that can be used to turn the metronome on and
off. Per default the metronome is turned off. When enabled the metronome
will during on song playback, pattern playback and BB playback. During
export it is ignored.
A new icon was added as well.
The state is currently stored in the Mixer. It might make sense to put
the metronome configuration in its own class in the future. The state is
currently not stored in the file but this might be a good choice for now
until a better place is found for the metronome data.
Also removed some repeated calls to Engine::getSong() and
Engine::fxMixer().