package org.newdawn.slick.tests; import org.newdawn.slick.AppGameContainer; import org.newdawn.slick.BasicGame; import org.newdawn.slick.GameContainer; import org.newdawn.slick.Graphics; import org.newdawn.slick.Input; import org.newdawn.slick.Music; import org.newdawn.slick.MusicListener; import org.newdawn.slick.SlickException; /** * A test for music listeners which notify you when the music has eneded * * @author kevin */ public class MusicListenerTest extends BasicGame implements MusicListener { /** True if we should display the music ended message */ private boolean musicEnded = false; /** True if we should display the music swapped message */ private boolean musicSwapped = false; /** The music to be played */ private Music music; /** The music to be streamed */ private Music stream; /** * Create a new test */ public MusicListenerTest() { super("Music Listener Test"); } /** * @see org.newdawn.slick.BasicGame#init(org.newdawn.slick.GameContainer) */ public void init(GameContainer container) throws SlickException { music = new Music("testdata/restart.ogg", false); stream = new Music("testdata/restart.ogg", false); music.addListener(this); stream.addListener(this); } /** * @see org.newdawn.slick.BasicGame#update(org.newdawn.slick.GameContainer, int) */ public void update(GameContainer container, int delta) throws SlickException { } /** * @see org.newdawn.slick.MusicListener#musicEnded(org.newdawn.slick.Music) */ public void musicEnded(Music music) { musicEnded = true; } /** * @see org.newdawn.slick.MusicListener#musicSwapped(org.newdawn.slick.Music, org.newdawn.slick.Music) */ public void musicSwapped(Music music, Music newMusic) { musicSwapped = true; } /** * @see org.newdawn.slick.Game#render(org.newdawn.slick.GameContainer, org.newdawn.slick.Graphics) */ public void render(GameContainer container, Graphics g) throws SlickException { g.drawString("Press M to play music", 100, 100); g.drawString("Press S to stream music", 100, 150); if (musicEnded) { g.drawString("Music Ended", 100, 200); } if (musicSwapped) { g.drawString("Music Swapped", 100, 250); } } /** * @see org.newdawn.slick.BasicGame#keyPressed(int, char) */ public void keyPressed(int key, char c) { if (key == Input.KEY_M) { musicEnded = false; musicSwapped = false; music.play(); } if (key == Input.KEY_S) { musicEnded = false; musicSwapped = false; stream.play(); } } /** * Entry point to the sound test * * @param argv The arguments provided to the test */ public static void main(String[] argv) { try { AppGameContainer container = new AppGameContainer(new MusicListenerTest()); container.setDisplayMode(800,600,false); container.start(); } catch (SlickException e) { e.printStackTrace(); } } }