Index: apps/bookmark.c =================================================================== RCS file: /cvsroot/rockbox/apps/bookmark.c,v retrieving revision 1.47 diff -u -r1.47 bookmark.c --- apps/bookmark.c 21 Jan 2006 23:43:56 -0000 1.47 +++ apps/bookmark.c 5 Feb 2006 13:16:42 -0000 @@ -41,7 +41,7 @@ #include "menu.h" #include "lang.h" #include "screens.h" -#include "status.h" +#include "statusbar.h" /* status.h is already including.. */ #include "debug.h" #include "kernel.h" #include "sprintf.h" @@ -741,20 +741,20 @@ { #if (AB_REPEAT_ENABLE == 1) case REPEAT_AB: - statusbar_icon_play_mode(Icon_RepeatAB); + gui_statusbar_icon_play_mode(&statusbars.statusbars[0],Icon_RepeatAB); break; #endif case REPEAT_ONE: - statusbar_icon_play_mode(Icon_RepeatOne); + gui_statusbar_icon_play_mode(&statusbars.statusbars[0],Icon_RepeatOne); break; case REPEAT_ALL: - statusbar_icon_play_mode(Icon_Repeat); + gui_statusbar_icon_play_mode(&statusbars.statusbars[0],Icon_Repeat); break; } if(playlist_shuffle) - statusbar_icon_shuffle(); + gui_statusbar_icon_shuffle(&statusbars.statusbars[0]); /* File Name */ len=strlen(global_filename); Index: apps/onplay.c =================================================================== RCS file: /cvsroot/rockbox/apps/onplay.c,v retrieving revision 1.69 diff -u -r1.69 onplay.c --- apps/onplay.c 2 Feb 2006 21:46:23 -0000 1.69 +++ apps/onplay.c 5 Feb 2006 13:16:42 -0000 @@ -465,6 +465,25 @@ return false; } } + +static bool set_statusbar_icons (void) { + int ret; + + statusbars.statusbars[0].icon.img_buf_ptr=statusbars.statusbars[0].icon.img_buf; + statusbars.statusbars[0].icon.img_buf_free = ICONS_BUFSIZE; + statusbars.statusbars[0].icon.bm.data = statusbars.statusbars[0].icon.img_buf_ptr; + + ret=read_bmp_file(selected_file, &statusbars.statusbars[0].icon.bm, statusbars.statusbars[0].icon.img_buf_free, + FORMAT_ANY|FORMAT_TRANSPARENT); + if (ret>0) { + set_file(selected_file, (char *)global_settings.statusbar_icons_file, MAX_FILENAME); + return true; + } else { + read_bmp_file(ICONS_DIR"/sicons.bmp", &statusbars.statusbars[0].icon.bm, statusbars.statusbars[0].icon.img_buf_free, + FORMAT_ANY|FORMAT_TRANSPARENT); + return false; + } +} #endif static bool rename_file(void) @@ -608,9 +627,13 @@ suffix = strrchr(file, '.'); if (suffix) { if (strcasecmp(suffix, ".bmp") == 0) { + items[i].desc = ID2P(LANG_SET_STATUSBAR_ICONS); + items[i].function = set_statusbar_icons; + i++; + items[i].desc = ID2P(LANG_SET_AS_BACKDROP); items[i].function = set_backdrop; - i++; + i++; } } #endif Index: apps/playlist.c =================================================================== RCS file: /cvsroot/rockbox/apps/playlist.c,v retrieving revision 1.141 diff -u -r1.141 playlist.c --- apps/playlist.c 21 Jan 2006 23:43:56 -0000 1.141 +++ apps/playlist.c 5 Feb 2006 13:16:49 -0000 @@ -90,7 +90,7 @@ #include "thread.h" #include "usb.h" #ifdef HAVE_LCD_BITMAP -#include "icons.h" +#include "statusbar.h" #include "widgets.h" #endif Index: apps/screen_access.c =================================================================== RCS file: /cvsroot/rockbox/apps/screen_access.c,v retrieving revision 1.21 diff -u -r1.21 screen_access.c --- apps/screen_access.c 2 Feb 2006 22:00:55 -0000 1.21 +++ apps/screen_access.c 5 Feb 2006 13:16:50 -0000 @@ -124,11 +124,14 @@ screen->set_drawmode=&lcd_set_drawmode; #if LCD_DEPTH > 1 screen->bitmap=&lcd_bitmap; + screen->bitmap_part=&lcd_bitmap_part; #if LCD_DEPTH == 2 /* No transparency yet for grayscale lcd */ screen->transparent_bitmap=&lcd_bitmap; + screen->transparent_bitmap_part=&lcd_bitmap_part; #else screen->transparent_bitmap=&lcd_bitmap_transparent; + screen->transparent_bitmap_part=&lcd_bitmap_transparent_part; #endif screen->get_background=&lcd_get_background; screen->get_foreground=&lcd_get_foreground; Index: apps/screen_access.h =================================================================== RCS file: /cvsroot/rockbox/apps/screen_access.h,v retrieving revision 1.23 diff -u -r1.23 screen_access.h --- apps/screen_access.h 2 Feb 2006 22:00:55 -0000 1.23 +++ apps/screen_access.h 5 Feb 2006 13:16:51 -0000 @@ -84,8 +84,12 @@ int x, int y, int width, int height); void (*bitmap)(const fb_data *src, int x, int y, int width, int height); + void (*bitmap_part)(const fb_data *src, int src_x, int src_y, + int stride, int x, int y, int width, int height); void (*transparent_bitmap)(const fb_data *src, int x, int y, int width, int height); + void (*transparent_bitmap_part)(const fb_data *src, int src_x, int src_y, + int stride, int x, int y, int width, int height); void (*set_drawmode)(int mode); #if (LCD_DEPTH > 1) || (LCD_REMOTE_DEPTH > 1) unsigned (*get_background)(void); Index: apps/settings.c =================================================================== RCS file: /cvsroot/rockbox/apps/settings.c,v retrieving revision 1.353 diff -u -r1.353 settings.c --- apps/settings.c 2 Feb 2006 21:46:23 -0000 1.353 +++ apps/settings.c 5 Feb 2006 13:16:55 -0000 @@ -813,6 +813,9 @@ strncpy((char *)&config_block[i], (char *)global_settings.backdrop_file, MAX_FILENAME); i+= MAX_FILENAME; + strncpy((char *)&config_block[i], (char *)global_settings.statusbar_icons_file, + MAX_FILENAME); + i+= MAX_FILENAME; #endif if(save_config_buffer()) @@ -973,6 +976,16 @@ } else { lcd_set_backdrop(NULL); } + + if ( global_settings.statusbar_icons_file[0] && + global_settings.statusbar_icons_file[0] != 0xff ) { + snprintf(buf, sizeof buf, ICONS_DIR "/%s.bmp", + global_settings.statusbar_icons_file); + + statusbar_icons_load(&(statusbars.statusbars[0]), buf); + } else { + statusbar_icons_load(&(statusbars.statusbars[0]), ICONS_DIR"/sicons.bmp"); + } #endif #if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1) @@ -1126,6 +1139,9 @@ strncpy((char *)global_settings.backdrop_file, (char *)&config_block[i], MAX_FILENAME); i+= MAX_FILENAME; + strncpy((char *)global_settings.statusbar_icons_file, (char *)&config_block[i], + MAX_FILENAME); + i+= MAX_FILENAME; #endif } } @@ -1292,6 +1308,10 @@ if (load_main_backdrop(value)) set_file(value, (char *)global_settings.backdrop_file, MAX_FILENAME); } + else if (!strcasecmp(name, "icons")) { + if (statusbar_icons_load(&(statusbars.statusbars[0]), value)) + set_file(value, (char *)global_settings.statusbar_icons_file, MAX_FILENAME); + } #endif @@ -1440,6 +1460,9 @@ if (global_settings.backdrop_file[0] != 0) fdprintf(fd, "backdrop: %s/%s.bmp\r\n", BACKDROP_DIR, global_settings.backdrop_file); + if (global_settings.statusbar_icons_file[0] != 0) + fdprintf(fd, "sicons: %s/%s.bmp\r\n", ICONS_DIR, + global_settings.statusbar_icons_file); #endif /* here's the action: write values to file, specified via table */ @@ -1521,6 +1544,7 @@ global_settings.lang_file[0] = '\0'; #ifdef HAVE_LCD_COLOR global_settings.backdrop_file[0] = '\0'; + global_settings.statusbar_icons_file[0] = '\0'; #endif } Index: apps/settings.h =================================================================== RCS file: /cvsroot/rockbox/apps/settings.h,v retrieving revision 1.193 diff -u -r1.193 settings.h --- apps/settings.h 2 Feb 2006 20:42:56 -0000 1.193 +++ apps/settings.h 5 Feb 2006 13:16:57 -0000 @@ -38,6 +38,7 @@ #define THEME_DIR ROCKBOX_DIR "/themes" #define PLUGIN_DIR ROCKBOX_DIR"/rocks" #define BACKDROP_DIR ROCKBOX_DIR"/backdrops" +#define ICONS_DIR ROCKBOX_DIR"/icons" #define REC_BASE_DIR "/recordings" #define MAX_FILENAME 20 @@ -410,7 +411,9 @@ #endif #ifdef HAVE_LCD_COLOR unsigned char backdrop_file[MAX_FILENAME+1]; /* backdrop bitmap file */ + unsigned char statusbar_icons_file[MAX_FILENAME+1]; /* backdrop bitmap file */ #endif + }; enum optiontype { INT, BOOL }; Index: apps/gui/statusbar.c =================================================================== RCS file: /cvsroot/rockbox/apps/gui/statusbar.c,v retrieving revision 1.22 diff -u -r1.22 statusbar.c --- apps/gui/statusbar.c 21 Jan 2006 23:43:57 -0000 1.22 +++ apps/gui/statusbar.c 5 Feb 2006 13:17:04 -0000 @@ -36,7 +36,7 @@ #include "status.h" /* needed for battery_state global var */ #include "gwps.h" /* for keys_locked */ #include "statusbar.h" - +#include "bmp.h" /* FIXME: should be removed from icon.h to avoid redefinition, but still needed for compatibility with old system */ @@ -105,6 +105,25 @@ struct gui_syncstatusbar statusbars; +bool statusbar_icons_load(struct gui_statusbar * bar, char *filename) { + int ret; + + bar->icon.img_buf_ptr=bar->icon.img_buf; + bar->icon.img_buf_free = ICONS_BUFSIZE; + bar->icon.bm.data = bar->icon.img_buf_ptr; + + ret = read_bmp_file(filename, &bar->icon.bm, bar->icon.img_buf_free, + FORMAT_ANY|FORMAT_TRANSPARENT); + + if (ret>0) { + return true; + } else { + read_bmp_file(ICONS_DIR"/sicons.bmp", &statusbars.statusbars[0].icon.bm, statusbars.statusbars[0].icon.img_buf_free, + FORMAT_ANY|FORMAT_TRANSPARENT); + return false; + } +} + void gui_statusbar_init(struct gui_statusbar * bar) { bar->last_volume = -1000; /* -1000 means "first update ever" */ @@ -243,32 +262,32 @@ bar->info.redraw_volume = gui_statusbar_icon_volume(bar, bar->info.volume); - gui_statusbar_icon_play_state(display, current_playmode() + + gui_statusbar_icon_play_state(bar, current_playmode() + Icon_Play); switch (bar->info.repeat) { #if (AB_REPEAT_ENABLE == 1) case REPEAT_AB: - gui_statusbar_icon_play_mode(display, Icon_RepeatAB); + gui_statusbar_icon_play_mode(bar, Icon_RepeatAB); break; #endif /* AB_REPEAT_ENABLE == 1 */ case REPEAT_ONE: - gui_statusbar_icon_play_mode(display, Icon_RepeatOne); + gui_statusbar_icon_play_mode(bar, Icon_RepeatOne); break; case REPEAT_ALL: case REPEAT_SHUFFLE: - gui_statusbar_icon_play_mode(display, Icon_Repeat); + gui_statusbar_icon_play_mode(bar, Icon_Repeat); break; } if (bar->info.shuffle) - gui_statusbar_icon_shuffle(display); + gui_statusbar_icon_shuffle(bar); if (bar->info.keylock) - gui_statusbar_icon_lock(display); + gui_statusbar_icon_lock(bar); #ifdef HAS_REMOTE_BUTTON_HOLD if (bar->info.keylockremote) - gui_statusbar_icon_lock_remote(display); + gui_statusbar_icon_lock_remote(bar); #endif #ifdef CONFIG_RTC gui_statusbar_time(display, bar->info.hour, bar->info.minute); @@ -438,51 +457,106 @@ /* * Print play state to status bar */ -void gui_statusbar_icon_play_state(struct screen * display, int state) +void gui_statusbar_icon_play_state(struct gui_statusbar * bar, int state) { - display->mono_bitmap(bitmap_icons_7x8[state], STATUSBAR_PLAY_STATE_X_POS, - STATUSBAR_Y_POS, STATUSBAR_PLAY_STATE_WIDTH, - STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + if (bar->display->screen_type == 0) { + bar->display->transparent_bitmap_part((fb_data *)bar->icon.bm.data, 0, state*8, + bar->icon.bm.width, STATUSBAR_PLAY_STATE_X_POS, + STATUSBAR_Y_POS, bar->icon.bm.width, + STATUSBAR_HEIGHT); + }else{ +#endif + bar->display->mono_bitmap(bitmap_icons_7x8[state], STATUSBAR_PLAY_STATE_X_POS, + STATUSBAR_Y_POS, STATUSBAR_PLAY_STATE_WIDTH, + STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + } +#endif } /* * Print play mode to status bar */ -void gui_statusbar_icon_play_mode(struct screen * display, int mode) +void gui_statusbar_icon_play_mode(struct gui_statusbar * bar, int mode) { - display->mono_bitmap(bitmap_icons_7x8[mode], STATUSBAR_PLAY_MODE_X_POS, - STATUSBAR_Y_POS, STATUSBAR_PLAY_MODE_WIDTH, - STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + if (bar->display->screen_type == 0) { + bar->display->transparent_bitmap_part((fb_data *)bar->icon.bm.data, 0, mode*8, + bar->icon.bm.width, STATUSBAR_PLAY_MODE_X_POS, + STATUSBAR_Y_POS, bar->icon.bm.width, + STATUSBAR_HEIGHT); + }else{ +#endif + bar->display->mono_bitmap(bitmap_icons_7x8[mode], STATUSBAR_PLAY_MODE_X_POS, + STATUSBAR_Y_POS, STATUSBAR_PLAY_MODE_WIDTH, + STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + } +#endif } /* * Print shuffle mode to status bar */ -void gui_statusbar_icon_shuffle(struct screen * display) +void gui_statusbar_icon_shuffle(struct gui_statusbar * bar) { - display->mono_bitmap(bitmap_icons_7x8[Icon_Shuffle], - STATUSBAR_SHUFFLE_X_POS, STATUSBAR_Y_POS, - STATUSBAR_SHUFFLE_WIDTH, STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + if (bar->display->screen_type == 0) { + bar->display->transparent_bitmap_part((fb_data *)bar->icon.bm.data, 0, Icon_Shuffle*8, + bar->icon.bm.width, STATUSBAR_SHUFFLE_X_POS, + STATUSBAR_Y_POS, bar->icon.bm.width, + STATUSBAR_HEIGHT); + }else{ +#endif + bar->display->mono_bitmap(bitmap_icons_7x8[Icon_Shuffle], + STATUSBAR_SHUFFLE_X_POS, STATUSBAR_Y_POS, + STATUSBAR_SHUFFLE_WIDTH, STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + } +#endif } /* * Print lock when keys are locked */ -void gui_statusbar_icon_lock(struct screen * display) +void gui_statusbar_icon_lock(struct gui_statusbar * bar) { - display->mono_bitmap(bitmap_icons_5x8[Icon_Lock_Main], - STATUSBAR_LOCKM_X_POS, STATUSBAR_Y_POS, - STATUSBAR_LOCKM_WIDTH, STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + if (bar->display->screen_type == 0) { + bar->display->transparent_bitmap_part((fb_data *)bar->icon.bm.data, 0, Icon_Lock_Main*8, + bar->icon.bm.width, STATUSBAR_LOCKM_X_POS, + STATUSBAR_Y_POS, bar->icon.bm.width, + STATUSBAR_HEIGHT); + }else{ +#endif + bar->display->mono_bitmap(bitmap_icons_5x8[Icon_Lock_Main], + STATUSBAR_LOCKM_X_POS, STATUSBAR_Y_POS, + STATUSBAR_LOCKM_WIDTH, STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + } +#endif } /* * Print remote lock when remote hold is enabled */ -void gui_statusbar_icon_lock_remote(struct screen * display) +void gui_statusbar_icon_lock_remote(struct gui_statusbar * bar) { - display->mono_bitmap(bitmap_icons_5x8[Icon_Lock_Remote], - STATUSBAR_LOCKR_X_POS, STATUSBAR_Y_POS, - STATUSBAR_LOCKR_WIDTH, STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + if (bar->display->screen_type == 0) { + bar->display->transparent_bitmap_part((fb_data *)bar->icon.bm.data, 0, Icon_Lock_Remote*8, + bar->icon.bm.width, STATUSBAR_LOCKR_X_POS, + STATUSBAR_Y_POS, bar->icon.bm.width, + STATUSBAR_HEIGHT); + }else{ +#endif + bar->display->mono_bitmap(bitmap_icons_5x8[Icon_Lock_Remote], + STATUSBAR_LOCKR_X_POS, STATUSBAR_Y_POS, + STATUSBAR_LOCKR_WIDTH, STATUSBAR_HEIGHT); +#if LCD_DEPTH > 1 + } +#endif } #if (CONFIG_LED == LED_VIRTUAL) || defined(HAVE_REMOTE_LCD) Index: apps/gui/statusbar.h =================================================================== RCS file: /cvsroot/rockbox/apps/gui/statusbar.h,v retrieving revision 1.14 diff -u -r1.14 statusbar.h --- apps/gui/statusbar.h 7 Dec 2005 23:07:07 -0000 1.14 +++ apps/gui/statusbar.h 5 Feb 2006 13:17:05 -0000 @@ -58,6 +58,14 @@ #endif }; +#define ICONS_BUFSIZE (LCD_HEIGHT * LCD_WIDTH/10) +struct icons_img { + struct bitmap bm; + unsigned char img_buf[ICONS_BUFSIZE]; + unsigned char* img_buf_ptr; + int img_buf_free; +}; + struct gui_statusbar { /* Volume icon stuffs */ @@ -72,13 +80,16 @@ struct status_info info; struct status_info lastinfo; - + + struct icons_img icon; struct screen * display; }; extern struct gui_syncstatusbar statusbars; +extern bool statusbar_icons_load(struct gui_statusbar * bar, char *filename); + /* * Initializes a status bar * - bar : the bar to initialize @@ -103,11 +114,11 @@ void gui_statusbar_icon_battery(struct screen * display, int percent); bool gui_statusbar_icon_volume(struct gui_statusbar * bar, int volume); -void gui_statusbar_icon_play_state(struct screen * display, int state); -void gui_statusbar_icon_play_mode(struct screen * display, int mode); -void gui_statusbar_icon_shuffle(struct screen * display); -void gui_statusbar_icon_lock(struct screen * display); -void gui_statusbar_icon_lock_remote(struct screen * display); +void gui_statusbar_icon_play_state(struct gui_statusbar * bar, int state); +void gui_statusbar_icon_play_mode(struct gui_statusbar * bar, int mode); +void gui_statusbar_icon_shuffle(struct gui_statusbar * bar); +void gui_statusbar_icon_lock(struct gui_statusbar * bar); +void gui_statusbar_icon_lock_remote(struct gui_statusbar * bar); void gui_statusbar_led(struct screen * display); Index: apps/lang/english.lang =================================================================== RCS file: /cvsroot/rockbox/apps/lang/english.lang,v retrieving revision 1.213 diff -u -r1.213 english.lang --- apps/lang/english.lang 2 Feb 2006 20:42:56 -0000 1.213 +++ apps/lang/english.lang 5 Feb 2006 13:17:09 -0000 @@ -3599,3 +3599,9 @@ voice: "Backdrop failed" new: +id: LANG_SET_STATUSBAR_ICONS +desc: statusbar icons +eng: "Set as Statusbar icons" +voice: "Set as Statusbar icons" +new: + Index: apps/recorder/icons.c =================================================================== RCS file: /cvsroot/rockbox/apps/recorder/icons.c,v retrieving revision 1.75 diff -u -r1.75 icons.c --- apps/recorder/icons.c 22 Jan 2006 21:30:32 -0000 1.75 +++ apps/recorder/icons.c 5 Feb 2006 13:17:10 -0000 @@ -81,20 +81,3 @@ {0x00,0x00,0x00,0x1c,0x22,0x41,0x49,0x41,0x22,0x1c,0x00,0x00}; #endif -/* - * Print play mode to status bar - */ -void statusbar_icon_play_mode(int mode) -{ - lcd_mono_bitmap(bitmap_icons_7x8[mode], ICON_PLAY_MODE_X_POS, - STATUSBAR_Y_POS, ICON_PLAY_MODE_WIDTH, STATUSBAR_HEIGHT); -} - -/* - * Print shuffle mode to status bar - */ -void statusbar_icon_shuffle(void) -{ - lcd_mono_bitmap(bitmap_icons_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS, - STATUSBAR_Y_POS, ICON_SHUFFLE_WIDTH, STATUSBAR_HEIGHT); -} Index: apps/recorder/icons.h =================================================================== RCS file: /cvsroot/rockbox/apps/recorder/icons.h,v retrieving revision 1.55 diff -u -r1.55 icons.h --- apps/recorder/icons.h 22 Jan 2006 23:32:34 -0000 1.55 +++ apps/recorder/icons.h 5 Feb 2006 13:17:11 -0000 @@ -112,42 +112,6 @@ #define REMOTE_ROCKBOXLOGO_HEIGHT 37 #endif -#define STATUSBAR_X_POS 0 -#define STATUSBAR_Y_POS 0 /* MUST be a multiple of 8 */ -#define STATUSBAR_HEIGHT 8 -#define STATUSBAR_WIDTH LCD_WIDTH -#define ICON_BATTERY_X_POS 0 -#define ICON_BATTERY_WIDTH 18 -#define ICON_PLUG_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+2 -#define ICON_PLUG_WIDTH 7 -#define ICON_VOLUME_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+2+2 -#define ICON_VOLUME_WIDTH 16 -#define ICON_PLAY_STATE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+2+2+2 -#define ICON_PLAY_STATE_WIDTH 7 -#define ICON_PLAY_MODE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+2+2+2+2 -#define ICON_PLAY_MODE_WIDTH 7 -#define ICON_SHUFFLE_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+2+2+2+2+2 -#define ICON_SHUFFLE_WIDTH 7 -#define LOCK_X_POS STATUSBAR_X_POS+ICON_BATTERY_WIDTH+ICON_PLUG_WIDTH+ICON_VOLUME_WIDTH+ICON_PLAY_STATE_WIDTH+ICON_PLAY_MODE_WIDTH+ICON_SHUFFLE_WIDTH+2+2+2+2+2+2 -#define LOCK_WIDTH 5 -#define ICON_DISK_WIDTH 12 -#define ICON_DISK_X_POS STATUSBAR_WIDTH-ICON_DISK_WIDTH -#define TIME_X_END STATUSBAR_WIDTH-1 - -extern void statusbar_wipe(void); -extern void statusbar_icon_battery(int percent); -extern bool statusbar_icon_volume(int percent); -extern void statusbar_icon_play_state(int state); -extern void statusbar_icon_play_mode(int mode); -extern void statusbar_icon_shuffle(void); -extern void statusbar_icon_lock(void); -#ifdef CONFIG_RTC -extern void statusbar_time(int hour, int minute); -#endif -#if CONFIG_LED == LED_VIRTUAL -extern void statusbar_led(void); -#endif - #endif /* End HAVE_LCD_BITMAP */ #endif /* _ICONS_H_ */ Index: tools/buildzip.pl =================================================================== RCS file: /cvsroot/rockbox/tools/buildzip.pl,v retrieving revision 1.44 diff -u -r1.44 buildzip.pl --- tools/buildzip.pl 2 Feb 2006 20:42:56 -0000 1.44 +++ tools/buildzip.pl 5 Feb 2006 13:17:22 -0000 @@ -91,6 +91,7 @@ mkdir ".rockbox/wps", 0777; mkdir ".rockbox/themes", 0777; mkdir ".rockbox/backdrops", 0777; + mkdir ".rockbox/icons", 0777; my $c = 'find apps -name "*.codec" ! -empty -exec cp {} .rockbox/codecs/ \;'; print `$c`; @@ -213,6 +214,11 @@ else { print STDERR "No wps module present, can't do the WPS magic!\n"; } + + # Now copy the icons to icons folder + if(-d "$ROOT/icons") { + system("cp $ROOT/icons/*.bmp .rockbox/icons/"); + } # now copy the file made for reading on the unit: #if($notplayer) {