Fix FS#7311 '64 bit simulator crashes when using the menus in some plugins.' by resolving a naming conflict between the plugins' private settings structs and the global 'settings' struct
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14095 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
ec2d2c47a0
commit
1dc5435f8e
2 changed files with 129 additions and 125 deletions
|
@ -300,30 +300,30 @@ struct saved_settings
|
|||
int fullscreen[2];
|
||||
int binary[1];
|
||||
int plain[4];
|
||||
} settings;
|
||||
} clock_settings;
|
||||
|
||||
/************************
|
||||
* Setting default values
|
||||
***********************/
|
||||
void reset_settings(void)
|
||||
{
|
||||
settings.clock = 1;
|
||||
settings.general[general_counter] = 1;
|
||||
settings.general[general_savesetting] = 1;
|
||||
settings.general[general_backlight] = 2;
|
||||
settings.analog[analog_date] = 0;
|
||||
settings.analog[analog_secondhand] = true;
|
||||
settings.analog[analog_time] = false;
|
||||
settings.digital[digital_seconds] = 1;
|
||||
settings.digital[digital_date] = 1;
|
||||
settings.digital[digital_blinkcolon] = false;
|
||||
settings.digital[digital_format] = true;
|
||||
settings.fullscreen[fullscreen_border] = true;
|
||||
settings.fullscreen[fullscreen_secondhand] = true;
|
||||
settings.plain[plain_format] = true;
|
||||
settings.plain[plain_seconds] = true;
|
||||
settings.plain[plain_date] = 1;
|
||||
settings.plain[plain_blinkcolon] = false;
|
||||
clock_settings.clock = 1;
|
||||
clock_settings.general[general_counter] = 1;
|
||||
clock_settings.general[general_savesetting] = 1;
|
||||
clock_settings.general[general_backlight] = 2;
|
||||
clock_settings.analog[analog_date] = 0;
|
||||
clock_settings.analog[analog_secondhand] = true;
|
||||
clock_settings.analog[analog_time] = false;
|
||||
clock_settings.digital[digital_seconds] = 1;
|
||||
clock_settings.digital[digital_date] = 1;
|
||||
clock_settings.digital[digital_blinkcolon] = false;
|
||||
clock_settings.digital[digital_format] = true;
|
||||
clock_settings.fullscreen[fullscreen_border] = true;
|
||||
clock_settings.fullscreen[fullscreen_secondhand] = true;
|
||||
clock_settings.plain[plain_format] = true;
|
||||
clock_settings.plain[plain_seconds] = true;
|
||||
clock_settings.plain[plain_date] = 1;
|
||||
clock_settings.plain[plain_blinkcolon] = false;
|
||||
}
|
||||
|
||||
/**************************************************************
|
||||
|
@ -333,7 +333,7 @@ void reset_settings(void)
|
|||
void set_digital_colors(void)
|
||||
{
|
||||
#ifdef HAVE_LCD_COLOR /* color LCDs.. */
|
||||
if(settings.clock == DIGITAL)
|
||||
if(clock_settings.clock == DIGITAL)
|
||||
{
|
||||
rb->lcd_set_foreground(LCD_WHITE);
|
||||
rb->lcd_set_background(LCD_BLACK);
|
||||
|
@ -344,7 +344,7 @@ void set_digital_colors(void)
|
|||
rb->lcd_set_background(LCD_RGBPACK(180,200,230));
|
||||
}
|
||||
#elif LCD_DEPTH >= 2
|
||||
if(settings.clock == DIGITAL)
|
||||
if(clock_settings.clock == DIGITAL)
|
||||
{
|
||||
rb->lcd_set_foreground(LCD_WHITE);
|
||||
rb->lcd_set_background(LCD_BLACK);
|
||||
|
@ -378,7 +378,7 @@ void cleanup(void *parameter)
|
|||
{
|
||||
(void)parameter;
|
||||
|
||||
if(settings.general[general_savesetting] == 1)
|
||||
if(clock_settings.general[general_savesetting] == 1)
|
||||
save_settings(true);
|
||||
|
||||
/* restore set backlight timeout */
|
||||
|
@ -423,7 +423,7 @@ void save_settings(bool interface)
|
|||
|
||||
if(fd >= 0) /* file exists, save successful */
|
||||
{
|
||||
rb->write (fd, &settings, sizeof(struct saved_settings));
|
||||
rb->write (fd, &clock_settings, sizeof(struct saved_settings));
|
||||
rb->close(fd);
|
||||
|
||||
if(interface)
|
||||
|
@ -472,7 +472,7 @@ void load_settings(void)
|
|||
{
|
||||
if(rb->filesize(fd) == sizeof(struct saved_settings)) /* if so, is it the right size? */
|
||||
{
|
||||
rb->read(fd, &settings, sizeof(struct saved_settings));
|
||||
rb->read(fd, &clock_settings, sizeof(struct saved_settings));
|
||||
rb->close(fd);
|
||||
|
||||
rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
|
@ -572,11 +572,11 @@ void init_clock(void)
|
|||
load_settings();
|
||||
|
||||
/* set backlight timeout */
|
||||
if(settings.general[general_backlight] == 0)
|
||||
if(clock_settings.general[general_backlight] == 0)
|
||||
rb->backlight_set_timeout(0);
|
||||
else if(settings.general[general_backlight] == 1)
|
||||
else if(clock_settings.general[general_backlight] == 1)
|
||||
rb->backlight_set_timeout(rb->global_settings->backlight_timeout);
|
||||
else if(settings.general[general_backlight] == 2)
|
||||
else if(clock_settings.general[general_backlight] == 2)
|
||||
rb->backlight_set_timeout(1);
|
||||
|
||||
for(i=0; i<ANALOG_VALUES; i++)
|
||||
|
@ -616,7 +616,7 @@ void analog_clock(int hour, int minute, int second)
|
|||
rb->lcd_set_foreground(LCD_RGBPACK(100,110,125));
|
||||
|
||||
/* second hand */
|
||||
if(settings.analog[analog_secondhand])
|
||||
if(clock_settings.analog[analog_secondhand])
|
||||
{
|
||||
xlcd_filltriangle(LCD_WIDTH/2, LCD_HEIGHT/2-2, LCD_WIDTH/2, LCD_HEIGHT/2+2,
|
||||
xminute[second], yminute[second]);
|
||||
|
@ -640,7 +640,7 @@ void analog_clock(int hour, int minute, int second)
|
|||
#endif
|
||||
|
||||
/* second hand, if needed */
|
||||
if(settings.analog[analog_secondhand])
|
||||
if(clock_settings.analog[analog_secondhand])
|
||||
{
|
||||
xlcd_filltriangle(LCD_WIDTH/2, LCD_HEIGHT/2-1, LCD_WIDTH/2, LCD_HEIGHT/2+1,
|
||||
xminute[second], yminute[second]);
|
||||
|
@ -690,14 +690,14 @@ void digital_clock(int hour, int minute, int second, bool colon)
|
|||
|
||||
/* this basically detects if we draw an AM or PM bitmap.
|
||||
* if we don't, we center the hh:mm display. */
|
||||
if(!settings.digital[digital_format])
|
||||
if(!clock_settings.digital[digital_format])
|
||||
x_ofs=DIGIT_WIDTH/2;
|
||||
|
||||
#if LCD_DEPTH == 1
|
||||
rb->lcd_fillrect(0,0,112,64);
|
||||
#endif
|
||||
|
||||
if(settings.digital[digital_format])
|
||||
if(clock_settings.digital[digital_format])
|
||||
{
|
||||
/* draw the AM or PM bitmap */
|
||||
if(hour<12)
|
||||
|
@ -723,7 +723,7 @@ void digital_clock(int hour, int minute, int second, bool colon)
|
|||
draw_segment(minute/10, DIGIT_XOFS(6)+3*DIGIT_WIDTH+x_ofs, 0);
|
||||
draw_segment(minute%10, DIGIT_XOFS(6)+4*DIGIT_WIDTH+x_ofs, 0);
|
||||
|
||||
if(settings.digital[digital_seconds])
|
||||
if(clock_settings.digital[digital_seconds])
|
||||
{
|
||||
draw_segment(second/10, DIGIT_XOFS(2), DIGIT_HEIGHT);
|
||||
draw_segment(second%10, DIGIT_XOFS(2)+DIGIT_WIDTH, DIGIT_HEIGHT);
|
||||
|
@ -749,7 +749,7 @@ void fullscreen_clock(int hour, int minute, int second)
|
|||
rb->lcd_set_foreground(LCD_RGBPACK(100,110,125));
|
||||
|
||||
/* second hand */
|
||||
if(settings.analog[analog_secondhand])
|
||||
if(clock_settings.analog[analog_secondhand])
|
||||
{
|
||||
xlcd_filltriangle(LCD_WIDTH/2, LCD_HEIGHT/2-2, LCD_WIDTH/2, LCD_HEIGHT/2+2,
|
||||
xminute_full[second], yminute_full[second]);
|
||||
|
@ -773,7 +773,7 @@ void fullscreen_clock(int hour, int minute, int second)
|
|||
#endif
|
||||
|
||||
/* second hand, if needed */
|
||||
if(settings.analog[analog_secondhand])
|
||||
if(clock_settings.analog[analog_secondhand])
|
||||
{
|
||||
xlcd_filltriangle(LCD_WIDTH/2, LCD_HEIGHT/2-1, LCD_WIDTH/2, LCD_HEIGHT/2+1,
|
||||
xminute_full[second], yminute_full[second]);
|
||||
|
@ -833,7 +833,7 @@ void binary_clock(int hour, int minute, int second)
|
|||
{
|
||||
if(mode_var[mode] >= i)
|
||||
{
|
||||
if(settings.binary[binary_mode])
|
||||
if(clock_settings.binary[binary_mode])
|
||||
draw_digit(DOT_FILLED, xpos*DIGIT_WIDTH+DIGIT_XOFS(6), DIGIT_HEIGHT*mode+DIGIT_YOFS(3));
|
||||
else
|
||||
draw_digit(1, xpos*DIGIT_WIDTH+DIGIT_XOFS(6), DIGIT_HEIGHT*mode+DIGIT_YOFS(3));
|
||||
|
@ -841,7 +841,7 @@ void binary_clock(int hour, int minute, int second)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(settings.binary[binary_mode])
|
||||
if(clock_settings.binary[binary_mode])
|
||||
draw_digit(DOT_EMPTY, xpos*DIGIT_WIDTH+DIGIT_XOFS(6), DIGIT_HEIGHT*mode+DIGIT_YOFS(3));
|
||||
else
|
||||
draw_digit(0, xpos*DIGIT_WIDTH+DIGIT_XOFS(6), DIGIT_HEIGHT*mode+DIGIT_YOFS(3));
|
||||
|
@ -864,10 +864,10 @@ void plain_clock(int hour, int minute, int second, bool colon)
|
|||
|
||||
/* this basically detects if we draw an AM or PM bitmap.
|
||||
* if we don't, we center the hh:mm display. */
|
||||
if(!settings.plain[plain_format])
|
||||
if(!clock_settings.plain[plain_format])
|
||||
x_ofs=DIGIT_WIDTH/2;
|
||||
|
||||
if(settings.plain[plain_format])
|
||||
if(clock_settings.plain[plain_format])
|
||||
{
|
||||
/* draw the AM or PM bitmap */
|
||||
if(hour<12)
|
||||
|
@ -891,7 +891,7 @@ void plain_clock(int hour, int minute, int second, bool colon)
|
|||
draw_digit(minute/10, DIGIT_XOFS(6)+(DIGIT_WIDTH*3)+x_ofs, 0);
|
||||
draw_digit(minute%10, DIGIT_XOFS(6)+(DIGIT_WIDTH*4)+x_ofs, 0);
|
||||
|
||||
if(settings.plain[plain_seconds])
|
||||
if(clock_settings.plain[plain_seconds])
|
||||
{
|
||||
draw_digit(second/10, DIGIT_XOFS(2), DIGIT_HEIGHT);
|
||||
draw_digit(second%10, DIGIT_XOFS(2)+(DIGIT_WIDTH), DIGIT_HEIGHT);
|
||||
|
@ -915,7 +915,7 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
char tmsec[3];
|
||||
|
||||
/* american date readout */
|
||||
if(settings.analog[analog_date] == 1)
|
||||
if(clock_settings.analog[analog_date] == 1)
|
||||
rb->snprintf(moday, sizeof(moday), "%02d/%02d", month, day);
|
||||
else
|
||||
rb->snprintf(moday, sizeof(moday), "%02d.%02d", day, month);
|
||||
|
@ -924,9 +924,9 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
rb->snprintf(tmsec, sizeof(tmsec), "%02d", second);
|
||||
|
||||
/* Analog Extras */
|
||||
if(settings.clock == ANALOG)
|
||||
if(clock_settings.clock == ANALOG)
|
||||
{
|
||||
if(settings.analog[analog_time] != 0) /* Digital readout */
|
||||
if(clock_settings.analog[analog_time] != 0) /* Digital readout */
|
||||
{
|
||||
draw_smalldigit(hour/10, SMALLDIGIT_WIDTH*0, 0);
|
||||
draw_smalldigit(hour%10, SMALLDIGIT_WIDTH*1, 0);
|
||||
|
@ -938,7 +938,7 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
draw_smalldigit(second%10, SMALLDIGIT_WIDTH*2.5, SMALLDIGIT_HEIGHT);
|
||||
|
||||
/* AM/PM indicator */
|
||||
if(settings.analog[analog_time] == 2)
|
||||
if(clock_settings.analog[analog_time] == 2)
|
||||
{
|
||||
if(current_time->tm_hour > 12) /* PM */
|
||||
draw_digit(ICON_PM, LCD_WIDTH-DIGIT_WIDTH, DIGIT_HEIGHT/2-DIGIT_HEIGHT);
|
||||
|
@ -946,9 +946,9 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
draw_digit(ICON_AM, LCD_WIDTH-DIGIT_WIDTH, DIGIT_HEIGHT/2-DIGIT_HEIGHT);
|
||||
}
|
||||
}
|
||||
if(settings.analog[analog_date] != 0) /* Date readout */
|
||||
if(clock_settings.analog[analog_date] != 0) /* Date readout */
|
||||
{
|
||||
if(settings.analog[analog_date] == 1)
|
||||
if(clock_settings.analog[analog_date] == 1)
|
||||
{
|
||||
draw_smalldigit(month/10, SMALLDIGIT_WIDTH*0,
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*2);
|
||||
|
@ -969,7 +969,7 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
draw_smalldigit(year%10, SMALLDIGIT_WIDTH*3.5,
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT);
|
||||
}
|
||||
else if(settings.analog[analog_date] == 2)
|
||||
else if(clock_settings.analog[analog_date] == 2)
|
||||
{
|
||||
|
||||
draw_smalldigit(day/10, SMALLDIGIT_WIDTH*0,
|
||||
|
@ -993,10 +993,10 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if(settings.clock == DIGITAL)
|
||||
else if(clock_settings.clock == DIGITAL)
|
||||
{
|
||||
/* Date readout */
|
||||
if(settings.digital[digital_date] == 1) /* american mode */
|
||||
if(clock_settings.digital[digital_date] == 1) /* american mode */
|
||||
{
|
||||
draw_smallsegment(month/10, SMALLSEG_WIDTH*0+SMALLSEG_XOFS(10),
|
||||
LCD_HEIGHT-SMALLSEG_HEIGHT*LCD_OFFSET*2);
|
||||
|
@ -1019,7 +1019,7 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
draw_smallsegment(year%10, SMALLSEG_WIDTH*9+SMALLSEG_XOFS(10),
|
||||
LCD_HEIGHT-SMALLSEG_HEIGHT*LCD_OFFSET*2);
|
||||
}
|
||||
else if(settings.digital[digital_date] == 2) /* european mode */
|
||||
else if(clock_settings.digital[digital_date] == 2) /* european mode */
|
||||
{
|
||||
draw_smallsegment(day/10, SMALLSEG_WIDTH*0+SMALLSEG_XOFS(10),
|
||||
LCD_HEIGHT-SMALLSEG_HEIGHT*LCD_OFFSET*2);
|
||||
|
@ -1043,18 +1043,18 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
LCD_HEIGHT-SMALLSEG_HEIGHT*LCD_OFFSET*2);
|
||||
}
|
||||
}
|
||||
else if(settings.clock == FULLSCREEN) /* Fullscreen mode */
|
||||
else if(clock_settings.clock == FULLSCREEN) /* Fullscreen mode */
|
||||
{
|
||||
if(settings.fullscreen[fullscreen_border])
|
||||
if(clock_settings.fullscreen[fullscreen_border])
|
||||
{
|
||||
for(i=0; i < 60; i+=5) /* Draw the circle */
|
||||
rb->lcd_fillrect(xminute_full[i]-1, yminute_full[i]-1, 3, 3);
|
||||
}
|
||||
}
|
||||
else if(settings.clock == PLAIN) /* Plain mode */
|
||||
else if(clock_settings.clock == PLAIN) /* Plain mode */
|
||||
{
|
||||
/* Date readout */
|
||||
if(settings.plain[plain_date] == 1) /* american mode */
|
||||
if(clock_settings.plain[plain_date] == 1) /* american mode */
|
||||
{
|
||||
draw_smalldigit(month/10, SMALLDIGIT_WIDTH*0+SMALLDIGIT_XOFS(10),
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*LCD_OFFSET*2);
|
||||
|
@ -1077,7 +1077,7 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
|
|||
draw_smalldigit(year%10, SMALLDIGIT_WIDTH*9+SMALLDIGIT_XOFS(10),
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*LCD_OFFSET*2);
|
||||
}
|
||||
else if(settings.plain[plain_date] == 2) /* european mode */
|
||||
else if(clock_settings.plain[plain_date] == 2) /* european mode */
|
||||
{
|
||||
draw_smalldigit(day/10, SMALLDIGIT_WIDTH*0+SMALLDIGIT_XOFS(10),
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*LCD_OFFSET*2);
|
||||
|
@ -1123,9 +1123,9 @@ void show_counter(void)
|
|||
count_m = displayed_value % 3600 / 60;
|
||||
count_h = displayed_value / 3600;
|
||||
|
||||
if(settings.general[general_counter])
|
||||
if(clock_settings.general[general_counter])
|
||||
{
|
||||
if(settings.clock == ANALOG)
|
||||
if(clock_settings.clock == ANALOG)
|
||||
{
|
||||
draw_smalldigit(count_h/10, LCD_WIDTH-SMALLDIGIT_WIDTH*5,
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*2);
|
||||
|
@ -1142,7 +1142,7 @@ void show_counter(void)
|
|||
draw_smalldigit(count_s%10, LCD_WIDTH-SMALLDIGIT_WIDTH*2.5,
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT);
|
||||
}
|
||||
else if(settings.clock == DIGITAL)
|
||||
else if(clock_settings.clock == DIGITAL)
|
||||
{
|
||||
draw_smallsegment(count_h/10, SMALLSEG_WIDTH*0+SMALLSEG_XOFS(8),
|
||||
LCD_HEIGHT-SMALLSEG_HEIGHT*LCD_OFFSET);
|
||||
|
@ -1161,7 +1161,7 @@ void show_counter(void)
|
|||
draw_smallsegment(count_s%10, SMALLSEG_WIDTH*7+SMALLSEG_XOFS(8),
|
||||
LCD_HEIGHT-SMALLSEG_HEIGHT*LCD_OFFSET);
|
||||
}
|
||||
else if(settings.clock == FULLSCREEN)
|
||||
else if(clock_settings.clock == FULLSCREEN)
|
||||
{
|
||||
|
||||
draw_smalldigit(count_h/10, SMALLDIGIT_WIDTH*0+SMALLDIGIT_XOFS(8),
|
||||
|
@ -1181,7 +1181,7 @@ void show_counter(void)
|
|||
draw_smalldigit(count_s%10, SMALLDIGIT_WIDTH*7+SMALLDIGIT_XOFS(8),
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*1.5);
|
||||
}
|
||||
else if(settings.clock == PLAIN)
|
||||
else if(clock_settings.clock == PLAIN)
|
||||
{
|
||||
draw_smalldigit(count_h/10, SMALLDIGIT_WIDTH*0+SMALLDIGIT_XOFS(8),
|
||||
LCD_HEIGHT-SMALLDIGIT_HEIGHT*LCD_OFFSET);
|
||||
|
@ -1210,7 +1210,7 @@ void show_counter(void)
|
|||
**************/
|
||||
bool menu_mode_selector(void)
|
||||
{
|
||||
int selection=settings.clock-1;
|
||||
int selection=clock_settings.clock-1;
|
||||
|
||||
set_standard_colors();
|
||||
|
||||
|
@ -1220,7 +1220,7 @@ bool menu_mode_selector(void)
|
|||
/* check for this, so if the user exits the menu without
|
||||
* making a selection, it won't change to some weird value. */
|
||||
if(rb->do_menu(&menu, &selection) >=0){
|
||||
settings.clock = selection+1;
|
||||
clock_settings.clock = selection+1;
|
||||
return(true);
|
||||
}
|
||||
return(false);
|
||||
|
@ -1242,15 +1242,15 @@ void menu_analog_settings(void)
|
|||
switch(result)
|
||||
{
|
||||
case 0:
|
||||
rb->set_option("Show Date", &settings.analog[analog_date],
|
||||
rb->set_option("Show Date", &clock_settings.analog[analog_date],
|
||||
INT, date_format_text, 3, NULL);
|
||||
break;
|
||||
case 1:
|
||||
rb->set_option("Show Second Hand", &settings.analog[analog_secondhand],
|
||||
rb->set_option("Show Second Hand", &clock_settings.analog[analog_secondhand],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
case 2:
|
||||
rb->set_option("Show Time", &settings.analog[analog_time],
|
||||
rb->set_option("Show Time", &clock_settings.analog[analog_time],
|
||||
INT, analog_time_text, 3, NULL);
|
||||
break;
|
||||
}
|
||||
|
@ -1273,19 +1273,19 @@ void menu_digital_settings(void)
|
|||
switch(result)
|
||||
{
|
||||
case 0:
|
||||
rb->set_option("Show Date", &settings.digital[digital_date],
|
||||
rb->set_option("Show Date", &clock_settings.digital[digital_date],
|
||||
INT, date_format_text, 3, NULL);
|
||||
break;
|
||||
case 1:
|
||||
rb->set_option("Show Seconds", &settings.digital[digital_seconds],
|
||||
rb->set_option("Show Seconds", &clock_settings.digital[digital_seconds],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
case 2:
|
||||
rb->set_option("Blinking Colon", &settings.digital[digital_blinkcolon],
|
||||
rb->set_option("Blinking Colon", &clock_settings.digital[digital_blinkcolon],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
case 3:
|
||||
rb->set_option("Time Format", &settings.digital[digital_format],
|
||||
rb->set_option("Time Format", &clock_settings.digital[digital_format],
|
||||
INT, time_format_text, 2, NULL);
|
||||
break;
|
||||
}
|
||||
|
@ -1308,11 +1308,11 @@ void menu_fullscreen_settings(void)
|
|||
switch(result)
|
||||
{
|
||||
case 0:
|
||||
rb->set_option("Show Border", &settings.fullscreen[fullscreen_border],
|
||||
rb->set_option("Show Border", &clock_settings.fullscreen[fullscreen_border],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
case 1:
|
||||
rb->set_option("Show Second Hand", &settings.fullscreen[fullscreen_secondhand],
|
||||
rb->set_option("Show Second Hand", &clock_settings.fullscreen[fullscreen_secondhand],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
}
|
||||
|
@ -1334,7 +1334,7 @@ void menu_binary_settings(void)
|
|||
switch(result)
|
||||
{
|
||||
case 0:
|
||||
rb->set_option("Display Mode", &settings.binary[binary_mode],
|
||||
rb->set_option("Display Mode", &clock_settings.binary[binary_mode],
|
||||
INT, binary_mode_text, 2, NULL);
|
||||
}
|
||||
|
||||
|
@ -1357,19 +1357,19 @@ void menu_plain_settings(void)
|
|||
switch(result)
|
||||
{
|
||||
case 0:
|
||||
rb->set_option("Show Date", &settings.plain[plain_date],
|
||||
rb->set_option("Show Date", &clock_settings.plain[plain_date],
|
||||
INT, date_format_text, 3, NULL);
|
||||
break;
|
||||
case 1:
|
||||
rb->set_option("Show Seconds", &settings.plain[plain_seconds],
|
||||
rb->set_option("Show Seconds", &clock_settings.plain[plain_seconds],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
case 2:
|
||||
rb->set_option("Blinking Colon", &settings.plain[plain_blinkcolon],
|
||||
rb->set_option("Blinking Colon", &clock_settings.plain[plain_blinkcolon],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
case 3:
|
||||
rb->set_option("Time Format", &settings.plain[plain_format],
|
||||
rb->set_option("Time Format", &clock_settings.plain[plain_format],
|
||||
INT, time_format_text, 2, NULL);
|
||||
break;
|
||||
}
|
||||
|
@ -1420,21 +1420,21 @@ void menu_general_settings(void)
|
|||
break;
|
||||
|
||||
case 2:
|
||||
rb->set_option("Save On Exit", &settings.general[general_savesetting],
|
||||
rb->set_option("Save On Exit", &clock_settings.general[general_savesetting],
|
||||
INT, noyes_text, 2, NULL);
|
||||
|
||||
/* if we no longer save on exit, we better save now to remember that */
|
||||
if(settings.general[general_savesetting] == 0)
|
||||
if(clock_settings.general[general_savesetting] == 0)
|
||||
save_settings(false);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
rb->set_option("Show Counter", &settings.general[general_counter],
|
||||
rb->set_option("Show Counter", &clock_settings.general[general_counter],
|
||||
INT, noyes_text, 2, NULL);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
rb->set_option("Backlight Settings", &settings.general[general_backlight],
|
||||
rb->set_option("Backlight Settings", &clock_settings.general[general_backlight],
|
||||
INT, backlight_settings_text, 3, NULL);
|
||||
break;
|
||||
|
||||
|
@ -1474,7 +1474,7 @@ void main_menu(void)
|
|||
break;
|
||||
|
||||
case 2:
|
||||
switch(settings.clock)
|
||||
switch(clock_settings.clock)
|
||||
{
|
||||
case ANALOG: menu_analog_settings();break;
|
||||
case DIGITAL: menu_digital_settings();break;
|
||||
|
@ -1557,26 +1557,26 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
|||
rb->lcd_clear_display();
|
||||
|
||||
/* Analog mode */
|
||||
if(settings.clock == ANALOG)
|
||||
if(clock_settings.clock == ANALOG)
|
||||
analog_clock(hour, minute, second);
|
||||
/* Digital mode */
|
||||
else if(settings.clock == DIGITAL)
|
||||
else if(clock_settings.clock == DIGITAL)
|
||||
{
|
||||
if(settings.digital[digital_blinkcolon])
|
||||
if(clock_settings.digital[digital_blinkcolon])
|
||||
digital_clock(hour, minute, second, second & 1);
|
||||
else
|
||||
digital_clock(hour, minute, second, true);
|
||||
}
|
||||
/* Fullscreen mode */
|
||||
else if(settings.clock == FULLSCREEN)
|
||||
else if(clock_settings.clock == FULLSCREEN)
|
||||
fullscreen_clock(hour, minute, second);
|
||||
/* Binary mode */
|
||||
else if(settings.clock == BINARY)
|
||||
else if(clock_settings.clock == BINARY)
|
||||
binary_clock(hour, minute, second);
|
||||
/* Plain mode */
|
||||
else if(settings.clock == PLAIN)
|
||||
else if(clock_settings.clock == PLAIN)
|
||||
{
|
||||
if(settings.plain[plain_blinkcolon])
|
||||
if(clock_settings.plain[plain_blinkcolon])
|
||||
plain_clock(hour, minute, second, second & 1);
|
||||
else
|
||||
plain_clock(hour, minute, second, true);
|
||||
|
@ -1586,9 +1586,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
|||
show_counter();
|
||||
}
|
||||
|
||||
if(settings.analog[analog_time] == 2 && temphour == 0)
|
||||
if(clock_settings.analog[analog_time] == 2 && temphour == 0)
|
||||
temphour = 12;
|
||||
if(settings.analog[analog_time] == 2 && temphour > 12)
|
||||
if(clock_settings.analog[analog_time] == 2 && temphour > 12)
|
||||
temphour -= 12;
|
||||
|
||||
/* all the "extras" - readouts/displays */
|
||||
|
@ -1606,7 +1606,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
|||
switch (button)
|
||||
{
|
||||
case ACTION_COUNTER_TOGGLE: /* start/stop counter */
|
||||
if(settings.general[general_counter])
|
||||
if(clock_settings.general[general_counter])
|
||||
{
|
||||
if(!counter_btn_held) /* Ignore if the counter was reset */
|
||||
{
|
||||
|
@ -1626,7 +1626,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
|||
break;
|
||||
|
||||
case ACTION_COUNTER_RESET: /* reset counter */
|
||||
if(settings.general[general_counter])
|
||||
if(clock_settings.general[general_counter])
|
||||
{
|
||||
counter_btn_held = true; /* Ignore the release event */
|
||||
counter = 0;
|
||||
|
@ -1635,19 +1635,19 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
|||
break;
|
||||
|
||||
case ACTION_MODE_NEXT:
|
||||
if(settings.clock < CLOCK_MODES)
|
||||
settings.clock++;
|
||||
if(clock_settings.clock < CLOCK_MODES)
|
||||
clock_settings.clock++;
|
||||
else
|
||||
settings.clock = 1;
|
||||
clock_settings.clock = 1;
|
||||
|
||||
set_digital_colors();
|
||||
break;
|
||||
|
||||
case ACTION_MODE_PREV:
|
||||
if(settings.clock > 1)
|
||||
settings.clock--;
|
||||
if(clock_settings.clock > 1)
|
||||
clock_settings.clock--;
|
||||
else
|
||||
settings.clock = CLOCK_MODES;
|
||||
clock_settings.clock = CLOCK_MODES;
|
||||
|
||||
set_digital_colors();
|
||||
break;
|
||||
|
|
|
@ -188,16 +188,16 @@ struct saved_settings {
|
|||
bool digital_minimeters;
|
||||
int analog_decay;
|
||||
int digital_decay;
|
||||
} settings;
|
||||
} vumeter_settings;
|
||||
|
||||
void reset_settings(void) {
|
||||
settings.meter_type=ANALOG;
|
||||
settings.analog_use_db_scale=true;
|
||||
settings.digital_use_db_scale=true;
|
||||
settings.analog_minimeters=true;
|
||||
settings.digital_minimeters=false;
|
||||
settings.analog_decay=3;
|
||||
settings.digital_decay=0;
|
||||
vumeter_settings.meter_type=ANALOG;
|
||||
vumeter_settings.analog_use_db_scale=true;
|
||||
vumeter_settings.digital_use_db_scale=true;
|
||||
vumeter_settings.analog_minimeters=true;
|
||||
vumeter_settings.digital_minimeters=false;
|
||||
vumeter_settings.analog_decay=3;
|
||||
vumeter_settings.digital_decay=0;
|
||||
}
|
||||
|
||||
/* taken from http://www.quinapalus.com/efunc.html */
|
||||
|
@ -305,7 +305,7 @@ void calc_scales(void)
|
|||
void load_settings(void) {
|
||||
int fp = rb->open("/.rockbox/rocks/.vu_meter", O_RDONLY);
|
||||
if(fp>=0) {
|
||||
rb->read(fp, &settings, sizeof(struct saved_settings));
|
||||
rb->read(fp, &vumeter_settings, sizeof(struct saved_settings));
|
||||
rb->close(fp);
|
||||
}
|
||||
else {
|
||||
|
@ -321,7 +321,7 @@ void load_settings(void) {
|
|||
void save_settings(void) {
|
||||
int fp = rb->creat("/.rockbox/rocks/.vu_meter");
|
||||
if(fp >= 0) {
|
||||
rb->write (fp, &settings, sizeof(struct saved_settings));
|
||||
rb->write (fp, &vumeter_settings, sizeof(struct saved_settings));
|
||||
rb->close(fp);
|
||||
}
|
||||
}
|
||||
|
@ -372,45 +372,45 @@ static bool vu_meter_menu(void)
|
|||
switch(rb->do_menu(&menu, &selection))
|
||||
{
|
||||
case 0:
|
||||
rb->set_option("Meter Type", &settings.meter_type, INT,
|
||||
rb->set_option("Meter Type", &vumeter_settings.meter_type, INT,
|
||||
meter_type_option, 2, NULL);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if(settings.meter_type==ANALOG)
|
||||
if(vumeter_settings.meter_type==ANALOG)
|
||||
{
|
||||
rb->set_bool_options("Scale", &settings.analog_use_db_scale,
|
||||
rb->set_bool_options("Scale", &vumeter_settings.analog_use_db_scale,
|
||||
"dBfs", -1, "Linear", -1, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
rb->set_bool_options("Scale", &settings.digital_use_db_scale,
|
||||
rb->set_bool_options("Scale", &vumeter_settings.digital_use_db_scale,
|
||||
"dBfs", -1, "Linear", -1, NULL);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(settings.meter_type==ANALOG)
|
||||
if(vumeter_settings.meter_type==ANALOG)
|
||||
{
|
||||
rb->set_bool("Enable Minimeters",
|
||||
&settings.analog_minimeters);
|
||||
&vumeter_settings.analog_minimeters);
|
||||
}
|
||||
else
|
||||
{
|
||||
rb->set_bool("Enable Minimeters",
|
||||
&settings.digital_minimeters);
|
||||
&vumeter_settings.digital_minimeters);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if(settings.meter_type==ANALOG)
|
||||
if(vumeter_settings.meter_type==ANALOG)
|
||||
{
|
||||
rb->set_option("Decay Speed", &settings.analog_decay, INT,
|
||||
rb->set_option("Decay Speed", &vumeter_settings.analog_decay, INT,
|
||||
decay_speed_option, 7, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
rb->set_option("Decay Speed", &settings.digital_decay, INT,
|
||||
rb->set_option("Decay Speed", &vumeter_settings.digital_decay, INT,
|
||||
decay_speed_option, 7, NULL);
|
||||
}
|
||||
break;
|
||||
|
@ -490,7 +490,7 @@ void analog_meter(void) {
|
|||
rb->pcm_calculate_peaks(&left_peak, &right_peak);
|
||||
#endif
|
||||
|
||||
if(settings.analog_use_db_scale) {
|
||||
if(vumeter_settings.analog_use_db_scale) {
|
||||
left_needle_top_x = analog_db_scale[left_peak * half_width / MAX_PEAK];
|
||||
right_needle_top_x = analog_db_scale[right_peak * half_width / MAX_PEAK] + half_width;
|
||||
}
|
||||
|
@ -500,8 +500,10 @@ void analog_meter(void) {
|
|||
}
|
||||
|
||||
/* Makes a decay on the needle */
|
||||
left_needle_top_x = (left_needle_top_x+last_left_needle_top_x*settings.analog_decay)/(settings.analog_decay+1);
|
||||
right_needle_top_x = (right_needle_top_x+last_right_needle_top_x*settings.analog_decay)/(settings.analog_decay+1);
|
||||
left_needle_top_x = (left_needle_top_x+last_left_needle_top_x*vumeter_settings.analog_decay)
|
||||
/(vumeter_settings.analog_decay+1);
|
||||
right_needle_top_x = (right_needle_top_x+last_right_needle_top_x*vumeter_settings.analog_decay)
|
||||
/(vumeter_settings.analog_decay+1);
|
||||
|
||||
last_left_needle_top_x = left_needle_top_x;
|
||||
last_right_needle_top_x = right_needle_top_x;
|
||||
|
@ -513,7 +515,7 @@ void analog_meter(void) {
|
|||
rb->lcd_drawline(quarter_width, LCD_HEIGHT-1, left_needle_top_x, left_needle_top_y);
|
||||
rb->lcd_drawline((quarter_width+half_width), LCD_HEIGHT-1, right_needle_top_x, right_needle_top_y);
|
||||
|
||||
if(settings.analog_minimeters)
|
||||
if(vumeter_settings.analog_minimeters)
|
||||
draw_analog_minimeters();
|
||||
|
||||
/* Needle covers */
|
||||
|
@ -545,7 +547,7 @@ void digital_meter(void) {
|
|||
rb->pcm_calculate_peaks(&left_peak, &right_peak);
|
||||
#endif
|
||||
|
||||
if(settings.digital_use_db_scale) {
|
||||
if(vumeter_settings.digital_use_db_scale) {
|
||||
num_left_leds = digital_db_scale[left_peak * 44 / MAX_PEAK];
|
||||
num_right_leds = digital_db_scale[right_peak * 44 / MAX_PEAK];
|
||||
}
|
||||
|
@ -554,8 +556,10 @@ void digital_meter(void) {
|
|||
num_right_leds = right_peak * 11 / MAX_PEAK;
|
||||
}
|
||||
|
||||
num_left_leds = (num_left_leds+last_num_left_leds*settings.digital_decay)/(settings.digital_decay+1);
|
||||
num_right_leds = (num_right_leds+last_num_right_leds*settings.digital_decay)/(settings.digital_decay+1);
|
||||
num_left_leds = (num_left_leds+last_num_left_leds*vumeter_settings.digital_decay)
|
||||
/(vumeter_settings.digital_decay+1);
|
||||
num_right_leds = (num_right_leds+last_num_right_leds*vumeter_settings.digital_decay)
|
||||
/(vumeter_settings.digital_decay+1);
|
||||
|
||||
last_num_left_leds = num_left_leds;
|
||||
last_num_right_leds = num_right_leds;
|
||||
|
@ -573,7 +577,7 @@ void digital_meter(void) {
|
|||
|
||||
rb->lcd_set_drawmode(DRMODE_SOLID);
|
||||
|
||||
if(settings.digital_minimeters)
|
||||
if(vumeter_settings.digital_minimeters)
|
||||
draw_digital_minimeters();
|
||||
|
||||
/* Lines above/below where the LEDS are */
|
||||
|
@ -609,7 +613,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
|
|||
|
||||
rb->lcd_putsxy(half_width-23, 0, "VU Meter");
|
||||
|
||||
if(settings.meter_type==ANALOG)
|
||||
if(vumeter_settings.meter_type==ANALOG)
|
||||
analog_meter();
|
||||
else
|
||||
digital_meter();
|
||||
|
|
Loading…
Reference in a new issue