mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-07 14:15:46 +01:00
make solo button2 click function as momentary even when in listen mode; tweak auditioner so that we know if its using the monitor bus
git-svn-id: svn://localhost/ardour2/branches/3.0@6795 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
02583c300f
commit
f1b0f30cd5
4 changed files with 14 additions and 5 deletions
|
|
@ -466,7 +466,11 @@ RouteUI::solo_release (GdkEventButton*)
|
|||
if (_solo_release->exclusive) {
|
||||
|
||||
} else {
|
||||
_session->set_solo (_solo_release->routes, _solo_release->active, Session::rt_cleanup, true);
|
||||
if (Config->get_solo_control_is_listen_control()) {
|
||||
_session->set_listen (_solo_release->routes, _solo_release->active, Session::rt_cleanup, true);
|
||||
} else {
|
||||
_session->set_solo (_solo_release->routes, _solo_release->active, Session::rt_cleanup, true);
|
||||
}
|
||||
}
|
||||
|
||||
delete _solo_release;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ class Auditioner : public AudioTrack
|
|||
}
|
||||
|
||||
bool auditioning() const { return g_atomic_int_get (&_auditioning); }
|
||||
bool needs_monitor() const { return via_monitor; }
|
||||
|
||||
private:
|
||||
boost::shared_ptr<AudioRegion> the_region;
|
||||
|
|
@ -60,6 +61,7 @@ class Auditioner : public AudioTrack
|
|||
mutable gint _auditioning;
|
||||
Glib::Mutex lock;
|
||||
nframes_t length;
|
||||
bool via_monitor;
|
||||
|
||||
void drop_ports ();
|
||||
static void *_drop_ports (void *);
|
||||
|
|
|
|||
|
|
@ -42,6 +42,10 @@ using namespace PBD;
|
|||
|
||||
Auditioner::Auditioner (Session& s)
|
||||
: AudioTrack (s, "auditioner", Route::Hidden)
|
||||
, current_frame (0)
|
||||
, _auditioning (0)
|
||||
, length (0)
|
||||
, via_monitor (false)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -58,6 +62,7 @@ Auditioner::init ()
|
|||
if (left == "default") {
|
||||
if (_session.monitor_out()) {
|
||||
left = _session.monitor_out()->input()->audio (0)->name();
|
||||
via_monitor = true;
|
||||
} else {
|
||||
left = _session.engine().get_nth_physical_output (DataType::AUDIO, 0);
|
||||
}
|
||||
|
|
@ -66,6 +71,7 @@ Auditioner::init ()
|
|||
if (right == "default") {
|
||||
if (_session.monitor_out()) {
|
||||
right = _session.monitor_out()->input()->audio (1)->name();
|
||||
via_monitor = true;
|
||||
} else {
|
||||
right = _session.engine().get_nth_physical_output (DataType::AUDIO, 1);
|
||||
}
|
||||
|
|
@ -91,9 +97,6 @@ Auditioner::init ()
|
|||
|
||||
_output->changed.connect_same_thread (*this, boost::bind (&Auditioner::output_changed, this, _1, _2));
|
||||
|
||||
the_region.reset ((AudioRegion*) 0);
|
||||
g_atomic_int_set (&_auditioning, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -880,7 +880,7 @@ Session::process_audition (nframes_t nframes)
|
|||
|
||||
/* if using a monitor section, run it because otherwise we don't hear anything */
|
||||
|
||||
if (_monitor_out) {
|
||||
if (auditioner->needs_monitor()) {
|
||||
_monitor_out->passthru (_transport_frame, _transport_frame + nframes, nframes, false);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue