修改一下保存键位设定的路径

This commit is contained in:
anod 2023-04-28 08:10:15 +08:00
parent 8fe31182c3
commit d06567768c
2 changed files with 29 additions and 21 deletions

View File

@ -29,7 +29,7 @@ extern key_remix_t g_keyremixConfig[KEY_REMIX_LIMIT];
uint16_t keyremix_cheatkey();
void keyremix_freeze();
void keyremix_update( uint16_t active_cheatkey );
const char* keyremix_dump( char* gbafile );
const char* keyremix_load( char* gbafile );
const char* keyremix_dump( const char* gbafile );
const char* keyremix_load( const char* gbafile );
#endif//_KEY_REMIX_H_

View File

@ -10,6 +10,8 @@ static phykey_t prev_status = 0;
static conkey_t blind_conkey;
static u16 flags_holding = 0;
#define OUTPUT_DIR "keymaps/"
#define VKEY_HOME (1u<<21)
#define now_release( now, prev, key ) ((~(now))&(prev)&(key))
#define CON_KEY_MASK (KEY_A|KEY_B|KEY_L|KEY_R|KEY_SELECT|KEY_START|KEY_DUP|KEY_DDOWN|KEY_DLEFT|KEY_DRIGHT)
@ -130,38 +132,44 @@ void keyremix_update( uint16_t active_cheatkey )
const char* keyremix_load( char *file )
{
char output[512];
int len = strlen( file ) + strlen(OUTPUT_DIR);
if( len+1 > 512 ) return "文件名太长,无法保存";
strcpy( output, OUTPUT_DIR );
strcpy( &output[strlen(OUTPUT_DIR)], file );
output[len] = '\0';
output[len-1] = 'm';
output[len-2] = 'r';
output[len-3] = 'k';
FILINFO fi;
int len = strlen( file );
file[len-1] = 'm';
file[len-2] = 'r';
file[len-3] = 'k';
const char *retval = NULL;
if( fStat(file, &fi) == RES_OK )
if( fStat(output, &fi) == RES_OK )
{
u8 dat[sizeof(g_keyremixConfig)];
if( RES_OK == fsQuickRead(file, dat, 8 ) )
u8 dat[sizeof(g_keyremixConfig)];
if( RES_OK == fsQuickRead(output, dat, sizeof(dat) ) )
memcpy( g_keyremixConfig, dat, sizeof(g_keyremixConfig) );
else retval = "读文件失败";
}
else retval = "文件不存在";
file[len-1] = 'a';
file[len-2] = 'b';
file[len-3] = 'g';
return retval;
}
const char* keyremix_dump( char *file )
const char* keyremix_dump( const char *file )
{
char output[512];
FILINFO fi;
int len = strlen( file );
file[len-1] = 'm';
file[len-2] = 'r';
file[len-3] = 'k';
int len = strlen( file ) + strlen(OUTPUT_DIR);
if( len+1 > 512 ) return "文件名太长,无法保存";
strcpy( output, OUTPUT_DIR );
strcpy( &output[strlen(OUTPUT_DIR)], file );
output[len] = '\0';
output[len-1] = 'm';
output[len-2] = 'r';
output[len-3] = 'k';
const char *retval = NULL;
if( RES_OK != fsQuickWrite(file, g_keyremixConfig, sizeof(g_keyremixConfig) ) )
if( RES_OK != fsQuickWrite(output, g_keyremixConfig, sizeof(g_keyremixConfig)) )
retval = "保存失败";
file[len-1] = 'a';
file[len-2] = 'b';
file[len-3] = 'g';
return retval;
}