64class Browser :
public QwertyUI {
69 virtual Error getCurrentFilePath(
String* path) = 0;
70 ActionResult buttonAction(deluge::hid::Button b,
bool on,
bool inCardRoutine)
override;
71 ActionResult padAction(int32_t x, int32_t y, int32_t velocity)
override;
72 ActionResult verticalEncoderAction(int32_t offset,
bool inCardRoutine)
override;
73 void currentFileDeleted();
74 Error goIntoFolder(
char const* folderName);
76 Error createFoldersRecursiveIfNotExists(
const char* path);
77 void selectEncoderAction(int8_t offset)
override;
78 static FileItem* getCurrentFileItem();
79 Error readFileItemsForFolder(
char const* filePrefixHere,
bool allowFolders,
char const** allowedFileExtensionsHere,
80 char const* filenameToStartAt, int32_t newMaxNumFileItems,
81 int32_t newCatalogSearchDirection = CATALOG_SEARCH_BOTH);
82 Error setFileByFullPath(OutputType outputType,
char const* fullPath);
85 static void emptyFileItems();
86 static void deleteSomeFileItems(int32_t startAt, int32_t stopAt);
87 static void deleteFolderAndDuplicateItems(Availability instrumentAvailabilityRequirement = Availability::ANY);
88 Error getUnusedSlot(OutputType outputType,
String* newName,
char const* thingName);
89 bool opened()
override;
90 void cullSomeFileItems();
97 static int32_t numFileItemsDeletedAtStart;
98 static int32_t numFileItemsDeletedAtEnd;
99 static char const* firstFileItemRemaining;
100 static char const* lastFileItemRemaining;
102 static OutputType outputTypeToLoad;
103 static char const* filenameToStartSearchAt;
112 Error setEnteredTextFromCurrentFilename();
113 Error goUpOneDirectoryLevel();
114 virtual Error arrivedInNewFolder(int32_t direction,
char const* filenameToStartAt =
nullptr,
115 char const* defaultDir =
nullptr);
116 bool predictExtendedText()
override;
117 void goIntoDeleteFileContextMenu();
118 ActionResult mainButtonAction(
bool on);
119 virtual void exitAction();
120 virtual ActionResult backButtonAction();
121 virtual void folderContentsReady(int32_t entryDirection) {}
122 virtual void currentFileChanged(int32_t movementDirection) {}
123 void displayText(
bool blinkImmediately =
false)
override;
124 static Slot getSlot(
char const* displayName);
125 Error readFileItemsFromFolderAndMemory(Song* song, OutputType outputType,
char const* filePrefixHere,
126 char const* filenameToStartAt,
char const* defaultDirToAlsoTry,
127 bool allowFoldersint,
128 Availability availabilityRequirement = Availability::ANY,
129 int32_t newCatalogSearchDirection = CATALOG_SEARCH_RIGHT);
130 void favouritesChanged();
132 static int32_t fileIndexSelected;
134 static int32_t scrollPosVertical;
137 static bool qwertyVisible;
138 static bool arrivedAtFileByTyping;
139 static bool allowFoldersSharingNameWithFile;
140 static char const** allowedFileExtensions;
142 const uint8_t* fileIcon;
143 const uint8_t* fileIconPt2;
144 int32_t fileIconPt2Width;
147 static int8_t numberEditPos;
148 static NumericLayerScrollingText* scrollingText;
149 bool shouldWrapFolderContents;
151 bool mayDefaultToBrandNewNameOnEntry;
152 bool qwertyAlwaysVisible;
154 char const* filePrefix;
155 bool shouldInterpretNoteNamesForThisBrowser;