diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-16 15:11:50 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-16 15:25:23 +0200 |
commit | 9a25fcbfe13f56665beb93a7f248f7ba8eeaa580 (patch) | |
tree | 831b45f35b37eb7b5db93c074d98f68439c5302d /libs/ardour/track.cc | |
parent | 9cb678ebcc2ca0c7993bdd182c9e6ad1f8adf09a (diff) |
fix input metering:
if meter==input, meter depends on In/Disk
see also 29108187ed
Diffstat (limited to 'libs/ardour/track.cc')
-rw-r--r-- | libs/ardour/track.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index 6d153e1cbf..b88cc0480a 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -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; } |