+ 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;
+ case Editing::SnapToBeatDiv28:
+ action = "snap-to-twentyeighths";
+ break;
+ case Editing::SnapToBeatDiv24:
+ action = "snap-to-twentyfourths";
+ break;
+ case Editing::SnapToBeatDiv20:
+ action = "snap-to-twentieths";
+ break;
+ case Editing::SnapToBeatDiv16:
+ action = "snap-to-asixteenthbeat";
+ break;
+ case Editing::SnapToBeatDiv14:
+ action = "snap-to-fourteenths";
+ break;
+ case Editing::SnapToBeatDiv12:
+ action = "snap-to-twelfths";
+ break;
+ case Editing::SnapToBeatDiv10:
+ action = "snap-to-tenths";
+ break;
+ case Editing::SnapToBeatDiv8:
+ action = "snap-to-eighths";
+ break;
+ case Editing::SnapToBeatDiv7:
+ action = "snap-to-sevenths";
+ break;
+ case Editing::SnapToBeatDiv6:
+ action = "snap-to-sixths";
+ break;
+ case Editing::SnapToBeatDiv5:
+ action = "snap-to-fifths";
+ break;
+ case Editing::SnapToBeatDiv4:
+ action = "snap-to-quarters";
+ break;
+ case Editing::SnapToBeatDiv3:
+ action = "snap-to-thirds";
+ break;
+ case Editing::SnapToBeatDiv2:
+ action = "snap-to-halves";
+ break;
+ case Editing::SnapToBeat:
+ action = "snap-to-beat";
+ break;
+ case Editing::SnapToBar:
+ action = "snap-to-bar";
+ break;
+ case Editing::SnapToMark:
+ action = "snap-to-mark";
+ break;
+ case Editing::SnapToRegionStart:
+ action = "snap-to-region-start";
+ break;
+ case Editing::SnapToRegionEnd:
+ action = "snap-to-region-end";
+ break;
+ case Editing::SnapToRegionSync:
+ action = "snap-to-region-sync";
+ break;
+ case Editing::SnapToRegionBoundary:
+ action = "snap-to-region-boundary";
+ break;
+ default:
+ fatal << string_compose (_("programming error: %1: %2"), "Editor: impossible snap-to type", (int) type) << endmsg;
+ /*NOTREACHED*/
+ }
+
+ act = ActionManager::get_action (X_("Snap"), action);
+
+ if (act) {
+ RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
+ return ract;
+
+ } else {
+ error << string_compose (_("programming error: %1"), "Editor::snap_type_chosen could not find action to match type.") << endmsg;
+ return RefPtr<RadioAction>();
+ }
+}
+
+void
+Editor::next_snap_choice ()
+{
+ switch (_snap_type) {
+ case Editing::SnapToCDFrame:
+ set_snap_to (Editing::SnapToTimecodeFrame);
+ break;
+ case Editing::SnapToTimecodeFrame:
+ set_snap_to (Editing::SnapToTimecodeSeconds);
+ break;
+ case Editing::SnapToTimecodeSeconds:
+ set_snap_to (Editing::SnapToTimecodeMinutes);
+ break;
+ case Editing::SnapToTimecodeMinutes:
+ set_snap_to (Editing::SnapToSeconds);
+ break;
+ case Editing::SnapToSeconds:
+ 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:
+ set_snap_to (Editing::SnapToBeatDiv28);
+ break;
+ case Editing::SnapToBeatDiv28:
+ set_snap_to (Editing::SnapToBeatDiv24);
+ break;
+ case Editing::SnapToBeatDiv24:
+ set_snap_to (Editing::SnapToBeatDiv20);
+ break;
+ case Editing::SnapToBeatDiv20:
+ set_snap_to (Editing::SnapToBeatDiv16);
+ break;
+ case Editing::SnapToBeatDiv16:
+ set_snap_to (Editing::SnapToBeatDiv14);
+ break;
+ case Editing::SnapToBeatDiv14:
+ set_snap_to (Editing::SnapToBeatDiv12);
+ break;
+ case Editing::SnapToBeatDiv12:
+ set_snap_to (Editing::SnapToBeatDiv10);
+ break;
+ case Editing::SnapToBeatDiv10:
+ set_snap_to (Editing::SnapToBeatDiv8);
+ break;
+ case Editing::SnapToBeatDiv8:
+ set_snap_to (Editing::SnapToBeatDiv7);
+ break;
+ case Editing::SnapToBeatDiv7:
+ set_snap_to (Editing::SnapToBeatDiv6);
+ break;
+ case Editing::SnapToBeatDiv6:
+ set_snap_to (Editing::SnapToBeatDiv5);
+ break;
+ case Editing::SnapToBeatDiv5:
+ set_snap_to (Editing::SnapToBeatDiv4);
+ break;
+ case Editing::SnapToBeatDiv4:
+ set_snap_to (Editing::SnapToBeatDiv3);
+ break;
+ case Editing::SnapToBeatDiv3:
+ set_snap_to (Editing::SnapToBeatDiv2);
+ break;
+ case Editing::SnapToBeatDiv2:
+ set_snap_to (Editing::SnapToBeat);
+ break;
+ case Editing::SnapToBeat:
+ set_snap_to (Editing::SnapToBar);
+ break;
+ case Editing::SnapToBar:
+ set_snap_to (Editing::SnapToMark);
+ break;
+ case Editing::SnapToMark:
+ set_snap_to (Editing::SnapToRegionStart);
+ break;
+ case Editing::SnapToRegionStart:
+ set_snap_to (Editing::SnapToRegionEnd);
+ break;
+ case Editing::SnapToRegionEnd:
+ set_snap_to (Editing::SnapToRegionSync);
+ break;
+ case Editing::SnapToRegionSync:
+ set_snap_to (Editing::SnapToRegionBoundary);
+ break;
+ case Editing::SnapToRegionBoundary:
+ set_snap_to (Editing::SnapToCDFrame);
+ break;
+ }
+}
+
+void
+Editor::prev_snap_choice ()
+{
+ switch (_snap_type) {
+ case Editing::SnapToCDFrame:
+ set_snap_to (Editing::SnapToTimecodeFrame);
+ break;
+ case Editing::SnapToTimecodeFrame:
+ set_snap_to (Editing::SnapToTimecodeSeconds);
+ break;
+ case Editing::SnapToTimecodeSeconds:
+ set_snap_to (Editing::SnapToTimecodeMinutes);
+ break;
+ case Editing::SnapToTimecodeMinutes:
+ set_snap_to (Editing::SnapToSeconds);
+ break;
+ case Editing::SnapToSeconds:
+ 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);