Merge pull request #3698 from leptun/farm_presort_cache
Farm mode: cache filenames in the presort function
This commit is contained in:
commit
edc5d013dd
|
|
@ -803,7 +803,7 @@ void CardReader::presort() {
|
||||||
// Throw away old sort index
|
// Throw away old sort index
|
||||||
flush_presort();
|
flush_presort();
|
||||||
|
|
||||||
if (farm_mode || IS_SD_INSERTED == false) return; //sorting is not used in farm mode
|
if (IS_SD_INSERTED == false) return; //sorting is not used in farm mode
|
||||||
uint8_t sdSort = eeprom_read_byte((uint8_t*)EEPROM_SD_SORT);
|
uint8_t sdSort = eeprom_read_byte((uint8_t*)EEPROM_SD_SORT);
|
||||||
|
|
||||||
KEEPALIVE_STATE(IN_HANDLER);
|
KEEPALIVE_STATE(IN_HANDLER);
|
||||||
|
|
@ -814,7 +814,7 @@ void CardReader::presort() {
|
||||||
// Never sort more than the max allowed
|
// Never sort more than the max allowed
|
||||||
// If you use folders to organize, 20 may be enough
|
// If you use folders to organize, 20 may be enough
|
||||||
if (fileCnt > SDSORT_LIMIT) {
|
if (fileCnt > SDSORT_LIMIT) {
|
||||||
if (sdSort != SD_SORT_NONE) {
|
if ((sdSort != SD_SORT_NONE) && !farm_mode) {
|
||||||
lcd_show_fullscreen_message_and_wait_P(_i("Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."));////MSG_FILE_CNT c=20 r=6
|
lcd_show_fullscreen_message_and_wait_P(_i("Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."));////MSG_FILE_CNT c=20 r=6
|
||||||
}
|
}
|
||||||
fileCnt = SDSORT_LIMIT;
|
fileCnt = SDSORT_LIMIT;
|
||||||
|
|
@ -833,7 +833,7 @@ void CardReader::presort() {
|
||||||
sort_entries[i] = position >> 5;
|
sort_entries[i] = position >> 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fileCnt > 1) && (sdSort != SD_SORT_NONE)) {
|
if ((fileCnt > 1) && (sdSort != SD_SORT_NONE) && !farm_mode) {
|
||||||
|
|
||||||
#ifdef SORTING_SPEEDTEST
|
#ifdef SORTING_SPEEDTEST
|
||||||
LongTimer sortingSpeedtestTimer;
|
LongTimer sortingSpeedtestTimer;
|
||||||
|
|
|
||||||
|
|
@ -4355,37 +4355,6 @@ while (0)
|
||||||
#define SETTINGS_MMU_MODE
|
#define SETTINGS_MMU_MODE
|
||||||
#endif //MMU_FORCE_STEALTH_MODE
|
#endif //MMU_FORCE_STEALTH_MODE
|
||||||
|
|
||||||
#ifdef SDCARD_SORT_ALPHA
|
|
||||||
#define SETTINGS_SD \
|
|
||||||
do\
|
|
||||||
{\
|
|
||||||
if (card.ToshibaFlashAir_isEnabled())\
|
|
||||||
MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY, lcd_toshiba_flash_air_compatibility_toggle);\
|
|
||||||
else\
|
|
||||||
MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_NORMAL), lcd_toshiba_flash_air_compatibility_toggle);\
|
|
||||||
\
|
|
||||||
uint8_t sdSort;\
|
|
||||||
sdSort = eeprom_read_byte((uint8_t*) EEPROM_SD_SORT);\
|
|
||||||
switch (sdSort)\
|
|
||||||
{\
|
|
||||||
case SD_SORT_TIME: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_SORT_TIME), lcd_sort_type_set); break;\
|
|
||||||
case SD_SORT_ALPHA: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_SORT_ALPHA), lcd_sort_type_set); break;\
|
|
||||||
default: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_NONE), lcd_sort_type_set);\
|
|
||||||
}\
|
|
||||||
}\
|
|
||||||
while (0)
|
|
||||||
#else // SDCARD_SORT_ALPHA
|
|
||||||
#define SETTINGS_SD \
|
|
||||||
do\
|
|
||||||
{\
|
|
||||||
if (card.ToshibaFlashAir_isEnabled())\
|
|
||||||
MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY, lcd_toshiba_flash_air_compatibility_toggle);\
|
|
||||||
else\
|
|
||||||
MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_NORMAL), lcd_toshiba_flash_air_compatibility_toggle);\
|
|
||||||
}\
|
|
||||||
while (0)
|
|
||||||
#endif // SDCARD_SORT_ALPHA
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define SETTINGS_MBL_MODE \
|
#define SETTINGS_MBL_MODE \
|
||||||
do\
|
do\
|
||||||
|
|
@ -4782,7 +4751,20 @@ static void lcd_settings_menu()
|
||||||
MENU_ITEM_SUBMENU_P(_T(MSG_SELECT_LANGUAGE), lcd_language_menu);
|
MENU_ITEM_SUBMENU_P(_T(MSG_SELECT_LANGUAGE), lcd_language_menu);
|
||||||
#endif //(LANG_MODE != 0)
|
#endif //(LANG_MODE != 0)
|
||||||
|
|
||||||
SETTINGS_SD;
|
if (!farm_mode) { //SD related settings are not available in farm mode
|
||||||
|
if (card.ToshibaFlashAir_isEnabled())
|
||||||
|
MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY, lcd_toshiba_flash_air_compatibility_toggle);
|
||||||
|
else
|
||||||
|
MENU_ITEM_TOGGLE_P(_T(MSG_SD_CARD), _T(MSG_NORMAL), lcd_toshiba_flash_air_compatibility_toggle);
|
||||||
|
#ifdef SDCARD_SORT_ALPHA
|
||||||
|
switch (eeprom_read_byte((uint8_t*) EEPROM_SD_SORT)) {
|
||||||
|
case SD_SORT_TIME: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_SORT_TIME), lcd_sort_type_set); break;
|
||||||
|
case SD_SORT_ALPHA: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_SORT_ALPHA), lcd_sort_type_set); break;
|
||||||
|
default: MENU_ITEM_TOGGLE_P(_T(MSG_SORT), _T(MSG_NONE), lcd_sort_type_set);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
SETTINGS_SOUND;
|
SETTINGS_SOUND;
|
||||||
|
|
||||||
#ifdef LCD_BL_PIN
|
#ifdef LCD_BL_PIN
|
||||||
|
|
@ -6019,7 +6001,7 @@ void lcd_sdcard_menu()
|
||||||
lcd_update_enabled = true;
|
lcd_update_enabled = true;
|
||||||
}
|
}
|
||||||
_md->fileCnt = card.getnrfilenames();
|
_md->fileCnt = card.getnrfilenames();
|
||||||
_md->sdSort = eeprom_read_byte((uint8_t*)EEPROM_SD_SORT);
|
_md->sdSort = farm_mode ? SD_SORT_NONE : eeprom_read_byte((uint8_t*)EEPROM_SD_SORT);
|
||||||
_md->menuState = _standard;
|
_md->menuState = _standard;
|
||||||
_md->row = -1; // assume that no SD file/dir is currently selected. Once they are rendered, it will be changed to the correct row for the _scrolling state.
|
_md->row = -1; // assume that no SD file/dir is currently selected. Once they are rendered, it will be changed to the correct row for the _scrolling state.
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue