summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/Makefile4
-rw-r--r--apps/plugins/databox/databox.c40
-rw-r--r--apps/plugins/databox/databox.h2
3 files changed, 40 insertions, 6 deletions
diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile
index a8dc01e4e7..fa0e8b8f74 100644
--- a/apps/plugins/Makefile
+++ b/apps/plugins/Makefile
@@ -39,11 +39,11 @@ DIRS = .
39# Subdirs containing multi-file plugins 39# Subdirs containing multi-file plugins
40 40
41#for all targets 41#for all targets
42SUBDIRS += searchengine 42SUBDIRS += searchengine databox
43 43
44#for any recorder and iRiver model 44#for any recorder and iRiver model
45ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET))))) 45ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET)))))
46 SUBDIRS += rockboy databox 46 SUBDIRS += rockboy
47endif 47endif
48 48
49 49
diff --git a/apps/plugins/databox/databox.c b/apps/plugins/databox/databox.c
index a6de483063..86761cf149 100644
--- a/apps/plugins/databox/databox.c
+++ b/apps/plugins/databox/databox.c
@@ -48,22 +48,25 @@ struct editing editing;
48extern int acceptedmask; 48extern int acceptedmask;
49 49
50void databox_init(void) { 50void databox_init(void) {
51#ifdef HAVE_LCD_BITMAP
51 printing.fontfixed = rb->font_get(FONT_SYSFIXED); 52 printing.fontfixed = rb->font_get(FONT_SYSFIXED);
52 rb->lcd_setfont(FONT_SYSFIXED); 53 rb->lcd_setfont(FONT_SYSFIXED);
53 printing.font_w = printing.fontfixed->maxwidth; 54 printing.font_w = printing.fontfixed->maxwidth;
54 printing.font_h = printing.fontfixed->height; 55 printing.font_h = printing.fontfixed->height;
56#endif
55 printing.line=0; 57 printing.line=0;
56 printing.position=0; 58 printing.position=0;
57 editor.editingmode = INVALID_MARK; 59 editor.editingmode = INVALID_MARK;
58 editor.token = tokenbuf; 60 editor.token = tokenbuf;
59} 61}
60 62
63#ifdef HAVE_LCD_BITMAP
61void print(char *word, int invert) { 64void print(char *word, int invert) {
62 int strlen=rb->strlen(word), newpos=printing.position+strlen+1; 65 int strlen=rb->strlen(word), newpos=printing.position+strlen+1;
63 if(newpos*printing.font_w>LCD_WIDTH) { 66 if(newpos*printing.font_w>LCD_WIDTH) {
64 printing.line++; 67 printing.line++;
65 printing.position=0; 68 printing.position=0;
66 newpos=printing.position+strlen+1; 69 newpos=printing.position+strlen+1;
67 } 70 }
68 rb->lcd_putsxy(printing.font_w*printing.position,printing.font_h*printing.line,word); 71 rb->lcd_putsxy(printing.font_w*printing.position,printing.font_h*printing.line,word);
69 if(invert) 72 if(invert)
@@ -71,6 +74,27 @@ void print(char *word, int invert) {
71 rb->lcd_update_rect(printing.font_w*printing.position,printing.font_h*printing.line,printing.font_w*strlen,printing.font_h); 74 rb->lcd_update_rect(printing.font_w*printing.position,printing.font_h*printing.line,printing.font_w*strlen,printing.font_h);
72 printing.position=newpos; 75 printing.position=newpos;
73} 76}
77#else /* HAVE_LCD_CHARCELLS */
78#define MARKER_LEFT 0x81
79#define MARKER_RIGHT 0x82
80void print(char *word, int invert) {
81 int strlen = rb->strlen(word);
82 int newpos = printing.position + strlen + (invert ? 3 : 1);
83 if (newpos > 11) {
84 printing.line++;
85 printing.position = 0;
86 newpos = printing.position + strlen + (invert ? 3 : 1);
87 }
88 if (invert) {
89 rb->lcd_putc(printing.position, printing.line, MARKER_LEFT);
90 rb->lcd_puts(printing.position + 1, printing.line, word);
91 rb->lcd_putc(printing.position + strlen + 1, printing.line, MARKER_RIGHT);
92 }
93 else
94 rb->lcd_puts(printing.position, printing.line, word);
95 printing.position = newpos;
96}
97#endif
74 98
75void displaytstream(struct token *token) { 99void displaytstream(struct token *token) {
76 int index=0; 100 int index=0;
@@ -224,17 +248,21 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
224 check_accepted(editor.token,editor.currentindex); 248 check_accepted(editor.token,editor.currentindex);
225 editing.selecting=1; 249 editing.selecting=1;
226 buildchoices(acceptedmask); 250 buildchoices(acceptedmask);
227 rb->memset(&editing.old_token,0,sizeof(struct token)); 251 rb->memset(&editing.old_token,0,sizeof(struct token));
228 } 252 }
229 do { 253 do {
254#ifdef HAVE_LCD_BITMAP
230 rb->lcd_setfont(FONT_SYSFIXED); 255 rb->lcd_setfont(FONT_SYSFIXED);
256#endif
231 rb->lcd_clear_display(); 257 rb->lcd_clear_display();
232 printing.line=0; 258 printing.line=0;
233 printing.position=0; 259 printing.position=0;
234 displaytstream(editor.token); 260 displaytstream(editor.token);
235 editor.valid=check_tokenstream(editor.token,editor.editingmode); 261 editor.valid=check_tokenstream(editor.token,editor.editingmode);
236 check_accepted(editor.token,editor.currentindex); 262 check_accepted(editor.token,editor.currentindex);
263#ifdef HAVE_LCD_BITMAP
237 rb->lcd_update(); 264 rb->lcd_update();
265#endif
238 button = rb->button_get(true); 266 button = rb->button_get(true);
239 switch (button) { 267 switch (button) {
240 case BUTTON_LEFT: 268 case BUTTON_LEFT:
@@ -301,13 +329,17 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
301 329
302 default: 330 default:
303 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) { 331 if (rb->default_event_handler(button) == SYS_USB_CONNECTED) {
332#ifdef HAVE_LCD_BITMAP
304 rb->lcd_setfont(FONT_UI); 333 rb->lcd_setfont(FONT_UI);
334#endif
305 return PLUGIN_USB_CONNECTED; 335 return PLUGIN_USB_CONNECTED;
306 } 336 }
307 break; 337 break;
308 } 338 }
309 } while (!done); 339 } while (!done);
340#ifdef HAVE_LCD_BITMAP
310 rb->lcd_setfont(FONT_UI); 341 rb->lcd_setfont(FONT_UI);
342#endif
311 if(editor.valid&&editor.tokencount>0) { 343 if(editor.valid&&editor.tokencount>0) {
312 if(writetstream(filename,editor.token)) { 344 if(writetstream(filename,editor.token)) {
313 rb->splash(HZ*2,true,"Wrote file succesfully ^.^"); 345 rb->splash(HZ*2,true,"Wrote file succesfully ^.^");
diff --git a/apps/plugins/databox/databox.h b/apps/plugins/databox/databox.h
index ffbaf1d35d..49f5891fb9 100644
--- a/apps/plugins/databox/databox.h
+++ b/apps/plugins/databox/databox.h
@@ -29,8 +29,10 @@
29extern struct plugin_api* rb; 29extern struct plugin_api* rb;
30 30
31struct print { 31struct print {
32#ifdef HAVE_LCD_BITMAP
32 struct font *fontfixed; 33 struct font *fontfixed;
33 int font_w,font_h; 34 int font_w,font_h;
35#endif
34 int line; 36 int line;
35 int position; 37 int position;
36}; 38};