#include "ardour/session.h"
#include "ardour/types.h"
+#include "canvas/canvas.h"
+#include "canvas/pixbuf.h"
+
#include "actions.h"
#include "ardour_ui.h"
#include "editing.h"
radio_reg_sens (zoom_actions, zoom_group, "zoom-focus-mouse", _("Zoom Focus Mouse"), sigc::bind (sigc::mem_fun(*this, &Editor::zoom_focus_chosen), Editing::ZoomFocusMouse));
radio_reg_sens (zoom_actions, zoom_group, "zoom-focus-edit", _("Zoom Focus Edit Point"), sigc::bind (sigc::mem_fun(*this, &Editor::zoom_focus_chosen), Editing::ZoomFocusEdit));
+ ActionManager::register_action (editor_actions, X_("cycle-zoom-focus"), _("Next Zoom Focus"), sigc::mem_fun (*this, &Editor::cycle_zoom_focus));
+
+
Glib::RefPtr<ActionGroup> mouse_mode_actions = ActionGroup::create (X_("MouseMode"));
RadioAction::Group mouse_mode_group;
+ act = ActionManager::register_toggle_action (mouse_mode_actions, "set-mouse-mode-object-range", _("Smart Object Mode"), sigc::mem_fun (*this, &Editor::mouse_mode_object_range_toggled));
+ smart_mode_action = Glib::RefPtr<ToggleAction>::cast_static (act);
+ smart_mode_button.set_related_action (smart_mode_action);
+ smart_mode_button.set_text (_("Smart"));
+ smart_mode_button.add_elements ( ArdourButton::FlatFace );
+ smart_mode_button.set_name ("mouse mode button");
+
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-object", _("Object Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseObject));
mouse_move_button.set_related_action (act);
mouse_move_button.set_image (::get_icon("tool_object"));
+ mouse_move_button.add_elements ( ArdourButton::FlatFace );
mouse_move_button.set_name ("mouse mode button");
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-range", _("Range Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseRange));
mouse_select_button.set_related_action (act);
mouse_select_button.set_image (::get_icon("tool_range"));
+ mouse_select_button.add_elements ( ArdourButton::FlatFace );
mouse_select_button.set_name ("mouse mode button");
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-draw", _("Note Drawing Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseDraw));
mouse_draw_button.set_related_action (act);
mouse_draw_button.set_image (::get_icon("midi_tool_pencil"));
+ mouse_draw_button.add_elements ( ArdourButton::FlatFace );
mouse_draw_button.set_name ("mouse mode button");
- act = ActionManager::register_toggle_action (mouse_mode_actions, "set-mouse-mode-object-range", _("Link Object / Range Tools"), sigc::mem_fun (*this, &Editor::mouse_mode_object_range_toggled));
- smart_mode_action = Glib::RefPtr<ToggleAction>::cast_static (act);
-
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-gain", _("Gain Tool"), sigc::bind (mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseGain));
mouse_gain_button.set_related_action (act);
mouse_gain_button.set_image (::get_icon("tool_gain"));
+ mouse_gain_button.add_elements ( ArdourButton::FlatFace );
mouse_gain_button.set_name ("mouse mode button");
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-zoom", _("Zoom Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseZoom));
mouse_zoom_button.set_related_action (act);
mouse_zoom_button.set_image (::get_icon("tool_zoom"));
+ mouse_zoom_button.add_elements ( ArdourButton::FlatFace );
mouse_zoom_button.set_name ("mouse mode button");
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-audition", _("Audition Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseAudition));
mouse_audition_button.set_related_action (act);
mouse_audition_button.set_image (::get_icon("tool_audition"));
+ mouse_audition_button.add_elements ( ArdourButton::FlatFace );
mouse_audition_button.set_name ("mouse mode button");
act = ActionManager::register_radio_action (mouse_mode_actions, mouse_mode_group, "set-mouse-mode-timefx", _("Time FX Tool"), sigc::bind (sigc::mem_fun(*this, &Editor::mouse_mode_toggled), Editing::MouseTimeFX));
mouse_timefx_button.set_related_action (act);
mouse_timefx_button.set_image (::get_icon("tool_stretch"));
+ mouse_timefx_button.add_elements ( ArdourButton::FlatFace );
mouse_timefx_button.set_name ("mouse mode button");
ActionManager::register_action (editor_actions, "step-mouse-mode", _("Step Mouse Mode"), sigc::bind (sigc::mem_fun(*this, &Editor::step_mouse_mode), true));
act = ActionManager::register_toggle_action (mouse_mode_actions, "toggle-internal-edit", _("Edit MIDI"), sigc::mem_fun(*this, &Editor::toggle_internal_editing));
internal_edit_button.set_related_action (act);
internal_edit_button.set_image (::get_icon("tool_note"));
+ internal_edit_button.add_elements ( ArdourButton::FlatFace );
internal_edit_button.set_name ("mouse mode button");
RadioAction::Group edit_point_group;
ruler_timecode_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (ruler_actions, X_("toggle-timecode-ruler"), _("Timecode"), sigc::bind (sigc::mem_fun(*this, &Editor::toggle_ruler_visibility), ruler_metric_timecode)));
ruler_minsec_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (ruler_actions, X_("toggle-minsec-ruler"), _("Min:Sec"), sigc::bind (sigc::mem_fun(*this, &Editor::toggle_ruler_visibility), ruler_metric_minsec)));
+ ActionManager::register_action (editor_menu_actions, X_("VideoMonitorMenu"), _("Video Monitor"));
+
+ ruler_video_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (ruler_actions, X_("toggle-video-ruler"), _("Video"), sigc::bind (sigc::mem_fun(*this, &Editor::toggle_ruler_visibility), ruler_video_timeline)));
+ xjadeo_proc_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("ToggleJadeo"), _("Video Monitor"), sigc::mem_fun (*this, &Editor::set_xjadeo_proc)));
+
+ xjadeo_ontop_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-ontop"), _("Always on Top"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 1)));
+ xjadeo_timecode_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-timecode"), _("Timecode"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 2)));
+ xjadeo_frame_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-frame"), _("Frame number"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 3)));
+ xjadeo_osdbg_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-osdbg"), _("Timecode Background"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 4)));
+ xjadeo_fullscreen_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-fullscreen"), _("Fullscreen"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 5)));
+ xjadeo_letterbox_action = Glib::RefPtr<ToggleAction>::cast_static (ActionManager::register_toggle_action (editor_actions, X_("toggle-vmon-letterbox"), _("Letterbox"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 6)));
+ xjadeo_zoom_100 = reg_sens (editor_actions, "zoom-vmon-100", _("Original Size"), sigc::bind (sigc::mem_fun (*this, &Editor::set_xjadeo_viewoption), (int) 7));
+
/* set defaults here */
no_ruler_shown_update = true;
ruler_meter_action->set_active (true);
ruler_tempo_action->set_active (true);
ruler_marker_action->set_active (true);
- ruler_range_action->set_active (false);
+ ruler_range_action->set_active (true);
ruler_loop_punch_action->set_active (true);
ruler_loop_punch_action->set_active (true);
+
+ ruler_video_action->set_active (false);
+ xjadeo_proc_action->set_active (false);
+ xjadeo_proc_action->set_sensitive (false);
+ xjadeo_ontop_action->set_active (false);
+ xjadeo_ontop_action->set_sensitive (false);
+ xjadeo_timecode_action->set_active (false);
+ xjadeo_timecode_action->set_sensitive (false);
+ xjadeo_frame_action->set_active (false);
+ xjadeo_frame_action->set_sensitive (false);
+ xjadeo_osdbg_action->set_active (false);
+ xjadeo_osdbg_action->set_sensitive (false);
+ xjadeo_fullscreen_action->set_active (false);
+ xjadeo_fullscreen_action->set_sensitive (false);
+ xjadeo_letterbox_action->set_active (false);
+ xjadeo_letterbox_action->set_sensitive (false);
+ xjadeo_zoom_100->set_sensitive (false);
+
if (Profile->get_sae()) {
ruler_bbt_action->set_active (true);
ruler_cd_marker_action->set_active (false);
case ruler_time_cd_marker:
action = "toggle-cd-marker-ruler";
break;
+ case ruler_video_timeline:
+ action = "toggle-video-ruler";
+ break;
}
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Rulers"), action);
}
}
+void
+Editor::set_close_video_sensitive (bool onoff)
+{
+ Glib::RefPtr<Action> act = ActionManager::get_action (X_("Main"), X_("CloseVideo"));
+ if (act) {
+ act->set_sensitive (onoff);
+ }
+}
+
+void
+Editor::set_xjadeo_sensitive (bool onoff)
+{
+ xjadeo_proc_action->set_sensitive(onoff);
+}
+
+void
+Editor::toggle_xjadeo_proc (int state)
+{
+ switch(state) {
+ case 1:
+ xjadeo_proc_action->set_active(true);
+ break;
+ case 0:
+ xjadeo_proc_action->set_active(false);
+ break;
+ default:
+ xjadeo_proc_action->set_active(!xjadeo_proc_action->get_active());
+ break;
+ }
+ bool onoff = xjadeo_proc_action->get_active();
+ xjadeo_ontop_action->set_sensitive(onoff);
+ xjadeo_timecode_action->set_sensitive(onoff);
+ xjadeo_frame_action->set_sensitive(onoff);
+ xjadeo_osdbg_action->set_sensitive(onoff);
+ xjadeo_fullscreen_action->set_sensitive(onoff);
+ xjadeo_letterbox_action->set_sensitive(onoff);
+ xjadeo_zoom_100->set_sensitive(onoff);
+}
+
+void
+Editor::set_xjadeo_proc ()
+{
+ if (xjadeo_proc_action->get_active()) {
+ ARDOUR_UI::instance()->video_timeline->open_video_monitor();
+ } else {
+ ARDOUR_UI::instance()->video_timeline->close_video_monitor();
+ }
+}
+
+void
+Editor::toggle_xjadeo_viewoption (int what, int state)
+{
+ Glib::RefPtr<Gtk::ToggleAction> action;
+ switch (what) {
+ case 1:
+ action = xjadeo_ontop_action;
+ break;
+ case 2:
+ action = xjadeo_timecode_action;
+ break;
+ case 3:
+ action = xjadeo_frame_action;
+ break;
+ case 4:
+ action = xjadeo_osdbg_action;
+ break;
+ case 5:
+ action = xjadeo_fullscreen_action;
+ break;
+ case 6:
+ action = xjadeo_letterbox_action;
+ break;
+ case 7:
+ return;
+ default:
+ return;
+ }
+
+ switch(state) {
+ case 1:
+ action->set_active(true);
+ break;
+ case 0:
+ action->set_active(false);
+ break;
+ default:
+ action->set_active(!action->get_active());
+ break;
+ }
+}
+
+void
+Editor::set_xjadeo_viewoption (int what)
+{
+ Glib::RefPtr<Gtk::ToggleAction> action;
+ switch (what) {
+ case 1:
+ action = xjadeo_ontop_action;
+ break;
+ case 2:
+ action = xjadeo_timecode_action;
+ break;
+ case 3:
+ action = xjadeo_frame_action;
+ break;
+ case 4:
+ action = xjadeo_osdbg_action;
+ break;
+ case 5:
+ action = xjadeo_fullscreen_action;
+ break;
+ case 6:
+ action = xjadeo_letterbox_action;
+ break;
+ case 7:
+ ARDOUR_UI::instance()->video_timeline->control_video_monitor(what, 0);
+ return;
+ default:
+ return;
+ }
+ if (action->get_active()) {
+ ARDOUR_UI::instance()->video_timeline->control_video_monitor(what, 1);
+ } else {
+ ARDOUR_UI::instance()->video_timeline->control_video_monitor(what, 0);
+ }
+}
+
void
Editor::toggle_measure_visibility ()
{
{
switch (_snap_type) {
case Editing::SnapToCDFrame:
- set_snap_to (Editing::SnapToTimecodeFrame);
+ set_snap_to (Editing::SnapToRegionBoundary);
break;
case Editing::SnapToTimecodeFrame:
- set_snap_to (Editing::SnapToTimecodeSeconds);
+ set_snap_to (Editing::SnapToCDFrame);
break;
case Editing::SnapToTimecodeSeconds:
- set_snap_to (Editing::SnapToTimecodeMinutes);
+ set_snap_to (Editing::SnapToTimecodeFrame);
break;
case Editing::SnapToTimecodeMinutes:
- set_snap_to (Editing::SnapToSeconds);
+ set_snap_to (Editing::SnapToTimecodeSeconds);
break;
case Editing::SnapToSeconds:
- set_snap_to (Editing::SnapToMinutes);
+ set_snap_to (Editing::SnapToTimecodeMinutes);
break;
case Editing::SnapToMinutes:
- set_snap_to (Editing::SnapToBeatDiv128);
+ set_snap_to (Editing::SnapToSeconds);
break;
case Editing::SnapToBeatDiv128:
- set_snap_to (Editing::SnapToBeatDiv64);
+ set_snap_to (Editing::SnapToMinutes);
break;
case Editing::SnapToBeatDiv64:
- set_snap_to (Editing::SnapToBeatDiv32);
+ set_snap_to (Editing::SnapToBeatDiv128);
break;
case Editing::SnapToBeatDiv32:
- set_snap_to (Editing::SnapToBeatDiv28);
+ set_snap_to (Editing::SnapToBeatDiv64);
break;
case Editing::SnapToBeatDiv28:
- set_snap_to (Editing::SnapToBeatDiv24);
+ set_snap_to (Editing::SnapToBeatDiv32);
break;
case Editing::SnapToBeatDiv24:
- set_snap_to (Editing::SnapToBeatDiv20);
+ set_snap_to (Editing::SnapToBeatDiv28);
break;
case Editing::SnapToBeatDiv20:
- set_snap_to (Editing::SnapToBeatDiv16);
+ set_snap_to (Editing::SnapToBeatDiv24);
break;
case Editing::SnapToBeatDiv16:
- set_snap_to (Editing::SnapToBeatDiv14);
+ set_snap_to (Editing::SnapToBeatDiv20);
break;
case Editing::SnapToBeatDiv14:
- set_snap_to (Editing::SnapToBeatDiv12);
+ set_snap_to (Editing::SnapToBeatDiv16);
break;
case Editing::SnapToBeatDiv12:
- set_snap_to (Editing::SnapToBeatDiv10);
+ set_snap_to (Editing::SnapToBeatDiv14);
break;
case Editing::SnapToBeatDiv10:
- set_snap_to (Editing::SnapToBeatDiv8);
+ set_snap_to (Editing::SnapToBeatDiv12);
break;
case Editing::SnapToBeatDiv8:
- set_snap_to (Editing::SnapToBeatDiv7);
+ set_snap_to (Editing::SnapToBeatDiv10);
break;
case Editing::SnapToBeatDiv7:
- set_snap_to (Editing::SnapToBeatDiv6);
+ set_snap_to (Editing::SnapToBeatDiv8);
break;
case Editing::SnapToBeatDiv6:
- set_snap_to (Editing::SnapToBeatDiv5);
+ set_snap_to (Editing::SnapToBeatDiv7);
break;
case Editing::SnapToBeatDiv5:
- set_snap_to (Editing::SnapToBeatDiv4);
+ set_snap_to (Editing::SnapToBeatDiv6);
break;
case Editing::SnapToBeatDiv4:
- set_snap_to (Editing::SnapToBeatDiv3);
+ set_snap_to (Editing::SnapToBeatDiv5);
break;
case Editing::SnapToBeatDiv3:
- set_snap_to (Editing::SnapToBeatDiv2);
+ set_snap_to (Editing::SnapToBeatDiv4);
break;
case Editing::SnapToBeatDiv2:
- set_snap_to (Editing::SnapToBeat);
+ set_snap_to (Editing::SnapToBeatDiv3);
break;
case Editing::SnapToBeat:
- set_snap_to (Editing::SnapToBar);
+ set_snap_to (Editing::SnapToBeatDiv2);
break;
case Editing::SnapToBar:
- set_snap_to (Editing::SnapToMark);
+ set_snap_to (Editing::SnapToBeat);
break;
case Editing::SnapToMark:
- set_snap_to (Editing::SnapToRegionStart);
+ set_snap_to (Editing::SnapToBar);
break;
case Editing::SnapToRegionStart:
- set_snap_to (Editing::SnapToRegionEnd);
+ set_snap_to (Editing::SnapToMark);
break;
case Editing::SnapToRegionEnd:
- set_snap_to (Editing::SnapToRegionSync);
+ set_snap_to (Editing::SnapToRegionStart);
break;
case Editing::SnapToRegionSync:
- set_snap_to (Editing::SnapToRegionBoundary);
+ set_snap_to (Editing::SnapToRegionEnd);
break;
case Editing::SnapToRegionBoundary:
- set_snap_to (Editing::SnapToCDFrame);
+ set_snap_to (Editing::SnapToRegionSync);
break;
}
}
ENSURE_GUI_THREAD (*this, &Editor::parameter_changed, p)
if (p == "auto-loop") {
- update_loop_range_view (true);
+ update_loop_range_view ();
} else if (p == "punch-in") {
- update_punch_range_view (true);
+ update_punch_range_view ();
} else if (p == "punch-out") {
- update_punch_range_view (true);
+ update_punch_range_view ();
} else if (p == "timecode-format") {
update_just_timecode ();
} else if (p == "show-region-fades") {
update_region_fade_visibility ();
} else if (p == "edit-mode") {
edit_mode_selector.set_active_text (edit_mode_to_string (Config->get_edit_mode()));
- } else if (p == "subframes-per-frame") {
- update_just_timecode ();
} else if (p == "show-track-meters") {
toggle_meter_updating();
} else if (p == "show-summary") {
void
Editor::reset_focus ()
{
- track_canvas->grab_focus();
+ _track_canvas->grab_focus();
}
void
/* Toggle `locked' status of selected regions */
toggle_reg_sens (_region_actions, "toggle-region-lock", _("Lock"), sigc::mem_fun(*this, &Editor::toggle_region_lock));
+ toggle_reg_sens (_region_actions, "toggle-region-video-lock", _("Lock to Video"), sigc::mem_fun(*this, &Editor::toggle_region_video_lock));
+
toggle_reg_sens (
_region_actions,
"toggle-region-lock-style",