diff options
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/Makefile | 4 | ||||
-rw-r--r-- | apps/plugins/databox/databox.c | 40 | ||||
-rw-r--r-- | apps/plugins/databox/databox.h | 2 |
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 |
42 | SUBDIRS += searchengine | 42 | SUBDIRS += searchengine databox |
43 | 43 | ||
44 | #for any recorder and iRiver model | 44 | #for any recorder and iRiver model |
45 | ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET))))) | 45 | ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET))))) |
46 | SUBDIRS += rockboy databox | 46 | SUBDIRS += rockboy |
47 | endif | 47 | endif |
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; | |||
48 | extern int acceptedmask; | 48 | extern int acceptedmask; |
49 | 49 | ||
50 | void databox_init(void) { | 50 | void 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 | ||
61 | void print(char *word, int invert) { | 64 | void 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 | ||
80 | void 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 | ||
75 | void displaytstream(struct token *token) { | 99 | void 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 @@ | |||
29 | extern struct plugin_api* rb; | 29 | extern struct plugin_api* rb; |
30 | 30 | ||
31 | struct print { | 31 | struct 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 | }; |