diff options
Diffstat (limited to 'apps/plugins/lib')
34 files changed, 244 insertions, 357 deletions
diff --git a/apps/plugins/lib/checkbox.c b/apps/plugins/lib/checkbox.c index fc3a5e1..221137b 100644 --- a/apps/plugins/lib/checkbox.c +++ b/apps/plugins/lib/checkbox.c @@ -27,19 +27,19 @@ /* * Print a checkbox */ -void checkbox(const struct plugin_api *api, int x, int y, int width, int height, bool checked) +void checkbox(int x, int y, int width, int height, bool checked) { /* draw box */ - api->lcd_drawrect(x, y, width, height); + rb->lcd_drawrect(x, y, width, height); /* clear inner area */ - api->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - api->lcd_fillrect(x + 1, y + 1, width - 2, height - 2); - api->lcd_set_drawmode(DRMODE_SOLID); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(x + 1, y + 1, width - 2, height - 2); + rb->lcd_set_drawmode(DRMODE_SOLID); if (checked){ - api->lcd_drawline(x + 2, y + 2, x + width - 2 - 1 , y + height - 2 - 1); - api->lcd_drawline(x + 2, y + height - 2 - 1, x + width - 2 - 1, y + 2); + rb->lcd_drawline(x + 2, y + 2, x + width - 2 - 1 , y + height - 2 - 1); + rb->lcd_drawline(x + 2, y + height - 2 - 1, x + width - 2 - 1, y + 2); } } diff --git a/apps/plugins/lib/checkbox.h b/apps/plugins/lib/checkbox.h index 1456bd4..81a26e1 100644 --- a/apps/plugins/lib/checkbox.h +++ b/apps/plugins/lib/checkbox.h @@ -26,6 +26,6 @@ /* * Print a checkbox */ -void checkbox(const struct plugin_api *api, int x, int y, int width, int height, bool checked); +void checkbox(int x, int y, int width, int height, bool checked); #endif diff --git a/apps/plugins/lib/configfile.c b/apps/plugins/lib/configfile.c index 4fb037c..419109f 100644 --- a/apps/plugins/lib/configfile.c +++ b/apps/plugins/lib/configfile.c @@ -21,27 +21,20 @@ #include "plugin.h" #include "configfile.h" -static const struct plugin_api *cfg_rb; - -void configfile_init(const struct plugin_api* newrb) -{ - cfg_rb = newrb; -} - static void get_cfg_filename(char* buf, int buf_len, const char* filename) { char *s; - cfg_rb->strcpy(buf, cfg_rb->plugin_get_current_filename()); - s = cfg_rb->strrchr(buf, '/'); + rb->strcpy(buf, rb->plugin_get_current_filename()); + s = rb->strrchr(buf, '/'); if (!s) /* should never happen */ { - cfg_rb->snprintf(buf, buf_len, PLUGIN_DIR "/%s", filename); + rb->snprintf(buf, buf_len, PLUGIN_DIR "/%s", filename); } else { s++; *s = '\0'; - cfg_rb->strcat(s, filename); + rb->strcat(s, filename); } } @@ -53,30 +46,30 @@ int configfile_save(const char *filename, struct configdata *cfg, char buf[MAX_PATH]; get_cfg_filename(buf, MAX_PATH, filename); - fd = cfg_rb->creat(buf); + fd = rb->creat(buf); if(fd < 0) return fd*10 - 1; /* pre-allocate 10 bytes for INT */ - cfg_rb->fdprintf(fd, "file version: %10d\n", version); + rb->fdprintf(fd, "file version: %10d\n", version); for(i = 0;i < num_items;i++) { switch(cfg[i].type) { case TYPE_INT: /* pre-allocate 10 bytes for INT */ - cfg_rb->fdprintf(fd, "%s: %10d\n", + rb->fdprintf(fd, "%s: %10d\n", cfg[i].name, *cfg[i].val); break; case TYPE_ENUM: - cfg_rb->fdprintf(fd, "%s: %s\n", + rb->fdprintf(fd, "%s: %s\n", cfg[i].name, cfg[i].values[*cfg[i].val]); break; case TYPE_STRING: - cfg_rb->fdprintf(fd, "%s: %s\n", + rb->fdprintf(fd, "%s: %s\n", cfg[i].name, cfg[i].string); break; @@ -84,7 +77,7 @@ int configfile_save(const char *filename, struct configdata *cfg, } } - cfg_rb->close(fd); + rb->close(fd); return 0; } @@ -100,27 +93,27 @@ int configfile_load(const char *filename, struct configdata *cfg, int tmp; get_cfg_filename(buf, MAX_PATH, filename); - fd = cfg_rb->open(buf, O_RDONLY); + fd = rb->open(buf, O_RDONLY); if(fd < 0) return fd*10 - 1; - while(cfg_rb->read_line(fd, buf, MAX_PATH) > 0) { - cfg_rb->settings_parseline(buf, &name, &val); + while(rb->read_line(fd, buf, MAX_PATH) > 0) { + rb->settings_parseline(buf, &name, &val); /* Bail out if the file version is too old */ - if(!cfg_rb->strcmp("file version", name)) { - file_version = cfg_rb->atoi(val); + if(!rb->strcmp("file version", name)) { + file_version = rb->atoi(val); if(file_version < min_version) { - cfg_rb->close(fd); + rb->close(fd); return -1; } } for(i = 0;i < num_items;i++) { - if(!cfg_rb->strcmp(cfg[i].name, name)) { + if(!rb->strcmp(cfg[i].name, name)) { switch(cfg[i].type) { case TYPE_INT: - tmp = cfg_rb->atoi(val); + tmp = rb->atoi(val); /* Only set it if it's within range */ if(tmp >= cfg[i].min && tmp <= cfg[i].max) *cfg[i].val = tmp; @@ -128,21 +121,21 @@ int configfile_load(const char *filename, struct configdata *cfg, case TYPE_ENUM: for(j = 0;j < cfg[i].max;j++) { - if(!cfg_rb->strcmp(cfg[i].values[j], val)) { + if(!rb->strcmp(cfg[i].values[j], val)) { *cfg[i].val = j; } } break; case TYPE_STRING: - cfg_rb->strncpy(cfg[i].string, val, cfg[i].max); + rb->strncpy(cfg[i].string, val, cfg[i].max); break; } } } } - cfg_rb->close(fd); + rb->close(fd); return 0; } @@ -154,21 +147,21 @@ int configfile_get_value(const char* filename, const char* name) char buf[MAX_PATH]; get_cfg_filename(buf, MAX_PATH, filename); - fd = cfg_rb->open(buf, O_RDONLY); + fd = rb->open(buf, O_RDONLY); if(fd < 0) return -1; - while(cfg_rb->read_line(fd, buf, MAX_PATH) > 0) + while(rb->read_line(fd, buf, MAX_PATH) > 0) { - cfg_rb->settings_parseline(buf, &pname, &pval); - if(!cfg_rb->strcmp(name, pname)) + rb->settings_parseline(buf, &pname, &pval); + if(!rb->strcmp(name, pname)) { - cfg_rb->close(fd); - return cfg_rb->atoi(pval); + rb->close(fd); + return rb->atoi(pval); } } - cfg_rb->close(fd); + rb->close(fd); return -1; } @@ -185,20 +178,20 @@ int configfile_update_entry(const char* filename, const char* name, int val) /* open the current config file */ get_cfg_filename(path, MAX_PATH, filename); - fd = cfg_rb->open(path, O_RDWR); + fd = rb->open(path, O_RDWR); if(fd < 0) return -1; /* read in the current stored settings */ - while((line_len = cfg_rb->read_line(fd, buf, 256)) > 0) + while((line_len = rb->read_line(fd, buf, 256)) > 0) { - cfg_rb->settings_parseline(buf, &pname, &pval); - if(!cfg_rb->strcmp(name, pname)) + rb->settings_parseline(buf, &pname, &pval); + if(!rb->strcmp(name, pname)) { found = 1; - cfg_rb->lseek(fd, pos, SEEK_SET); + rb->lseek(fd, pos, SEEK_SET); /* pre-allocate 10 bytes for INT */ - cfg_rb->fdprintf(fd, "%s: %10d\n", pname, val); + rb->fdprintf(fd, "%s: %10d\n", pname, val); break; } pos += line_len; @@ -207,9 +200,9 @@ int configfile_update_entry(const char* filename, const char* name, int val) /* if (name/val) is a new entry just append to file */ if (found == 0) /* pre-allocate 10 bytes for INT */ - cfg_rb->fdprintf(fd, "%s: %10d\n", name, val); + rb->fdprintf(fd, "%s: %10d\n", name, val); - cfg_rb->close(fd); + rb->close(fd); return found; } diff --git a/apps/plugins/lib/configfile.h b/apps/plugins/lib/configfile.h index 9c926bd..0804a59 100644 --- a/apps/plugins/lib/configfile.h +++ b/apps/plugins/lib/configfile.h @@ -39,8 +39,6 @@ struct configdata NULL otherwise */ }; -void configfile_init(const struct plugin_api* newrb); - /* configfile_save - Given configdata entries this function will create a config file with these entries, destroying any previous config file of the same name */ diff --git a/apps/plugins/lib/grey.h b/apps/plugins/lib/grey.h index 8c9d40a..7c990ad 100644 --- a/apps/plugins/lib/grey.h +++ b/apps/plugins/lib/grey.h @@ -52,7 +52,7 @@ #define GREY_ON_COP 0x0004 /* Run ISR on COP (PP targets) */ /* Library initialisation and release */ -bool grey_init(const struct plugin_api* newrb, unsigned char *gbuf, long gbuf_size, +bool grey_init(unsigned char *gbuf, long gbuf_size, unsigned features, int width, int height, long *buf_taken); void grey_release(void); @@ -172,7 +172,6 @@ struct _grey_info int bheight; /* 4-pixel or 8-pixel units */ #endif unsigned long flags; /* various flags, see #defines */ - const struct plugin_api *rb; /* plugin API pointer */ unsigned char *values; /* start of greyscale pixel values */ unsigned char *phases; /* start of greyscale pixel phases */ unsigned char *buffer; /* start of chunky pixel buffer (for buffered mode) */ diff --git a/apps/plugins/lib/grey_core.c b/apps/plugins/lib/grey_core.c index c4eb0fc..c73f0cd 100644 --- a/apps/plugins/lib/grey_core.c +++ b/apps/plugins/lib/grey_core.c @@ -336,16 +336,16 @@ static inline void _deferred_update(void) int y2 = MIN(_grey_info.y + _grey_info.height, LCD_HEIGHT); if (y1 > 0) /* refresh part above overlay, full width */ - _grey_info.rb->lcd_update_rect(0, 0, LCD_WIDTH, y1); + rb->lcd_update_rect(0, 0, LCD_WIDTH, y1); if (y2 < LCD_HEIGHT) /* refresh part below overlay, full width */ - _grey_info.rb->lcd_update_rect(0, y2, LCD_WIDTH, LCD_HEIGHT - y2); + rb->lcd_update_rect(0, y2, LCD_WIDTH, LCD_HEIGHT - y2); if (x1 > 0) /* refresh part to the left of overlay */ - _grey_info.rb->lcd_update_rect(0, y1, x1, y2 - y1); + rb->lcd_update_rect(0, y1, x1, y2 - y1); if (x2 < LCD_WIDTH) /* refresh part to the right of overlay */ - _grey_info.rb->lcd_update_rect(x2, y1, LCD_WIDTH - x2, y2 - y1); + rb->lcd_update_rect(x2, y1, LCD_WIDTH - x2, y2 - y1); } #ifdef SIMULATOR @@ -373,7 +373,7 @@ static unsigned long _grey_get_pixel(int x, int y) static void _timer_isr(void) { #if defined(HAVE_BACKLIGHT_INVERSION) && !defined(SIMULATOR) - unsigned long check = _grey_info.rb->is_backlight_on(true) + unsigned long check = rb->is_backlight_on(true) ? 0 : _GREY_BACKLIGHT_ON; if ((_grey_info.flags & (_GREY_BACKLIGHT_ON|GREY_RAWMAPPED)) == check) @@ -384,12 +384,12 @@ static void _timer_isr(void) } #endif #if LCD_PIXELFORMAT == HORIZONTAL_PACKING - _grey_info.rb->lcd_blit_grey_phase(_grey_info.values, _grey_info.phases, + rb->lcd_blit_grey_phase(_grey_info.values, _grey_info.phases, _grey_info.bx, _grey_info.y, _grey_info.bwidth, _grey_info.height, _grey_info.width); #else /* vertical packing or vertical interleaved */ - _grey_info.rb->lcd_blit_grey_phase(_grey_info.values, _grey_info.phases, + rb->lcd_blit_grey_phase(_grey_info.values, _grey_info.phases, _grey_info.x, _grey_info.by, _grey_info.width, _grey_info.bheight, _grey_info.width); @@ -501,7 +501,7 @@ static void fill_gvalues(void) The function is authentic regarding memory usage on the simulator, even if it doesn't use all of the allocated memory. */ -bool grey_init(const struct plugin_api* newrb, unsigned char *gbuf, long gbuf_size, +bool grey_init(unsigned char *gbuf, long gbuf_size, unsigned features, int width, int height, long *buf_taken) { int bdim, i; @@ -511,8 +511,6 @@ bool grey_init(const struct plugin_api* newrb, unsigned char *gbuf, long gbuf_si unsigned *dst, *end; #endif - _grey_info.rb = newrb; - if ((unsigned) width > LCD_WIDTH || (unsigned) height > LCD_HEIGHT) return false; @@ -559,7 +557,7 @@ bool grey_init(const struct plugin_api* newrb, unsigned char *gbuf, long gbuf_si return false; /* Init to white */ - _grey_info.rb->memset(_grey_info.values, 0x80, plane_size); + rb->memset(_grey_info.values, 0x80, plane_size); #ifndef SIMULATOR /* Init phases with random bits */ @@ -567,7 +565,7 @@ bool grey_init(const struct plugin_api* newrb, unsigned char *gbuf, long gbuf_si end = (unsigned*)(_grey_info.phases + plane_size); do - *dst++ = _grey_info.rb->rand(); + *dst++ = rb->rand(); while (dst < end); #endif @@ -601,7 +599,7 @@ bool grey_init(const struct plugin_api* newrb, unsigned char *gbuf, long gbuf_si else { #if defined(HAVE_BACKLIGHT_INVERSION) && !defined(SIMULATOR) - if (_grey_info.rb->is_backlight_on(true)) + if (rb->is_backlight_on(true)) _grey_info.flags |= _GREY_BACKLIGHT_ON; #endif fill_gvalues(); @@ -636,40 +634,40 @@ void grey_show(bool enable) { _grey_info.flags |= _GREY_RUNNING; #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_init(129, _grey_get_pixel); - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_init(129, _grey_get_pixel); + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); #else /* !SIMULATOR */ #ifdef NEED_BOOST - _grey_info.rb->cpu_boost(true); + rb->cpu_boost(true); #endif #if NUM_CORES > 1 - _grey_info.rb->timer_register(1, NULL, TIMER_FREQ / LCD_SCANRATE, + rb->timer_register(1, NULL, TIMER_FREQ / LCD_SCANRATE, 1, _timer_isr, (_grey_info.flags & GREY_ON_COP) ? COP : CPU); #else - _grey_info.rb->timer_register(1, NULL, TIMER_FREQ / LCD_SCANRATE, 1, + rb->timer_register(1, NULL, TIMER_FREQ / LCD_SCANRATE, 1, _timer_isr); #endif #endif /* !SIMULATOR */ - _grey_info.rb->screen_dump_set_hook(grey_screendump_hook); + rb->screen_dump_set_hook(grey_screendump_hook); } else if (!enable && (_grey_info.flags & _GREY_RUNNING)) { #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_init(0, NULL); + rb->sim_lcd_ex_init(0, NULL); #else /* !SIMULATOR */ - _grey_info.rb->timer_unregister(); + rb->timer_unregister(); #if NUM_CORES > 1 /* Make sure the ISR has finished before calling lcd_update() */ - _grey_info.rb->sleep(HZ/100); + rb->sleep(HZ/100); #endif #ifdef NEED_BOOST - _grey_info.rb->cpu_boost(false); + rb->cpu_boost(false); #endif #endif /* !SIMULATOR */ _grey_info.flags &= ~_GREY_RUNNING; - _grey_info.rb->screen_dump_set_hook(NULL); - _grey_info.rb->lcd_update(); /* restore whatever there was before */ + rb->screen_dump_set_hook(NULL); + rb->lcd_update(); /* restore whatever there was before */ } } @@ -699,7 +697,7 @@ void grey_deferred_lcd_update(void) #endif } else - _grey_info.rb->lcd_update(); + rb->lcd_update(); } /*** Screenshot ***/ @@ -786,10 +784,10 @@ static void grey_screendump_hook(int fd) unsigned char *clut_entry; unsigned char linebuf[MAX(4*BMP_VARCOLORS,BMP_LINESIZE)]; - _grey_info.rb->write(fd, bmpheader, sizeof(bmpheader)); /* write header */ + rb->write(fd, bmpheader, sizeof(bmpheader)); /* write header */ /* build clut */ - _grey_info.rb->memset(linebuf, 0, 4*BMP_VARCOLORS); + rb->memset(linebuf, 0, 4*BMP_VARCOLORS); clut_entry = linebuf; for (i = 0; i <= 128; i++) @@ -808,17 +806,17 @@ static void grey_screendump_hook(int fd) #endif clut_entry++; } - _grey_info.rb->write(fd, linebuf, 4*BMP_VARCOLORS); + rb->write(fd, linebuf, 4*BMP_VARCOLORS); /* BMP image goes bottom -> top */ for (y = LCD_HEIGHT - 1; y >= 0; y--) { - _grey_info.rb->memset(linebuf, 0, BMP_LINESIZE); + rb->memset(linebuf, 0, BMP_LINESIZE); gy = y - _grey_info.y; #if LCD_PIXELFORMAT == HORIZONTAL_PACKING #if LCD_DEPTH == 2 - lcdptr = _grey_info.rb->lcd_framebuffer + _GREY_MULUQ(LCD_FBWIDTH, y); + lcdptr = rb->lcd_framebuffer + _GREY_MULUQ(LCD_FBWIDTH, y); for (x = 0; x < LCD_WIDTH; x += 4) { @@ -846,7 +844,7 @@ static void grey_screendump_hook(int fd) #elif LCD_PIXELFORMAT == VERTICAL_PACKING #if LCD_DEPTH == 1 mask = 1 << (y & 7); - lcdptr = _grey_info.rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3); + lcdptr = rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3); for (x = 0; x < LCD_WIDTH; x++) { @@ -869,7 +867,7 @@ static void grey_screendump_hook(int fd) } #elif LCD_DEPTH == 2 shift = 2 * (y & 3); - lcdptr = _grey_info.rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 2); + lcdptr = rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 2); for (x = 0; x < LCD_WIDTH; x++) { @@ -894,7 +892,7 @@ static void grey_screendump_hook(int fd) #elif LCD_PIXELFORMAT == VERTICAL_INTERLEAVED #if LCD_DEPTH == 2 shift = y & 7; - lcdptr = _grey_info.rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3); + lcdptr = rb->lcd_framebuffer + _GREY_MULUQ(LCD_WIDTH, y >> 3); for (x = 0; x < LCD_WIDTH; x++) { @@ -919,6 +917,6 @@ static void grey_screendump_hook(int fd) #endif /* LCD_DEPTH */ #endif /* LCD_PIXELFORMAT */ - _grey_info.rb->write(fd, linebuf, BMP_LINESIZE); + rb->write(fd, linebuf, BMP_LINESIZE); } } diff --git a/apps/plugins/lib/grey_draw.c b/apps/plugins/lib/grey_draw.c index 5879b8e..2ae9660 100644 --- a/apps/plugins/lib/grey_draw.c +++ b/apps/plugins/lib/grey_draw.c @@ -63,7 +63,7 @@ void grey_clear_display(void) int value = (_grey_info.drawmode & DRMODE_INVERSEVID) ? _grey_info.fg_brightness : _grey_info.bg_brightness; - _grey_info.rb->memset(_grey_info.buffer, value, + rb->memset(_grey_info.buffer, value, _GREY_MULUQ(_grey_info.width, _grey_info.height)); } @@ -196,7 +196,7 @@ void grey_hline(int x1, int x2, int y) dst = &_grey_info.buffer[_GREY_MULUQ(_grey_info.width, y) + x1]; if (fillopt) - _grey_info.rb->memset(dst, value, x2 - x1 + 1); + rb->memset(dst, value, x2 - x1 + 1); else { unsigned char *dst_end = dst + x2 - x1; @@ -381,7 +381,7 @@ void grey_fillrect(int x, int y, int width, int height) do { if (fillopt) - _grey_info.rb->memset(dst, value, width); + rb->memset(dst, value, width); else { unsigned char *dst_row = dst; @@ -516,7 +516,7 @@ void grey_gray_bitmap_part(const unsigned char *src, int src_x, int src_y, do { - _grey_info.rb->memcpy(dst, src, width); + rb->memcpy(dst, src, width); dst += _grey_info.width; src += stride; } @@ -535,9 +535,9 @@ void grey_putsxyofs(int x, int y, int ofs, const unsigned char *str) { int ch; unsigned short *ucs; - struct font* pf = _grey_info.rb->font_get(_grey_info.curfont); + struct font* pf = rb->font_get(_grey_info.curfont); - ucs = _grey_info.rb->bidi_l2v(str, 1); + ucs = rb->bidi_l2v(str, 1); while ((ch = *ucs++) != 0 && x < _grey_info.width) { @@ -545,7 +545,7 @@ void grey_putsxyofs(int x, int y, int ofs, const unsigned char *str) const unsigned char *bits; /* get proportional width and glyph bits */ - width = _grey_info.rb->font_get_width(pf, ch); + width = rb->font_get_width(pf, ch); if (ofs > width) { @@ -553,7 +553,7 @@ void grey_putsxyofs(int x, int y, int ofs, const unsigned char *str) continue; } - bits = _grey_info.rb->font_get_bits(pf, ch); + bits = rb->font_get_bits(pf, ch); grey_mono_bitmap_part(bits, ofs, 0, width, x, y, width - ofs, pf->height); @@ -577,10 +577,10 @@ void grey_ub_clear_display(void) _grey_info.fg_brightness : _grey_info.bg_brightness]; - _grey_info.rb->memset(_grey_info.values, value, + rb->memset(_grey_info.values, value, _GREY_MULUQ(_grey_info.width, _grey_info.height)); #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); #endif } @@ -655,7 +655,7 @@ void grey_ub_gray_bitmap_part(const unsigned char *src, int src_x, int src_y, } while (++yc < ye); #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x + x, _grey_info.y + y, + rb->sim_lcd_ex_update_rect(_grey_info.x + x, _grey_info.y + y, width, height); #endif } diff --git a/apps/plugins/lib/grey_parm.c b/apps/plugins/lib/grey_parm.c index 90391d7..00193e1 100644 --- a/apps/plugins/lib/grey_parm.c +++ b/apps/plugins/lib/grey_parm.c @@ -51,7 +51,7 @@ void grey_set_position(int x, int y) if (_grey_info.flags & _GREY_RUNNING) { #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); grey_deferred_lcd_update(); @@ -114,5 +114,5 @@ void grey_setfont(int newfont) /* Get width and height of a text when printed with the current font */ int grey_getstringsize(const unsigned char *str, int *w, int *h) { - return _grey_info.rb->font_getstringsize(str, w, h, _grey_info.curfont); + return rb->font_getstringsize(str, w, h, _grey_info.curfont); } diff --git a/apps/plugins/lib/grey_scroll.c b/apps/plugins/lib/grey_scroll.c index 082b256..adecd3b 100644 --- a/apps/plugins/lib/grey_scroll.c +++ b/apps/plugins/lib/grey_scroll.c @@ -47,9 +47,9 @@ void grey_scroll_left(int count) do { - _grey_info.rb->memmove(data, data + count, length); + rb->memmove(data, data + count, length); data += length; - _grey_info.rb->memset(data, blank, count); + rb->memset(data, blank, count); data += count; } while (data < data_end); @@ -72,8 +72,8 @@ void grey_scroll_right(int count) do { - _grey_info.rb->memmove(data + count, data, length); - _grey_info.rb->memset(data, blank, count); + rb->memmove(data + count, data, length); + rb->memset(data, blank, count); data += _grey_info.width; } while (data < data_end); @@ -93,9 +93,9 @@ void grey_scroll_up(int count) blank = (_grey_info.drawmode & DRMODE_INVERSEVID) ? _grey_info.fg_brightness : _grey_info.bg_brightness; - _grey_info.rb->memmove(_grey_info.buffer, _grey_info.buffer + shift, + rb->memmove(_grey_info.buffer, _grey_info.buffer + shift, length); - _grey_info.rb->memset(_grey_info.buffer + length, blank, shift); + rb->memset(_grey_info.buffer + length, blank, shift); } /* Scroll down */ @@ -112,9 +112,9 @@ void grey_scroll_down(int count) blank = (_grey_info.drawmode & DRMODE_INVERSEVID) ? _grey_info.fg_brightness : _grey_info.bg_brightness; - _grey_info.rb->memmove(_grey_info.buffer + shift, _grey_info.buffer, + rb->memmove(_grey_info.buffer + shift, _grey_info.buffer, length); - _grey_info.rb->memset(_grey_info.buffer, blank, shift); + rb->memset(_grey_info.buffer, blank, shift); } /*** Unbuffered scrolling functions ***/ @@ -137,14 +137,14 @@ void grey_ub_scroll_left(int count) _grey_info.bg_brightness]; do { - _grey_info.rb->memmove(data, data + count, length); + rb->memmove(data, data + count, length); data += length; - _grey_info.rb->memset(data, blank, count); + rb->memset(data, blank, count); data += count; } while (data < data_end); #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); #endif } @@ -167,13 +167,13 @@ void grey_ub_scroll_right(int count) _grey_info.bg_brightness]; do { - _grey_info.rb->memmove(data + count, data, length); - _grey_info.rb->memset(data, blank, count); + rb->memmove(data + count, data, length); + rb->memset(data, blank, count); data += _grey_info.width << _GREY_BSHIFT; } while (data < data_end); #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); #endif } @@ -240,12 +240,12 @@ void grey_ub_scroll_up(int count) int blen = _GREY_MULUQ(_grey_info.height - count, _grey_info.width); src = dst + _GREY_MULUQ(count, _grey_info.width); - _grey_info.rb->memmove(dst, src, blen); + rb->memmove(dst, src, blen); dst += blen; } - _grey_info.rb->memset(dst, blank, end - dst); /* Fill remainder at once. */ + rb->memset(dst, blank, end - dst); /* Fill remainder at once. */ #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); #endif } @@ -316,12 +316,12 @@ void grey_ub_scroll_down(int count) int blen = _GREY_MULUQ(_grey_info.height - count, _grey_info.width); dst -= blen; - _grey_info.rb->memmove(dst, start, blen); + rb->memmove(dst, start, blen); } - _grey_info.rb->memset(start, blank, dst - start); + rb->memset(start, blank, dst - start); /* Fill remainder at once. */ #ifdef SIMULATOR - _grey_info.rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, + rb->sim_lcd_ex_update_rect(_grey_info.x, _grey_info.y, _grey_info.width, _grey_info.height); #endif } diff --git a/apps/plugins/lib/helper.c b/apps/plugins/lib/helper.c index 02ec7a5..c70d826 100644 --- a/apps/plugins/lib/helper.c +++ b/apps/plugins/lib/helper.c @@ -23,7 +23,7 @@ #include "helper.h" /* Force the backlight on */ -void backlight_force_on(const struct plugin_api* rb) +void backlight_force_on(void) { if(!rb) return; @@ -36,7 +36,7 @@ void backlight_force_on(const struct plugin_api* rb) } /* Reset backlight operation to its settings */ -void backlight_use_settings(const struct plugin_api* rb) +void backlight_use_settings(void) { if (!rb) return; @@ -49,7 +49,7 @@ void backlight_use_settings(const struct plugin_api* rb) #ifdef HAVE_REMOTE_LCD /* Force the backlight on */ -void remote_backlight_force_on(const struct plugin_api* rb) +void remote_backlight_force_on(void) { if (!rb) return; @@ -62,7 +62,7 @@ void remote_backlight_force_on(const struct plugin_api* rb) } /* Reset backlight operation to its settings */ -void remote_backlight_use_settings(const struct plugin_api* rb) +void remote_backlight_use_settings(void) { if (!rb) return; @@ -77,7 +77,7 @@ void remote_backlight_use_settings(const struct plugin_api* rb) #ifdef HAVE_BUTTON_LIGHT /* Force the buttonlight on */ -void buttonlight_force_on(const struct plugin_api* rb) +void buttonlight_force_on(void) { if (!rb) return; @@ -86,7 +86,7 @@ void buttonlight_force_on(const struct plugin_api* rb) } /* Reset buttonlight operation to its settings */ -void buttonlight_use_settings(const struct plugin_api* rb) +void buttonlight_use_settings(void) { if (!rb) return; @@ -95,15 +95,14 @@ void buttonlight_use_settings(const struct plugin_api* rb) #endif /* HAVE_BUTTON_LIGHT */ #ifdef HAVE_BACKLIGHT_BRIGHTNESS -void backlight_brightness_set(const struct plugin_api *rb, - int brightness) +void backlight_brightness_set(int brightness) { if (!rb) return; rb->backlight_set_brightness(brightness); } -void backlight_brightness_use_setting(const struct plugin_api *rb) +void backlight_brightness_use_setting(void) { if (!rb) return; diff --git a/apps/plugins/lib/helper.h b/apps/plugins/lib/helper.h index aa309bb..92c1c2f 100644 --- a/apps/plugins/lib/helper.h +++ b/apps/plugins/lib/helper.h @@ -26,24 +26,23 @@ /** * Backlight on/off operations */ -void backlight_force_on(const struct plugin_api* rb); -void backlight_use_settings(const struct plugin_api* rb); +void backlight_force_on(void); +void backlight_use_settings(void); #ifdef HAVE_REMOTE_LCD -void remote_backlight_force_on(const struct plugin_api* rb); -void remote_backlight_use_settings(const struct plugin_api* rb); +void remote_backlight_force_on(void); +void remote_backlight_use_settings(void); #endif #ifdef HAVE_BUTTON_LIGHT -void buttonlight_force_on(const struct plugin_api* rb); -void buttonlight_use_settings(const struct plugin_api* rb); +void buttonlight_force_on(void); +void buttonlight_use_settings(void); #endif /** * Backlight brightness adjustment settings */ #ifdef HAVE_BACKLIGHT_BRIGHTNESS -void backlight_brightness_set(const struct plugin_api *rb, - int brightness); -void backlight_brightness_use_setting(const struct plugin_api *rb); +void backlight_brightness_set(int brightness); +void backlight_brightness_use_setting(void); #endif diff --git a/apps/plugins/lib/highscore.c b/apps/plugins/lib/highscore.c index f475651..9d3b19e 100644 --- a/apps/plugins/lib/highscore.c +++ b/apps/plugins/lib/highscore.c @@ -21,13 +21,6 @@ #include "plugin.h" #include "highscore.h" -static const struct plugin_api *rb; - -void highscore_init(const struct plugin_api* newrb) -{ - rb = newrb; -} - int highscore_save(char *filename, struct highscore *scores, int num_scores) { int i; diff --git a/apps/plugins/lib/highscore.h b/apps/plugins/lib/highscore.h index c3d806e..db09172 100644 --- a/apps/plugins/lib/highscore.h +++ b/apps/plugins/lib/highscore.h @@ -28,7 +28,6 @@ struct highscore int level; }; -void highscore_init(const struct plugin_api* newrb); int highscore_save(char *filename, struct highscore *scores, int num_scores); int highscore_load(char *filename, struct highscore *scores, int num_scores); int highscore_update(int score, int level, struct highscore *scores, int num_scores); diff --git a/apps/plugins/lib/md5.c b/apps/plugins/lib/md5.c index 05535de..145a62d 100644 --- a/apps/plugins/lib/md5.c +++ b/apps/plugins/lib/md5.c @@ -27,13 +27,6 @@ #include "plugin.h" #include "md5.h" -static const struct plugin_api *rb; - -void md5_init( const struct plugin_api *api ) -{ - rb = api; -} - #ifdef ROCKBOX_BIG_ENDIAN static inline uint32_t GetDWLE( const void * _p ) { diff --git a/apps/plugins/lib/md5.h b/apps/plugins/lib/md5.h index e19c749..f70d47a 100644 --- a/apps/plugins/lib/md5.h +++ b/apps/plugins/lib/md5.h @@ -27,8 +27,6 @@ #ifndef _VLC_MD5_H # define _VLC_MD5_H -void md5_init( const struct plugin_api * ); - /***************************************************************************** * md5_s: MD5 message structure ***************************************************************************** diff --git a/apps/plugins/lib/oldmenuapi.c b/apps/plugins/lib/oldmenuapi.c index a48a61b..9c371d5 100644 --- a/apps/plugins/lib/oldmenuapi.c +++ b/apps/plugins/lib/oldmenuapi.c @@ -29,8 +29,6 @@ #include "plugin.h" #include "oldmenuapi.h" -const struct plugin_api *rb = NULL; - struct menu { struct menu_item* items; int (*callback)(int, int); @@ -67,12 +65,11 @@ static int menu_find_free(void) return(i); } -int menu_init(const struct plugin_api *api, const struct menu_item* mitems, +int menu_init(const struct menu_item* mitems, int count, int (*callback)(int, int), const char *button1, const char *button2, const char *button3) { int menu=menu_find_free(); - rb = api; if(menu==-1)/* Out of menus */ return -1; menus[menu].items = (struct menu_item*)mitems; /* de-const */ diff --git a/apps/plugins/lib/oldmenuapi.h b/apps/plugins/lib/oldmenuapi.h index 858580c..7f87799 100644 --- a/apps/plugins/lib/oldmenuapi.h +++ b/apps/plugins/lib/oldmenuapi.h @@ -33,7 +33,7 @@ struct menu_item { bool (*function) (void); /* return true if USB was connected */ }; -int menu_init(const struct plugin_api *api, const struct menu_item* mitems, +int menu_init(const struct menu_item* mitems, int count, int (*callback)(int, int), const char *button1, const char *button2, const char *button3); void menu_exit(int menu); diff --git a/apps/plugins/lib/overlay.c b/apps/plugins/lib/overlay.c index 706d6c1..44bca1d 100644 --- a/apps/plugins/lib/overlay.c +++ b/apps/plugins/lib/overlay.c @@ -46,7 +46,7 @@ The linker script for the overlay should use a base address towards the end of the audiobuffer, just low enough to make the overlay fit. */ -enum plugin_status run_overlay(const struct plugin_api* rb, const void* parameter, +enum plugin_status run_overlay(const void* parameter, unsigned char *filename, unsigned char *name) { int fd, readsize; @@ -107,6 +107,7 @@ enum plugin_status run_overlay(const struct plugin_api* rb, const void* paramete rb->memset(header.load_addr + readsize, 0, header.end_addr - (header.load_addr + readsize)); - return header.entry_point(rb, parameter); + *(header.api) = rb; + return header.entry_point(parameter); } #endif diff --git a/apps/plugins/lib/overlay.h b/apps/plugins/lib/overlay.h index 97c6ccf..357dc93 100644 --- a/apps/plugins/lib/overlay.h +++ b/apps/plugins/lib/overlay.h @@ -28,7 +28,7 @@ #include "plugin.h" /* load and run a plugin linked as an overlay. */ -enum plugin_status run_overlay(const struct plugin_api* api, const void* parameter, +enum plugin_status run_overlay(const void* parameter, unsigned char *filename, unsigned char *name); #endif /* !SIMULATOR */ diff --git a/apps/plugins/lib/playback_control.c b/apps/plugins/lib/playback_control.c index b82e8be..7c28230 100644 --- a/apps/plugins/lib/playback_control.c +++ b/apps/plugins/lib/playback_control.c @@ -22,70 +22,69 @@ #include "plugin.h" #include "playback_control.h" -const struct plugin_api* api = 0; struct viewport *parentvp = NULL; static bool prevtrack(void) { - api->audio_prev(); + rb->audio_prev(); return false; } static bool play(void) { - int audio_status = api->audio_status(); - if (!audio_status && api->global_status->resume_index != -1) + int audio_status = rb->audio_status(); + if (!audio_status && rb->global_status->resume_index != -1) { - if (api->playlist_resume() != -1) + if (rb->playlist_resume() != -1) { - api->playlist_start(api->global_status->resume_index, - api->global_status->resume_offset); + rb->playlist_start(rb->global_status->resume_index, + rb->global_status->resume_offset); } } else if (audio_status & AUDIO_STATUS_PAUSE) - api->audio_resume(); + rb->audio_resume(); else - api->audio_pause(); + rb->audio_pause(); return false; } static bool stop(void) { - api->audio_stop(); + rb->audio_stop(); return false; } static bool nexttrack(void) { - api->audio_next(); + rb->audio_next(); return false; } static bool volume(void) { const struct settings_list* vol = - api->find_setting(&api->global_settings->volume, NULL); - return api->option_screen((struct settings_list*)vol, parentvp, false, "Volume"); + rb->find_setting(&rb->global_settings->volume, NULL); + return rb->option_screen((struct settings_list*)vol, parentvp, false, "Volume"); } static bool shuffle(void) { const struct settings_list* shuffle = - api->find_setting(&api->global_settings->playlist_shuffle, NULL); - return api->option_screen((struct settings_list*)shuffle, parentvp, false, "Shuffle"); + rb->find_setting(&rb->global_settings->playlist_shuffle, NULL); + return rb->option_screen((struct settings_list*)shuffle, parentvp, false, "Shuffle"); } static bool repeat_mode(void) { const struct settings_list* repeat = - api->find_setting(&api->global_settings->repeat_mode, NULL); - int old_repeat = api->global_settings->repeat_mode; + rb->find_setting(&rb->global_settings->repeat_mode, NULL); + int old_repeat = rb->global_settings->repeat_mode; - api->option_screen((struct settings_list*)repeat, parentvp, false, "Repeat"); + rb->option_screen((struct settings_list*)repeat, parentvp, false, "Repeat"); - if (old_repeat != api->global_settings->repeat_mode && - (api->audio_status() & AUDIO_STATUS_PLAY)) - api->audio_flush_and_reload_tracks(); + if (old_repeat != rb->global_settings->repeat_mode && + (rb->audio_status() & AUDIO_STATUS_PLAY)) + rb->audio_flush_and_reload_tracks(); return false; } @@ -107,17 +106,13 @@ MAKE_MENU(playback_control_menu, "Playback Control", NULL, Icon_NOICON, &prevtrack_item, &playpause_item, &stop_item, &nexttrack_item, &volume_item, &shuffle_item, &repeat_mode_item); -void playback_control_init(const struct plugin_api* newapi, - struct viewport parent[NB_SCREENS]) +void playback_control_init(struct viewport parent[NB_SCREENS]) { - api = newapi; parentvp = parent; } -bool playback_control(const struct plugin_api* newapi, - struct viewport parent[NB_SCREENS]) +bool playback_control(struct viewport parent[NB_SCREENS]) { - api = newapi; parentvp = parent; - return api->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB; + return rb->do_menu(&playback_control_menu, NULL, parent, false) == MENU_ATTACHED_USB; } diff --git a/apps/plugins/lib/playback_control.h b/apps/plugins/lib/playback_control.h index b8fa840..4371961 100644 --- a/apps/plugins/lib/playback_control.h +++ b/apps/plugins/lib/playback_control.h @@ -27,11 +27,9 @@ So, make sure you use the same viewport for the rb->do_menu() call that you use in the playback_control_init() call */ -void playback_control_init(const struct plugin_api* newapi, - struct viewport parent[NB_SCREENS]); +void playback_control_init(struct viewport parent[NB_SCREENS]); /* Use this if your menu still uses the old menu api */ -bool playback_control(const struct plugin_api* api, - struct viewport parent[NB_SCREENS]); +bool playback_control(struct viewport parent[NB_SCREENS]); #endif /* __PLAYBACK_CONTROL_H__ */ diff --git a/apps/plugins/lib/playergfx.c b/apps/plugins/lib/playergfx.c index c332c02..d07043c 100644 --- a/apps/plugins/lib/playergfx.c +++ b/apps/plugins/lib/playergfx.c @@ -28,7 +28,6 @@ /*** globals ***/ -static const struct plugin_api *pgfx_rb = NULL; /* global api struct pointer */ static int char_width; static int char_height; static int pixel_height; @@ -40,14 +39,13 @@ static int drawmode = DRMODE_SOLID; /*** Special functions ***/ /* library init */ -bool pgfx_init(const struct plugin_api* newrb, int cwidth, int cheight) +bool pgfx_init(int cwidth, int cheight) { int i; if (((unsigned) cwidth * (unsigned) cheight) > 8 || (unsigned) cheight > 2) return false; - pgfx_rb = newrb; char_width = cwidth; char_height = cheight; pixel_height = 7 * char_height; @@ -55,7 +53,7 @@ bool pgfx_init(const struct plugin_api* newrb, int cwidth, int cheight) for (i = 0; i < cwidth * cheight; i++) { - if ((gfx_chars[i] = pgfx_rb->lcd_get_locked_pattern()) == 0) + if ((gfx_chars[i] = rb->lcd_get_locked_pattern()) == 0) { pgfx_release(); return false; @@ -72,7 +70,7 @@ void pgfx_release(void) for (i = 0; i < 8; i++) if (gfx_chars[i]) - pgfx_rb->lcd_unlock_pattern(gfx_chars[i]); + rb->lcd_unlock_pattern(gfx_chars[i]); } /* place the display */ @@ -84,12 +82,12 @@ void pgfx_display(int cx, int cy) for (i = 0; i < width; i++) for (j = 0; j < height; j++) - pgfx_rb->lcd_putc(cx + i, cy + j, gfx_chars[char_height * i + j]); + rb->lcd_putc(cx + i, cy + j, gfx_chars[char_height * i + j]); } void pgfx_display_block(int cx, int cy, int x, int y) { - pgfx_rb->lcd_putc(cx, cy, gfx_chars[char_height * x + y]); + rb->lcd_putc(cx, cy, gfx_chars[char_height * x + y]); } @@ -100,9 +98,9 @@ void pgfx_update(void) int i; for (i = 0; i < char_width * char_height; i++) - pgfx_rb->lcd_define_pattern(gfx_chars[i], gfx_buffer + 7 * i); + rb->lcd_define_pattern(gfx_chars[i], gfx_buffer + 7 * i); - pgfx_rb->lcd_update(); + rb->lcd_update(); } /*** Parameter handling ***/ @@ -203,7 +201,7 @@ void pgfx_clear_display(void) { unsigned bits = (drawmode & DRMODE_INVERSEVID) ? 0x1F : 0; - pgfx_rb->memset(gfx_buffer, bits, char_width * pixel_height); + rb->memset(gfx_buffer, bits, char_width * pixel_height); } /* Set a single pixel */ diff --git a/apps/plugins/lib/playergfx.h b/apps/plugins/lib/playergfx.h index ff9cd5f..9f1305a 100644 --- a/apps/plugins/lib/playergfx.h +++ b/apps/plugins/lib/playergfx.h @@ -28,7 +28,7 @@ #ifdef HAVE_LCD_CHARCELLS /* Player only :) */ -bool pgfx_init(const struct plugin_api* newrb, int cwidth, int cheight); +bool pgfx_init(int cwidth, int cheight); void pgfx_release(void); void pgfx_display(int cx, int cy); void pgfx_display_block(int cx, int cy, int x, int y); diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c index 2ec6cf6..8e2f125 100644 --- a/apps/plugins/lib/pluginlib_actions.c +++ b/apps/plugins/lib/pluginlib_actions.c @@ -524,12 +524,12 @@ static const struct button_mapping* get_context_map(int context) else return NULL; } -int pluginlib_getaction(const struct plugin_api *api,int timeout, +int pluginlib_getaction(int timeout, const struct button_mapping *plugin_contexts[], int count) { plugin_context_order = (struct button_mapping **)plugin_contexts; plugin_context_count = count; last_context = 0; - return api->get_custom_action(CONTEXT_CUSTOM,timeout,get_context_map); + return rb->get_custom_action(CONTEXT_CUSTOM,timeout,get_context_map); } diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h index 5f06a0b..cc5f8b4 100644 --- a/apps/plugins/lib/pluginlib_actions.h +++ b/apps/plugins/lib/pluginlib_actions.h @@ -60,7 +60,7 @@ extern const struct button_mapping generic_left_right_fire[]; extern const struct button_mapping generic_actions[]; extern const struct button_mapping generic_increase_decrease[]; -int pluginlib_getaction(const struct plugin_api *api,int timeout, +int pluginlib_getaction(int timeout, const struct button_mapping *plugin_contexts[], int count); diff --git a/apps/plugins/lib/pluginlib_bmp.c b/apps/plugins/lib/pluginlib_bmp.c index b1dd53b..b9cfc4d 100644 --- a/apps/plugins/lib/pluginlib_bmp.c +++ b/apps/plugins/lib/pluginlib_bmp.c @@ -34,7 +34,7 @@ /** * Save to 24 bit bitmap. */ -int save_bmp_file( char* filename, struct bitmap *bm, const struct plugin_api* rb ) +int save_bmp_file( char* filename, struct bitmap *bm ) { /* I'm not really sure about this one :) */ int line_width = bm->width*3+((bm->width*3)%4?4-((bm->width*3)%4):0); @@ -125,14 +125,7 @@ void simple_resize_bitmap(struct bitmap *src, struct bitmap *dst) #else /* LCD_DEPTH == 1 */ #include "wrappers.h" -static const struct plugin_api *rb; - /* import the core bmp loader */ #include "../../recorder/bmp.c" -/* initialize rb for use by the bmp loader */ -void bmp_init(const struct plugin_api *api) -{ - rb = api; -} #endif diff --git a/apps/plugins/lib/pluginlib_bmp.h b/apps/plugins/lib/pluginlib_bmp.h index 0e7a0a4..17844a8 100644 --- a/apps/plugins/lib/pluginlib_bmp.h +++ b/apps/plugins/lib/pluginlib_bmp.h @@ -24,12 +24,11 @@ #include "lcd.h" #include "plugin.h" -#if LCD_DEPTH > 1 /* save is only available for color, resize for >1bpp */ #ifdef HAVE_LCD_COLOR /** * Save bitmap to file */ -int save_bmp_file( char* filename, struct bitmap *bm, const struct plugin_api* rb ); +int save_bmp_file( char* filename, struct bitmap *bm ); #endif /** @@ -44,13 +43,4 @@ void simple_resize_bitmap(struct bitmap *src, struct bitmap *dst); */ void smooth_resize_bitmap(struct bitmap *src, struct bitmap *dst); -#else -/* - BMP loader is built with scaling support in pluginlib on 1bpp targets, as - these do not provide scaling support in the core BMP loader. bmp_init is - needed to copy the plugin API pointer for the pluginlib loader's use. -*/ -void bmp_init(const struct plugin_api *api); -#endif - #endif diff --git a/apps/plugins/lib/pluginlib_resize.h b/apps/plugins/lib/pluginlib_resize.h deleted file mode 100644 index 46a8977..0000000 --- a/apps/plugins/lib/pluginlib_resize.h +++ /dev/null @@ -1,29 +0,0 @@ -/*************************************************************************** -* __________ __ ___. -* Open \______ \ ____ ____ | | _\_ |__ _______ ___ -* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -* \/ \/ \/ \/ \/ -* $Id$ -* -* Copyright (C) 2009 by Andrew Mahone -* -* This is a header for the pluginlib extensions to the core resize.c file -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -* KIND, either express or implied. -* -****************************************************************************/ - -#ifndef _LIB_RESIZE_H_ -#define _LIB_RESIZE_H_ - -void resize_init(const struct plugin_api *api); - -#endif diff --git a/apps/plugins/lib/profile_plugin.c b/apps/plugins/lib/profile_plugin.c index 1225bf1..9224997 100644 --- a/apps/plugins/lib/profile_plugin.c +++ b/apps/plugins/lib/profile_plugin.c @@ -23,22 +23,15 @@ #include "plugin.h" -static const struct plugin_api *local_rb = NULL; /* global api struct pointer */ - -void profile_init(const struct plugin_api* pa) -{ - local_rb = pa; -} - void __cyg_profile_func_enter(void *this_fn, void *call_site) { #ifdef CPU_COLDFIRE (void)call_site; - local_rb->profile_func_enter(this_fn, __builtin_return_address(1)); + rb->profile_func_enter(this_fn, __builtin_return_address(1)); #else - local_rb->profile_func_enter(this_fn, call_site); + rb->profile_func_enter(this_fn, call_site); #endif } void __cyg_profile_func_exit(void *this_fn, void *call_site) { - local_rb->profile_func_exit(this_fn,call_site); + rb->profile_func_exit(this_fn,call_site); } diff --git a/apps/plugins/lib/profile_plugin.h b/apps/plugins/lib/profile_plugin.h index fae2a87..ce0581a 100644 --- a/apps/plugins/lib/profile_plugin.h +++ b/apps/plugins/lib/profile_plugin.h @@ -26,8 +26,6 @@ #include "plugin.h" -void profile_init(const struct plugin_api* pa); - void __cyg_profile_func_enter(void *this_fn, void *call_site) NO_PROF_ATTR ICODE_ATTR; void __cyg_profile_func_exit(void *this_fn, void *call_site) diff --git a/apps/plugins/lib/xlcd.h b/apps/plugins/lib/xlcd.h index da27af1..b6d0867 100644 --- a/apps/plugins/lib/xlcd.h +++ b/apps/plugins/lib/xlcd.h @@ -28,7 +28,6 @@ #ifdef HAVE_LCD_BITMAP -void xlcd_init(const struct plugin_api* newrb); void xlcd_filltriangle(int x1, int y1, int x2, int y2, int x3, int y3); void xlcd_filltriangle_screen(struct screen* display, int x1, int y1, int x2, int y2, int x3, int y3); @@ -50,9 +49,6 @@ void xlcd_scroll_right(int count); void xlcd_scroll_up(int count); void xlcd_scroll_down(int count); -/* internal stuff */ -extern const struct plugin_api *_xlcd_rb; /* global api struct pointer */ - #endif /* HAVE_LCD_BITMAP */ #endif /* __XLCD_H__ */ diff --git a/apps/plugins/lib/xlcd_core.c b/apps/plugins/lib/xlcd_core.c index a035a80..87e73b5 100644 --- a/apps/plugins/lib/xlcd_core.c +++ b/apps/plugins/lib/xlcd_core.c @@ -27,17 +27,5 @@ #ifdef HAVE_LCD_BITMAP #include "xlcd.h" -/*** globals ***/ - -const struct plugin_api *_xlcd_rb = NULL; /* global api struct pointer */ - -/*** functions ***/ - -/* library init */ -void xlcd_init(const struct plugin_api* newrb) -{ - _xlcd_rb = newrb; -} - #endif /* HAVE_LCD_BITMAP */ diff --git a/apps/plugins/lib/xlcd_draw.c b/apps/plugins/lib/xlcd_draw.c index 01fbc5e..3be1571 100644 --- a/apps/plugins/lib/xlcd_draw.c +++ b/apps/plugins/lib/xlcd_draw.c @@ -155,7 +155,7 @@ void xlcd_filltriangle(int x1, int y1, int x3, int y3) { /* default is main screen */ - xlcd_filltriangle_screen(_xlcd_rb->screens[SCREEN_MAIN], + xlcd_filltriangle_screen(rb->screens[SCREEN_MAIN], x1, y1, x2, y2, x3, y3); } @@ -276,7 +276,7 @@ void xlcd_gray_bitmap_part(const unsigned char *src, int src_x, int src_y, src += stride * src_y + src_x; /* move starting point */ src_end = src + stride * height; - dst = _xlcd_rb->lcd_framebuffer + LCD_WIDTH * y + x; + dst = rb->lcd_framebuffer + LCD_WIDTH * y + x; do { @@ -336,7 +336,7 @@ void xlcd_color_bitmap_part(const unsigned char *src, int src_x, int src_y, src += 3 * (stride * src_y + src_x); /* move starting point */ src_end = src + 3 * stride * height; - dst = _xlcd_rb->lcd_framebuffer + LCD_WIDTH * y + x; + dst = rb->lcd_framebuffer + LCD_WIDTH * y + x; do { diff --git a/apps/plugins/lib/xlcd_scroll.c b/apps/plugins/lib/xlcd_scroll.c index f25e702..6b70e2c 100644 --- a/apps/plugins/lib/xlcd_scroll.c +++ b/apps/plugins/lib/xlcd_scroll.c @@ -50,12 +50,12 @@ void xlcd_scroll_left(int count) if (blockcount) { - unsigned char *data = _xlcd_rb->lcd_framebuffer; + unsigned char *data = rb->lcd_framebuffer; unsigned char *data_end = data + LCD_FBWIDTH*LCD_HEIGHT; do { - _xlcd_rb->memmove(data, data + blockcount, blocklen); + rb->memmove(data, data + blockcount, blocklen); data += LCD_FBWIDTH; } while (data < data_end); @@ -63,9 +63,9 @@ void xlcd_scroll_left(int count) if (bitcount) { int bx, y; - unsigned char *addr = _xlcd_rb->lcd_framebuffer + blocklen; + unsigned char *addr = rb->lcd_framebuffer + blocklen; #if LCD_DEPTH == 2 - unsigned fill = 0x55 * (~_xlcd_rb->lcd_get_background() & 3); + unsigned fill = 0x55 * (~rb->lcd_get_background() & 3); #endif for (y = 0; y < LCD_HEIGHT; y++) @@ -82,10 +82,10 @@ void xlcd_scroll_left(int count) addr += LCD_FBWIDTH; } } - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(LCD_WIDTH - count, 0, count, LCD_HEIGHT); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(LCD_WIDTH - count, 0, count, LCD_HEIGHT); + rb->lcd_set_drawmode(oldmode); } /* Scroll right */ @@ -105,12 +105,12 @@ void xlcd_scroll_right(int count) if (blockcount) { - unsigned char *data = _xlcd_rb->lcd_framebuffer; + unsigned char *data = rb->lcd_framebuffer; unsigned char *data_end = data + LCD_FBWIDTH*LCD_HEIGHT; do { - _xlcd_rb->memmove(data + blockcount, data, blocklen); + rb->memmove(data + blockcount, data, blocklen); data += LCD_FBWIDTH; } while (data < data_end); @@ -118,9 +118,9 @@ void xlcd_scroll_right(int count) if (bitcount) { int bx, y; - unsigned char *addr = _xlcd_rb->lcd_framebuffer + blockcount; + unsigned char *addr = rb->lcd_framebuffer + blockcount; #if LCD_DEPTH == 2 - unsigned fill = 0x55 * (~_xlcd_rb->lcd_get_background() & 3); + unsigned fill = 0x55 * (~rb->lcd_get_background() & 3); #endif for (y = 0; y < LCD_HEIGHT; y++) @@ -137,10 +137,10 @@ void xlcd_scroll_right(int count) addr += LCD_FBWIDTH; } } - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(0, 0, count, LCD_HEIGHT); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, 0, count, LCD_HEIGHT); + rb->lcd_set_drawmode(oldmode); } #else /* LCD_PIXELFORMAT vertical packed or >= 8bit / pixel */ @@ -154,21 +154,21 @@ void xlcd_scroll_left(int count) if ((unsigned)count >= LCD_WIDTH) return; - data = _xlcd_rb->lcd_framebuffer; + data = rb->lcd_framebuffer; data_end = data + LCD_WIDTH*LCD_FBHEIGHT; length = LCD_WIDTH - count; do { - _xlcd_rb->memmove(data, data + count, length * sizeof(fb_data)); + rb->memmove(data, data + count, length * sizeof(fb_data)); data += LCD_WIDTH; } while (data < data_end); - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(length, 0, count, LCD_HEIGHT); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(length, 0, count, LCD_HEIGHT); + rb->lcd_set_drawmode(oldmode); } /* Scroll right */ @@ -180,21 +180,21 @@ void xlcd_scroll_right(int count) if ((unsigned)count >= LCD_WIDTH) return; - data = _xlcd_rb->lcd_framebuffer; + data = rb->lcd_framebuffer; data_end = data + LCD_WIDTH*LCD_FBHEIGHT; length = LCD_WIDTH - count; do { - _xlcd_rb->memmove(data + count, data, length * sizeof(fb_data)); + rb->memmove(data + count, data, length * sizeof(fb_data)); data += LCD_WIDTH; } while (data < data_end); - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(0, 0, count, LCD_HEIGHT); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, 0, count, LCD_HEIGHT); + rb->lcd_set_drawmode(oldmode); } #endif /* LCD_PIXELFORMAT, LCD_DEPTH */ @@ -211,14 +211,14 @@ void xlcd_scroll_up(int count) length = LCD_HEIGHT - count; - _xlcd_rb->memmove(_xlcd_rb->lcd_framebuffer, - _xlcd_rb->lcd_framebuffer + count * LCD_FBWIDTH, + rb->memmove(rb->lcd_framebuffer, + rb->lcd_framebuffer + count * LCD_FBWIDTH, length * LCD_FBWIDTH * sizeof(fb_data)); - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(0, length, LCD_WIDTH, count); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, length, LCD_WIDTH, count); + rb->lcd_set_drawmode(oldmode); } /* Scroll down */ @@ -231,14 +231,14 @@ void xlcd_scroll_down(int count) length = LCD_HEIGHT - count; - _xlcd_rb->memmove(_xlcd_rb->lcd_framebuffer + count * LCD_FBWIDTH, - _xlcd_rb->lcd_framebuffer, + rb->memmove(rb->lcd_framebuffer + count * LCD_FBWIDTH, + rb->lcd_framebuffer, length * LCD_FBWIDTH * sizeof(fb_data)); - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(0, 0, LCD_WIDTH, count); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, 0, LCD_WIDTH, count); + rb->lcd_set_drawmode(oldmode); } #else /* LCD_PIXELFORMAT == VERTICAL_PACKING, @@ -265,8 +265,8 @@ void xlcd_scroll_up(int count) if (blockcount) { - _xlcd_rb->memmove(_xlcd_rb->lcd_framebuffer, - _xlcd_rb->lcd_framebuffer + blockcount * LCD_FBWIDTH, + rb->memmove(rb->lcd_framebuffer, + rb->lcd_framebuffer + blockcount * LCD_FBWIDTH, blocklen * LCD_FBWIDTH * sizeof(fb_data)); } if (bitcount) @@ -336,7 +336,7 @@ void xlcd_scroll_up(int count) "bt .su_cloop \n" : /* outputs */ : /* inputs */ - [addr]"r"(_xlcd_rb->lcd_framebuffer + blocklen * LCD_FBWIDTH), + [addr]"r"(rb->lcd_framebuffer + blocklen * LCD_FBWIDTH), [wide]"r"(LCD_FBWIDTH), [rows]"r"(blocklen), [cnt] "r"(bitcount) @@ -374,17 +374,17 @@ void xlcd_scroll_up(int count) : /* inputs */ [wide]"r"(LCD_FBWIDTH), [rows]"r"(blocklen), - [addr]"a"(_xlcd_rb->lcd_framebuffer + blocklen * LCD_FBWIDTH), + [addr]"a"(rb->lcd_framebuffer + blocklen * LCD_FBWIDTH), [cnt] "d"(bitcount), - [bkg] "d"(0x55 * (~_xlcd_rb->lcd_get_background() & 3)) + [bkg] "d"(0x55 * (~rb->lcd_get_background() & 3)) : /* clobbers */ "a1", "d0", "d1", "d2", "d3" ); #else /* C version */ int x, by; - unsigned char *addr = _xlcd_rb->lcd_framebuffer + blocklen * LCD_FBWIDTH; + unsigned char *addr = rb->lcd_framebuffer + blocklen * LCD_FBWIDTH; #if LCD_DEPTH == 2 - unsigned fill = 0x55 * (~_xlcd_rb->lcd_get_background() & 3); + unsigned fill = 0x55 * (~rb->lcd_get_background() & 3); #else const unsigned fill = 0; #endif @@ -407,10 +407,10 @@ void xlcd_scroll_up(int count) #if LCD_DEPTH == 2 int x, by; - fb_data *addr = _xlcd_rb->lcd_framebuffer + blocklen * LCD_FBWIDTH; + fb_data *addr = rb->lcd_framebuffer + blocklen * LCD_FBWIDTH; unsigned fill, mask; - fill = patterns[_xlcd_rb->lcd_get_background() & 3] << 8; + fill = patterns[rb->lcd_get_background() & 3] << 8; mask = (0xFFu >> bitcount) << bitcount; mask |= mask << 8; @@ -432,10 +432,10 @@ void xlcd_scroll_up(int count) #endif /* LCD_PIXELFORMAT */ } - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(0, LCD_HEIGHT - count, LCD_WIDTH, count); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, LCD_HEIGHT - count, LCD_WIDTH, count); + rb->lcd_set_drawmode(oldmode); } /* Scroll up */ @@ -459,8 +459,8 @@ void xlcd_scroll_down(int count) if (blockcount) { - _xlcd_rb->memmove(_xlcd_rb->lcd_framebuffer + blockcount * LCD_FBWIDTH, - _xlcd_rb->lcd_framebuffer, + rb->memmove(rb->lcd_framebuffer + blockcount * LCD_FBWIDTH, + rb->lcd_framebuffer, blocklen * LCD_FBWIDTH * sizeof(fb_data)); } if (bitcount) @@ -529,7 +529,7 @@ void xlcd_scroll_down(int count) "bt .sd_cloop \n" : /* outputs */ : /* inputs */ - [addr]"r"(_xlcd_rb->lcd_framebuffer + blockcount * LCD_FBWIDTH), + [addr]"r"(rb->lcd_framebuffer + blockcount * LCD_FBWIDTH), [wide]"r"(LCD_WIDTH), [rows]"r"(blocklen), [cnt] "r"(bitcount) @@ -564,17 +564,17 @@ void xlcd_scroll_down(int count) : /* inputs */ [wide]"r"(LCD_WIDTH), [rows]"r"(blocklen), - [addr]"a"(_xlcd_rb->lcd_framebuffer + blockcount * LCD_FBWIDTH), + [addr]"a"(rb->lcd_framebuffer + blockcount * LCD_FBWIDTH), [cnt] "d"(bitcount), - [bkg] "d"((0x55 * (~_xlcd_rb->lcd_get_background() & 3)) << bitcount) + [bkg] "d"((0x55 * (~rb->lcd_get_background() & 3)) << bitcount) : /* clobbers */ "a1", "d0", "d1", "d2", "d3" ); #else /* C version */ int x, by; - unsigned char *addr = _xlcd_rb->lcd_framebuffer + blockcount * LCD_FBWIDTH; + unsigned char *addr = rb->lcd_framebuffer + blockcount * LCD_FBWIDTH; #if LCD_DEPTH == 2 - unsigned fill = (0x55 * (~_xlcd_rb->lcd_get_background() & 3)) << bitcount; + unsigned fill = (0x55 * (~rb->lcd_get_background() & 3)) << bitcount; #else const unsigned fill = 0; #endif @@ -597,10 +597,10 @@ void xlcd_scroll_down(int count) #if LCD_DEPTH == 2 int x, by; - fb_data *addr = _xlcd_rb->lcd_framebuffer + blockcount * LCD_FBWIDTH; + fb_data *addr = rb->lcd_framebuffer + blockcount * LCD_FBWIDTH; unsigned fill, mask; - fill = patterns[_xlcd_rb->lcd_get_background() & 3] >> (8 - bitcount); + fill = patterns[rb->lcd_get_background() & 3] >> (8 - bitcount); mask = (0xFFu >> bitcount) << bitcount; mask |= mask << 8; @@ -622,10 +622,10 @@ void xlcd_scroll_down(int count) #endif /* LCD_PIXELFORMAT */ } - oldmode = _xlcd_rb->lcd_get_drawmode(); - _xlcd_rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - _xlcd_rb->lcd_fillrect(0, 0, LCD_WIDTH, count); - _xlcd_rb->lcd_set_drawmode(oldmode); + oldmode = rb->lcd_get_drawmode(); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, 0, LCD_WIDTH, count); + rb->lcd_set_drawmode(oldmode); } #endif /* LCD_PIXELFORMAT, LCD_DEPTH */ |