summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-05-08 19:39:07 +0000
committerJens Arnold <amiconn@rockbox.org>2005-05-08 19:39:07 +0000
commit68ffd8fd2f565927e298f9e29abbee23274ec258 (patch)
tree8a5f6c3546249c4c9a3bd4d7ace5fd03d0778de1
parentb0b12e685eb0d084684a9715c946cc762bc134d5 (diff)
downloadrockbox-68ffd8fd2f565927e298f9e29abbee23274ec258.tar.gz
rockbox-68ffd8fd2f565927e298f9e29abbee23274ec258.zip
Databox: Added crude print() function, and enabled building on all targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6442 a1c6a512-1295-4272-9138-f99709370657
-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 = .
# Subdirs containing multi-file plugins
#for all targets
-SUBDIRS += searchengine
+SUBDIRS += searchengine databox
#for any recorder and iRiver model
ifneq (,$(strip $(foreach tgt,RECORDER IRIVER,$(findstring $(tgt),$(TARGET)))))
- SUBDIRS += rockboy databox
+ SUBDIRS += rockboy
endif
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;
extern int acceptedmask;
void databox_init(void) {
+#ifdef HAVE_LCD_BITMAP
printing.fontfixed = rb->font_get(FONT_SYSFIXED);
rb->lcd_setfont(FONT_SYSFIXED);
printing.font_w = printing.fontfixed->maxwidth;
printing.font_h = printing.fontfixed->height;
+#endif
printing.line=0;
printing.position=0;
editor.editingmode = INVALID_MARK;
editor.token = tokenbuf;
}
+#ifdef HAVE_LCD_BITMAP
void print(char *word, int invert) {
int strlen=rb->strlen(word), newpos=printing.position+strlen+1;
if(newpos*printing.font_w>LCD_WIDTH) {
- printing.line++;
- printing.position=0;
- newpos=printing.position+strlen+1;
+ printing.line++;
+ printing.position=0;
+ newpos=printing.position+strlen+1;
}
rb->lcd_putsxy(printing.font_w*printing.position,printing.font_h*printing.line,word);
if(invert)
@@ -71,6 +74,27 @@ void print(char *word, int invert) {
rb->lcd_update_rect(printing.font_w*printing.position,printing.font_h*printing.line,printing.font_w*strlen,printing.font_h);
printing.position=newpos;
}
+#else /* HAVE_LCD_CHARCELLS */
+#define MARKER_LEFT 0x81
+#define MARKER_RIGHT 0x82
+void print(char *word, int invert) {
+ int strlen = rb->strlen(word);
+ int newpos = printing.position + strlen + (invert ? 3 : 1);
+ if (newpos > 11) {
+ printing.line++;
+ printing.position = 0;
+ newpos = printing.position + strlen + (invert ? 3 : 1);
+ }
+ if (invert) {
+ rb->lcd_putc(printing.position, printing.line, MARKER_LEFT);
+ rb->lcd_puts(printing.position + 1, printing.line, word);
+ rb->lcd_putc(printing.position + strlen + 1, printing.line, MARKER_RIGHT);
+ }
+ else
+ rb->lcd_puts(printing.position, printing.line, word);
+ printing.position = newpos;
+}
+#endif
void displaytstream(struct token *token) {
int index=0;
@@ -224,17 +248,21 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
check_accepted(editor.token,editor.currentindex);
editing.selecting=1;
buildchoices(acceptedmask);
- rb->memset(&editing.old_token,0,sizeof(struct token));
+ rb->memset(&editing.old_token,0,sizeof(struct token));
}
do {
+#ifdef HAVE_LCD_BITMAP
rb->lcd_setfont(FONT_SYSFIXED);
+#endif
rb->lcd_clear_display();
printing.line=0;
printing.position=0;
displaytstream(editor.token);
editor.valid=check_tokenstream(editor.token,editor.editingmode);
check_accepted(editor.token,editor.currentindex);
+#ifdef HAVE_LCD_BITMAP
rb->lcd_update();
+#endif
button = rb->button_get(true);
switch (button) {
case BUTTON_LEFT:
@@ -301,13 +329,17 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
default:
if (rb->default_event_handler(button) == SYS_USB_CONNECTED) {
+#ifdef HAVE_LCD_BITMAP
rb->lcd_setfont(FONT_UI);
+#endif
return PLUGIN_USB_CONNECTED;
}
break;
}
} while (!done);
+#ifdef HAVE_LCD_BITMAP
rb->lcd_setfont(FONT_UI);
+#endif
if(editor.valid&&editor.tokencount>0) {
if(writetstream(filename,editor.token)) {
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 @@
extern struct plugin_api* rb;
struct print {
+#ifdef HAVE_LCD_BITMAP
struct font *fontfixed;
int font_w,font_h;
+#endif
int line;
int position;
};