static Player[] sound_players; static Player sound_player; final static byte sound_menu = 0; final static byte sound_finish = 1; final static byte sound_start1 = 2; final static byte sound_start2 = 3; final static byte sound_game = 4; final static byte sound_zipper = 5; static void sound_init() { try { sound_players = new Player[ 6 ]; sound_init_player( sound_menu, "meny"); sound_init_player( sound_finish, "finish"); sound_init_player( sound_start1, "start1-3"); sound_init_player( sound_start2, "start4"); sound_init_player( sound_game, "track"); sound_init_player( sound_zipper, "zippers"); } catch( Exception e) { System.out.println(e.getMessage()); } } static void sound_init_player( byte id, String name ) { Player p = null; try { byte[] data; InputStream is = Std.open("/sound/"+name+".mid"); p = Manager.createPlayer(is, "audio/midi"); p.realize(); if( id == sound_menu || id == sound_game ) p.setLoopCount( -1 ); else p.setLoopCount( 1 ); sound_players[ id ] = p; } catch(Exception e) { Game.debug( "start:"+e.getMessage() ); } } static void sound_play( byte id ) { Player player; if(Std.sound_on) { try { player = sound_player; int state; if( player != null ) { player.stop(); state = player.getState(); if( state == Player.PREFETCHED || state == Player.STARTED ) player.deallocate(); } player = sound_players[ id ]; state = player.getState(); if( state == Player.PREFETCHED || state == Player.STARTED ) player.deallocate(); state = player.getState(); if( state == Player.REALIZED ) player.prefetch(); state = player.getState(); if( state == Player.PREFETCHED ) player.start(); sound_player = player; } catch(Exception e) { Game.debug( "play:"+e.getMessage() ); } } }