MCPcopy Create free account
hub / github.com/christophhart/HISE / createFolder

Method createFolder

tools/multipagecreator/Source/DialogLibrary.cpp:289–378  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287namespace library {
288using namespace juce;
289var AudioFolderCompressor::createFolder(State::Job& t, const var& state)
290{
291 // All variables:
292 auto sourceFolder = File(state["sourceFolder"].toString());
293 auto targetFolder = File(state["targetFolder"].toString());
294 auto createArchive = (bool)state["createArchive"];
295
296 t.setMessage ("Collecting files...");
297
298 auto fileList = sourceFolder.findChildFiles (File::findFilesAndDirectories, true, "*");
299
300 int index = 0;
301 int numFiles = (double)fileList.size();
302
303 for(auto f: fileList)
304 {
305 if(f.getFileName() == ".DS_Store")
306 continue;
307
308 t.setMessage ("Compressing " + f.getFileName());
309
310 t.getProgress() = (double)(index++) / numFiles;
311 auto tf = targetFolder.getChildFile(f.getRelativePathFrom(sourceFolder));
312
313 if(f.getFileExtension() == ".wav")
314 {
315 tf.deleteFile();
316 tf.getParentDirectory().createDirectory();
317 WavAudioFormat wf;
318 ScopedPointer<FileInputStream> fis = new FileInputStream(f);
319 ScopedPointer<FileOutputStream> fos = new FileOutputStream(tf.withFileExtension(".flac"));
320
321 ScopedPointer<AudioFormatReader> reader = wf.createReaderFor(fis.release(), true);
322
323 if(reader != nullptr)
324 {
325 FlacAudioFormat ff;
326
327 ScopedPointer<AudioFormatWriter> writer = ff.createWriterFor (fos, reader->sampleRate, reader->getChannelLayout(), reader->bitsPerSample, reader->metadataValues, 8);
328
329 if(writer != nullptr)
330 {
331 fos.release();
332 writer->writeFromAudioReader (*reader, 0, reader->lengthInSamples);
333 writer->flush();
334 writer = nullptr;
335
336 continue;
337 }
338 }
339
340 reader = nullptr;
341 fis = nullptr;
342 fos = nullptr;
343
344 f.copyFileTo (tf);
345 }
346 else

Callers

nothing calls this directly

Calls 15

FileClass · 0.85
varFunction · 0.85
writeFromAudioReaderMethod · 0.80
copyFileToMethod · 0.80
toStringMethod · 0.45
setMessageMethod · 0.45
findChildFilesMethod · 0.45
sizeMethod · 0.45
getFileNameMethod · 0.45
getProgressMethod · 0.45
getChildFileMethod · 0.45
getRelativePathFromMethod · 0.45

Tested by

no test coverage detected