Update of /cvsroot/javaamp/javaamp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26048/src Modified Files: EQLabel.java EqualizerDialog.java JavaAmp.java PlayDialog.java PlayQueue.java SpectrumLabel.java Added Files: GraphicsLoader.java Log Message: Index: EqualizerDialog.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/EqualizerDialog.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- EqualizerDialog.java 3 Mar 2006 18:29:19 -0000 1.13 +++ EqualizerDialog.java 10 Mar 2006 14:29:09 -0000 1.14 @@ -41,12 +41,6 @@ super(o); owner = o; - Image i1 = getToolkit().getImage(getClass().getResource("presets.png")); - Image i2 = getToolkit().getImage(getClass().getResource("on.png")); - MediaTracker mt = new MediaTracker(this); - mt.addImage(i1, 0); - mt.addImage(i2, 1); - setUndecorated(true); setSize(275, 115); setLocation(50, 165); @@ -146,7 +140,7 @@ cntContainer.setLayout(null); bebBorder = new BevelBorder(BevelBorder.RAISED); - tobOn = new JToggleButton(new ImageIcon(i2)); + tobOn = new JToggleButton(new ImageIcon(GraphicsLoader.eqd2)); tobOn.setToolTipText("Activate equalizer"); tobOn.setFocusable(false); tobOn.setEnabled(false); @@ -171,7 +165,7 @@ eqlEqualizer = new EQLabel(owner); eqlEqualizer.setBounds(30, 28, 239, 66); - btnPresets = new JButton(new ImageIcon(i1)); + btnPresets = new JButton(new ImageIcon(GraphicsLoader.eqd1)); btnPresets.setToolTipText("Presets"); btnPresets.setFocusable(false); btnPresets.setBounds(220, 5, 50, 15); @@ -238,8 +232,6 @@ cntContainer.add(btnPresets); setContentPane(cntContainer); - - mt.waitForAll(); } public void loadPreset() throws Exception { Index: JavaAmp.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/JavaAmp.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- JavaAmp.java 3 Mar 2006 18:29:19 -0000 1.10 +++ JavaAmp.java 10 Mar 2006 14:29:09 -0000 1.11 @@ -22,6 +22,8 @@ Random random; public JavaAmp() throws Exception { + GraphicsLoader.startLoading(this); + FMOD.create(); FSound.FSOUND_Init(44100, 16, 0); FSound.FSOUND_DSP_SetActive(FSound.FSOUND_DSP_GetFFTUnit(), true); @@ -50,8 +52,11 @@ playDialog.setLocation(x, y); equalizerDialog.setLocation(x, y + 115); playlistDialog.setLocation(x, y + 230); + + if(!GraphicsLoader.finishLoading()) + throw new Exception("Error loading one or more graphics!"); + playDialog.setVisible(true); - playDialog.splSpectrum.start(); equalizerDialog.setVisible(true); playlistDialog.setVisible(true); } @@ -82,6 +87,7 @@ } public static void main(String[] args) { + Locale.setDefault(Locale.ENGLISH); Toolkit.getDefaultToolkit().setDynamicLayout(true); System.setProperty("sun.awt.noerasebackground", "true"); try { Index: PlayQueue.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/PlayQueue.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- PlayQueue.java 28 Feb 2006 16:08:13 -0000 1.14 +++ PlayQueue.java 10 Mar 2006 14:29:09 -0000 1.15 @@ -1,6 +1,7 @@ import java.io.*; import java.net.*; import java.util.*; +import java.util.concurrent.locks.*; import javax.swing.*; import org.lwjgl.fmod3.*; @@ -32,7 +33,9 @@ hidden = false; owner.playlistDialog.scpPlaylist.repaint(); FileEntry fieCurrent = owner.playlistDialog.listmodel.get(current); + ReentrantLock rl = new ReentrantLock(); while(running && fieCurrent != null) { + rl.lock(); if(owner.playDialog.prbTrack.getString().equals("0")) owner.playDialog.prbTrack.setValue(0); owner.playlistDialog.ensureIsVisible(current); @@ -90,6 +93,7 @@ error = true; type = 2; } + rl.unlock(); if(!error && type == 1) { if(!FMusic.FMUSIC_PlaySong(module)) JavaAmp.warning(new Exception("FMusic error!")); Index: EQLabel.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/EQLabel.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- EQLabel.java 7 Mar 2006 16:13:17 -0000 1.8 +++ EQLabel.java 10 Mar 2006 14:29:09 -0000 1.9 @@ -54,17 +54,12 @@ offg.setColor(Color.LIGHT_GRAY); offg.fillRect(0, 63 - owner.equalizerDialog.sliPre.getValue(), 239, 3); offg.setColor(Color.BLACK); - double[] xx = new double[10]; - double[] ff = new double[10]; for(int i = 0; i < 10; i++) { offg.fillRect(i * 24 + 10, owner.equalizerDialog.eqvals[i], 3, 3); - xx[i] = i * 24 + 11; - ff[i] = owner.equalizerDialog.eqvals[i] + 1; + if(i < 9) + offg.drawLine(i * 24 + 11, owner.equalizerDialog.eqvals[i] + 1, + (i + 1) * 24 + 11, owner.equalizerDialog.eqvals[i + 1] + 1); } - Spline s = new Spline(xx, ff); - for(int i = 11; i < 227; i++) - offg.drawLine(i, (int)s.spline_value(i), i + 1, (int)s.spline_value( - i + 1)); g.drawImage(offscreen, 0, 0, this); } } \ No newline at end of file Index: SpectrumLabel.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/SpectrumLabel.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- SpectrumLabel.java 3 Mar 2006 18:33:17 -0000 1.4 +++ SpectrumLabel.java 10 Mar 2006 14:29:09 -0000 1.5 @@ -79,6 +79,8 @@ } public void paint(Graphics g) { + if(g == null || ofg == null) + return; ofg.setColor(Color.BLACK); ofg.fillRect(0, 0, getWidth(), h); if(mode == MODE_SPECTRUM) { Index: PlayDialog.java =================================================================== RCS file: /cvsroot/javaamp/javaamp/src/PlayDialog.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- PlayDialog.java 4 Mar 2006 16:56:00 -0000 1.11 +++ PlayDialog.java 10 Mar 2006 14:29:09 -0000 1.12 @@ -35,8 +35,6 @@ boolean dockedPlaylist, dockedPlaylist2; PlayQueue pq; - Image imgJavaAmp, imgJavaAmp1, imgJavaAmp2; - Image imgRep0, imgRep1, imgRepA; BufferedImage buiOffscreen; Graphics graOffscreen; @@ -46,46 +44,6 @@ loopmode = 0; - Image i1 = getToolkit().getImage(getClass().getResource("eq.png")); - Image i2 = getToolkit().getImage(getClass().getResource("pl.png")); - Image i3 = getToolkit().getImage(getClass().getResource("back.png")); - Image i4 = getToolkit().getImage(getClass().getResource("play.png")); - Image i5 = getToolkit().getImage(getClass().getResource("pause.png")); - Image i6 = getToolkit().getImage(getClass().getResource("stop.png")); - Image i7 = getToolkit().getImage(getClass().getResource("next.png")); - Image i8 = getToolkit().getImage(getClass().getResource("open.png")); - Image i9 = getToolkit().getImage(getClass().getResource("shuffle.png")); - imgJavaAmp = getToolkit().getImage(getClass().getResource( - "javaamp.png")); - imgJavaAmp1 = getToolkit().getImage(getClass().getResource( - "javaamp1.png")); - imgJavaAmp2 = getToolkit().getImage(getClass().getResource( - "javaamp2.png")); - imgRep0 = getToolkit().getImage(getClass().getResource( - "rep0.png")); - imgRep1 = getToolkit().getImage(getClass().getResource( - "rep1.png")); - imgRepA = getToolkit().getImage(getClass().getResource( - "repa.png")); - Image i10 = getToolkit().getImage(getClass().getResource("vis.png")); - MediaTracker mt = new MediaTracker(this); - mt.addImage( i1, 0); - mt.addImage( i2, 1); - mt.addImage( i3, 2); - mt.addImage( i4, 3); - mt.addImage( i5, 4); - mt.addImage( i6, 5); - mt.addImage( i7, 6); - mt.addImage( i8, 7); - mt.addImage( i9, 8); - mt.addImage( imgJavaAmp, 9); - mt.addImage(imgJavaAmp1, 10); - mt.addImage(imgJavaAmp2, 11); - mt.addImage( imgRep0, 12); - mt.addImage( imgRep1, 13); - mt.addImage( imgRepA, 14); - mt.addImage( i10, 15); - buiOffscreen = new BufferedImage(275, 115, BufferedImage.TYPE_INT_RGB); graOffscreen = buiOffscreen.getGraphics(); @@ -280,8 +238,13 @@ sliPan.setBounds(180, 51, 43, 23); sliPan.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { - lblSongInfo.text2 = "Pan: " + (sliPan.getValue() * 200 / - 255 - 100); + int val = sliPan.getValue() * 200 / 255 - 100; + if(val < 0) + lblSongInfo.text2 = "Balance: " + (-val) + " % left"; + else if(val > 0) + lblSongInfo.text2 = "Balance: " + val + " % right"; + else + lblSongInfo.text2 = "Balance: Center"; lblSongInfo.showing = false; } @@ -291,8 +254,13 @@ }); sliPan.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { - lblSongInfo.text2 = "Pan: " + (sliPan.getValue() * 200 / - 255 - 100); + int val = sliPan.getValue() * 200 / 255 - 100; + if(val < 0) + lblSongInfo.text2 = "Balance: " + (-val) + " % left"; + else if(val > 0) + lblSongInfo.text2 = "Balance: " + val + " % right"; + else + lblSongInfo.text2 = "Balance: Center"; if(pq != null) FSound.FSOUND_SetPan(pq.c, sliPan.getValue()); } @@ -306,11 +274,15 @@ prbTrack.setBounds(5, 75, 265, 10); prbTrack.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { + if(e.getButton() != MouseEvent.BUTTON1) + return; if(pq != null && pq.stream != null) prbTrack.setValue(e.getX() * 255 / prbTrack.getWidth()); prbTrack.setString("1"); } public void mouseReleased(MouseEvent e) { + if(!prbTrack.getString().equals("1")) + return; if(pq != null && pq.stream != null) FSound.FSOUND_Stream_SetTime(pq.stream, (int)((double)( e.getX() * 255 / prbTrack.getWidth()) / 255d * @@ -320,12 +292,14 @@ }); prbTrack.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { + if(!prbTrack.getString().equals("1")) + return; if(pq != null && pq.stream != null) prbTrack.setValue(e.getX() * 255 / prbTrack.getWidth()); } }); - btnVis = new JButton(new ImageIcon(i10)); + btnVis = new JButton(new ImageIcon(GraphicsLoader.pd10)); btnVis.setToolTipText("Start visualization"); btnVis.setFocusable(false); btnVis.setBounds(228, 38, 20, 15); @@ -344,7 +318,7 @@ } }); - tobEQ = new JToggleButton(new ImageIcon(i1), true); + tobEQ = new JToggleButton(new ImageIcon(GraphicsLoader.pd1), true); tobEQ.setToolTipText("Show equalizer"); tobEQ.setFocusable(false); tobEQ.setBounds(228, 55, 20, 15); @@ -359,7 +333,7 @@ } }); - tobPL = new JToggleButton(new ImageIcon(i2), true); + tobPL = new JToggleButton(new ImageIcon(GraphicsLoader.pd2), true); tobPL.setToolTipText("Show playlist"); tobPL.setFocusable(false); tobPL.setBounds(250, 55, 20, 15); @@ -374,7 +348,8 @@ } }); - tobShuffle = new JToggleButton(new ImageIcon(i9), false); + tobShuffle = new JToggleButton(new ImageIcon(GraphicsLoader.pd9), + false); tobShuffle.setToolTipText("Shuffle: Off"); tobShuffle.setFocusable(false); tobShuffle.setBounds(147, 92, 45, 15); @@ -387,7 +362,7 @@ } }); - btnBack = new JButton(new ImageIcon(i3)); + btnBack = new JButton(new ImageIcon(GraphicsLoader.pd3)); btnBack.setToolTipText("Previous"); btnBack.setFocusable(false); btnBack.setBounds(5, 90, 20, 20); @@ -414,7 +389,7 @@ } }); - btnPlay = new JButton(new ImageIcon(i4)); + btnPlay = new JButton(new ImageIcon(GraphicsLoader.pd4)); btnPlay.setToolTipText("Play"); btnPlay.setFocusable(false); btnPlay.setBounds(27, 90, 20, 20); @@ -442,7 +417,7 @@ } }); - btnPause = new JButton(new ImageIcon(i5)); + btnPause = new JButton(new ImageIcon(GraphicsLoader.pd5)); btnPause.setToolTipText("Pause"); btnPause.setFocusable(false); btnPause.setBounds(49, 90, 20, 20); @@ -457,7 +432,7 @@ } }); - btnStop = new JButton(new ImageIcon(i6)); + btnStop = new JButton(new ImageIcon(GraphicsLoader.pd6)); btnStop.setToolTipText("Stop"); btnStop.setFocusable(false); btnStop.setBounds(71, 90, 20, 20); @@ -470,7 +445,7 @@ } }); - btnNext = new JButton(new ImageIcon(i7)); + btnNext = new JButton(new ImageIcon(GraphicsLoader.pd7)); btnNext.setToolTipText("Next"); btnNext.setFocusable(false); btnNext.setBounds(93, 90, 20, 20); @@ -496,7 +471,7 @@ } }); - btnOpen = new JButton(new ImageIcon(i8)); + btnOpen = new JButton(new ImageIcon(GraphicsLoader.pd8)); btnOpen.setToolTipText("Open"); btnOpen.setFocusable(false); btnOpen.setBounds(120, 90, 20, 20); @@ -531,7 +506,7 @@ } }); - btnRepeat = new JButton(new ImageIcon(imgRep0)); + btnRepeat = new JButton(new ImageIcon(GraphicsLoader.pd11)); btnRepeat.setToolTipText("Repeat: Off"); btnRepeat.setFocusable(false); btnRepeat.setBounds(194, 92, 25, 15); @@ -542,15 +517,15 @@ loopmode = 0; switch(loopmode) { case 0: - btnRepeat.setIcon(new ImageIcon(imgRep0)); + btnRepeat.setIcon(new ImageIcon(GraphicsLoader.pd11)); btnRepeat.setToolTipText("Repeat: Off"); break; case 1: - btnRepeat.setIcon(new ImageIcon(imgRep1)); + btnRepeat.setIcon(new ImageIcon(GraphicsLoader.pd12)); btnRepeat.setToolTipText("Repeat: One file"); break; default: - btnRepeat.setIcon(new ImageIcon(imgRepA)); + btnRepeat.setIcon(new ImageIcon(GraphicsLoader.pd13)); btnRepeat.setToolTipText("Repeat: All files"); } } @@ -575,17 +550,17 @@ setContentPane(cntContainer); - mt.waitForAll(); + splSpectrum.start(); } public void paint(Graphics g) { super.paint(graOffscreen); if(ct <= 1) - graOffscreen.drawImage(imgJavaAmp, 0, 0, this); + graOffscreen.drawImage(GraphicsLoader.pd14, 0, 0, this); else if(ct == 2) - graOffscreen.drawImage(imgJavaAmp1, 0, 0, this); + graOffscreen.drawImage(GraphicsLoader.pd15, 0, 0, this); else if(ct == 3) - graOffscreen.drawImage(imgJavaAmp2, 0, 0, this); + graOffscreen.drawImage(GraphicsLoader.pd16, 0, 0, this); g.drawImage(buiOffscreen, 0, 0, this); } } \ No newline at end of file --- NEW FILE: GraphicsLoader.java --- import java.awt.*; public class GraphicsLoader { private static MediaTracker mt; // EqualizerDialog static Image eqd1, eqd2; // PlayDialog static Image pd1, pd2, pd3, pd4, pd5, pd6, pd7, pd8, pd9, pd10, pd11, pd12, pd13, pd14, pd15, pd16; public final static void startLoading(Component comp) { Class cls = comp.getClass(); Toolkit tk = comp.getToolkit(); mt = new MediaTracker(comp); // EqualizerDialog eqd1 = tk.getImage(cls.getResource("presets.png")); eqd2 = tk.getImage(cls.getResource("on.png")); // PlayDialog pd1 = tk.getImage(cls.getResource("eq.png")); pd2 = tk.getImage(cls.getResource("pl.png")); pd3 = tk.getImage(cls.getResource("back.png")); pd4 = tk.getImage(cls.getResource("play.png")); pd5 = tk.getImage(cls.getResource("pause.png")); pd6 = tk.getImage(cls.getResource("stop.png")); pd7 = tk.getImage(cls.getResource("next.png")); pd8 = tk.getImage(cls.getResource("open.png")); pd9 = tk.getImage(cls.getResource("shuffle.png")); pd10 = tk.getImage(cls.getResource("vis.png")); pd11 = tk.getImage(cls.getResource("rep0.png")); pd12 = tk.getImage(cls.getResource("rep1.png")); pd13 = tk.getImage(cls.getResource("repa.png")); pd14 = tk.getImage(cls.getResource("javaamp.png")); pd15 = tk.getImage(cls.getResource("javaamp1.png")); pd16 = tk.getImage(cls.getResource("javaamp2.png")); mt.addImage(eqd1, 0); mt.addImage(eqd2, 1); mt.addImage(pd1, 2); mt.addImage(pd2, 3); mt.addImage(pd3, 4); mt.addImage(pd4, 5); mt.addImage(pd5, 6); mt.addImage(pd6, 7); mt.addImage(pd7, 8); mt.addImage(pd8, 9); mt.addImage(pd9, 10); mt.addImage(pd10, 11); mt.addImage(pd11, 12); mt.addImage(pd12, 13); mt.addImage(pd13, 14); mt.addImage(pd14, 15); mt.addImage(pd15, 16); mt.addImage(pd16, 17); } public final static boolean finishLoading() { try { mt.waitForAll(); } catch(Exception e) { return false; } return !mt.isErrorAny(); } } |