+void
+BasicUI::jump_by_seconds (double secs)
+{
+ samplepos_t current = session->transport_sample();
+ double s = (double) current / (double) session->nominal_sample_rate();
+
+ s+= secs;
+ if (s < 0) {
+ s = 0;
+ }
+ s = s * session->nominal_sample_rate();
+
+ session->request_locate ( floor(s) );
+}
+
+void
+BasicUI::jump_by_bars (double bars)
+{
+ TempoMap& tmap (session->tempo_map());
+ Timecode::BBT_Time bbt (tmap.bbt_at_sample (session->transport_sample()));
+
+ bars += bbt.bars;
+ if (bars < 0) {
+ bars = 0;
+ }
+
+ AnyTime any;
+ any.type = AnyTime::BBT;
+ any.bbt.bars = bars;
+
+ session->request_locate ( session->convert_to_samples (any) );
+}
+
+void
+BasicUI::toggle_monitor_mute ()
+{
+ if (session->monitor_out()) {
+ boost::shared_ptr<MonitorProcessor> mon = session->monitor_out()->monitor_control();
+ if (mon->cut_all ()) {
+ mon->set_cut_all (false);
+ } else {
+ mon->set_cut_all (true);
+ }
+ }
+}
+
+void
+BasicUI::toggle_monitor_dim ()
+{
+ if (session->monitor_out()) {
+ boost::shared_ptr<MonitorProcessor> mon = session->monitor_out()->monitor_control();
+ if (mon->dim_all ()) {
+ mon->set_dim_all (false);
+ } else {
+ mon->set_dim_all (true);
+ }
+ }
+}
+
+void
+BasicUI::toggle_monitor_mono ()
+{
+ if (session->monitor_out()) {
+ boost::shared_ptr<MonitorProcessor> mon = session->monitor_out()->monitor_control();
+ if (mon->mono()) {
+ mon->set_mono (false);
+ } else {
+ mon->set_mono (true);
+ }
+ }
+}
+
+void
+BasicUI::midi_panic ()
+{
+ session->midi_panic ();
+}
+
+void
+BasicUI::toggle_click ()
+{
+ bool state = !Config->get_clicking();
+ Config->set_clicking (state);
+}
+
+void
+BasicUI::toggle_roll ()
+{
+ if (session->transport_rolling()) {
+ transport_stop ();
+ } else {
+ transport_play (false);
+ }
+}
+
+void
+BasicUI::stop_forget ()
+{
+ session->request_stop (true, true);
+}
+
+void BasicUI::mark_in () { access_action("Common/start-range-from-playhead"); }
+void BasicUI::mark_out () { access_action("Common/finish-range-from-playhead"); }
+
+void BasicUI::set_punch_range () { access_action("Editor/set-punch-from-edit-range"); }
+void BasicUI::set_loop_range () { access_action("Editor/set-loop-from-edit-range"); }
+void BasicUI::set_session_range () { access_action("Editor/set-session-from-edit-range"); }
+
+void BasicUI::quick_snapshot_stay () { access_action("Main/QuickSnapshotStay"); }
+void BasicUI::quick_snapshot_switch () { access_action("Main/QuickSnapshotSwitch"); }
+
+void BasicUI::fit_1_track() { access_action("Editor/fit_1_track"); }
+void BasicUI::fit_2_tracks() { access_action("Editor/fit_2_tracks"); }
+void BasicUI::fit_4_tracks() { access_action("Editor/fit_4_tracks"); }
+void BasicUI::fit_8_tracks() { access_action("Editor/fit_8_tracks"); }
+void BasicUI::fit_16_tracks() { access_action("Editor/fit_16_tracks"); }
+void BasicUI::fit_32_tracks() { access_action("Editor/fit_32_tracks"); }
+void BasicUI::fit_all_tracks() { access_action("Editor/fit_all_tracks"); }
+
+void BasicUI::zoom_10_ms() { access_action("Editor/zoom_10_ms"); }
+void BasicUI::zoom_100_ms() { access_action("Editor/zoom_100_ms"); }
+void BasicUI::zoom_1_sec() { access_action("Editor/zoom_1_sec"); }
+void BasicUI::zoom_10_sec() { access_action("Editor/zoom_10_sec"); }
+void BasicUI::zoom_1_min() { access_action("Editor/zoom_1_min"); }
+void BasicUI::zoom_5_min() { access_action("Editor/zoom_5_min"); }
+void BasicUI::zoom_10_min() { access_action("Editor/zoom_10_min"); }
+void BasicUI::zoom_to_session() { access_action("Editor/zoom-to-session"); }
+void BasicUI::temporal_zoom_in() { access_action("Editor/temporal-zoom-in"); }
+void BasicUI::temporal_zoom_out() { access_action("Editor/temporal-zoom-out"); }
+
+void BasicUI::scroll_up_1_track() { access_action("Editor/step-tracks-up"); }
+void BasicUI::scroll_dn_1_track() { access_action("Editor/step-tracks-down"); }
+void BasicUI::scroll_up_1_page() { access_action("Editor/scroll-tracks-up"); }
+void BasicUI::scroll_dn_1_page() { access_action("Editor/scroll-tracks-down"); }
+
+