0,0 → 1,352 |
/*************************************************************** |
* |
* Settings related Part of DUBwise |
* ( e.g. saving to / reading from RMS ) |
* |
* Author: Marcus -LiGi- Bueschleb |
* Mailto: LiGi @at@ LiGi DOTT de |
* |
***************************************************************/ |
|
import javax.microedition.rms.*; |
|
import java.io.*; |
|
public class DUBwiseSettings |
extends org.ligi.ufo.ParamsClass |
implements org.ligi.ufo.DUBwiseDefinitions,DUBwiseUIDefinitions |
{ |
// name/handle for the recordStore to memorize some stuff |
private final static String RECORD_STORE_NAME="DUBSETT_V4"; |
|
/* all settings hold here */ |
//holds id of actual skin |
public byte act_skin=SKINID_DARK; |
|
|
|
public int key_back; |
public int key_fullscreen; |
public int key_clear; |
|
public int voice_delay; |
public int voice_volume; |
|
|
|
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 fullscreen=false; |
public boolean do_scrollbg=false; |
public boolean expert_mode=false; |
|
public boolean reload_settings=false; |
|
|
public boolean graph_legend; |
public boolean graph_scale; |
|
//#if devicecontrol=="on" |
public boolean keep_lighton=false; |
//#endif |
|
int[] act_proxy_ip=default_ip; // { ip , ip , ip , ip , port } |
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; |
|
|
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; |
public final static int SETTINGS_POS_SPEED_FORMAT=3; |
public final static int SETTINGS_POS_EXTERN_NICK=4; |
public final static int SETTINGS_POS_EXTERN_ROLL=5; |
public final static int SETTINGS_POS_EXTERN_GIER=6; |
public final static int SETTINGS_POS_EXTERN_GAS=7; |
public final static int SETTINGS_POS_EXTERN_HIGHT=8; |
public final static int SETTINGS_POS_KEY_BACK=9; |
public final static int SETTINGS_POS_KEY_FULL=10; |
public final static int SETTINGS_POS_KEY_CLEAR=11; |
public final static int SETTINGS_POS_VOICEVOLUME=12; |
public final static int SETTINGS_POS_VOICEDELAY=13; |
public final static int SETTINGS_POS_BITFIELD2=14; |
|
|
public void field2setting(int pos,int val) |
{ |
|
if (pos==SETTINGS_POS_SKIN) |
{ |
act_skin=(byte)val; |
canvas.load_skin_images(); |
} |
|
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&1)==1)&&(!fullscreen)) |
{ |
fullscreen=true; |
canvas.setFullScreenMode(fullscreen); |
} |
|
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&1)==0)&&(fullscreen)) |
{ |
fullscreen=false; |
canvas.setFullScreenMode(fullscreen); |
} |
|
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&2)==2)&&(!do_scrollbg)) |
{ |
do_scrollbg=true; |
canvas.load_skin_images(); |
} |
|
if ((pos==SETTINGS_POS_BITFIELD1)&&((val&2)==0)&&(do_scrollbg)) |
{ |
do_scrollbg=false; |
canvas.load_skin_images(); |
} |
|
|
if (pos==SETTINGS_POS_BITFIELD1) |
do_sound=((val&4)!=0); |
|
if (pos==SETTINGS_POS_BITFIELD1) |
do_vibra=((val&8)!=0); |
|
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) |
gps_format=(byte)val; |
|
if (pos==SETTINGS_POS_SPEED_FORMAT) |
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; |
//#if voice_mode!="no_voice" |
canvas.status_voice.volume=voice_volume; |
|
//#endif |
} |
if(pos==SETTINGS_POS_VOICEDELAY) |
{ |
voice_delay=val; |
//#if voice_mode!="no_voice" |
canvas.status_voice.delay=voice_delay; |
|
//#endif |
} |
|
if (pos==SETTINGS_POS_BITFIELD2) |
do_sound=((val&1)!=0); // TODO: FIXME - extra var |
|
if (pos==SETTINGS_POS_BITFIELD2) |
reload_settings=((val&2)!=0); |
} |
|
|
public byte[] default_extern_control;//=default_extern_keycontrol ; |
|
|
/* end of all settings hold here */ |
|
public String[] _tab_names={"User Interface","GPS","Keycontrol","Special Keys","Graph","Voice","Other" }; |
|
public String[][] _field_names={ { "Skin","Fullscreen","Scroll Background" |
//#if devicecontrol=="on" |
,"Permanent Light" |
//#endif |
} , {"GPS Format","Speed Format"},{"Nick","Roll","Gier","Gas Increase","Height Increase"},{"Back to Main-Menu","Fullscreen","Clear"},{"Legend","Scale-Grid"},{"Volts Output","Delay in Seconds","Volume"},{"Sound","Vibra","Remote Cam Stick","Always Reload Params","Expert-Mode"} }; |
|
public String[][] _choice_strings={ { "Dark","Light" } , {"km/h","mp/h","cm/s"},{"decimal","min sec"}} ; |
public int[][] _field_positions={ {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_BITFIELD2*8+0,SETTINGS_POS_VOICEDELAY,SETTINGS_POS_VOICEVOLUME }, {10,11,12,SETTINGS_POS_BITFIELD2*8+1,12}}; |
public int[][] _field_types={ {PARAMTYPE_CHOICE+0,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH |
//#if devicecontrol=="on" |
,PARAMTYPE_BITSWITCH |
//#endif |
} , {PARAMTYPE_CHOICE+1,PARAMTYPE_CHOICE+2} , {PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE,PARAMTYPE_BYTE}, {PARAMTYPE_KEY,PARAMTYPE_KEY,PARAMTYPE_KEY} , {PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH}, {PARAMTYPE_BITSWITCH,PARAMTYPE_BYTE,PARAMTYPE_BYTE}, {PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH,PARAMTYPE_STICK,PARAMTYPE_BITSWITCH,PARAMTYPE_BITSWITCH}}; |
DUBwiseCanvas canvas; |
|
|
|
public final static int SETTINGS_FIELD_LENGTH=42; |
public DUBwiseSettings(DUBwiseCanvas _canvas) |
{ |
canvas= _canvas; |
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; // fas |
settings_field[8]=1; // hight |
|
|
settings_field[9]=-4242; // no key |
settings_field[10]=-4242; // no key |
settings_field[11]=-4242; // no key |
|
} |
|
public void load() |
{ |
|
tab_names=_tab_names; |
field_names=_field_names; |
field_positions=_field_positions; |
field_types=_field_types; |
choice_strings=_choice_strings; |
try |
{ |
RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME , true ); |
|
if (recStore.getNumRecords()==1) |
{ |
ByteArrayInputStream bin = new ByteArrayInputStream(recStore.getRecord(1)); |
DataInputStream din = new DataInputStream( bin ); |
|
|
connection_url=din.readUTF(); |
connection_name=din.readUTF(); |
// reserve utf's |
din.readUTF(); |
din.readUTF(); |
din.readUTF(); |
|
|
|
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(); |
} |
|
} |
recStore.closeRecordStore(); |
} |
catch (Exception e) |
{ } |
|
|
for ( int i=0;i<SETTINGS_FIELD_LENGTH;i++) |
field2setting(i,settings_field[i]); |
|
} |
|
|
public void save() |
{ |
try |
{ |
RecordStore.deleteRecordStore(RECORD_STORE_NAME); |
} |
catch (Exception e) |
{ } |
|
try { |
RecordStore recStore = RecordStore.openRecordStore(RECORD_STORE_NAME, true ); |
|
ByteArrayOutputStream bout = new ByteArrayOutputStream(); |
DataOutputStream dout = new DataOutputStream( bout ); |
|
dout.writeUTF(connection_url); |
dout.writeUTF(connection_name); |
|
dout.writeUTF(""); |
dout.writeUTF(""); |
dout.writeUTF(""); |
|
|
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]); |
dout.writeInt(act_conn_ip[i]); |
} |
recStore.addRecord(bout.toByteArray(),0,bout.size()); |
|
recStore.closeRecordStore(); |
|
|
} |
catch (Exception e) |
{ } |
|
} |
|
} |