Updated FLTK to SVN revision 6970 of branch-1.3:
- Added Josef Vitu to CREDITS.
- Moved OS X code base to the more moder Cocoa toolkit thanks to the awesome work of Manolo Gouy (STR #2221). This is a big one! I tested all test applications under 32-bit autoconf and Xcode, and a few apps under 64bit intel. No PPC testing was done. Please verify this patch if you have the machine!
- Some fixes for the Cocoa port
- Xcode project was not building Cocoa code!
- Removed typedef that simply renamed char* to Fl_String, as discussed in the mailing list.
- Checked in SebHoll's API mods, fixed indents.
o Added user_data() to Fl_Tree_Item
o Added insert() and add() methods that allow specification of Fl_Tree_Prefs
o Changed Fl_Pixmap args to Fl_Image for more flexibility
o Fixes for positioning of items in the presence of user icons
o find_children() changed from protected -> public
- Small fixed to SebHoll's user_data() mods (init + copy ctor),
- Fumbeling about at the Cocoa implementation.
- Fix for Mac's "ALT" key symbol: saucepan right side up, pancake not on floor.
- Sorted Xcode source files (somewhat). Added Manolos patches to fix the Sys_Menu widget pointer.
- Patced antialised fonts for Cocoa builds
- Applied patch from dec 10th. It does not solve the problem that the About dialog drops behind the Sudoku window though...
- Applied the 'recap.zip' files to the Cocoa patch. About diaog now correct. Much other stuff should work better now. Exciting!
- New patches appliet for Cocoa port. Fixed(?) STR 2232 workaround for X11 keyrepeat bbbbuuuuuuggggg.
- Added Manolo Gouy to CREDITS for his great work on porting FLTK 1.3 on Mac OS X to Cocoa. (Also fixed some space/tab inconsistencies).
- Re-indented src/Fl_Input.cxx
- Trying to fix update rectangles and dnd in Cocoa. Currently, invalidating a rectangle does not work. This can be seen when dragging data within an application, for example.
-Separated the Presets into two classes to reduce the g++ warnings about
discarded arguments
-Note: looking at these classes, they need a bit more work to have them fit
one good abstraction
(cherry picked from commit 92c2a9016f1663d0ad48dac081f277baaed37701)
We have to lock Mixer when touching Song's state via Song::startExport()
and Song::stopExport() in ProjectRenderer::run() as the FIFO writer
thread may call Mixer::renderNextBuffer() (which calls Song::doActions())
simultaneously. Fixes a random segfault when exporting project.
This was a new bug as the ProjectRenderer does not operate FIFO-less
anymore.
* auto-save:
don't change the current project when auto-saving
auto-saves every minute and recovers upon crash
don't show WelcomeScreen when importing/loading
Conflicts:
src/gui/MainWindow.cpp
* fx-mixer-rework: (25 commits)
FxMixer: use new CPU::bufMixCoeff()
Cpu: added BufMixCoeff + SSE implementation
MixerWorkerThread: added job queue modes and improved class structure
MixerWorkerThread: exit outer loop in processJobQueue() if finished
Song: do not refresh FxMixerView when loading song in console mode
Mixer/FxMixer: separated MixerWorkerThread and ThreadableJob into files
Rough fix for freeze-up bug
Fixed the audio/visual screwups
NOT WORKING! Fx Mixer uses job threads
Mixer: rewrote/reorganized job queueing for worker threads
Fixed bug - Instruments had wrong channel models
Fixed a mixer bug regarding deleting channels
FxMixerView - Left and right to select channels
Fix FL Import with new mixer
Ability to save mixer sends to disk with the mmp
Channel selector has a max range of num channels
Ability to re-order mixer channels
Ability to delete mixer channels in the FX Mixer
Requested improvements to new FxMixerView$
Scrollbar for the fx mixer channels
...
There's no need to start the ProjectRenderer thread with high priority
anymore as the actual rendering is done on the other side of the FIFO.
The ProjectRenderer just waits for new data in the FIFO and encodes
them as they arrive.
Renamed the ProjectRenderer::OutputSettings structure to
ProjectRenderer::EncoderSettings to better reflect its meaning.
Additionally added some basic Doxygen comments.
Until now, Mixer not only was responsible for rendering audio buffers
but also managed writing them to audio backend (through a FIFO) and
handled various quality related parameters.
All this functionality has been moved into the new AudioOutputContext
class. It glues together AudioBackend (formerly called AudioDevice),
global quality settings and the Mixer.
The AudioOutputContext class creates a FifoWriter which calls
Mixer::renderNextBuffer() and writes the output into the BufferFifo of
the AudioOutputContext it belongs to. The BufferFifo is read by the
according AudioBackend which belongs to the AudioOutputContext as well.
The AudioOutputContext also handles resampling in case the AudioBackend
wants the buffers in a different samplerate.
During this rewrite the Mixer class and the according source files have
been renamed from "mixer" to "Mixer". This results in small changes
all over LMMS' code base.
Commit d61283ad93 (cherry picked from
official upstream) contained a type which makes compilation of ZASF
plugin fail. Fix this by using correct variable name.
Updated FLTK to SVN revision 6943 of branch-1.3:
- Adding Gerg's Fl_Table widget to FLTK 1.3 with kind permission. Documentation not yet added Support for both Visual Studio IDE's not yet added.
- Removed accidentaly added binary file (Note to self: the use of wild cards is a dangerous one ;-)
- Added doxygenified documentation for Fl_Table
- Added doxygenified documentation for Fl_Table_Row
- Added doxygenified documentation for Fl_Table_Row
- Added Fl_Tree source code, demo files, and documentation. Thanks, Greg!
- Removed unused members width_ and height_ from Fl_Scroll (STR #2289).
- Removed obsolete <P> tags from doxygen docs (Fl_Scroll.H), fixed some typos.
- Would not build on ubuntu 9.10 - bad file name (fl_ask.h) should be fl_ask.H fix 64 bit build
- Added const'nes too Fl_Counter::step()
- STR #2292: fixed issue typing a minus in Fl_Int_Input when all text is selected.
- Added missing svn properties and $Id$ tags.
This reverts commit c517f1fa5a.
The commit was not very helpful and introduced new xrun problems.
Instead I'll be rewriting the part of LMMS where Mixer, Mixer's
quality settings, Buffer FIFO and AudioDevice are sticked together.
There's really no need to allocate a buffer each period, push it to the
FifoBuffer and free it when fetching the buffer in
AudioDevice::getNextBuffer(). Instead keep the pointer in FifoBuffer's
pool and reuse it.
Try to adjust latency of PulseAudio according to our settings of mixer
so it does not have such a bad latency anymore.
Furthermore force PulseAudio to play silence instead of rewinding
streams in case of underruns.
There have been some problems with the threading logic in the
AudioPulseAudio backend resulting in an endless loop when quitting LMMS.
Furthermore allocated PulseAudio resources were not freed properly.
Thanks to Armin Kazmi <armin.kazmi@tu-dortmund.de> for pointing out
this issue.
Fix to VirKeyboard, so invalid keys do not get registered.
Based upon recommendation by zenon48 in:
http://www.kvraudio.com/forum/viewtopic.php?t=266432
(cherry picked from commit b9e7cb07bd00780967c68d17deab2190e18a604d)
every time auto-save ran, it would change the current project to
"recover.mmp". Now it doesn't do this because Song has
guiSaveProject(), guiSaveProjectAs(), and saveProjectFile().
(the latter is used for auto-save)
Changes in base directory were not tracked by filesystem watcher.
Explicitely add base directory to filesystem watcher and add a special
case to LocalResourceProvider::reloadDirectory().
When customizing background color of a widget via CSS, Qt somehow
falls back to ugly old windows style. This resulted in ugly looking
scrollbars in WelcomeScreen when working at a low screen resolution.
Therefore disable those scrollbars as they're rather useless anyways.
QListView automatically shows three dots for too wide text items.
auto-save time is not configurable yet. saves "recover.mmp" to
WORKING_DIR every 60 seconds. Deletes recover.mmp on successful
close of LMMS. If recover.mmp is found upon start, it loads that
project.
* calf-updates:
+ Deesser: use correct threshold
+ Equalizer: remove unused variables
+ Gain reduction module: clearer authorship information
+ Framework: placeholder for waveshaper class (need it to merge further changes from Markus)
* calf-updates:
New widget: Tube with light and falloff
New Deesser, some minor bugs in sc-comp
Sidechain compressor bugs/settings, 3 equalizer
Minor bugs, sidechain frequency display
New FX: Sidechain compressor
New button (big mama), VU-meters with falloff and hold, bug in delay (value)
In the middle of nowhere
Fully redesigned
Sidebars, GUI layouts, black buttons again, input knob for compressor
Added 6 new LED's and peak hold function for VU-meters
meter_gain in gain_reduction module with falloff