X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=MooToolbar.java;h=bca50efba950d727f80be24e97136d40795fcb17;hb=22067aec9dd544828d90ff39a3a6d40cdfc7ea9f;hp=1ea47ab08f5e3af9becb759089bc58889cdda5ef;hpb=c31857b9fcb119f0d4c12b96222f66340b3dcc56;p=moosique.git diff --git a/MooToolbar.java b/MooToolbar.java index 1ea47ab..bca50ef 100644 --- a/MooToolbar.java +++ b/MooToolbar.java @@ -1,7 +1,7 @@ +import javax.sound.midi.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; -import javax.sound.midi.*; /** * The application's toolbar, with the most frequently used commands. @@ -75,17 +75,16 @@ public class MooToolbar extends JToolBar { * @param tickPosition the tick position to visualize */ public void updateProgInd(long tickPosition) { - ticksPerBeat = Moosique.getSequence().getResolution(); + System.out.print("Updating to " + tickPosition + " = "); if (tickPosition == 0) { resetProgInd(); + System.out.println("1:1:1"); } else { - // Otherwise, calculates the current song position in measures, beats and ticks. - long measures = tickPosition / (beatsPerMeasure * ticksPerBeat); - long beats = (tickPosition - measures * beatsPerMeasure * ticksPerBeat) / ticksPerBeat; - long ticks = tickPosition - measures * beatsPerMeasure * ticksPerBeat - beats * ticksPerBeat; - measuresValue.setText(Long.toString(1 + measures)); - beatsValue.setText(Long.toString(1 + beats)); - ticksValue.setText(Long.toString(1 + ticks)); + int[] position = Moosique.getPositionForTicks(tickPosition); + System.out.println("" + position[0] + ":" + position[1] + ":" + position[2]); + measuresValue.setText(Integer.toString(position[0])); + beatsValue.setText(Long.toString(position[1])); + ticksValue.setText(Long.toString(position[2])); } } @@ -93,12 +92,11 @@ public class MooToolbar extends JToolBar { * Resets the progress indicator. */ public void resetProgInd() { - measuresValue.setText("1"); - beatsValue.setText("1"); - ticksValue.setText("1"); - playpause.setIcon(playIcon); - playpause.setToolTipText("Play"); - ticksPerBeat = Moosique.getSequence().getResolution(); + measuresValue.setText("1"); + beatsValue.setText("1"); + ticksValue.setText("1"); + updatePlayButton("Play", playIcon); + ticksPerBeat = Moosique.getSequence().getResolution(); } /** @@ -131,32 +129,37 @@ public class MooToolbar extends JToolBar { return label; } + /** + * Updates the play button with the given command and icon. + */ + private void updatePlayButton(String command, Icon icon) { + playpause.setIcon(icon); + playpause.setActionCommand(command); + playpause.setToolTipText(command); + } + class MAdapter extends MouseAdapter { public void mouseClicked(MouseEvent e) { if (e.getSource() instanceof JButton) { String command = ((JButton)e.getSource()).getActionCommand(); if (command == "Play") { - playpause.setIcon(pauseIcon); - playpause.setActionCommand("Pause"); - playpause.setToolTipText("Pause"); + updatePlayButton("Pause", pauseIcon); Moosique.play(); } else if (command == "Pause") { - playpause.setIcon(playIcon); - playpause.setActionCommand("Resume"); - playpause.setToolTipText("Resume"); + updatePlayButton("Resume", playIcon); Moosique.pause(); } else if (command == "Resume") { - playpause.setIcon(pauseIcon); - playpause.setActionCommand("Pause"); - playpause.setToolTipText("Pause"); + updatePlayButton("Pause", pauseIcon); Moosique.resume(); } else if (command == "Rewind") { + System.out.println("Rewound!"); // Different implementation, perhaps? + updatePlayButton("Play", playIcon); Moosique.setEditPosition(0); Moosique.stop(); } else if (command == "Fast forward") { - } else if (command == "Stop") { + updatePlayButton("Play", playIcon); Moosique.stop(); } } else if (e.getSource() instanceof JLabel) { @@ -185,7 +188,7 @@ public class MooToolbar extends JToolBar { } } - public void mousePressed(MouseEvent e) { +/* public void mousePressed(MouseEvent e) { if (e.getSource() instanceof JButton) { if (((JButton)e.getSource()).getToolTipText() == "Rewind") { Moosique.rewind(beatsPerMeasure * ticksPerBeat); @@ -196,5 +199,5 @@ public class MooToolbar extends JToolBar { } public void mouseReleased(MouseEvent e) {} - } +*/ } }