Make download of sound files multi-threaded. Each sound file download takes
place in its own thread, and has its own progress bar and cancel button,
which stack up from the bottom of the list of results.
Sound files download into a file with a '.part' suffix, which is then
renamed to the intended name on success.
Add a 'Similar' button, which searches Freesound for sounds similar to the
currently-selected sound in the results list.
Use the new freesound-download-dir config variable to decide the location
of sound files downloaded from Freesound.
Move the Windows-specific logic to replace '/'s with '\'s from
Mootcher::changeWorkingDir() to Mootcher::ensureWorkingDir(), and remove
the now unused Mootcher::changeWorkingDir().
Use Glib::build_filename to construct the path.
Separate out the handling of left/right scroll events from normal up/down
ones in the editor summary pane scroll wheel handling, and use the new
constants for scroll wheel keyboard modifiers in conjunction with up/down
scroll events. Modifiers for left/right scroll events should be unaffected
by this.
Add constants for the keyboard modifiers that should be used for vertical
zoom, horizontal zoom, and horizontal scrolling in the main editor window,
and use these where appropriate rather than using Keyboard::PrimaryModifier
and friends directly.
Rather than maintain a set of images in a cache, when we no longer have the required waveform data, create a new image that is appropriately centered and extends to roughly twice the screen width (or the limits of the region's source file(s), as necessary)
* average picture quality is worse
* ..but seeking works accurately
(no more PTS/DTS mess with Quicktime files)
* ffmpeg transcode to mpeg4 retains PTS, DTS ( to mjpeg does not)
* eventually harvid&xjadeo need to be
updated to seek to non-monotonic PTS, DTS timestamps
Replace AU_STATE_SUPPORT compile-time define with NO_PLUGIN_STATE and make it prevent plugin state setting, preset loading, preset saving and plugin state saving. Blocks on these actions exist partially in the backend and partially in the GUI (this latter class are not absolute, and should OSC or MIDI be able to drive Plugin::save_preset() the block could be circumvented). Set NO_PLUGIN_STATE if --freebie is used at waf-configure time