13
0

fix input metering:

if meter==input, meter depends on In/Disk
see also 29108187ed
This commit is contained in:
Robin Gareus 2013-07-16 15:11:50 +02:00
parent 9cb678ebcc
commit 9a25fcbfe1
3 changed files with 11 additions and 3 deletions

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;
}