//==================================================================================== void AudioTransportCursor::fileChanged (AudioFilePlayer* player) { if (player == &audioFilePlayer) { AudioFormatReaderSource* readerSource = audioFilePlayer.getAudioFormatReaderSource(); AudioFormatReader* reader = nullptr; if (readerSource != nullptr) reader = readerSource->getAudioFormatReader(); if (reader != nullptr && reader->sampleRate > 0.0 && audioFilePlayer.getLengthInSeconds() > 0.0) { currentSampleRate = reader->sampleRate; fileLength = audioFilePlayer.getLengthInSeconds(); oneOverFileLength = 1.0 / fileLength; } else { currentSampleRate = 44100; fileLength = 0.0; oneOverFileLength = 1.0; } startTimerIfNeeded(); } }
//============================================================================== SequenceAudioSource::AudioEventHolder::AudioEventHolder ( AudioFormatReader* const sourceReader_, const int startOffset_, const double resampleRatio_, const bool deleteWhenRemoved_) : sourceReader (sourceReader_), startOffset (startOffset_), resampleRatio (resampleRatio_) { // create the reader source AudioFormatReaderSource* audioSource = new AudioFormatReaderSource (sourceReader, deleteWhenRemoved_); audioSource->setLooping (false); // create the resample source resampleSource = new PositionableResamplingAudioSource (audioSource, true); resampleSource->setResamplingRatio (resampleRatio); resampleSource->setLooping (false); // create the internal audio buffer copy audioBuffer = new AudioSampleBuffer (sourceReader->numChannels, sourceReader->lengthInSamples); audioBuffer->readFromAudioReader (sourceReader, 0, sourceReader->lengthInSamples, 0, true, true); }
//==================================================================================== void PositionableWaveDisplay::imageChanged (AudioThumbnailImage* changedAudioThumbnailImage) { if (changedAudioThumbnailImage == &audioThumbnailImage) { { const ScopedLock sl (imageLock); cachedImage.clear (cachedImage.getBounds(), backgroundColour); triggerAsyncUpdate(); } AudioFormatReaderSource* readerSource = audioFilePlayer.getAudioFormatReaderSource(); AudioFormatReader* reader = nullptr; if (readerSource != nullptr) reader = readerSource->getAudioFormatReader(); if (reader != nullptr && reader->sampleRate > 0.0 && audioFilePlayer.getLengthInSeconds() > 0.0) { currentSampleRate = reader->sampleRate; fileLength = audioFilePlayer.getLengthInSeconds(); if (fileLength > 0.0) oneOverFileLength = 1.0 / fileLength; refreshCachedImage(); } else { currentSampleRate = 44100; fileLength = 0.0; oneOverFileLength = 1.0; } } }