summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
AgeCommit message (Collapse)Author
2016-12-07Save/Restore MIDI Automation Controls (current CC, PGM)Robin Gareus
2016-11-25Do not try to restore Route solo state after clearing all solo statePaul Davis
2016-11-25provisional changes to speed up solo changes to large numbers of routes.Paul Davis
Moves global update of solo state and emission of Session::SoloChanged to a single point after 1 to N solo controls are changed. Also avoid unnecessarily emitted Activated() signal for listen controls, though Process::{activate,deactive}() should probably be redesigned to avoid this in a "deeper" way
2016-11-13Mac VST-2.x supportRobin Gareus
2016-10-10Allow to get a route reference from SessionObject*Robin Gareus
The motivation is to allow a Processor (here Lua) to get a pointer to the owning Route without resorting to iterative lookup.
2016-09-20Restore ARDOUR::MuteControl state, fixes bug #7025Tim Mayberry
This should be the final part of a fix for bug #7025, which means the id property of PBD::Controllable is restored and a new id is not generated at first save. I'm assuming this was a typo, comparing with the wrong name meant the state of the MuteControl was never being restored. This also fixes restoring bindings associated MuteControl instances.
2016-08-24Take process-lock before processor-lockRobin Gareus
This [hopefully] fixes jack1 zombification on session-load with large plugin-states. Previously it was possible to block Route::process_output_buffers().
2016-08-19fix Aux-Send Panner LinkingRobin Gareus
2016-08-10fix crash when copy'ing latent plugins5.0Robin Gareus
2016-07-26add Sidechain change handler for automatically added initial SC portsRobin Gareus
2016-07-20MuteMaster should (a) use a Muteable's own ::muted_by_others_soloing() (b) ↵Paul Davis
not try to use its own _solo_ignore to track Muteable::can_solo() or solo isolate state
2016-07-20ensure that Route::_phase_control has its state restored, and also ↵Paul Davis
re-arrange Route::set_state() to avoid duplicated control set_state() calls
2016-07-20Make bus's trim control also affect sends to the busJulien "_FrnchFrgg_" RIVAUD
The trim processor was moved to the front after the internal return was, so the trim setting was applied before the signal coming from other tracks/busses sends was mixed in. Change the order so that trim applies to audio from internal sends as well.
2016-07-16add a note to selfRobin Gareus
2016-07-16allow inserts to connect it itself - #6924Robin Gareus
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-14Also flush buffers of the inner delivery of insertsJulien "_FrnchFrgg_" RIVAUD
When flushing the buffers of Delivery processors owned by a Route/Track, inner deliveries of PortInsert processors were missed since PortInsert is not a Delivery subclass, but rather owns a Delivery as a private member. Expose a flush_buffers() for PortInsert and call it too. This is correct since (external) Send is a Delivery subclass, so that just makes the send part of inserts behave as external sends do.
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-07-10align stem-export (raw track outputs (with and w/p processing)Robin Gareus
2016-07-07Don't add audio outs to non-audio routes with strict I/OJulien "_FrnchFrgg_" RIVAUD
If a route has strict I/O then the main delivery follows the output of the last processor, but libardour ensures it has at least as many outputs as inputs in the master strip. A good consequence is that mono tracks get their expected panner. An akward side-effect is that MIDI-only routes (e.g. midi tracks or busses without a synth) get two audio channels that have no use (and indeed no panner is added because there is nothing to pan). Skip the completion of audio outs if there was no audio out to begin with.
2016-07-05update route/processor semanticsRobin Gareus
* active(): hard bypass: en/disable. When disabled, run() is not called. * enabled(): plugin run()s but may do nothing (or only be latent)
2016-07-04flush output buffers after processing - fixes midi-bus chainingRobin Gareus
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-06-16set latency of sidechain portRobin Gareus
2016-06-12ignore midi on monitor-section and force strict-i/oRobin Gareus
2016-06-08fix mute automation for busses & consolidate code.Robin Gareus
2016-06-05extensive changes to PresentationInfo APIPaul Davis
Now handles color, partially.
2016-06-02fix possible deadlock replacing processor state.Robin Gareus
2016-05-31update lua bindings for API changesRobin Gareus
luaBridge implicit inheritance uses a single direct parent (other parents object need casts). This motivates Route -> Stripable -> SessionObject
2016-05-31add generic ::slaved() method to RoutePaul Davis
2016-05-31missing initializationPaul Davis
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
2016-05-31rearrange inheritance so that Automatable IS-A SlavablePaul Davis
Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl
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-31save and restore vca assignmentsPaul Davis
2016-05-31add Slavable API for VCA assign/unassignPaul Davis
2016-05-31improve cleanup of VCA related objectsPaul Davis
2016-05-31remove Route::listening_via_monitor()Paul Davis
This is better tested with direct use of the solo_control and Config->get_solo_controls_are_listen_controls()
2016-05-31fix backend logic for PFL/AFL when masteredPaul Davis
2016-05-31move ever close to working master/slave logic, this time with audio testingPaul Davis
2016-05-31a variety of changes that get closer to correctly functioning behaviour for ↵Paul Davis
VCA solo+mute (BUT ARE NOT DONE YET)
2016-05-31a slew of as-yet incomplete work to get VCA solo+mute closer to workingPaul Davis
2016-05-31stop crash caused by missing conditionalPaul Davis
2016-05-31add back some amount of XML save/restore for route controlsPaul 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-31add implicit mute state to MuteMaster and use when a master of a mute ↵Paul Davis
control is enabled/disabled. Add AutomationControl::master_changed() as a virtual method to handle ... master value changes
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-31new API for route solo/mute state mgmtPaul Davis
Route now calls back into Session when solo/mute/listen state changes. All other interested parties must use the Route::{solo,mute,...}_control()->Changed() to be notified of changes. The Session requires more information than the Changed signal can provide, in order to propagate solo/mute changes across the entire Session correctly. Note that this uses an experimental use of CRTP to isolate a public API within Session
2016-05-31rearrange AutomationControl and RouteAutomationControl to get more shared ↵Paul Davis
logic and consistent master/slave behaviour