void YSE::INTERNAL::soundFile::loadNonStreaming() { // load non streaming sounds in one go ScopedPointer<AudioFormatReader> reader; File file; if (IO().getActive()) { // will be deleted by AudioFormatReader customFileReader * cfr = new customFileReader; cfr->create(fileName.c_str()); reader = SOUND::Manager().getReader(cfr); } else { file = File::getCurrentWorkingDirectory().getChildFile(juce::String(fileName)); reader = SOUND::Manager().getReader(file); } if (reader != nullptr) { _fileBuffer.setSize(reader->numChannels, (Int)reader->lengthInSamples); reader->read(&_fileBuffer, 0, (Int)reader->lengthInSamples, 0, true, true); // sample rate adjustment _sampleRateAdjustment = static_cast<Flt>(reader->sampleRate) / static_cast<Flt>(SAMPLERATE); _length = _fileBuffer.getNumSamples(); _buffer = _fileBuffer.getArrayOfReadPointers(); _channels = _fileBuffer.getNumChannels(); // file is ready for use now state = READY; } else { LogImpl().emit(E_FILEREADER, "Unable to read " + file.getFullPathName().toStdString()); state = INVALID; } }
void Logger::Log(LogLevelType level, const char *type, const Exception &e, const char *file /* = NULL */, int line /* = 0 */) { if (!IsEnabled()) return; auto msg = type + e.getMessage(); if (file && file[0]) { msg += folly::sformat(" in {} on line {}", file, line); } LogImpl(level, msg, nullptr); }
void YSE::INTERNAL::soundFile::run() { if (_streaming) { if (source == nullptr) { if (IO().getActive()) { // will be deleted by AudioFormatReader customFileReader * cfr = new customFileReader; cfr->create(fileName.c_str()); streamReader = SOUND::Manager().getReader(cfr); } else { streamReader = SOUND::Manager().getReader(file); } } else { streamReader = SOUND::Manager().getReader(source); } if (streamReader != nullptr) { _buffer.setSize(streamReader->numChannels, STREAM_BUFFERSIZE); // sample rate adjustment _sampleRateAdjustment = static_cast<Flt>(streamReader->sampleRate) / static_cast<Flt>(SAMPLERATE); _length = (Int)streamReader->lengthInSamples; _streamPos = 0; fillStream(false); // file is ready for use now state = READY; return; } else { LogImpl().emit(E_FILEREADER, "Unable to read " + file.getFullPathName().toStdString()); state = INVALID; return; } } // load non streaming sounds in one go ScopedPointer<AudioFormatReader> reader; if (source == nullptr) { if (IO().getActive()) { // will be deleted by AudioFormatReader customFileReader * cfr = new customFileReader; cfr->create(fileName.c_str()); reader = SOUND::Manager().getReader(cfr); } else { reader = SOUND::Manager().getReader(file); } } else { reader = SOUND::Manager().getReader(source); } if (reader != nullptr) { _buffer.setSize(reader->numChannels, (Int)reader->lengthInSamples); reader->read(&_buffer, 0, (Int)reader->lengthInSamples, 0, true, true); // sample rate adjustment _sampleRateAdjustment = static_cast<Flt>(reader->sampleRate) / static_cast<Flt>(SAMPLERATE); _length = _buffer.getNumSamples(); // file is ready for use now state = READY; return; } else { LogImpl().emit(E_FILEREADER, "Unable to read " + file.getFullPathName().toStdString()); state = INVALID; return; } }