punch_out_button.set_name ("punch button");
layered_button.set_name (("layered button"));
- monitor_in_button.set_name ("punch button"); // XXX
- monitor_disk_button.set_name ("punch button"); // XXX
+ monitor_in_button.set_name ("monitor button");
+ monitor_disk_button.set_name ("monitor button");
auto_input_button.set_name ("transport option button");
click_button.set_name ("transport button");
Gtkmm2ext::UI::instance()->set_tip (punch_in_button, _("Start recording at auto-punch start"));
Gtkmm2ext::UI::instance()->set_tip (punch_out_button, _("Stop recording at auto-punch end"));
- Gtkmm2ext::UI::instance()->set_tip (monitor_in_button, _("Force all implicit monitoed tracks to monitor input"));
- Gtkmm2ext::UI::instance()->set_tip (monitor_disk_button, _("Force all implicit monitored tracks to disk-monitoring"));
+ Gtkmm2ext::UI::instance()->set_tip (monitor_in_button, _("Force all implicitly monitoed tracks to monitor input"));
+ Gtkmm2ext::UI::instance()->set_tip (monitor_disk_button, _("Force all implicitly monitored tracks to disk-monitoring"));
/* setup icons */
void
ARDOUR_UI::toggle_session_monitoring_in ()
{
- if (ignore_session_monitoring) {
- return;
- }
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
if (!act) {
return;
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()) {
- Glib::RefPtr<Action> dact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
- if (dact) {
- Glib::RefPtr<ToggleAction> tdact = Glib::RefPtr<ToggleAction>::cast_dynamic(dact);
- if (tdact) {
- PBD::Unwinder<bool> (ignore_session_monitoring, true);
- tdact->set_active (false);
- }
- }
_session->config.set_session_monitoring (MonitorInput);
} else {
_session->config.set_session_monitoring (MonitorAuto);
void
ARDOUR_UI::toggle_session_monitoring_disk ()
{
- if (ignore_session_monitoring) {
- return;
- }
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Transport"), X_("SessionMonitorDisk"));
if (!act) {
return;
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()) {
- Glib::RefPtr<Action> iact = ActionManager::get_action (X_("Transport"), X_("SessionMonitorIn"));
- if (iact) {
- Glib::RefPtr<ToggleAction> tiact = Glib::RefPtr<ToggleAction>::cast_dynamic(iact);
- if (tiact) {
- PBD::Unwinder<bool> (ignore_session_monitoring, true);
- tiact->set_active (false);
- }
- }
_session->config.set_session_monitoring (MonitorDisk);
} else {
_session->config.set_session_monitoring (MonitorAuto);
switch (_session->config.get_session_monitoring ()) {
case MonitorDisk:
tdact->set_active (true);
+ tiact->set_active (false);
break;
case MonitorInput:
tiact->set_active (true);
+ tdact->set_active (false);
break;
default:
tdact->set_active (false);