82class AudioFileManager {
89 AudioFile* getAudioFileFromFilename(
String& fileName,
bool mayReadCard, Error* error, FilePointer* filePointer,
90 AudioFileType type,
bool makeWaveTableWorkAtAllCosts =
false);
91 bool loadCluster(
Cluster& cluster, int32_t minNumReasonsAfter = 0);
92 void loadAnyEnqueuedClusters(int32_t maxNum = 128,
bool mayProcessUserActionsBetween =
false);
93 void removeReasonFromCluster(
Cluster& cluster,
char const* errorCode,
bool deletingSong =
false);
95 bool ensureEnoughMemoryForOneMoreAudioFile();
99 Error setupAlternateAudioFilePath(
String& newPath, int32_t dirPathLength,
String& oldPath);
100 Error setupAlternateAudioFileDir(
String& newPath,
char const* rootDir,
String& songFilenameWithoutExtension);
101 bool loadingQueueHasAnyLowestPriorityElements();
105 AudioRecordingFolder folder, uint32_t* getNumber,
const char* channelName,
107 void deleteAnyTempRecordedSamplesFromMemory();
108 void deleteUnusedAudioFileFromMemory(
AudioFile& audioFile, int32_t i);
109 void deleteUnusedAudioFileFromMemoryIndexUnknown(
AudioFile& audioFile);
110 bool tryToDeleteAudioFileFromMemoryIfItExists(
char const* filePath);
112 void thingBeginningLoading(ThingType newThingType);
113 void thingFinishedLoading();
115 void setCardRead() { cardReadOnce =
true; }
116 void setCardEjected() { cardEjected =
true; }
121 int32_t minNumReasonsForClusterBeingLoaded;
124 String alternateAudioFileLoadPath;
125 AlternateLoadDirStatus alternateLoadDirStatus = AlternateLoadDirStatus::NONE_SET;
126 ThingType thingTypeBeingLoaded = ThingType::NONE;
127 DIR alternateLoadDir;
129 std::array<int32_t, kNumAudioRecordingFolders> highestUsedAudioRecordingNumber;
130 std::bitset<kNumAudioRecordingFolders> highestUsedAudioRecordingNumberNeedsReChecking;
131 void firstCardRead();
134 bool cardReadOnce{
false};
136 bool cardDisabled =
false;
138 uint32_t clusterSizeAtBoot{0};
140 void cardReinserted();
141 int32_t readBytes(
char* buffer, int32_t num, int32_t* byteIndexWithinCluster,
Cluster** currentCluster,
142 uint32_t* currentClusterIndex, uint32_t fileSize,
Sample* sample);
143 int32_t loadAiff(
Sample* newSample, uint32_t fileSize,
Cluster** currentCluster, uint32_t* currentClusterIndex);
144 int32_t loadWav(
Sample* newSample, uint32_t fileSize,
Cluster** currentCluster, uint32_t* currentClusterIndex);
Error getUnusedAudioRecordingFilePath(String &filePath, String *tempFilePathForRecording, AudioRecordingFolder folder, uint32_t *getNumber, const char *channelName, String *songName)
Definition audio_file_manager.cpp:244