summaryrefslogtreecommitdiff
path: root/libs/ardour/track.cc
AgeCommit message (Collapse)Author
2017-05-05libardour now has CoreSelection object to manage selection status of ↵Paul Davis
Stripables and AutomationControls
2017-05-05Fix converting v4 monitor state -- amend 8a6d30377Robin Gareus
It looks like MonitorControl::_monitoring is unused and should be removed. The actual value is Evoral::Control::_user_value
2017-05-04Convert old v4 Track monitoring session-state (untested)Robin Gareus
2017-04-19Use XMLNode::get/set_property API in ARDOUR::Track classTim Mayberry
2017-03-13Add track/bus rename safeguards to the backend (handy for scripting)Robin Gareus
2017-01-21don't repeat-hard-code names for 3 automation types.Paul Davis
Fixes warning during session loading
2017-01-19Add some commentRobin Gareus
2017-01-19Rework preroll-rec API:Robin Gareus
* rename: indicate that recording happens after preroll, punch-in * move API into libardour: rec+roll (no separate setup, seek, roll APIs)
2017-01-18Implement record with prerollRobin Gareus
2017-01-16Prepare session-wide implicit monitoring overridesRobin Gareus
2016-11-27NO-OP; Backport changes from Mixbus branchRobin Gareus
2016-07-19save/restore track monitoring, rec-enable and rec-safe statesPaul Davis
2016-07-14Make Route and Track ::silent_roll() also flush out ports buffersJulien "_FrnchFrgg_" RIVAUD
So that MIDI in the ports is really made silent.
2016-07-14Consolidate delivery buffer flushing of all route typesJulien "_FrnchFrgg_" RIVAUD
Route::no_roll(), Route::roll(), Track::no_roll(), AudioTrack::roll() and MidiTrack::roll() all had the exact same loop for flushing buffers of their Delivery processors. That was a lot of replicated code that had to be kept synchronised by hand. Put that code into a protected method Route::flush_processor_buffers_locked() which is called instead.
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-05-31use new record safe control in libardourPaul Davis
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
2016-05-31remove explicit setting of Toggle flag for AutomationControlsPaul Davis
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
2016-05-31add track controls to its Automatable selfPaul Davis
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
and used. The controls now own their own state, rather than proxy for state in their owners. Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31change API of Controllable::Changed signal to include (from_self, ↵Paul Davis
GroupControlDisposition) This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-24backend check for rec-safe (only allow to lock if not armed)Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-02-01clean up mess in Route/Track controllables caused by not understanding the ↵Paul Davis
significance of ParameterDescriptor
2016-01-31make Track::set_monitoring() use a GroupControlDisposition; expose an ↵Paul Davis
AutomationControl for track monitoring choice
2016-01-22first compiling, mostly working version of group controls changesPaul Davis
2016-01-02change Controllable::set_value() API to include grouped control consideration.Paul Davis
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls
2015-10-21Add AutomationControl::set_value_unchecked() and ↵Paul Davis
AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway.
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-06-29add the Tracks version of Track::monitoring_state()Paul Davis
This drastically-stripped down version of the Ardour original is used only when USE_TRACKS_CODE_FEATURES is defined. It doesn't respond to many aspects/features of libardour.
2015-06-16add Record-Safe feature to libardour (from Nikolay Polyanovskii)Paul Davis
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-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-10-15allow internal generators to make noise, even if we are not rolling, and ↵Ben Loftis
using auto-input
2014-10-10subtle changes to accomplish two goals (1) playhead should stop where the ↵Paul Davis
user pressed stopped (2) captured regions should end where the playhead ends
2014-06-26option to use track-number and take-name as part of file-nameRobin Gareus
2014-04-10redesign technique for naming/creating regions for MIDI clone (or other ↵Paul Davis
non-capture driven MIDI region creation operations). See comments in Session::new_midi_source_name() for details.
2013-08-09more purging of JACK as an explicit name from libardourPaul Davis
2013-08-03advance track's play-position even if processing is lockedRobin Gareus
fixes * http://tracker.ardour.org/view.php?id=5628 * http://tracker.ardour.org/view.php?id=5561
2013-07-30use dedicated buffers for route (and track)Robin Gareus
"scratch buffers are by definition scratch and their contents are undefined at all times" "silent buffers are by definition all-zero and should not be used for real data" But track & route were using those for actual data; plugins (which may run in the same thread and may get the same buffers) use them for scratch thereby overwriting real data. In particular get_silent_buffers() (used by LadspaPlugin::connect_and_run) clears the buffer which can holds real data: e.g. via Route::passthru_silence() -> plugin1 -> plugin2 (clears output of plugin1)
2013-07-28fix compiler warnings.Robin Gareus
2013-07-25reset meters only when *really* necessaryRobin Gareus
..and continue to calculate fall-off in audio-cycle (rather than UI thread) TODO: check if this works properly when switching between audio/midi meter modes on a midi-track. One of the motivations to always reset meters when the meter-point changes was to resolve peak-hold & fall-off issues when a midi-meter replaces an audio-meter and vice versa.
2013-07-16meter-state 17 and 49 + code-commentRobin Gareus
2013-07-16rework metering states 2, 6, 18 and 22Robin Gareus
2013-07-16revert functionality of f842e8af2 (meter display in DISK mode)Robin Gareus
2013-07-16yet another meter+monitoring detail:Robin Gareus
"explicit Monitor DISK" + "Transport Stop" + "not track rec-en" -> meter is always zero
2013-07-16fix metering states 34, 38, 49, 50, 53 and 54Robin Gareus
for state descriptions see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV3.pdf
2013-07-16zero meters for inactive tracksRobin Gareus