summaryrefslogtreecommitdiff
path: root/libs/ardour/butler.cc
AgeCommit message (Collapse)Author
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-09-18add new debug trace outputPaul Davis
2017-09-18comment out debug trace outputPaul Davis
2017-09-18fix logic bug in deciding if there is outstanding disk i/o work in butlerPaul Davis
2017-09-18comment out debug trace outputPaul Davis
2017-09-18add new debug trace outputPaul Davis
2017-09-18NOOP: remove line split for conditionalPaul Davis
2017-09-18change debug trace outputPaul Davis
2017-09-18random changes required to get an audio track created and transport functionalPaul Davis
2017-08-06Remove some debug outputRobin Gareus
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