1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 09:15:38 +03:00

SD File Manager

This commit is contained in:
bsongis 2012-06-24 08:17:42 +00:00
parent dcde118437
commit f6a8ff9f2a
2 changed files with 6 additions and 10 deletions

View file

@ -603,11 +603,7 @@ void menuProcSd(uint8_t event)
if (count < 7) {
reusableBuffer.sd.flags[count] = (fno.fattrib & AM_DIR);
char * line = reusableBuffer.sd.lines[count];
memset(line, 0, SD_SCREEN_FILE_LENGTH);
for (uint8_t i=0; i<SD_SCREEN_FILE_LENGTH-1 && fn[i]; i++) {
line[i] = fn[i];
}
strncpy(reusableBuffer.sd.lines[count], fn, SD_SCREEN_FILE_LENGTH);
count++;
}
}
@ -628,13 +624,14 @@ void menuProcSd(uint8_t event)
if (result) {
uint8_t index = m_posVert-1-s_pgOfs;
if (result == STR_DELETE_FILE) {
f_getcwd(lfn, _MAX_LFN);
f_getcwd(lfn, SD_SCREEN_FILE_LENGTH);
strcat_P(lfn, "/");
strcat_P(lfn, reusableBuffer.sd.lines[index]);
f_unlink(lfn);
strcpy(statusLineMsg, reusableBuffer.sd.lines[index]);
strncpy(statusLineMsg, reusableBuffer.sd.lines[index], 13);
strcpy_P(statusLineMsg+min((uint8_t)strlen(statusLineMsg), (uint8_t)13), PSTR(" removed"));
showStatusLine();
if (m_posVert == reusableBuffer.sd.count) m_posVert--;
reusableBuffer.sd.offset = s_pgOfs-1;
}
}

View file

@ -900,7 +900,7 @@ enum AUDIO_SOUNDS {
#endif
// Re-useable byte array to save having multiple buffers
#define SD_SCREEN_FILE_LENGTH 20
#define SD_SCREEN_FILE_LENGTH (32)
union ReusableBuffer
{
/* 128 bytes on stock */
@ -927,10 +927,9 @@ union ReusableBuffer
#if defined(SDCARD)
struct
{
char lines[7][SD_SCREEN_FILE_LENGTH];
char lines[7][SD_SCREEN_FILE_LENGTH+1];
uint8_t flags[7];
uint32_t available;
uint8_t level;
uint16_t offset;
uint16_t count;
} sd;