mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-25 01:05:08 +03:00
Fixes #6721 - Tests needed
This commit is contained in:
parent
11baf9bc1a
commit
465674ca68
4 changed files with 33 additions and 28 deletions
|
@ -21,11 +21,15 @@
|
|||
#include "opentx.h"
|
||||
#include "io/frsky_firmware_update.h"
|
||||
|
||||
#define REFRESH_FILES() do { reusableBuffer.sdManager.offset = 65535; menuVerticalPosition = 0; } while(0)
|
||||
#define NODE_TYPE(fname) fname[SD_SCREEN_FILE_LENGTH+1]
|
||||
#define IS_DIRECTORY(fname) ((bool)(!NODE_TYPE(fname)))
|
||||
#define IS_FILE(fname) ((bool)(NODE_TYPE(fname)))
|
||||
|
||||
inline void REFRESH_FILES()
|
||||
{
|
||||
reusableBuffer.sdManager.offset = 65535;
|
||||
}
|
||||
|
||||
void menuRadioSdManagerInfo(event_t event)
|
||||
{
|
||||
SIMPLE_SUBMENU(STR_SD_INFO_TITLE, 1);
|
||||
|
@ -288,7 +292,7 @@ void menuRadioSdManager(event_t _event)
|
|||
break;
|
||||
|
||||
case EVT_ENTRY_UP:
|
||||
menuVerticalOffset = reusableBuffer.sdManager.offset;
|
||||
REFRESH_FILES();
|
||||
break;
|
||||
|
||||
#if defined(PCBX9) || defined(RADIO_X7) // TODO NO_MENU_KEY
|
||||
|
@ -421,23 +425,19 @@ void menuRadioSdManager(event_t _event)
|
|||
FILINFO fno;
|
||||
DIR dir;
|
||||
|
||||
if (menuVerticalOffset == 0) {
|
||||
reusableBuffer.sdManager.offset = 0;
|
||||
memset(reusableBuffer.sdManager.lines, 0, sizeof(reusableBuffer.sdManager.lines));
|
||||
}
|
||||
else if (menuVerticalOffset == reusableBuffer.sdManager.count-NUM_BODY_LINES) {
|
||||
reusableBuffer.sdManager.offset = menuVerticalOffset;
|
||||
memset(reusableBuffer.sdManager.lines, 0, sizeof(reusableBuffer.sdManager.lines));
|
||||
}
|
||||
else if (menuVerticalOffset > reusableBuffer.sdManager.offset) {
|
||||
if (menuVerticalOffset == reusableBuffer.sdManager.offset + 1) {
|
||||
memmove(reusableBuffer.sdManager.lines[0], reusableBuffer.sdManager.lines[1], (NUM_BODY_LINES-1)*sizeof(reusableBuffer.sdManager.lines[0]));
|
||||
memset(reusableBuffer.sdManager.lines[NUM_BODY_LINES-1], 0xff, SD_SCREEN_FILE_LENGTH);
|
||||
NODE_TYPE(reusableBuffer.sdManager.lines[NUM_BODY_LINES-1]) = 1;
|
||||
}
|
||||
else {
|
||||
else if (menuVerticalOffset == reusableBuffer.sdManager.offset - 1) {
|
||||
memmove(reusableBuffer.sdManager.lines[1], reusableBuffer.sdManager.lines[0], (NUM_BODY_LINES-1)*sizeof(reusableBuffer.sdManager.lines[0]));
|
||||
memset(reusableBuffer.sdManager.lines[0], 0, sizeof(reusableBuffer.sdManager.lines[0]));
|
||||
}
|
||||
else {
|
||||
reusableBuffer.sdManager.offset = menuVerticalOffset;
|
||||
memset(reusableBuffer.sdManager.lines, 0, sizeof(reusableBuffer.sdManager.lines));
|
||||
}
|
||||
|
||||
reusableBuffer.sdManager.count = 0;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue