Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 381 → Rev 382

/DUBwise/trunk/j2me/src/DUBwiseSettings.java
17,10 → 17,9
implements org.ligi.ufo.DUBwiseDefinitions,DUBwiseUIDefinitions,org.ligi.ufo.DUBwiseLangDefs
{
// name/handle for the recordStore to memorize some stuff
private final static String RECORD_STORE_NAME="DUBSETT_V4";
private final static String RECORD_STORE_NAME="DUBSETT_V5";
 
/* all settings hold here */
//holds id of actual skin
public byte act_skin=SKINID_DARK;
 
public int key_back;
29,42 → 28,40
 
public int voice_delay;
public int voice_volume;
 
 
public byte graph_interval=1;
 
 
public byte graph_interval;
public int remote_cam_stick;
 
public String connection_name="";
public String connection_url="";
 
public boolean do_vibra=true;
public boolean do_sound=true;
public boolean do_volts_sound=true;
public boolean do_altimeter_sound=true;
public boolean do_vibra;
public boolean do_sound;
public boolean do_volts_sound;
public boolean do_altimeter_sound;
 
public boolean big_fonts;
 
public byte altsteps;
 
public boolean horizon_invert_nick=true;
public boolean horizon_invert_roll=true;
public boolean horizon_display_altitude=true;
public boolean horizon_display_flytime=true;
public boolean horizon_invert_nick;
public boolean horizon_invert_roll;
public boolean horizon_display_altitude;
public boolean horizon_display_flytime;
 
public boolean fullscreen=false;
public boolean do_scrollbg=false;
public boolean expert_mode=false;
public boolean dev_mode=false;
public boolean fullscreen;
public boolean do_scrollbg;
public boolean expert_mode;
public boolean dev_mode;
public boolean betatester_mode;
 
public boolean reload_settings;
public boolean instant_error_show;
 
 
public boolean reload_settings=false;
public boolean instant_error_show=false;
 
public boolean graph_legend;
public boolean graph_scale;
 
 
 
 
//#if devicecontrol=="on"
public boolean keep_lighton=false;
//#endif
73,26 → 70,9
int[] act_conn_ip=default_ip; // { ip , ip , ip , ip , port }
 
 
// public byte gps_format=GPS_FORMAT_DECIMAL;
// public byte speed_format=SPEED_FORMAT_KMH;
/* end of all settings hold here */
 
 
int[] settings_field;
 
public int get_field_from_act(int pos) { return settings_field[pos];}
public void set_field_from_act(int pos,int val){
 
settings_field[pos]=val;
field2setting(pos,val);
}
 
public void toggle_fullscreen()
{
// fullscreen=!fullscreen;
set_field_from_act(1,settings_field[1]^1);
// if (fullscreen)canvas.setFullScreenMode(true);
}
 
public final static int SETTINGS_POS_SKIN =0;
public final static int SETTINGS_POS_BITFIELD1 =1;
public final static int SETTINGS_POS_GPS_FORMAT =2;
112,9 → 92,42
public final static int SETTINGS_POS_GRAPHINTERVAL =16;
public final static int SETTINGS_POS_BITFIELD3 =17;
public final static int SETTINGS_POS_ALTSTEPS =18;
public final static int SETTINGS_POS_CAMSTICK =19;
 
public final static int SETTINGS_POS_PRIMARYABO =20;
public final static int SETTINGS_POS_SECONDARYABO =21;
public final static int SETTINGS_POS_DEFAULTABO =22;
public final static int SETTINGS_FIELD_LENGTH =23;
 
 
 
int[] settings_field;
 
public int get_field_from_act(int pos) { return settings_field[pos];}
public void set_field_from_act(int pos,int val){
 
settings_field[pos]=val;
field2setting(pos,val);
}
 
public void toggle_fullscreen()
{
// fullscreen=!fullscreen;
set_field_from_act(1,settings_field[1]^1);
// if (fullscreen)canvas.setFullScreenMode(true);
}
 
public void set_betatester()
{
settings_field[SETTINGS_POS_BITFIELD3]|=2;
}
 
public void field2setting(int pos,int val)
{
try {
boolean new_fullscreen=fullscreen;
boolean new_do_scrollbg=do_scrollbg;
 
switch (pos)
{
case SETTINGS_POS_ALTSTEPS:
127,148 → 140,133
graph_interval=(byte)val;
break;
 
}
 
if (pos==SETTINGS_POS_LANG)
{
canvas.act_lang=(byte)val;
canvas.load_strings();
}
case SETTINGS_POS_BITFIELD1:
new_fullscreen=((val&1)!=0);
new_do_scrollbg=((val&2)!=0);
 
do_sound=((val&4)!=0);
do_vibra=((val&8)!=0);
expert_mode=((val&16)!=0);
//#if devicecontrol=="on"
keep_lighton=((val&32)!=0);
//#endif
graph_legend=((val&64)!=0);
graph_scale=((val&128)!=0);
 
if (pos==SETTINGS_POS_SKIN)
{
act_skin=(byte)val;
canvas.load_skin_images();
}
break;
 
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&1)==1)&&(!fullscreen))
{
fullscreen=true;
canvas.setFullScreenMode(fullscreen);
}
case SETTINGS_POS_BITFIELD2:
do_volts_sound=((val&1)!=0);
reload_settings=((val&2)!=0);
do_altimeter_sound=((val&4)!=0);
horizon_invert_roll=((val&8)!=0);
horizon_invert_nick=((val&16)!=0);
horizon_display_flytime=((val&32)!=0);
horizon_display_altitude=((val&64)!=0);
dev_mode=((val&128)!=0);
break;
 
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&1)==0)&&(fullscreen))
{
fullscreen=false;
canvas.setFullScreenMode(fullscreen);
}
case SETTINGS_POS_BITFIELD3:
instant_error_show=((val&1)!=0);
betatester_mode=((val&2)!=0);
big_fonts=((val&4)!=0);
canvas.regenerate_fonts=true;
break;
 
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&2)==2)&&(!do_scrollbg))
{
do_scrollbg=true;
canvas.load_skin_images();
}
case SETTINGS_POS_GPS_FORMAT:
canvas.mk.gps_position.act_gps_format=(byte)val;
break;
case SETTINGS_POS_SPEED_FORMAT:
canvas.mk.gps_position.act_speed_format=(byte)val;
break;
case SETTINGS_POS_EXTERN_NICK:
default_extern_control[EXTERN_CONTROL_NICK]=(byte)val;
break;
case SETTINGS_POS_EXTERN_ROLL:
default_extern_control[EXTERN_CONTROL_ROLL]=(byte)val;
break;
case SETTINGS_POS_EXTERN_GIER:
default_extern_control[EXTERN_CONTROL_GIER]=(byte)val;
break;
case SETTINGS_POS_EXTERN_GAS:
default_extern_control[EXTERN_CONTROL_GAS]=(byte)val;
break;
case SETTINGS_POS_EXTERN_HIGHT:
default_extern_control[EXTERN_CONTROL_HIGHT]=(byte)val;
break;
 
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&2)==0)&&(do_scrollbg))
{
do_scrollbg=false;
canvas.load_skin_images();
}
case SETTINGS_POS_KEY_BACK:
key_back=val;
break;
case SETTINGS_POS_KEY_FULL:
key_fullscreen=val;
break;
case SETTINGS_POS_KEY_CLEAR:
key_clear=val;
break;
case SETTINGS_POS_CAMSTICK:
remote_cam_stick=val;
break;
 
if (pos==SETTINGS_POS_BITFIELD1)
do_sound=((val&4)!=0);
case SETTINGS_POS_LANG:
canvas.act_lang=(byte)val;
canvas.load_strings();
break;
 
if (pos==SETTINGS_POS_BITFIELD1)
do_vibra=((val&8)!=0);
case SETTINGS_POS_SKIN:
act_skin=(byte)val;
canvas.load_skin_images();
break;
 
if (pos==SETTINGS_POS_BITFIELD1)
expert_mode=((val&16)!=0);
 
if (pos==SETTINGS_POS_BITFIELD1)
keep_lighton=((val&32)!=0);
 
if (pos==SETTINGS_POS_BITFIELD1)
graph_legend=((val&64)!=0);
 
if (pos==SETTINGS_POS_BITFIELD1)
graph_scale=((val&128)!=0);
 
 
 
if (pos==SETTINGS_POS_GPS_FORMAT)
canvas.mk.gps_position.act_gps_format=(byte)val;
 
if (pos==SETTINGS_POS_SPEED_FORMAT)
canvas.mk.gps_position.act_speed_format=(byte)val;
 
if (pos==SETTINGS_POS_EXTERN_NICK)
default_extern_control[EXTERN_CONTROL_NICK]=(byte)val;
 
if (pos==SETTINGS_POS_EXTERN_ROLL)
default_extern_control[EXTERN_CONTROL_ROLL]=(byte)val;
 
if (pos==SETTINGS_POS_EXTERN_GIER)
default_extern_control[EXTERN_CONTROL_GIER]=(byte)val;
 
if (pos==SETTINGS_POS_EXTERN_GAS)
default_extern_control[EXTERN_CONTROL_GAS]=(byte)val;
 
if (pos==SETTINGS_POS_EXTERN_HIGHT)
default_extern_control[EXTERN_CONTROL_HIGHT]=(byte)val;
 
 
if (pos==SETTINGS_POS_KEY_BACK)
key_back=val;
 
if (pos==SETTINGS_POS_KEY_FULL)
key_fullscreen=val;
 
if (pos==SETTINGS_POS_KEY_CLEAR)
key_clear=val;
 
if (pos==12)
remote_cam_stick=val;
 
 
if(pos==SETTINGS_POS_VOICEVOLUME)
{
voice_volume=val;
case SETTINGS_POS_VOICEVOLUME:
voice_volume=val;
//#if voice_mode!="no_voice"
canvas.status_voice.volume=voice_volume;
canvas.status_voice.volume=voice_volume;
//#endif
}
if(pos==SETTINGS_POS_VOICEDELAY)
{
voice_delay=val;
break;
case SETTINGS_POS_VOICEDELAY:
voice_delay=val;
//#if voice_mode!="no_voice"
canvas.status_voice.delay=voice_delay;
canvas.status_voice.delay=voice_delay;
//#endif
}
break;
 
if (pos==SETTINGS_POS_BITFIELD2)
do_volts_sound=((val&1)!=0);
 
if (pos==SETTINGS_POS_BITFIELD2)
reload_settings=((val&2)!=0);
case SETTINGS_POS_PRIMARYABO:
canvas.mk.primary_abo=val;
break;
case SETTINGS_POS_SECONDARYABO:
canvas.mk.secondary_abo=val;
break;
case SETTINGS_POS_DEFAULTABO:
canvas.mk.default_abo=val;
break;
 
if (pos==SETTINGS_POS_BITFIELD2)
do_altimeter_sound=((val&4)!=0);
}
 
if (new_fullscreen!=fullscreen)
{
fullscreen=new_fullscreen;
canvas.setFullScreenMode(fullscreen);
}
 
if (pos==SETTINGS_POS_BITFIELD2)
horizon_invert_roll=((val&8)!=0);
 
if (pos==SETTINGS_POS_BITFIELD2)
horizon_invert_nick=((val&16)!=0);
if (new_do_scrollbg!=do_scrollbg)
{
do_scrollbg=new_do_scrollbg;
canvas.load_skin_images();
}
 
if (pos==SETTINGS_POS_BITFIELD2)
horizon_display_flytime=((val&32)!=0);
 
if (pos==SETTINGS_POS_BITFIELD2)
horizon_display_altitude=((val&64)!=0);
 
if (pos==SETTINGS_POS_BITFIELD2)
dev_mode=((val&128)!=0);
 
 
if (pos==SETTINGS_POS_BITFIELD3)
instant_error_show=((val&1)!=0);
 
/*
/* snippet to extract default fields
String ts="";
for ( int i=0;i<SETTINGS_FIELD_LENGTH;i++)
ts+=","+settings_field[i];
275,15 → 273,15
 
System.out.println(ts);
*/
}
catch (Exception e) { }
 
 
}
 
