summaryrefslogtreecommitdiff
path: root/libs/ardour/butler.cc
AgeCommit message (Collapse)Author
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-30split Butler::flush_tracks_to_disk() into two distinct versions with clear ↵Paul Davis
names and make one of them private
2015-09-28get loop recording working when using seam-ed loopingPaul Davis
2015-08-22Fix auditioner underrun when seeking.Robin Gareus
prevents "disk too slow" message when seeking in the auditioner.
2015-06-29correct placement of buffering adjustments w.r.t Butler thread creationPaul Davis
2015-06-29[Summary] Moved session buffers adjustment during butler thread set up to ↵GZharun
the place we are ready to handle them.
2015-06-29[Summary] HOT FIX: Fixed crash which happens on an attempt to load a session ↵GZharun
with audio after preferences removal, when buffer preset is set to Medium. [Details] It happened because ARDOUR::Butler::thread_work() was called before Buttler::map_parameters() method was called, which sets up the correct buffering parameters (set_buffering_parameters () call) according to chosen preset. I've added this calls into Butler::start_thread () to make sure everything is set up and ready for use for Butler. This is a hot fix, because it requires the review from Paul Davis, and probably more gentle solution. But it's possible this commit may become the main solution itself.
2015-06-29fix timing of Butler mapping config parameters to avoid crash.Paul Davis
Amazing that this didn't show up on Linux at all, or on the first run after build. Computers ... sigh. Conflicts: libs/ardour/butler.cc
2015-06-29introduce the idea of buffering presets, along with 3 possible settings ↵Paul Davis
(plus custom). Actual numbers for the parameters are still to be determined/verified, and probably subject to some platform specificity
2015-03-05Add MIDI readahead to options editor.David Robillard
2015-03-02leave a ToDo note for the butler.Robin Gareus
2015-03-01use Xthreads in session butler.Robin Gareus
(hopefully) fixes export randomly stalling on windows: dequeue_request() was a single request (no queue) on Windows. Butler::queue_request() is called -> Butler goes to work.. -> while working, another request is queued -> butler never sees this -> deadlock during Freewheeling/Export wait_until_finished() waits for the 2nd request to be handled, and never returns.
2014-12-10add DEBUG_THREAD_SELF to allow use of DEBUG_TRACE with thread IDs on both ↵Paul Davis
normal pthreads platforms and PTW32
2014-12-09more DEBUG::Butler output, formatting corrections, and a warning on cerr if ↵Paul Davis
capture/playback buffers are too full/empty
2014-12-09add DEBUG::Butler and use itPaul Davis
2014-11-30Add missing namespace qualifiers.David Robillard
2014-11-14add abort() to non-reached codeRobin Gareus
This cleans up a lot of false-positives in static analysis and also helps compilers to optimize code paths in general. (tagging the fatal stingstream operator as ‘noreturn’ is far less trivial)
2014-05-01fix crash in butler when destroying before thread is startedPaul Davis
2014-01-17Merge branch 'master' into cairocanvasPaul Davis
2014-01-17fix typo in auditioner-seekRobin Gareus
2014-01-17add seeking to sfdb auditionerRobin Gareus
2013-08-24fix merge conflicts from masterPaul Davis
2013-08-24pot/po file updates caused by waf i18nPaul Davis
2013-08-15fix newly-appearing crash-at-close caused by muddled thinking in ↵Paul Davis
pbd/pthread_utils threads created with this code can now just return a value as they normally would, and the infrastructure will ensure cleanup. there is no longer any reason to call pthread_exit_pbd() and so that has been removed.
2013-08-04'libs/ardour' - Platform specific changes and includesJohn Emmas
2013-07-11Use PBD::GlibSemaphore in Butler to signal requests on windowsPaul Davis
2013-07-11Refactor the non-portable parts of Butler thread into new functionsPaul Davis
2013-07-11Move request pipe setup into separate functionPaul Davis
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16Fairly major change to the way in which crossfades are handled;Carl Hetherington
they are now done with region fades, rather than separate objects. After this commit, Ardour will try to convert your session files to the new crossfade format, but will make a backup in your session folder first. If you have works in progress using Ardour 3 it is ***STRONGLY RECOMMENDED*** that you back up session files before updating to this commit. git-svn-id: svn://localhost/ardour2/branches/3.0@11986 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-04Use Request::Pause rather than Request::Wait forCarl Hetherington
Butler::wait_until_finished. Otherwise the following bad thing happens: 1. The export code wants to call some Butler functions, so it calls calls Butler::wait_until_finished. 2. This (used to) write Request::Wake into the butler's request pipe. 3. Imagine that when this happens, the butler is already doing stuff. 4. Meanwhile, Butler::wait_until_finished is waiting on Butler::paused. 5. Some time later, the butler finishes its other stuff. 6. Then it signals "paused". 7. This causes Butler::wait_until_finished to return, so the export code thinks everything's ok and starts calling butler functions. 8. Then the butler sees the Request::Wake, wakes up, and by unhappy coincidence ends up calling read on the same diskstream that the export code has just called. This causes corruption of the Diskstream buffers, resulting in mantis #4283. Using Request::Pause instead means that the butler will still wake in step #8, but should_run will be false, so nothing much will happen and the export code will be unimpeded. For future reference, this bug was easiest to track down after adding a debugging mutex to AudioDiskstream and then try-locking it in AudioDiskstream::_do_refill; as far as I can see, _do_refill should never be called by two threads at the git-svn-id: svn://localhost/ardour2/branches/3.0@11163 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-24Fix awful thinko in previous commit.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10301 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-24Remove unused read/write data count code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10300 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-19more MIDI I/O debugging outputPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9901 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-02increase butler event pool size dramaticallyPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9047 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03Remove all use of nframes_t.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-05Forward port no-process-after-export fix from 2.X revs 7357 and 7361.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7368 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-29allow zero-length SMF files on disk again; fix some gcc 4.X optimization-on ↵Paul Davis
compile warnings git-svn-id: svn://localhost/ardour2/branches/3.0@7329 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-09dynamic playback & capture buffer resizing (though transport is stopped first)Paul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7250 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-09permit different sizes for audio playback & capture buffersPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7248 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-13Make butler handle auditioner again. Fixes #3128.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7100 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-21Move Diskstream ownership to Track, so that Session no longer holds lists of ↵Carl Hetherington
Diskstreams. Breaks 3.0 file format again. git-svn-id: svn://localhost/ardour2/branches/3.0@6945 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-14Prevent crash in pool destruction during session teardown.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@6905 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-14Suspend deletion of cross-thread pools until they are empty. Prevents ↵Carl Hetherington
crashes when the freeze thread completes. git-svn-id: svn://localhost/ardour2/branches/3.0@6893 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-04-06(3.0 version of 2.0-ongoing) fix 100% CPU usage after killing JACK caused by ↵Paul Davis
faulty logic in butler thread main loop git-svn-id: svn://localhost/ardour2/branches/3.0@6865 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-31stop metering thread as we disconnect a session from audioengine; explicitly ↵Paul Davis
drop connections early in ~Route so that we don't still have signals being handled while we destruct; fix up some valgrind warnings git-svn-id: svn://localhost/ardour2/branches/3.0@6425 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-25rationalize destruction pathway (some more); tidy-ify some ImageFrame codePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@6398 d708f5d6-7413-0410-9779-e7cbd77b26cf