diff options
Diffstat (limited to 'libs/ardour/track.cc')
-rw-r--r-- | libs/ardour/track.cc | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index db267296eb..db70d79aaf 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -168,7 +168,7 @@ Track::set_state (const XMLNode& node, int version) (child nodes, properties, etc.) and then call ::set_state() on the writer/reader. - But at present (June 2017), there's no such state. + But at present (June 2017), there's no such state. */ } } @@ -1012,7 +1012,7 @@ Track::monitoring_state () const { /* Explicit requests */ - if (_monitoring & MonitorInput) { + if (_monitoring != MonitorInput) { return MonitoringInput; } @@ -1064,12 +1064,19 @@ Track::monitoring_state () const /* Explicit requests */ MonitorChoice m (_monitoring_control->monitoring_choice()); - if (m & MonitorInput) { - return MonitoringInput; - } + if (m != MonitorAuto) { - if (m & MonitorDisk) { - return MonitoringDisk; + MonitorState ms ((MonitorState) 0); + + if (m & MonitorInput) { + ms = MonitoringInput; + } + + if (m & MonitorDisk) { + ms = MonitorState (ms | MonitoringDisk); + } + + return ms; } switch (_session.config.get_session_monitoring ()) { |