public int[] plain_defaults={0,0,0,0,42,42,42,1,1,-4242,-4242,-4242,0,10,0,0,7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
public int[] fancy_defaults={0,255,0,0,42,42,42,1,1,-4242,-4242,-4242,150,10,5,0,7,1,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
public int[] plain_defaults={0,0,0,0,42,42,42,1,1,-4242,-4242,-4242,0,10,0,0,7,0,7,0,10,30,1000};
public int[] fancy_defaults={0,255,0,0,42,42,42,1,1,-4242,-4242,-4242,150,10,5,0,7,1,10,0,1,3,100};
 
 
 
public void process_all_settings()
{
for ( int i=0;i<SETTINGS_FIELD_LENGTH;i++)
305,14 → 303,9
public byte[] default_extern_control;//=default_extern_keycontrol ;
 
 
/* end of all settings hold here */
public int[] _tab_stringids={STRINGID_USERINTERFACE,STRINGID_UNITS,STRINGID_KEYCONTROL,STRINGID_SPECIALKEYS,STRINGID_GRAPH,STRINGID_SOUND,STRINGID_COCKPIT,STRINGID_TIMING,STRINGID_OTHER};
 
// public String[] _tab_names={"User Interface","GPS","Keycontrol","Special Keys","Graph","Voice","Other" };
 
 
public int[] _tab_stringids={STRINGID_USERINTERFACE,STRINGID_UNITS,STRINGID_KEYCONTROL,STRINGID_SPECIALKEYS,STRINGID_GRAPH,STRINGID_SOUND,STRINGID_COCKPIT,STRINGID_OTHER};
 
 
public int[][] _field_stringids ={
{
STRINGID_LANGUAGE,
319,9 → 312,10
STRINGID_SKIN,
STRINGID_FULLSCREEN,
STRINGID_SCROLLBG
//#if devicecontrol=="on"
//#if devicecontrol=="on"
,STRINGID_PERMALIGHT
//#endif
//#endif
,STRINGID_BIGFONTS
},
{STRINGID_SPEEDFORMAT,STRINGID_GPSFORMAT},
{STRINGID_NICK ,STRINGID_ROLL,STRINGID_GIER,STRINGID_GASINCREASE,STRINGID_HEIGHTINCREASE },
329,12 → 323,13
{STRINGID_LEGEND,STRINGID_SCALEGRID,STRINGID_GRAPHINTERVAL},
{STRINGID_SOUND,STRINGID_VOLTS,STRINGID_DELAYINS,STRINGID_ALTIMETER,STRINGID_ALTSTEPS,STRINGID_VOLUME},
{STRINGID_SHOWALTITUDE,STRINGID_SHOWFLIGHTTIME,STRINGID_INVERTROLL,STRINGID_INVERTNICK},
{STRINGID_PRIMARYABO,STRINGID_SECONDARYABO,STRINGID_DEFAULTABO}, ////
{STRINGID_INSTANTERRORSHOW,STRINGID_VIBRA,STRINGID_REMOTECAMSTICK,STRINGID_ALWAYSRELOADPARAMS,STRINGID_EXPERTMODE,STRINGID_DEVMODE}};
 
 
 
 
public int[][] _choice_stringids={ {STRINGID_LANG0,STRINGID_LANG1}, /* FIXME - make dynamic */{ STRINGID_DARK,STRINGID_LIGHT } , {STRINGID_KMH,STRINGID_MPH,STRINGID_CMS},{STRINGID_DECIMAL,STRINGID_MINSEC} } ;
public int[][] _choice_stringids={ {STRINGID_LANG0,STRINGID_LANG1,STRINGID_LANG2}, /* FIXME - make dynamic */{ STRINGID_DARK,STRINGID_LIGHT } , {STRINGID_KMH,STRINGID_MPH,STRINGID_CMS},{STRINGID_DECIMAL,STRINGID_MINSEC} } ;
 
 
 
341,28 → 336,30
public int[][] _field_positions= {
{SETTINGS_POS_LANG,SETTINGS_POS_SKIN,8,9
//#if devicecontrol=="on"
 
,13
//#endif
} , {2,3 } , {4,5,6,7,8} , {9,10,11},{SETTINGS_POS_BITFIELD1*8 +6,SETTINGS_POS_BITFIELD1*8 +7, SETTINGS_POS_GRAPHINTERVAL} ,
{10,SETTINGS_POS_BITFIELD2*8+0,SETTINGS_POS_VOICEDELAY,SETTINGS_POS_BITFIELD2*8+2,SETTINGS_POS_ALTSTEPS,SETTINGS_POS_VOICEVOLUME },
, SETTINGS_POS_BITFIELD3*8+2
} , {2,3} , {4,5,6,7,8} , {9,10,11},{SETTINGS_POS_BITFIELD1*8 +6,SETTINGS_POS_BITFIELD1*8 +7, SETTINGS_POS_GRAPHINTERVAL} ,
{SETTINGS_POS_BITFIELD1*8+2,SETTINGS_POS_BITFIELD2*8+0,SETTINGS_POS_VOICEDELAY,SETTINGS_POS_BITFIELD2*8+2,SETTINGS_POS_ALTSTEPS,SETTINGS_POS_VOICEVOLUME },
{SETTINGS_POS_BITFIELD2*8+6,SETTINGS_POS_BITFIELD2*8+5,SETTINGS_POS_BITFIELD2*8+3,SETTINGS_POS_BITFIELD2*8+4},
{SETTINGS_POS_BITFIELD3*8+0,SETTINGS_POS_BITFIELD1*8+3,12,SETTINGS_POS_BITFIELD2*8+1,SETTINGS_POS_BITFIELD1*8+4,SETTINGS_POS_BITFIELD2*8+7}
 
{SETTINGS_POS_PRIMARYABO,SETTINGS_POS_SECONDARYABO,SETTINGS_POS_DEFAULTABO},
{SETTINGS_POS_BITFIELD3*8+0,SETTINGS_POS_BITFIELD1*8+3,SETTINGS_POS_CAMSTICK,SETTINGS_POS_BITFIELD2*8+1,SETTINGS_POS_BITFIELD1*8+4,SETTINGS_POS_BITFIELD2*8+7}
};
public int[][] _field_types={ {PARAMTYPE_CHOICE+0,PARAMTYPE_CHOICE+1,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH
//#if devicecontrol=="on"
,PARAMTYPE_BITSWITCH
//#endif
,PARAMTYPE_BITSWITCH
} , {PARAMTYPE_CHOICE+2,PARAMTYPE_CHOICE+3} , {PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE}, {PARAMTYPE_KEY,PARAMTYPE_KEY,PARAMTYPE_KEY} , {PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BYTE},
{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BYTE,PARAMTYPE_BITSWITCH,PARAMTYPE_BYTE,PARAMTYPE_BYTE} ,
{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH},
{PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE},
{PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_STICK,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH}
};
DUBwiseCanvas canvas;
 
 
 
public final static int SETTINGS_FIELD_LENGTH=42;
public DUBwiseSettings(DUBwiseCanvas _canvas)
{
canvas= _canvas;
369,16 → 366,7
settings_field=new int[SETTINGS_FIELD_LENGTH];
default_extern_control=new byte[11];
// set defaults
settings_field[4]=42; // nick
settings_field[5]=42; // roll
settings_field[6]=42; // gier
settings_field[7]=1; // gas
settings_field[8]=1; // hight
 
settings_field[9]=-4242; // no key
settings_field[10]=-4242; // no key
settings_field[11]=-4242; // no key
 
settings_field=plain_defaults;
}
public void load()
385,8 → 373,6
{
tab_stringids=_tab_stringids;
 
// tab_names=_tab_names;
 
field_positions=_field_positions;
field_types=_field_types;
 
393,44 → 379,34
choice_stringids=_choice_stringids;
 
field_stringids=_field_stringids;
//choice_strings=new String[_choice_strings.length+1][];
/*
// FIXME
choice_strings[0]=new String[2];
choice_strings[0][0]="English";
choice_strings[0][1]="Deutsch";
for ( int i=1; i<_choice_strings.length+1;i++)
{
choice_strings[i]=new String[_choice_strings[i-1].length+1];
for ( int ii=0; ii<_choice_strings[i-1].length;ii++)
choice_strings[i][ii]=canvas.l(_choice_strings[i-1][ii]);
}
*/
// choice_strings=_choice_strings;
try
{
RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true );
RecordStore recStore= RecordStore.openRecordStore(RECORD_STORE_NAME, false);
 
if (recStore.getNumRecords()==1)
{
ByteArrayInputStream bin = new ByteArrayInputStream(recStore.getRecord(1));
DataInputStream din = new DataInputStream( bin );
 
DataInputStream din = new DataInputStream( new ByteArrayInputStream(recStore.getRecord(1)) );
 
connection_url=din.readUTF();
connection_name=din.readUTF();
// reserve utf's
din.readUTF();
din.readUTF();
din.readUTF();
byte str_count=din.readByte();
for (int str_i=0;str_i<str_count;str_i++)
switch(str_i)
{
case 0:
connection_url=din.readUTF();
break;
case 1:
connection_name=din.readUTF();
break;
}
 
byte field_count=din.readByte();
for (int field_i=0;field_i<field_count;field_i++)
settings_field[field_i]=din.readInt();
 
 
for ( int i=0;i<SETTINGS_FIELD_LENGTH;i++)
settings_field[i]=din.readInt();
 
for ( int i=0;i<5;i++)
 
{
act_proxy_ip[i]=din.readInt();
act_conn_ip[i]=din.readInt();
464,16 → 440,14
ByteArrayOutputStream bout = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream( bout );
 
dout.writeByte(2);
dout.writeUTF(connection_url);
dout.writeUTF(connection_name);
 
dout.writeUTF("");
dout.writeUTF("");
dout.writeUTF("");
 
 
dout.writeByte(SETTINGS_FIELD_LENGTH);
for ( int i=0;i<SETTINGS_FIELD_LENGTH;i++)
dout.writeInt(settings_field[i]);
 
for ( int i=0;i<5;i++)
{
dout.writeInt(act_proxy_ip[i]);