Prepare session-wide implicit monitoring overrides
This commit is contained in:
parent
88b3aa926a
commit
88d797bd64
@ -36,6 +36,7 @@ CONFIG_VARIABLE (bool, auto_return, "auto-return", false)
|
||||
CONFIG_VARIABLE (bool, auto_input, "auto-input", true)
|
||||
CONFIG_VARIABLE (bool, punch_in, "punch-in", false)
|
||||
CONFIG_VARIABLE (bool, punch_out, "punch-out", false)
|
||||
CONFIG_VARIABLE (MonitorChoice, session_monitoring, "session-monitoring", MonitorAuto)
|
||||
CONFIG_VARIABLE (bool, layered_record_mode, "layered-record-mode", false)
|
||||
CONFIG_VARIABLE (uint32_t, subframes_per_frame, "subframes-per-frame", 100)
|
||||
CONFIG_VARIABLE (Timecode::TimecodeFormat, timecode_format, "timecode-format", Timecode::timecode_30)
|
||||
|
@ -721,6 +721,7 @@ std::istream& operator>>(std::istream& o, ARDOUR::AutoConnectOption& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::TracksAutoNamingRule& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::EditMode& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::MonitorModel& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::MonitorChoice& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::PFLPosition& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::AFLPosition& sf);
|
||||
std::istream& operator>>(std::istream& o, ARDOUR::ListenPosition& sf);
|
||||
@ -744,6 +745,7 @@ std::ostream& operator<<(std::ostream& o, const ARDOUR::AutoConnectOption& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::TracksAutoNamingRule& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::EditMode& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::MonitorModel& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::MonitorChoice& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::PFLPosition& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::AFLPosition& sf);
|
||||
std::ostream& operator<<(std::ostream& o, const ARDOUR::ListenPosition& sf);
|
||||
|
@ -833,6 +833,20 @@ std::ostream& operator<<(std::ostream& o, const TracksAutoNamingRule& var)
|
||||
return o << s;
|
||||
}
|
||||
|
||||
std::istream& operator>>(std::istream& o, MonitorChoice& var)
|
||||
{
|
||||
std::string s;
|
||||
o >> s;
|
||||
var = (MonitorChoice) string_2_enum (s, var);
|
||||
return o;
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& o, const MonitorChoice& var)
|
||||
{
|
||||
std::string s = enum_2_string (var);
|
||||
return o << s;
|
||||
}
|
||||
|
||||
std::istream& operator>>(std::istream& o, MonitorModel& var)
|
||||
{
|
||||
std::string s;
|
||||
|
@ -3907,11 +3907,13 @@ Session::config_changed (std::string p, bool ours)
|
||||
|
||||
} else if (p == "auto-loop") {
|
||||
|
||||
} else if (p == "session-monitoring") {
|
||||
|
||||
} else if (p == "auto-input") {
|
||||
|
||||
if (Config->get_monitoring_model() == HardwareMonitoring && transport_rolling()) {
|
||||
/* auto-input only makes a difference if we're rolling */
|
||||
set_track_monitor_input_status (!config.get_auto_input());
|
||||
set_track_monitor_input_status (!config.get_auto_input());
|
||||
}
|
||||
|
||||
} else if (p == "punch-in") {
|
||||
|
@ -929,6 +929,17 @@ Track::monitoring_state () const
|
||||
return MonitoringDisk;
|
||||
}
|
||||
|
||||
switch (_session.config.get_session_monitoring ()) {
|
||||
case MonitorDisk:
|
||||
return MonitoringDisk;
|
||||
break;
|
||||
case MonitorInput:
|
||||
return MonitoringInput;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* This is an implementation of the truth table in doc/monitor_modes.pdf;
|
||||
I don't think it's ever going to be too pretty too look at.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user