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;
103 static String firstFileItemRemaining;
104 static String lastFileItemRemaining;
106 static OutputType outputTypeToLoad;
107 static char const* filenameToStartSearchAt;
112 return ActionResult::ACTIONED_AND_CAUSED_CHANGE;
114 bool isFavouritesVisible()
override;
115 bool isBanksVisible()
override;
118 Error setEnteredTextFromCurrentFilename();
119 Error goUpOneDirectoryLevel();
120 virtual Error arrivedInNewFolder(int32_t direction,
char const* filenameToStartAt =
nullptr,
121 char const* defaultDir =
nullptr);
122 bool predictExtendedText()
override;
123 void goIntoDeleteFileContextMenu();
124 ActionResult mainButtonAction(
bool on);
125 virtual void exitAction();
126 virtual ActionResult backButtonAction();
127 virtual void folderContentsReady(int32_t entryDirection) {}
128 virtual void currentFileChanged(int32_t movementDirection) {}
129 void displayText(
bool blinkImmediately =
false)
override;
130 static Slot getSlot(
char const* displayName);
134 Error readFileItemsFromFolderAndMemory(Song* song, OutputType outputType,
char const* filePrefixHere,
135 char const* filenameToStartAt,
char const* defaultDirToAlsoTry,
136 bool allowFoldersint,
137 Availability availabilityRequirement = Availability::ANY,
138 int32_t newCatalogSearchDirection = CATALOG_SEARCH_RIGHT);
139 void favouritesChanged();
141 static int32_t fileIndexSelected;
143 static int32_t scrollPosVertical;
146 static bool qwertyVisible;
147 static bool arrivedAtFileByTyping;
148 static bool allowFoldersSharingNameWithFile;
149 static char const** allowedFileExtensions;
151 const uint8_t* fileIcon;
152 const uint8_t* fileIconPt2;
153 int32_t fileIconPt2Width;
156 static int8_t numberEditPos;
157 static NumericLayerScrollingText* scrollingText;
158 bool shouldWrapFolderContents;
160 bool mayDefaultToBrandNewNameOnEntry;
161 bool qwertyAlwaysVisible;
163 char const* filePrefix;
164 bool shouldInterpretNoteNamesForThisBrowser;