a) fixed pseudo-grab-retention in plugin UIs
b) inserts are properly silenced when route is muted git-svn-id: svn://localhost/trunk/ardour2@473 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
bb7b3ec1a6
commit
81c7452615
@ -75,6 +75,7 @@ class PortInsert : public Insert
|
||||
|
||||
void init ();
|
||||
void run (vector<Sample *>& bufs, uint32_t nbufs, jack_nframes_t nframes, jack_nframes_t offset);
|
||||
void silence (jack_nframes_t nframes, jack_nframes_t offset);
|
||||
|
||||
jack_nframes_t latency();
|
||||
|
||||
|
@ -876,6 +876,20 @@ PortInsert::~PortInsert ()
|
||||
GoingAway (this);
|
||||
}
|
||||
|
||||
void
|
||||
PortInsert::silence (jack_nframes_t nframes, jack_nframes_t offset)
|
||||
{
|
||||
/* io_lock, not taken: function must be called from Session::process() calltree */
|
||||
|
||||
/* this silences our outputs, but we need to silence our inputs as well */
|
||||
|
||||
for (vector<Port *>::iterator i = _outputs.begin(); i != _outputs.end(); ++i) {
|
||||
(*i)->silence (nframes, offset);
|
||||
}
|
||||
|
||||
// IO::silence (nframes, offset);
|
||||
}
|
||||
|
||||
void
|
||||
PortInsert::run (vector<Sample *>& bufs, uint32_t nbufs, jack_nframes_t nframes, jack_nframes_t offset)
|
||||
{
|
||||
@ -897,6 +911,7 @@ PortInsert::run (vector<Sample *>& bufs, uint32_t nbufs, jack_nframes_t nframes,
|
||||
|
||||
for (o = _outputs.begin(), n = 0; o != _outputs.end(); ++o, ++n) {
|
||||
memcpy ((*o)->get_buffer (nframes) + offset, bufs[min(nbufs,n)], sizeof (Sample) * nframes);
|
||||
(*o)->mark_silence (false);
|
||||
}
|
||||
|
||||
/* collect input */
|
||||
|
@ -168,6 +168,7 @@ BarController::button_release (GdkEventButton* ev)
|
||||
mouse_control (ev->x, ev->window, scale);
|
||||
}
|
||||
darea.remove_modal_grab();
|
||||
grabbed = false;
|
||||
StopGesture ();
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user