@ -98,7 +98,7 @@ extern char g_bank_name[NUM_DEXED][BANK_NAME_LEN];
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
elapsedMillis back_from_volume ;
uint8_t instance_num [ 8 ] [ 8 ] ;
char alphabet [ ] = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 " ;
const char accepted_chars [ ] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789- abcdefghijklmnopqrstuvwxyz" ;
# ifdef I2C_DISPLAY
# include <LiquidCrystal_I2C.h>
@ -256,6 +256,7 @@ void UI_func_eq_treble(uint8_t param);
void UI_function_not_enabled ( void ) ;
void UI_function_not_implemented ( uint8_t param ) ;
bool UI_select_name ( uint8_t y , uint8_t x , char * edit_string , uint8_t len , bool init ) ;
uint8_t search_accepted_char ( uint8_t c ) ;
void lcd_display_int ( int16_t var , uint8_t size , bool zeros , bool brackets , bool sign ) ;
void lcd_display_float ( float var , uint8_t size_number , uint8_t size_fraction , bool zeros , bool brackets , bool sign ) ;
void lcd_display_bar_int ( const char * title , uint32_t value , float factor , int32_t min_value , int32_t max_value , uint8_t size , bool zeros , bool sign , bool init ) ;
@ -5081,6 +5082,7 @@ bool UI_select_name(uint8_t y, uint8_t x, char* edit_string, uint8_t len, bool i
{
static int8_t edit_pos ;
static bool edit_mode ;
static uint8_t edit_value ;
if ( init = = true )
{
@ -5088,6 +5090,7 @@ bool UI_select_name(uint8_t y, uint8_t x, char* edit_string, uint8_t len, bool i
lcd . print ( edit_string ) ;
edit_mode = false ;
edit_pos = 0 ;
edit_value = search_accepted_char ( edit_string [ edit_pos ] ) ;
lcd . setCursor ( x , y ) ;
return ( false ) ;
}
@ -5098,7 +5101,12 @@ bool UI_select_name(uint8_t y, uint8_t x, char* edit_string, uint8_t len, bool i
{
if ( edit_mode = = true )
{
edit_string [ edit_pos ] = constrain ( edit_string [ edit_pos ] + 1 , 32 , 126 ) ;
edit_value = search_accepted_char ( edit_string [ edit_pos ] ) ;
if ( edit_value < sizeof ( accepted_chars ) - 2 )
edit_value + + ;
edit_string [ edit_pos ] = accepted_chars [ edit_value ] ;
lcd . setCursor ( x + edit_pos , y ) ;
lcd . print ( edit_string [ edit_pos ] ) ;
}
@ -5122,7 +5130,12 @@ bool UI_select_name(uint8_t y, uint8_t x, char* edit_string, uint8_t len, bool i
{
if ( edit_mode = = true )
{
edit_string [ edit_pos ] = constrain ( edit_string [ edit_pos ] - 1 , 32 , 126 ) ;
edit_value = search_accepted_char ( edit_string [ edit_pos ] ) ;
if ( edit_value > = 1 )
edit_value - - ;
edit_string [ edit_pos ] = accepted_chars [ edit_value ] ;
lcd . setCursor ( x + edit_pos , y ) ;
lcd . print ( edit_string [ edit_pos ] ) ;
}
@ -5164,6 +5177,19 @@ bool UI_select_name(uint8_t y, uint8_t x, char* edit_string, uint8_t len, bool i
return ( false ) ;
}
uint8_t search_accepted_char ( uint8_t c )
{
if ( c = = 0 )
c = 32 ;
for ( uint8_t i = 0 ; i < sizeof ( accepted_chars ) ; i + + )
{
if ( c = = accepted_chars [ i ] )
return ( i ) ;
}
return ( 0 ) ;
}
void lcd_display_int ( int16_t var , uint8_t size , bool zeros , bool brackets , bool sign )
{
lcd_display_float ( float ( var ) , size , 0 , zeros , brackets , sign ) ;