* Do not check if unsigned int is negative
* Reduce scope of some local variables
* Use right types for iterators
* Check conditional returns first
* Remove unused functions
* Utilize a range-based for loop opportunity
Add labeled controls for different types with a common base class
Implement a container for multiple equal groups of linked models and
suiting views. Such groups are suited for representing mono effects where each
Model occurs twice. A group provides Models for one mono processor and is
visually represented with a group box.
This concept is common for LADSPA and Lv2, and useful for any mono effect.
* advanced config: expose hidden constants to user screen
* advanced config: add support for FFT window overlapping
* waterfall: display at native resolution on high-DPI screens
* waterfall: add cursor and improve label density
* FFT: fix normalization so that 0 dBFS matches full-scale sinewave
* FFT: decouple data acquisition from processing and display
* FFT: separate lock for reallocation (to avoid some needless waiting)
* moved ranges and other constants to a separate file
* debug: better performance measurements
* minor fixes
* build the ringbuffer library as part of LMMS core
`PianoRoll::mouseDoubleClickEvent` wasn't forwarding the event to the base class when not acting on the event. The base class calls `mousePressEvent`.
Fixes#3005
Replaces the hard-coded library paths by a method based on CMake's
GetPrerequisites module which recursively finds a binary file's linked
libraries. Advantage: Potentially works on any system without adaption as
long as CMake supports it, so it could be used to create portable Linux
packages as well. Disadvantage: "Potentially".
Co-Authored-By: Hyunjin Song <tteu.ingog@gmail.com>
The VST automation window initially adds a subwindow with a null widget, so we have to check that w isn't nullptr before getting its size hint.
Fixes#5132.