处理printf不支持%f的问题

This commit is contained in:
anod 2023-07-04 21:56:41 +08:00
parent e7d39b5e6c
commit 4392535ee6

View File

@ -63,10 +63,10 @@ atp_text_t CONFIG_OUTPUT = "[general]\n" \
"useGbaDb=%s\n\n" \
"[video]\n" \
"scaler=%d\n" \
"gbaGamma=%1.2f\n" \
"lcdGamma=%1.2f\n" \
"contrast=%1.2f\n" \
"brightness=%1.2f\n\n" \
"gbaGamma=%s\n" \
"lcdGamma=%s\n" \
"contrast=%s\n" \
"brightness=%s\n\n" \
"[advanced]\n" \
"saveOverride=false\n" \
"defaultSave=%d\n\n" \
@ -120,6 +120,17 @@ static atp_error_t config_item( atp_callerdata_t gblcfg, atp_counter_t index, at
return ATP_SUCCESS;
}
static char* float2str( float f, char out[16] )
{
int s = (int)f;
if( f < 0 ) f = -f;
f = f - floor(f);
f *= 100;
int n = (int)f;
ee_snprintf(out, 16, "%d.%02d", s, n);
return out;
}
static atp_pageopt_t config_adjust( atp_callerdata_t gblcfg, atp_counter_t index, atp_boolean_t x, atp_boolean_t, atp_boolean_t l, atp_boolean_t r, atp_boolean_t start, atp_boolean_t )
{
OafConfig *g_oafConfig = (OafConfig*)gblcfg;
@ -158,16 +169,20 @@ static atp_pageopt_t config_adjust( atp_callerdata_t gblcfg, atp_counter_t index
char *data = malloc( len );
if( data == NULL ) return ATP_PAGE_DOSELECT; // only ignore this save
char gbaGamma[16];
char lcdGamma[16];
char contract[16];
char brightness[16];
len = ee_snprintf(
data, len, CONFIG_OUTPUT,
g_oafConfig->backlight,
g_oafConfig->directBoot ? "true":"false",
g_oafConfig->useGbaDb ? "true" : "false",
g_oafConfig->scaler,
g_oafConfig->gbaGamma,
g_oafConfig->lcdGamma,
g_oafConfig->contrast,
g_oafConfig->brightness,
float2str(g_oafConfig->gbaGamma, gbaGamma),
float2str(g_oafConfig->lcdGamma, lcdGamma),
float2str(g_oafConfig->contrast, contract),
float2str(g_oafConfig->brightness, brightness),
g_oafConfig->defaultSave,
g_oafConfig->cheatMode
);