11,6 → 11,8 |
import javax.microedition.lcdui.*; |
import javax.microedition.rms.*; |
|
import javax.microedition.media.*; |
import javax.microedition.media.control.*; |
|
public class MKMiniCanvas |
extends Canvas |
17,6 → 19,12 |
implements Runnable |
{ |
|
private boolean debug_screen=false; |
private byte[] debug_screen_sequence={KEY_POUND,KEY_NUM4,KEY_NUM2}; |
private byte debug_screen_sequence_pos=0; |
|
String debug_msg=""; |
|
// name/handle for the recordStore to memorize some stuff |
private final static String RECORD_STORE_NAME="DUBSETT"; |
|
32,6 → 40,8 |
private String err=""; |
private DUBwise root; |
|
private UFOProber ufo_prober; |
|
byte[] settings_arr; |
|
public boolean do_vibra=true; |
243,8 → 253,8 |
|
bt_scanner = new BTSearcher(); |
params_editor = new MKParamsEditor(this); |
ufo_prober = new UFOProber(); |
|
|
mk = new MKCommunicator(root); |
mk_stat= new MKStatistics(mk); |
|
470,6 → 480,29 |
|
// drawing section |
public void paint(Graphics g) { |
if (debug_screen) |
{ |
g.setColor(0x0000FF); |
g.fillRect(0,0,this.getWidth(),this.getHeight()); |
g.setColor(0xFFFFFF); |
String tmp_str=""; |
y_off=0; |
for(int tmp_i=0;tmp_i<debug_msg.length();tmp_i++) |
{ |
if ((debug_msg.charAt(tmp_i)=='\r')||(debug_msg.charAt(tmp_i)=='\n')) { |
g.drawString(tmp_str,0,y_off,Graphics.TOP | Graphics.LEFT); |
y_off+=g.getFont().getHeight(); |
tmp_str=""; |
} |
else |
tmp_str+=debug_msg.charAt(tmp_i); |
} |
g.drawString(tmp_str,0,y_off,Graphics.TOP | Graphics.LEFT); |
|
|
return; |
} |
|
if (firstrun) |
{ |
if (fullscreen) setFullScreenMode(fullscreen); |
617,6 → 650,8 |
|
|
case STATEID_MAINMENU: |
g.drawString("probed_device" + ufo_prober.probe_result + " by " + ufo_prober.reply,0,y_off,Graphics.TOP | Graphics.LEFT); |
y_off+=spacer; |
g.drawString("MK-Connection(" + (mk.connected?("open"+((System.currentTimeMillis()- mk.connection_start_time)/1000)+"s"):"close")+"):",0,y_off,Graphics.TOP | Graphics.LEFT); |
y_off+=spacer; |
g.setFont(f2); |
726,12 → 761,47 |
|
|
} catch (Exception e) {} |
g.setClip(0,0,this.getWidth(),this.getHeight()); |
g.drawImage(cam_img,-cam_img_off,-cam_img_off,g.TOP | g.LEFT); |
cam_img_off++; |
cam_img_off%=cam_img.getWidth(); |
} |
|
Player mPlayer; |
VideoControl mVideoControl; |
Image cam_img; |
int cam_img_off=0; |
private void connect_mk(String url,String name) |
{ |
mk.connect_to(url,name); |
// ufo_prober.bluetooth_probe(url); |
// mk.connect_to(url,name); |
try |
{ |
debug_msg+="creating player\n"; |
mPlayer = Manager.createPlayer("capture://video?encoding=png&width=2048&height=1536"); |
|
debug_msg+="realizing player\n"; |
mPlayer.realize(); |
|
debug_msg+="get_videocontrol\n"; |
|
mVideoControl = (VideoControl)mPlayer.getControl("VideoControl"); |
|
debug_msg+="switching Canvas\n"; |
mVideoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); |
|
|
debug_msg+="get snap\n"; |
byte[] raw = mVideoControl.getSnapshot(null); |
|
debug_msg+="making img\n"; |
cam_img = Image.createImage(raw, 0, raw.length); |
} |
catch ( Exception e) |
{ |
debug_msg+=e.toString(); |
} |
|
|
} |
|
public void draw_graph_part(Graphics g,int x,int y1,int y2) |
754,6 → 824,9 |
g.fillRect(x,line_middle_y-y2,1,y2-y1); |
} |
|
|
|
|
} |
|
|
926,7 → 999,47 |
|
public void keyPressed(int keyCode) |
{ |
if (keyCode==KEY_NUM0) |
{ |
try |
{ |
|
|
debug_msg+="get snap\n"; |
byte[] raw = mVideoControl.getSnapshot(null); |
|
debug_msg+="making img\n"; |
cam_img = Image.createImage(raw, 0, raw.length); |
|
|
} |
catch ( Exception e) |
{ |
debug_msg+=e.toString(); |
} |
|
} |
|
if (!debug_screen) |
{ |
if (keyCode==debug_screen_sequence[debug_screen_sequence_pos]) |
{ |
debug_screen_sequence_pos++; |
if(debug_screen_sequence_pos==debug_screen_sequence.length) |
{ |
debug_screen=true; |
debug_screen_sequence_pos=0; |
} |
} |
else |
debug_screen_sequence_pos=0; |
} |
else |
{ |
if (keyCode==KEY_STAR) |
debug_screen=false; |
} |
|
if (keyCode==KEY_STAR) |
{ |
if (state==STATEID_EDIT_PARAMS) |