Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 381 → Rev 382

/DUBwise/trunk/j2me/src/MKStatusVoice.java
6,6 → 6,8
*
*******************************************/
 
//public class MKStatusVoice {}
 
import javax.microedition.media.*;
import javax.microedition.media.control.*;
import java.util.*;
16,9 → 18,11
implements Runnable,PlayerListener
{
 
org.ligi.ufo.MKCommunicator mk=null;
DUBwiseCanvas canvas=null;
Player player;
 
Player up_player;
Player down_player;
public final int PLAYERSTATE_IDLE=0;
public final int PLAYERSTATE_PLAYING=1;
31,10 → 35,10
int act_player_state=PLAYERSTATE_IDLE;
VolumeControl vc;
 
public MKStatusVoice(org.ligi.ufo.MKCommunicator _mk,DUBwiseCanvas _canvas)
public MKStatusVoice(DUBwiseCanvas _canvas)
{
canvas=_canvas;
mk=_mk;
 
new Thread( this ).start(); // fire up main Thread
}
 
67,33 → 71,79
}
 
 
public void start_playing(String name)
public Player init_player(String name)
{
Player _player=null;
try {
try {
player = Manager.createPlayer(getClass().getResourceAsStream(name+".mp3"), "audio/mp3");
_player = Manager.createPlayer(getClass().getResourceAsStream(name+".mp3"), "audio/mp3");
}
catch (Exception e) {
player = Manager.createPlayer(getClass().getResourceAsStream(name+".wav"), "audio/x-wav");
_player = Manager.createPlayer(getClass().getResourceAsStream(name+".wav"), "audio/x-wav");
}
player.addPlayerListener(this);
player.realize();
act_player_state=PLAYERSTATE_PLAYING;
_player.addPlayerListener(this);
_player.realize();
 
vc = (VolumeControl) player.getControl("VolumeControl");
if(vc != null) {
vc.setLevel(volume);
}
 
player.prefetch();
player.setLoopCount(1);
player.start();
vc = (VolumeControl) _player.getControl("VolumeControl");
if(vc != null) {
vc.setLevel(volume);
}
_player.prefetch();
_player.setLoopCount(1);
_player.start();
}
catch (Exception e) {
}
return _player;
 
}
 
public void play_up()
{
 
try {
act_player_state=PLAYERSTATE_PLAYING;
if (up_player==null)
up_player=init_player("up");
 
 
up_player.start();
}
catch (Exception e) {
}
}
 
 
public void play_down()
{
 
try {
act_player_state=PLAYERSTATE_PLAYING;
if (down_player==null)
down_player=init_player("down");
down_player.start();
}
catch (Exception e) {
}
}
public void start_playing(String name)
{
 
try {
act_player_state=PLAYERSTATE_PLAYING;
player=init_player(name);
player.start();
}
catch (Exception e) {
}
}
public void wait_for_end()
{
109,23 → 159,33
int info_from_debug_set=-1;
int volt_timeout=0;
 
public int BASE_SLEEP=10;
 
public int last_alt=-1;
 
 
public int loop_cnt;
public int volts_play_cnt;
 
public void run()
{
while(true)
{
if (mk.connected&&(canvas.settings.do_sound)&&(mk.UBatt()!=-1)&&(!mk.force_disconnect))
loop_cnt++;
if ((canvas.mk!=null)&&(canvas.mk.connected)&&(canvas.settings.do_sound)&&(canvas.mk.UBatt()!=-1)&&(!canvas.mk.force_disconnect))
{
volt_timeout--;
if (info_from_debug_set!=mk.stats.debug_data_count)
if (info_from_debug_set!=canvas.mk.stats.debug_data_count)
{ // only when newdata
if (canvas.settings.do_volts_sound&&(volt_timeout--<0))
if (canvas.settings.do_volts_sound&&(volt_timeout<0))
{
volt_timeout=delay*10;
int ubatt=mk.UBatt();
info_from_debug_set=mk.stats.debug_data_count;
volts_play_cnt++;
 
volt_timeout=(delay*1000)/BASE_SLEEP;
int ubatt=canvas.mk.UBatt();
info_from_debug_set=canvas.mk.stats.debug_data_count;
start_playing(""+(ubatt/10));
wait_for_end();
144,19 → 204,21
 
if (canvas.settings.do_altimeter_sound)
{
if (last_alt==-1) last_alt=mk.Alt();
if (last_alt==-1) last_alt=canvas.mk.Alt();
 
if (last_alt>mk.Alt()+canvas.settings.altsteps)
if (last_alt>canvas.mk.Alt()+canvas.settings.altsteps)
{
start_playing("down");
// start_playing("down");
play_down();
wait_for_end();
last_alt-=canvas.settings.altsteps;
}
if (last_alt<mk.Alt()-canvas.settings.altsteps)
if (last_alt<canvas.mk.Alt()-canvas.settings.altsteps)
{
start_playing("up");
//start_playing("up");
play_up();
wait_for_end();
last_alt+=canvas.settings.altsteps;
}
168,13 → 230,13
}
 
try {
Thread.sleep(100);
/*
if (delay<1)
Thread.sleep(1000);
else
Thread.sleep(delay*1000);
*/
Thread.sleep(BASE_SLEEP);
//if (delay<1)
// Thread.sleep(1000);
//else
// Thread.sleep(delay*1000);
}
catch (Exception e) { }
184,3 → 246,4
 
}