]> ruin.nu Git - moosique.git/commitdiff
Fixed the scrolling on play!!!
authorEinar Pehrson <einarp@itstud.chalmers.se>
Tue, 13 May 2003 15:42:32 +0000 (15:42 +0000)
committerEinar Pehrson <einarp@itstud.chalmers.se>
Tue, 13 May 2003 15:42:32 +0000 (15:42 +0000)
MooToolbar.java
MooView.java
Moosique.java

index 92bf3457e083b11f79269e02e91590b02fc21dd3..a3b250a42bf3db7273b7f3a068fcad2cf6845717 100644 (file)
@@ -65,7 +65,6 @@ public class MooToolbar extends JToolBar {
                progIndPanel.add(beatsValue);
                progIndPanel.add(ticksValue);
                add(progIndPanel);
-
        }
 
        /**
@@ -73,14 +72,30 @@ public class MooToolbar extends JToolBar {
         * @param tickPosition  the tick position to visualize
         */
        public void updateProgInd(long tickPosition) {
-               int ticksPerBeat = Moosique.getSequence().getResolution();
-               int beatsPerMeasure = 4;
-               long measures = tickPosition / (beatsPerMeasure * ticksPerBeat);
-               long beats = (tickPosition - measures * beatsPerMeasure * ticksPerBeat) / ticksPerBeat;
-               long ticks = tickPosition - measures * beatsPerMeasure * ticksPerBeat - beats * ticksPerBeat;
-               measureValue.setText(Long.toString(1 + measures));
-               beatsValue.setText(Long.toString(1 + beats));
-               ticksValue.setText(Long.toString(1 + ticks));
+               if (tickPosition == 0) {
+                       resetProgInd();
+               } else {
+                       // Otherwise, calculates the current song position in measures, beats and ticks.
+                       int ticksPerBeat = Moosique.getSequence().getResolution();
+                       int beatsPerMeasure = 4;
+                       long measures = tickPosition / (beatsPerMeasure * ticksPerBeat);
+                       long beats = (tickPosition - measures * beatsPerMeasure * ticksPerBeat) / ticksPerBeat;
+                       long ticks = tickPosition - measures * beatsPerMeasure * ticksPerBeat - beats * ticksPerBeat;
+                       measureValue.setText(Long.toString(1 + measures));
+                       beatsValue.setText(Long.toString(1 + beats));
+                       ticksValue.setText(Long.toString(1 + ticks));
+               }
+       }
+
+       /*
+        * Resets the progress indicator
+        */
+       private void resetProgInd() {
+                       measureValue.setText("1");
+                       beatsValue.setText("1");
+                       ticksValue.setText("1");
+                       playpause.setIcon(playIcon);
+                       playpause.setToolTipText("Play");
        }
 
        /*
@@ -114,20 +129,19 @@ public class MooToolbar extends JToolBar {
        class MooMouseAdapter extends MouseAdapter {
                public void mouseClicked(MouseEvent e) {
                        if (((JButton)e.getSource()).getToolTipText() == "Play") {
-                                       playpause.setIcon(pauseIcon);
-                                       playpause.setToolTipText("Pause");
-                                       Moosique.play();
+                               playpause.setIcon(pauseIcon);
+                               playpause.setToolTipText("Pause");
+                               Moosique.play();
                        } else if (((JButton)e.getSource()).getToolTipText() == "Pause") {
-                                       playpause.setIcon(playIcon);
-                                       playpause.setToolTipText("Resume");
-                                       Moosique.pause();
+                               playpause.setIcon(playIcon);
+                               playpause.setToolTipText("Resume");
+                               Moosique.pause();
                        } else if (((JButton)e.getSource()).getToolTipText() == "Resume") {
-                                       playpause.setIcon(pauseIcon);
-                                       playpause.setToolTipText("Pause");
-                                       Moosique.resume();
+                               playpause.setIcon(pauseIcon);
+                               playpause.setToolTipText("Pause");
+                               Moosique.resume();
                        } else if (((JButton)e.getSource()).getToolTipText() == "Stop") {
-                               playpause.setIcon(playIcon);
-                               playpause.setToolTipText("Play");
+                               resetProgInd();
                                Moosique.stop();
                        }
                }
index ca9d68db48ad49fb5fa0732489532a92b2bb512e..2defbc6fb50d3641263269134bbe446bc49d6e68 100644 (file)
@@ -81,6 +81,7 @@ public class MooView extends JScrollPane {
         * Calls on each track view to update itself.
         */
        public void update(long tickPosition) {
+               getViewport().setViewPosition(new Point((int)getViewport().getViewPosition().getX(), (int)(tickPosition / 24) * MooTrackView.NOTE_HEIGHT));
                Component[] comps = getComponents();
                for (int i = 0; i < comps.length; i++) {
                        if(comps[i] instanceof MooTrackView) ((MooTrackView)comps[i]).update(tickPosition);
index 531e4f511886dcc96c10c7ed9d614f9da83d6bf0..b79fa67f93e9abd1f3163495b55a789e4e345b04 100644 (file)
@@ -161,7 +161,7 @@ public class Moosique {
         */
        public static void pause() {
                sequencer.stop();
-               player.destroy();
+               player.interrupt();
        }
 
        /**