Save capture files to user documents directory

This commit is contained in:
xenakios 2018-11-08 22:18:50 +02:00
parent 06ded7d011
commit 0d230ac974

View File

@ -486,26 +486,34 @@ void PaulstretchpluginAudioProcessor::saveCaptureBuffer()
if (inchans < 1) if (inchans < 1)
return; return;
Uuid uid; Uuid uid;
String outfn = "C:\\Users\\Teemu\\AppData\\Roaming\\PaulXStretch\\audio_captures\\" + uid.toString() + ".wav";
WavAudioFormat wavformat; WavAudioFormat wavformat;
String outfn = File::getSpecialLocation(File::SpecialLocationType::userDocumentsDirectory).getFullPathName() + "/paulxstretchaudiocaptures/" +
uid.toString() + ".wav";
Logger::writeToLog("Attempting to save capture to file " + outfn);
File outfile(outfn); File outfile(outfn);
auto outstream = outfile.createOutputStream(); outfile.create();
auto writer = unique_from_raw(wavformat.createWriterFor(outstream, getSampleRateChecked(), if (outfile.existsAsFile())
inchans, 32, {}, 0));
if (writer != nullptr)
{ {
auto sourcebuffer = getStretchSource()->getSourceAudioBuffer(); auto outstream = outfile.createOutputStream();
jassert(sourcebuffer->getNumChannels() == inchans); auto writer = unique_from_raw(wavformat.createWriterFor(outstream, getSampleRateChecked(),
jassert(sourcebuffer->getNumSamples() > 0); inchans, 32, {}, 0));
Logger::writeToLog("Saving capture to file " + outfn); if (writer != nullptr)
writer->writeFromAudioSampleBuffer(*sourcebuffer, 0, sourcebuffer->getNumSamples()); {
m_current_file = outfile; auto sourcebuffer = getStretchSource()->getSourceAudioBuffer();
jassert(sourcebuffer->getNumChannels() == inchans);
jassert(sourcebuffer->getNumSamples() > 0);
writer->writeFromAudioSampleBuffer(*sourcebuffer, 0, sourcebuffer->getNumSamples());
m_current_file = outfile;
}
else
{
Logger::writeToLog("Could not create wav writer");
delete outstream;
}
} }
else else
{ Logger::writeToLog("Could not create output file");
Logger::writeToLog("Could not create wav writer");
delete outstream;
}
}; };
std::thread th(task); std::thread th(task);
th.detach(); th.detach();