+void
+ARDOUR_UI::toggle_session_monitoring_in ()
+{
+ Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
+ if (!act) {
+ return;
+ }
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ if (!tact) {
+ return;
+ }
+
+ if (tact->get_active() && _session->config.get_session_monitoring () == MonitorInput) {
+ return;
+ }
+ if (!tact->get_active() && _session->config.get_session_monitoring () != MonitorInput) {
+ return;
+ }
+
+ if (tact->get_active()) {
+ _session->config.set_session_monitoring (MonitorInput);
+ } else {
+ _session->config.set_session_monitoring (MonitorAuto);
+ }
+}
+
+void
+ARDOUR_UI::toggle_session_monitoring_disk ()
+{
+ Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
+ if (!act) {
+ return;
+ }
+ Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
+ if (!tact) {
+ return;
+ }
+ if (tact->get_active() && _session->config.get_session_monitoring () == MonitorDisk) {
+ return;
+ }
+ if (!tact->get_active() && _session->config.get_session_monitoring () != MonitorDisk) {
+ return;
+ }
+
+ if (tact->get_active()) {
+ _session->config.set_session_monitoring (MonitorDisk);
+ } else {
+ _session->config.set_session_monitoring (MonitorAuto);
+ }
+}
+