diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-02-14 22:15:25 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-02-14 22:15:25 +0000 |
commit | ed62609e80d1300970ba4f05993e17069adf5c36 (patch) | |
tree | 6db651653e82bbf813b23af631d1c5cc3f39faa0 /gtk2_ardour | |
parent | 058715c525b6a238b17bfc75d47abaf7e6061e96 (diff) |
support a grid of beats/64 and beats/128
git-svn-id: svn://localhost/ardour2/branches/3.0@11490 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour.menus.in | 2 | ||||
-rw-r--r-- | gtk2_ardour/editing_syms.h | 2 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 20 | ||||
-rw-r--r-- | gtk2_ardour/editor_actions.cc | 36 | ||||
-rw-r--r-- | gtk2_ardour/editor_rulers.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/enums.cc | 2 |
6 files changed, 68 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index cc8236bf5b..8a730d8948 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -385,6 +385,8 @@ <menuitem action='snap-to-timecode-minutes'/> <menuitem action='snap-to-seconds'/> <menuitem action='snap-to-minutes'/> + <menuitem action='snap-to-onetwentyeighths'/> + <menuitem action='snap-to-sixtyfourths'/> <menuitem action='snap-to-thirtyseconds'/> <menuitem action='snap-to-twentyeighths'/> <menuitem action='snap-to-twentyfourths'/> diff --git a/gtk2_ardour/editing_syms.h b/gtk2_ardour/editing_syms.h index ed335259df..fdbdc66811 100644 --- a/gtk2_ardour/editing_syms.h +++ b/gtk2_ardour/editing_syms.h @@ -24,6 +24,8 @@ SNAPTYPE(SnapToTimecodeSeconds) SNAPTYPE(SnapToTimecodeMinutes) SNAPTYPE(SnapToSeconds) SNAPTYPE(SnapToMinutes) +SNAPTYPE(SnapToBeatDiv128) +SNAPTYPE(SnapToBeatDiv64) SNAPTYPE(SnapToBeatDiv32) SNAPTYPE(SnapToBeatDiv28) SNAPTYPE(SnapToBeatDiv24) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index b7ce74448c..ea8a34b6f4 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -151,6 +151,8 @@ static const gchar *_snap_type_strings[] = { N_("Timecode Minutes"), N_("Seconds"), N_("Minutes"), + N_("Beats/128"), + N_("Beats/64"), N_("Beats/32"), N_("Beats/28"), N_("Beats/24"), @@ -2068,6 +2070,8 @@ Editor::set_snap_to (SnapType st) instant_save (); switch (_snap_type) { + case SnapToBeatDiv128: + case SnapToBeatDiv64: case SnapToBeatDiv32: case SnapToBeatDiv28: case SnapToBeatDiv24: @@ -2655,6 +2659,12 @@ Editor::snap_to_internal (framepos_t& start, int32_t direction, bool for_mark) start = _session->tempo_map().round_to_beat (start, direction); break; + case SnapToBeatDiv128: + start = _session->tempo_map().round_to_beat_subdivision (start, 128, direction); + break; + case SnapToBeatDiv64: + start = _session->tempo_map().round_to_beat_subdivision (start, 64, direction); + break; case SnapToBeatDiv32: start = _session->tempo_map().round_to_beat_subdivision (start, 32, direction); break; @@ -3371,6 +3381,10 @@ Editor::snap_type_selection_done () snaptype = SnapToBeatDiv28; } else if (choice == _("Beats/32")) { snaptype = SnapToBeatDiv32; + } else if (choice == _("Beats/64")) { + snaptype = SnapToBeatDiv64; + } else if (choice == _("Beats/128")) { + snaptype = SnapToBeatDiv128; } else if (choice == _("Beats")) { snaptype = SnapToBeat; } else if (choice == _("Bars")) { @@ -3778,6 +3792,12 @@ Editor::get_grid_type_as_beats (bool& success, framepos_t position) return 1.0; break; + case SnapToBeatDiv128: + return 1.0/128.0; + break; + case SnapToBeatDiv64: + return 1.0/64.0; + break; case SnapToBeatDiv32: return 1.0/32.0; break; diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index be174148c3..2dde2b1977 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -488,6 +488,8 @@ Editor::register_actions () ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-seconds"), _("Snap to Seconds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToSeconds))); ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-minutes"), _("Snap to Minutes"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToMinutes))); + ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-onetwentyeighths"), _("Snap to One Twenty Eighths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv128))); + ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-sixtyfourths"), _("Snap to Sixty Fourths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv64))); ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-thirtyseconds"), _("Snap to Thirty Seconds"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv32))); ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-twentyeighths"), _("Snap to Twenty Eighths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv28))); ActionManager::register_radio_action (snap_actions, snap_choice_group, X_("snap-to-twentyfourths"), _("Snap to Twenty Fourths"), (sigc::bind (sigc::mem_fun(*this, &Editor::snap_type_chosen), Editing::SnapToBeatDiv24))); @@ -772,6 +774,12 @@ Editor::snap_type_action (SnapType type) case Editing::SnapToMinutes: action = "snap-to-minutes"; break; + case Editing::SnapToBeatDiv128: + action = "snap-to-onetwentyeighths"; + break; + case Editing::SnapToBeatDiv64: + action = "snap-to-sixtyfourths"; + break; case Editing::SnapToBeatDiv32: action = "snap-to-thirtyseconds"; break; @@ -875,6 +883,12 @@ Editor::next_snap_choice () set_snap_to (Editing::SnapToMinutes); break; case Editing::SnapToMinutes: + set_snap_to (Editing::SnapToBeatDiv128); + break; + case Editing::SnapToBeatDiv128: + set_snap_to (Editing::SnapToBeatDiv64); + break; + case Editing::SnapToBeatDiv64: set_snap_to (Editing::SnapToBeatDiv32); break; case Editing::SnapToBeatDiv32: @@ -966,6 +980,12 @@ Editor::prev_snap_choice () set_snap_to (Editing::SnapToMinutes); break; case Editing::SnapToMinutes: + set_snap_to (Editing::SnapToBeatDiv128); + break; + case Editing::SnapToBeatDiv128: + set_snap_to (Editing::SnapToBeatDiv64); + break; + case Editing::SnapToBeatDiv64: set_snap_to (Editing::SnapToBeatDiv32); break; case Editing::SnapToBeatDiv32: @@ -1052,6 +1072,12 @@ Editor::next_snap_choice_music_only () case Editing::SnapToTimecodeMinutes: case Editing::SnapToSeconds: case Editing::SnapToMinutes: + set_snap_to (Editing::SnapToBeatDiv128); + break; + case Editing::SnapToBeatDiv128: + set_snap_to (Editing::SnapToBeatDiv64); + break; + case Editing::SnapToBeatDiv64: set_snap_to (Editing::SnapToBeatDiv32); break; case Editing::SnapToBeatDiv32: @@ -1103,7 +1129,7 @@ Editor::next_snap_choice_music_only () set_snap_to (Editing::SnapToBar); break; case Editing::SnapToBar: - set_snap_to (Editing::SnapToBeatDiv32); + set_snap_to (Editing::SnapToBeatDiv128); break; } } @@ -1125,9 +1151,15 @@ Editor::prev_snap_choice_music_only () case Editing::SnapToMinutes: set_snap_to (Editing::SnapToBar); break; - case Editing::SnapToBeatDiv32: + case Editing::SnapToBeatDiv128: set_snap_to (Editing::SnapToBeat); break; + case Editing::SnapToBeatDiv64: + set_snap_to (Editing::SnapToBeatDiv128); + break; + case Editing::SnapToBeatDiv32: + set_snap_to (Editing::SnapToBeatDiv64); + break; case Editing::SnapToBeatDiv28: set_snap_to (Editing::SnapToBeatDiv32); break; diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc index 82669b7ecc..ea5622e4c9 100644 --- a/gtk2_ardour/editor_rulers.cc +++ b/gtk2_ardour/editor_rulers.cc @@ -1221,6 +1221,14 @@ Editor::compute_bbt_ruler_scale (framepos_t lower, framepos_t upper) bbt_beat_subdivision = 32; bbt_accent_modulo = 8; break; + case SnapToBeatDiv64: + bbt_beat_subdivision = 64; + bbt_accent_modulo = 8; + break; + case SnapToBeatDiv128: + bbt_beat_subdivision = 128; + bbt_accent_modulo = 8; + break; default: bbt_beat_subdivision = 4; break; diff --git a/gtk2_ardour/enums.cc b/gtk2_ardour/enums.cc index 28d64ef969..ca9d5cfe21 100644 --- a/gtk2_ardour/enums.cc +++ b/gtk2_ardour/enums.cc @@ -93,6 +93,8 @@ setup_gtk_ardour_enums () REGISTER_ENUM (SnapToTimecodeMinutes); REGISTER_ENUM (SnapToSeconds); REGISTER_ENUM (SnapToMinutes); + REGISTER_ENUM (SnapToBeatDiv128); + REGISTER_ENUM (SnapToBeatDiv64); REGISTER_ENUM (SnapToBeatDiv32); REGISTER_ENUM (SnapToBeatDiv28); REGISTER_ENUM (SnapToBeatDiv24); |