From bc26fe7a96d6f5e443003cb871dcb4bfba525352 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Fri, 4 Jun 2010 08:43:32 +0000 Subject: Add a wrapper header, mylcd.h, in the lib subdirectory, which lets plugins' code automatically call the proper functions depending if compilation is for greylib or color display, also forms proper call to grey_ and xlcd_. mylcd_ub_ call greylib unbuffered routines, regular lcd routines otherwise. Form is mylcd_, is the symbol name stripped of prefixes lcd_, grey_, or xlcd_. Convert a couple plugins I know well (easy job). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26542 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/fft/fft.c | 100 ++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 55 deletions(-) (limited to 'apps/plugins/fft') diff --git a/apps/plugins/fft/fft.c b/apps/plugins/fft/fft.c index 28e775a9c1..b971a8f92f 100644 --- a/apps/plugins/fft/fft.c +++ b/apps/plugins/fft/fft.c @@ -22,6 +22,7 @@ #include "lib/helper.h" #include "lib/xlcd.h" +#include "lib/mylcd.h" #include "math.h" #include "fracmul.h" @@ -257,16 +258,6 @@ GREY_INFO_STRUCT #define FFT_SIZE 4096 /* 2048*2 */ #endif -#ifdef HAVE_LCD_COLOR -#define lcd_(fn) rb->lcd_##fn -#define lcd_scroll_up xlcd_scroll_up -#define lcd_scroll_left xlcd_scroll_left -#else -#define lcd_(fn) grey_##fn -#define lcd_scroll_up grey_scroll_up -#define lcd_scroll_left grey_scroll_left -#endif - #define ARRAYLEN_IN (FFT_SIZE) #define ARRAYLEN_OUT (FFT_SIZE) #define ARRAYLEN_PLOT (FFT_SIZE/2-1) /* FFT is symmetric, ignore DC */ @@ -568,15 +559,14 @@ static void draw_bars_horizontal(void); static void draw_spectrogram_vertical(void); static void draw_spectrogram_horizontal(void); +#define COLOR_DEFAULT_FG MYLCD_DEFAULT_FG +#define COLOR_DEFAULT_BG MYLCD_DEFAULT_BG + #ifdef HAVE_LCD_COLOR -#define COLOR_DEFAULT_FG LCD_DEFAULT_FG -#define COLOR_DEFAULT_BG LCD_DEFAULT_BG #define COLOR_MESSAGE_FRAME LCD_RGBPACK(0xc6, 0x00, 0x00) #define COLOR_MESSAGE_BG LCD_BLACK #define COLOR_MESSAGE_FG LCD_WHITE #else -#define COLOR_DEFAULT_FG GREY_BLACK -#define COLOR_DEFAULT_BG GREY_WHITE #define COLOR_MESSAGE_FRAME GREY_DARKGRAY #define COLOR_MESSAGE_BG GREY_WHITE #define COLOR_MESSAGE_FG GREY_BLACK @@ -588,7 +578,7 @@ static void draw_spectrogram_horizontal(void); static void draw_message_string(const unsigned char *message, bool active) { int x, y; - lcd_(getstringsize)(message, &x, &y); + mylcd_getstringsize(message, &x, &y); /* x and y give the size of the box for the popup */ x += POPUP_HPADDING*2; @@ -601,20 +591,20 @@ static void draw_message_string(const unsigned char *message, bool active) graph_settings.orientation_vertical && graph_settings.spectrogram_pos >= LCD_WIDTH - x) { - lcd_scroll_left(graph_settings.spectrogram_pos - - LCD_WIDTH + x); + mylcd_scroll_left(graph_settings.spectrogram_pos - + LCD_WIDTH + x); graph_settings.spectrogram_pos = LCD_WIDTH - x - 1; } - lcd_(set_foreground)(COLOR_MESSAGE_FRAME); - lcd_(fillrect)(LCD_WIDTH - x, 0, LCD_WIDTH - 1, y); + mylcd_set_foreground(COLOR_MESSAGE_FRAME); + mylcd_fillrect(LCD_WIDTH - x, 0, LCD_WIDTH - 1, y); - lcd_(set_foreground)(COLOR_MESSAGE_FG); - lcd_(set_background)(COLOR_MESSAGE_BG); - lcd_(putsxy)(LCD_WIDTH - x + POPUP_HPADDING, + mylcd_set_foreground(COLOR_MESSAGE_FG); + mylcd_set_background(COLOR_MESSAGE_BG); + mylcd_putsxy(LCD_WIDTH - x + POPUP_HPADDING, POPUP_VPADDING, message); - lcd_(set_foreground)(COLOR_DEFAULT_FG); - lcd_(set_background)(COLOR_DEFAULT_BG); + mylcd_set_foreground(COLOR_DEFAULT_FG); + mylcd_set_background(COLOR_DEFAULT_BG); } static void draw(const unsigned char* message) @@ -647,15 +637,15 @@ static void draw(const unsigned char* message) if(graph_settings.changed.freq_scale) graph_settings.changed.freq_scale = true; - lcd_(set_foreground)(COLOR_DEFAULT_FG); - lcd_(set_background)(COLOR_DEFAULT_BG); + mylcd_set_foreground(COLOR_DEFAULT_FG); + mylcd_set_background(COLOR_DEFAULT_BG); switch (graph_settings.mode) { default: case FFT_DM_LINES: { - lcd_(clear_display)(); + mylcd_clear_display(); if (graph_settings.orientation_vertical) draw_lines_vertical(); @@ -665,7 +655,7 @@ static void draw(const unsigned char* message) } case FFT_DM_BARS: { - lcd_(clear_display()); + mylcd_clear_display(); if(graph_settings.orientation_vertical) draw_bars_vertical(); @@ -679,7 +669,7 @@ static void draw(const unsigned char* message) if(graph_settings.changed.do_clear) { graph_settings.spectrogram_pos = 0; - lcd_(clear_display)(); + mylcd_clear_display(); } if(graph_settings.orientation_vertical) @@ -709,7 +699,7 @@ static void draw(const unsigned char* message) { /* Spectrogram mode - need to erase the popup */ int x, y; - lcd_(getstringsize)(last_message, &x, &y); + mylcd_getstringsize(last_message, &x, &y); /* Recalculate the size */ x += POPUP_HPADDING*2; y += POPUP_VPADDING*2; @@ -717,7 +707,7 @@ static void draw(const unsigned char* message) if(!graph_settings.orientation_vertical) { /* In horizontal spectrogram mode, just scroll up by Y lines */ - lcd_scroll_up(y); + mylcd_scroll_up(y); graph_settings.spectrogram_pos -= y; if(graph_settings.spectrogram_pos < 0) graph_settings.spectrogram_pos = 0; @@ -725,10 +715,10 @@ static void draw(const unsigned char* message) else { /* In vertical spectrogram mode, erase the popup */ - lcd_(set_foreground)(COLOR_DEFAULT_BG); - lcd_(fillrect)(graph_settings.spectrogram_pos + 1, 0, + mylcd_set_foreground(COLOR_DEFAULT_BG); + mylcd_fillrect(graph_settings.spectrogram_pos + 1, 0, LCD_WIDTH, y); - lcd_(set_foreground)(COLOR_DEFAULT_FG); + mylcd_set_foreground(COLOR_DEFAULT_FG); } } /* else These modes clear the screen themselves */ @@ -736,7 +726,7 @@ static void draw(const unsigned char* message) last_message = NULL; } - lcd_(update)(); + mylcd_update(); graph_settings.changed.clear_all = false; } @@ -763,7 +753,7 @@ static void draw_lines_vertical(void) if(this_max == 0) { - lcd_(hline)(0, LCD_WIDTH - 1, LCD_HEIGHT - 1); /* Draw all "zero" */ + mylcd_hline(0, LCD_WIDTH - 1, LCD_HEIGHT - 1); /* Draw all "zero" */ return; } @@ -812,7 +802,7 @@ static void draw_lines_vertical(void) for(x = 0; x < plotwidth; ++x) { int h = LCD_HEIGHT*plot[x] / max; - lcd_(vline)(x + offset, LCD_HEIGHT - h, LCD_HEIGHT-1); + mylcd_vline(x + offset, LCD_HEIGHT - h, LCD_HEIGHT-1); } } @@ -838,7 +828,7 @@ static void draw_lines_horizontal(void) if(this_max == 0) { - lcd_(vline)(0, 0, LCD_HEIGHT-1); /* Draw all "zero" */ + mylcd_vline(0, 0, LCD_HEIGHT-1); /* Draw all "zero" */ return; } @@ -888,7 +878,7 @@ static void draw_lines_horizontal(void) for(y = 0; y < plotwidth; ++y) { int w = LCD_WIDTH*plot[y] / max; - lcd_(hline)(0, w - 1, y + offset); + mylcd_hline(0, w - 1, y + offset); } } @@ -909,7 +899,7 @@ static void draw_bars_vertical(void) if(graph_settings.changed.amp_scale) max = 0; /* reset the graph on scaling mode change */ - lcd_(hline)(0, LCD_WIDTH-1, LCD_HEIGHT-1); /* Draw baseline */ + mylcd_hline(0, LCD_WIDTH-1, LCD_HEIGHT-1); /* Draw baseline */ if(calc_magnitudes(graph_settings.logarithmic_amp) == 0) return; /* nothing more to draw */ @@ -948,7 +938,7 @@ static void draw_bars_vertical(void) for(i = 0, x = offset; i < bars; ++i, x += barwidth) { int h = LCD_HEIGHT * plot[i] / max; - lcd_(fillrect)(x, LCD_HEIGHT - h, width, h - 1); + mylcd_fillrect(x, LCD_HEIGHT - h, width, h - 1); } } @@ -969,7 +959,7 @@ static void draw_bars_horizontal(void) if(graph_settings.changed.amp_scale) max = 0; /* reset the graph on scaling mode change */ - lcd_(vline)(0, 0, LCD_HEIGHT-1); /* Draw baseline */ + mylcd_vline(0, 0, LCD_HEIGHT-1); /* Draw baseline */ if(calc_magnitudes(graph_settings.logarithmic_amp) == 0) return; /* nothing more to draw */ @@ -1008,7 +998,7 @@ static void draw_bars_horizontal(void) for(i = 0, y = offset; i < bars; ++i, y += barwidth) { int w = LCD_WIDTH * plot[i] / max; - lcd_(fillrect)(1, y, w, height); + mylcd_fillrect(1, y, w, height); } } @@ -1048,8 +1038,8 @@ static void draw_spectrogram_vertical(void) if(index >= SHADES) index = SHADES-1; - lcd_(set_foreground)(SPECTROGRAPH_PALETTE(index)); - lcd_(drawpixel)(graph_settings.spectrogram_pos, + mylcd_set_foreground(SPECTROGRAPH_PALETTE(index)); + mylcd_drawpixel(graph_settings.spectrogram_pos, scale_factor-1 - y); if(++y >= scale_factor) @@ -1063,7 +1053,7 @@ static void draw_spectrogram_vertical(void) if(graph_settings.spectrogram_pos < LCD_WIDTH-1) graph_settings.spectrogram_pos++; else - lcd_scroll_left(1); + mylcd_scroll_left(1); } static void draw_spectrogram_horizontal(void) @@ -1102,8 +1092,8 @@ static void draw_spectrogram_horizontal(void) if(index >= SHADES) index = SHADES-1; - lcd_(set_foreground)(SPECTROGRAPH_PALETTE(index)); - lcd_(drawpixel)(x, graph_settings.spectrogram_pos); + mylcd_set_foreground(SPECTROGRAPH_PALETTE(index)); + mylcd_drawpixel(x, graph_settings.spectrogram_pos); if(++x >= scale_factor) break; @@ -1116,7 +1106,7 @@ static void draw_spectrogram_horizontal(void) if(graph_settings.spectrogram_pos < LCD_HEIGHT-1) graph_settings.spectrogram_pos++; else - lcd_scroll_up(1); + mylcd_scroll_up(1); } /********************* End of plotting functions (modes) *********************/ @@ -1334,8 +1324,8 @@ enum plugin_status plugin_start(const void* parameter) #if LCD_DEPTH > 1 rb->lcd_set_backdrop(NULL); - lcd_(clear_display)(); - lcd_(update)(); + mylcd_clear_display(); + mylcd_update(); #endif backlight_force_on(); @@ -1357,9 +1347,9 @@ enum plugin_status plugin_start(const void* parameter) if(!rb->pcm_is_playing()) { showing_warning = true; - lcd_(clear_display)(); + mylcd_clear_display(); draw_message_string("No audio playing", false); - lcd_(update)(); + mylcd_update(); timeout = HZ/5; } else @@ -1367,8 +1357,8 @@ enum plugin_status plugin_start(const void* parameter) if(showing_warning) { showing_warning = false; - lcd_(clear_display)(); - lcd_(update)(); + mylcd_clear_display(); + mylcd_update(); } timeout = HZ/100; /* 'till end of curent tick, don't use 100% CPU */ -- cgit v1.2.3