]> ruin.nu Git - moosique.git/blobdiff - MooTrackView.java
no message
[moosique.git] / MooTrackView.java
index cb22b42def09d6aa15a1223891a317fc5df0e729..2f96085e25f6a362ea22b4d34e28045ac7177736 100644 (file)
@@ -28,7 +28,8 @@ public class MooTrackView extends JPanel {
        private Insets insets;
        private Rectangle box;
        private int ticksPerSixteenth, popupY = 0;
-       private boolean leftMouseButtonPressed = false, quantizeRecording = false;
+       private boolean leftMouseButtonPressed = false;
+       private static boolean snapToSixteenths = true;
        protected static int viewLength = 0;
        protected static int extraHeight = 0;
        public static final int NOTE_HEIGHT = 10, NOTE_WIDTH = 40, VIEW_WIDTH = 200;
@@ -52,7 +53,7 @@ public class MooTrackView extends JPanel {
                setLayout(null);
                setPreferredSize(new Dimension(VIEW_WIDTH, 140 * NOTE_HEIGHT));
 
-               placeNoteElements(false);
+               placeNoteElements();
 
                // Creates panel pop-up menu.
                popup = new JPopupMenu();
@@ -78,10 +79,7 @@ public class MooTrackView extends JPanel {
        /**
         * Creates note elements for all MooNotes in the track, and places them in the appropriate place.
         */
-       public void placeNoteElements(boolean quantize) {
-               // Converts the track.
-               Moosique.convertTrack(track);
-
+       public void placeNoteElements() {
                // Empties the container
                removeAll();
                coords = new ArrayList(track.size() / 2);
@@ -132,15 +130,10 @@ public class MooTrackView extends JPanel {
 
                // Calculates coordinates.
                x = insets.left;
-               if (quantizeRecording) {
-                       // Snap to nearest sixteenth
-                       y = insets.top + Math.round(mn.getTick() / ticksPerSixteenth) * NOTE_HEIGHT;
-                       height = (mn.getDuration() / ticksPerSixteenth) * NOTE_HEIGHT;
-               } else {
-                       y = insets.top + (int)((mn.getTick() * NOTE_HEIGHT) / ticksPerSixteenth);
-                       height = (mn.getDuration() * NOTE_HEIGHT) / ticksPerSixteenth;
-               }
+               y = insets.top + (int)((mn.getTick() * NOTE_HEIGHT) / ticksPerSixteenth);
+               height = (mn.getDuration() * NOTE_HEIGHT) / ticksPerSixteenth;
                if (height == 0) height = NOTE_HEIGHT;
+               if (snapToSixteenths && height < NOTE_HEIGHT) height = NOTE_HEIGHT;
                r = new Rectangle(x, y, NOTE_WIDTH, height);
 
                // Places the element in the appropriate place.