fix input metering:
if meter==input, meter depends on In/Disk
see also 29108187ed
This commit is contained in:
parent
9cb678ebcc
commit
9a25fcbfe1
@ -354,7 +354,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
|
||||
|
||||
fill_buffers_with_input (bufs, _input, nframes);
|
||||
|
||||
if (_meter_point == MeterInput) {
|
||||
if (_meter_point == MeterInput && (_monitoring & MonitorInput)) {
|
||||
_meter->run (bufs, start_frame, end_frame, nframes, true);
|
||||
}
|
||||
|
||||
|
@ -354,7 +354,7 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame
|
||||
|
||||
fill_buffers_with_input (bufs, _input, nframes);
|
||||
|
||||
if (_meter_point == MeterInput) {
|
||||
if (_meter_point == MeterInput && (_monitoring & MonitorInput)) {
|
||||
_meter->run (bufs, start_frame, end_frame, nframes, true);
|
||||
}
|
||||
|
||||
|
@ -945,6 +945,14 @@ Track::set_monitoring (MonitorChoice mc)
|
||||
MeterState
|
||||
Track::metering_state () const
|
||||
{
|
||||
return (_diskstream->record_enabled() || _meter_point == MeterInput) ? MeteringInput : MeteringRoute;
|
||||
bool rv;
|
||||
if (_session.transport_rolling ()) {
|
||||
// audio_track.cc || midi_track.cc roll() runs meter IFF:
|
||||
rv = _meter_point == MeterInput && (_monitoring & MonitorInput);
|
||||
} else {
|
||||
// track no_roll() always metering if
|
||||
rv = _meter_point == MeterInput;
|
||||
}
|
||||
return rv ? MeteringInput : MeteringRoute;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user