rendered paste bodystatic 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() );
}
}
}