Added quick-set screens to F2 (play modes) and F3 (screen settings) in dir browser and wps. Fixed minor propfont issues in lcd.c. Exported icons outside of icons.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2154 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
27c7392777
commit
abe11fd910
|
@ -36,7 +36,7 @@ unsigned char slider_bar[] =
|
|||
0x7c, 0x28, 0x28, 0x28, 0x28, 0x38
|
||||
};
|
||||
|
||||
static unsigned char bitmap_icon_5x8[][5] =
|
||||
unsigned char bitmap_icons_5x8[][5] =
|
||||
{
|
||||
/* Lock */
|
||||
{0x78,0x7f,0x49,0x7f,0x78}
|
||||
|
@ -70,7 +70,7 @@ unsigned char bitmap_icons_6x8[LastIcon][6] =
|
|||
{ 0x63, 0x7f, 0x3a, 0x7f, 0x63, 0x00 },
|
||||
};
|
||||
|
||||
static unsigned char bitmap_icon_7x8[][7] =
|
||||
unsigned char bitmap_icons_7x8[][7] =
|
||||
{
|
||||
/* Power plug */
|
||||
{0x08,0x1c,0x3e,0x3e,0x3e,0x14,0x14},
|
||||
|
@ -190,7 +190,7 @@ void statusbar_icon_battery(int percent, bool charging)
|
|||
|
||||
/* draw power plug if charging */
|
||||
if (charging)
|
||||
lcd_bitmap(bitmap_icon_7x8[Icon_Plug], ICON_PLUG_X_POS,
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_Plug], ICON_PLUG_X_POS,
|
||||
STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT, false);
|
||||
};
|
||||
|
||||
|
@ -217,7 +217,7 @@ void statusbar_icon_volume(int percent)
|
|||
volume = 100;
|
||||
|
||||
if (volume==0) {
|
||||
lcd_bitmap(bitmap_icon_7x8[Icon_Mute],
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_Mute],
|
||||
ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 4,
|
||||
STATUSBAR_Y_POS, 7, STATUSBAR_HEIGHT, false);
|
||||
}
|
||||
|
@ -259,7 +259,7 @@ void statusbar_icon_volume(int percent)
|
|||
*/
|
||||
void statusbar_icon_play_state(int state)
|
||||
{
|
||||
lcd_bitmap(bitmap_icon_7x8[state], ICON_PLAY_STATE_X_POS, STATUSBAR_Y_POS,
|
||||
lcd_bitmap(bitmap_icons_7x8[state], ICON_PLAY_STATE_X_POS, STATUSBAR_Y_POS,
|
||||
ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false);
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ void statusbar_icon_play_state(int state)
|
|||
*/
|
||||
void statusbar_icon_play_mode(int mode)
|
||||
{
|
||||
lcd_bitmap(bitmap_icon_7x8[mode], ICON_PLAY_MODE_X_POS, STATUSBAR_Y_POS,
|
||||
lcd_bitmap(bitmap_icons_7x8[mode], ICON_PLAY_MODE_X_POS, STATUSBAR_Y_POS,
|
||||
ICON_PLAY_MODE_WIDTH, STATUSBAR_HEIGHT, false);
|
||||
}
|
||||
|
||||
|
@ -277,7 +277,7 @@ void statusbar_icon_play_mode(int mode)
|
|||
*/
|
||||
void statusbar_icon_shuffle(void)
|
||||
{
|
||||
lcd_bitmap(bitmap_icon_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS,
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS,
|
||||
STATUSBAR_Y_POS, ICON_SHUFFLE_WIDTH, STATUSBAR_HEIGHT, false);
|
||||
}
|
||||
|
||||
|
@ -286,7 +286,7 @@ void statusbar_icon_shuffle(void)
|
|||
*/
|
||||
void statusbar_icon_lock(void)
|
||||
{
|
||||
lcd_bitmap(bitmap_icon_5x8[Icon_Lock], LOCK_X_POS,
|
||||
lcd_bitmap(bitmap_icons_5x8[Icon_Lock], LOCK_X_POS,
|
||||
STATUSBAR_Y_POS, 5, 8, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,31 @@ enum icons_6x8 {
|
|||
LastIcon
|
||||
};
|
||||
|
||||
/* Symbolic names for icons */
|
||||
enum icons_5x8 {
|
||||
Icon_Lock
|
||||
};
|
||||
|
||||
enum icons_7x8 {
|
||||
Icon_Plug,
|
||||
Icon_Speaker,
|
||||
Icon_Mute,
|
||||
Icon_Play,
|
||||
Icon_Stop,
|
||||
Icon_Pause,
|
||||
Icon_FastForward,
|
||||
Icon_FastBackward,
|
||||
Icon_Record,
|
||||
Icon_RecPause,
|
||||
Icon_Normal,
|
||||
Icon_Repeat,
|
||||
Icon_Shuffle,
|
||||
Icon_Last
|
||||
};
|
||||
|
||||
extern unsigned char bitmap_icons_5x8[1][5];
|
||||
extern unsigned char bitmap_icons_6x8[LastIcon][6];
|
||||
extern unsigned char bitmap_icons_7x8[Icon_Last][7];
|
||||
|
||||
extern unsigned char rockbox112x37[];
|
||||
|
||||
|
@ -57,28 +81,6 @@ extern unsigned char slider_bar[];
|
|||
#define LOCK_WIDTH 5
|
||||
#define TIME_X_END STATUSBAR_WIDTH-1
|
||||
|
||||
/* Symbolic names for icons */
|
||||
enum
|
||||
{
|
||||
Icon_Lock = 0
|
||||
};
|
||||
enum
|
||||
{
|
||||
Icon_Plug = 0,
|
||||
Icon_Speaker,
|
||||
Icon_Mute,
|
||||
Icon_Play,
|
||||
Icon_Stop,
|
||||
Icon_Pause,
|
||||
Icon_FastForward,
|
||||
Icon_FastBackward,
|
||||
Icon_Record,
|
||||
Icon_RecPause,
|
||||
Icon_Normal,
|
||||
Icon_Repeat,
|
||||
Icon_Shuffle
|
||||
};
|
||||
|
||||
extern void statusbar_wipe(void);
|
||||
extern void statusbar_icon_battery(int percent, bool charging);
|
||||
extern void statusbar_icon_volume(int percent);
|
||||
|
|
|
@ -50,11 +50,13 @@ static Menu contrast(void)
|
|||
return MENU_OK;
|
||||
}
|
||||
|
||||
#ifndef HAVE_RECORDER_KEYPAD
|
||||
static Menu shuffle(void)
|
||||
{
|
||||
set_bool( "[Shuffle]", &global_settings.playlist_shuffle );
|
||||
return MENU_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
static Menu mp3_filter(void)
|
||||
{
|
||||
|
@ -169,7 +171,9 @@ Menu settings_menu(void)
|
|||
Menu result;
|
||||
|
||||
struct menu_items items[] = {
|
||||
#ifndef HAVE_RECORDER_KEYPAD
|
||||
{ "Shuffle", shuffle },
|
||||
#endif
|
||||
{ "MP3/M3U filter", mp3_filter },
|
||||
{ "Sort mode", sort_case },
|
||||
{ "Backlight Timer", backlight_timer },
|
||||
|
|
41
apps/tree.c
41
apps/tree.c
|
@ -117,7 +117,7 @@ extern unsigned char bitmap_icons_6x8[LastIcon][6];
|
|||
#define TREE_EXIT BUTTON_LEFT
|
||||
#define TREE_ENTER BUTTON_RIGHT
|
||||
#define TREE_MENU BUTTON_F1
|
||||
#define RELEASE_MASK (BUTTON_OFF)
|
||||
#define RELEASE_MASK (BUTTON_OFF | BUTTON_F2 | BUTTON_F3)
|
||||
#else
|
||||
#define TREE_NEXT BUTTON_RIGHT
|
||||
#define TREE_PREV BUTTON_LEFT
|
||||
|
@ -760,22 +760,31 @@ bool dirbrowse(char *root)
|
|||
break;
|
||||
|
||||
#ifdef HAVE_RECORDER_KEYPAD
|
||||
case BUTTON_F3: {
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
unsigned char state;
|
||||
state = global_settings.statusbar << 1 | global_settings.scrollbar;
|
||||
state = (state + 1) % 4;
|
||||
global_settings.statusbar = state >> 1;
|
||||
global_settings.scrollbar = state & 0x1;
|
||||
settings_save();
|
||||
#ifdef LOADABLE_FONTS
|
||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
||||
#else
|
||||
tree_max_on_screen = TREE_MAX_ON_SCREEN;
|
||||
#endif
|
||||
restore = true;
|
||||
#endif
|
||||
case BUTTON_F2:
|
||||
if (f2_screen()) {
|
||||
/* reread root dir */
|
||||
strcpy(currdir, "/");
|
||||
lastdir[0] = 0;
|
||||
dirlevel = 0;
|
||||
dircursor = 0;
|
||||
}
|
||||
restore = true;
|
||||
break;
|
||||
|
||||
case BUTTON_F3:
|
||||
if (f3_screen()) {
|
||||
/* reread root dir */
|
||||
strcpy(currdir, "/");
|
||||
lastdir[0] = 0;
|
||||
dirlevel = 0;
|
||||
dircursor = 0;
|
||||
}
|
||||
#ifdef LOADABLE_FONTS
|
||||
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
||||
#else
|
||||
tree_max_on_screen = TREE_MAX_ON_SCREEN;
|
||||
#endif
|
||||
restore = true;
|
||||
break;
|
||||
#endif
|
||||
|
||||
|
|
166
apps/wps.c
166
apps/wps.c
|
@ -49,7 +49,7 @@
|
|||
/* 3% of 30min file == 54s step size */
|
||||
|
||||
#ifdef HAVE_RECORDER_KEYPAD
|
||||
#define RELEASE_MASK (BUTTON_F1 | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_UP)
|
||||
#define RELEASE_MASK (BUTTON_F1 | BUTTON_F2 | BUTTON_F3 | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_UP)
|
||||
#else
|
||||
#define RELEASE_MASK (BUTTON_MENU | BUTTON_STOP | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_PLAY)
|
||||
#endif
|
||||
|
@ -629,6 +629,153 @@ static bool menu(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
bool f2_screen(void)
|
||||
{
|
||||
bool exit = false;
|
||||
|
||||
lcd_stop_scroll();
|
||||
|
||||
while (!exit) {
|
||||
int w,h;
|
||||
char* ptr;
|
||||
|
||||
ptr = "Repeat";
|
||||
#ifdef LCD_PROPFONTS
|
||||
lcd_getstringsize(ptr,0,&w,&h);
|
||||
#else
|
||||
lcd_getfontsize(0,&w,&h);
|
||||
w *= strlen(ptr);
|
||||
#endif
|
||||
|
||||
lcd_clear_display();
|
||||
|
||||
lcd_putsxy(0, LCD_HEIGHT/2 - h*2, "Shuffle", 0);
|
||||
lcd_putsxy(0, LCD_HEIGHT/2 - h, "mode:", 0);
|
||||
lcd_putsxy(0, LCD_HEIGHT/2,
|
||||
global_settings.playlist_shuffle ? "on" : "off", 0);
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
|
||||
LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
|
||||
|
||||
/* commented out until we really can disable repeat
|
||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, 0);
|
||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, "mode:", 0);
|
||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, "on", 0 );
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
||||
LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
|
||||
*/
|
||||
lcd_update();
|
||||
|
||||
switch (button_get(true)) {
|
||||
case BUTTON_LEFT:
|
||||
case BUTTON_F2 | BUTTON_LEFT:
|
||||
global_settings.playlist_shuffle =
|
||||
!global_settings.playlist_shuffle;
|
||||
|
||||
if (global_settings.playlist_shuffle)
|
||||
randomise_playlist(current_tick);
|
||||
else
|
||||
sort_playlist(true);
|
||||
break;
|
||||
|
||||
case BUTTON_RIGHT:
|
||||
case BUTTON_F2 | BUTTON_RIGHT:
|
||||
/* toggle repeat */
|
||||
break;
|
||||
|
||||
#ifdef SIMULATOR
|
||||
case BUTTON_F2:
|
||||
#else
|
||||
case BUTTON_F2 | BUTTON_REL:
|
||||
#endif
|
||||
exit = true;
|
||||
break;
|
||||
|
||||
#ifndef SIMULATOR
|
||||
case SYS_USB_CONNECTED:
|
||||
handle_usb();
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
settings_save();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool f3_screen(void)
|
||||
{
|
||||
bool exit = false;
|
||||
|
||||
lcd_stop_scroll();
|
||||
|
||||
while (!exit) {
|
||||
int w,h;
|
||||
char* ptr;
|
||||
|
||||
ptr = "Status";
|
||||
#ifdef LCD_PROPFONTS
|
||||
lcd_getstringsize(ptr,0,&w,&h);
|
||||
#else
|
||||
lcd_getfontsize(0,&w,&h);
|
||||
w *= strlen(ptr);
|
||||
#endif
|
||||
|
||||
lcd_clear_display();
|
||||
|
||||
lcd_putsxy(0, LCD_HEIGHT/2 - h*2, "Scroll", 0);
|
||||
lcd_putsxy(0, LCD_HEIGHT/2 - h, "bar:", 0);
|
||||
lcd_putsxy(0, LCD_HEIGHT/2,
|
||||
global_settings.scrollbar ? "on" : "off", 0);
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
|
||||
LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
|
||||
|
||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, 0);
|
||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, "bar:", 0);
|
||||
lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2,
|
||||
global_settings.statusbar ? "on" : "off", 0 );
|
||||
lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
|
||||
LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
|
||||
lcd_update();
|
||||
|
||||
switch (button_get(true)) {
|
||||
case BUTTON_LEFT:
|
||||
case BUTTON_F3 | BUTTON_LEFT:
|
||||
global_settings.scrollbar = !global_settings.scrollbar;
|
||||
break;
|
||||
|
||||
case BUTTON_RIGHT:
|
||||
case BUTTON_F3 | BUTTON_RIGHT:
|
||||
global_settings.statusbar = !global_settings.statusbar;
|
||||
break;
|
||||
|
||||
#ifdef SIMULATOR
|
||||
case BUTTON_F3:
|
||||
#else
|
||||
case BUTTON_F3 | BUTTON_REL:
|
||||
#endif
|
||||
exit = true;
|
||||
break;
|
||||
|
||||
#ifndef SIMULATOR
|
||||
case SYS_USB_CONNECTED:
|
||||
handle_usb();
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
settings_save();
|
||||
if (global_settings.statusbar)
|
||||
lcd_setmargins(0, STATUSBAR_HEIGHT);
|
||||
else
|
||||
lcd_setmargins(0, 0);
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* demonstrates showing different formats from playtune */
|
||||
int wps_show(void)
|
||||
{
|
||||
|
@ -777,15 +924,18 @@ int wps_show(void)
|
|||
restore = true;
|
||||
break;
|
||||
|
||||
/* toggle status bar */
|
||||
#ifdef HAVE_RECORDER_KEYPAD
|
||||
/* play settings */
|
||||
case BUTTON_F2:
|
||||
if (f2_screen())
|
||||
return SYS_USB_CONNECTED;
|
||||
restore = true;
|
||||
break;
|
||||
|
||||
/* screen settings */
|
||||
case BUTTON_F3:
|
||||
global_settings.statusbar = !global_settings.statusbar;
|
||||
settings_save();
|
||||
if(global_settings.statusbar)
|
||||
lcd_setmargins(0, STATUSBAR_HEIGHT);
|
||||
else
|
||||
lcd_setmargins(0, 0);
|
||||
if (f3_screen())
|
||||
return SYS_USB_CONNECTED;
|
||||
restore = true;
|
||||
break;
|
||||
#endif
|
||||
|
|
|
@ -30,4 +30,9 @@ bool load_custom_wps(void);
|
|||
bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string);
|
||||
bool refresh_wps(bool refresh_scroll);
|
||||
|
||||
#ifdef HAVE_RECORDER_KEYPAD
|
||||
bool f2_screen(void);
|
||||
bool f3_screen(void);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -797,7 +797,6 @@ extern unsigned char char_dw_8x8_prop[][9];
|
|||
int lcd_getstringsize(unsigned char *str, unsigned int font, int *w, int *h)
|
||||
{
|
||||
int width=0;
|
||||
int height=0;
|
||||
unsigned char ch, byte;
|
||||
(void)font;
|
||||
|
||||
|
@ -811,12 +810,9 @@ int lcd_getstringsize(unsigned char *str, unsigned int font, int *w, int *h)
|
|||
|
||||
byte = char_dw_8x8_prop[ch][8];
|
||||
width += (byte>>4) + 1;
|
||||
if((byte & 0x0f) > height)
|
||||
height = byte & 0x0f;
|
||||
|
||||
}
|
||||
*w = width;
|
||||
*h = height;
|
||||
*h = 8;
|
||||
|
||||
return width;
|
||||
}
|
||||
|
@ -851,7 +847,7 @@ void lcd_putspropxy(int x, int y, unsigned char *str, int thisfont)
|
|||
break;
|
||||
|
||||
src = char_dw_8x8_prop[ch];
|
||||
lcd_clearrect (lcd_x+nx, lcd_y, 1, ny);
|
||||
lcd_clearrect (lcd_x+nx, lcd_y, 1, ny );
|
||||
lcd_bitmap (src, lcd_x, lcd_y, nx, ny, true);
|
||||
|
||||
lcd_x += nx+1;
|
||||
|
@ -928,7 +924,7 @@ void lcd_putsxy(int x, int y, unsigned char *str, int thisfont)
|
|||
}
|
||||
#endif
|
||||
|
||||
while (((ch = *str++) != '\0') && (lcd_x + nx < LCD_WIDTH))
|
||||
while (((ch = *str++) != '\0') && (lcd_x + nx <= LCD_WIDTH))
|
||||
{
|
||||
if (lcd_y + ny > LCD_HEIGHT)
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue
Block a user