mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-20 21:56:30 +01:00
Route API to query all outputs (incl sends) and graph-feeds
This commit is contained in:
parent
45019517d7
commit
021a52cc75
2 changed files with 24 additions and 0 deletions
|
|
@ -91,6 +91,7 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
|
||||||
boost::shared_ptr<IO> input() const { return _input; }
|
boost::shared_ptr<IO> input() const { return _input; }
|
||||||
boost::shared_ptr<IO> output() const { return _output; }
|
boost::shared_ptr<IO> output() const { return _output; }
|
||||||
IOVector all_inputs () const;
|
IOVector all_inputs () const;
|
||||||
|
IOVector all_outputs () const;
|
||||||
|
|
||||||
ChanCount n_inputs() const { return _input->n_ports(); }
|
ChanCount n_inputs() const { return _input->n_ports(); }
|
||||||
ChanCount n_outputs() const { return _output->n_ports(); }
|
ChanCount n_outputs() const { return _output->n_ports(); }
|
||||||
|
|
@ -371,6 +372,8 @@ class LIBARDOUR_API Route : public SessionObject, public Automatable, public Rou
|
||||||
*/
|
*/
|
||||||
bool direct_feeds_according_to_graph (boost::shared_ptr<Route>, bool* via_send_only = 0);
|
bool direct_feeds_according_to_graph (boost::shared_ptr<Route>, bool* via_send_only = 0);
|
||||||
|
|
||||||
|
bool feeds_according_to_graph (boost::shared_ptr<Route>);
|
||||||
|
|
||||||
struct FeedRecord {
|
struct FeedRecord {
|
||||||
boost::weak_ptr<Route> r;
|
boost::weak_ptr<Route> r;
|
||||||
bool sends_only;
|
bool sends_only;
|
||||||
|
|
|
||||||
|
|
@ -3628,6 +3628,21 @@ Route::all_inputs () const
|
||||||
return ios;
|
return ios;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IOVector
|
||||||
|
Route::all_outputs () const
|
||||||
|
{
|
||||||
|
IOVector ios;
|
||||||
|
// _output is included via Delivery
|
||||||
|
Glib::Threads::RWLock::ReaderLock lm (_processor_lock);
|
||||||
|
for (ProcessorList::const_iterator r = _processors.begin(); r != _processors.end(); ++r) {
|
||||||
|
boost::shared_ptr<IOProcessor> iop = boost::dynamic_pointer_cast<IOProcessor>(*r);
|
||||||
|
if (iop != 0 && iop->output()) {
|
||||||
|
ios.push_back (iop->output());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ios;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Route::direct_feeds_according_to_reality (boost::shared_ptr<Route> other, bool* via_send_only)
|
Route::direct_feeds_according_to_reality (boost::shared_ptr<Route> other, bool* via_send_only)
|
||||||
{
|
{
|
||||||
|
|
@ -3679,6 +3694,12 @@ Route::direct_feeds_according_to_graph (boost::shared_ptr<Route> other, bool* vi
|
||||||
return _session._current_route_graph.has (shared_from_this (), other, via_send_only);
|
return _session._current_route_graph.has (shared_from_this (), other, via_send_only);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
Route::feeds_according_to_graph (boost::shared_ptr<Route> other)
|
||||||
|
{
|
||||||
|
return _session._current_route_graph.feeds (shared_from_this (), other);
|
||||||
|
}
|
||||||
|
|
||||||
/** Called from the (non-realtime) butler thread when the transport is stopped */
|
/** Called from the (non-realtime) butler thread when the transport is stopped */
|
||||||
void
|
void
|
||||||
Route::nonrealtime_handle_transport_stopped (bool /*abort_ignored*/, bool /*did_locate*/, bool can_flush_processors)
|
Route::nonrealtime_handle_transport_stopped (bool /*abort_ignored*/, bool /*did_locate*/, bool can_flush_processors)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue