Add default audio file that plays once on standalone

pre-release-3
James H Ball 2025-01-07 20:51:24 +00:00
rodzic 09014614e5
commit 5f237df693
6 zmienionych plików z 20 dodań i 3 usunięć

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -39,6 +39,8 @@ CommonAudioProcessor::CommonAudioProcessor()
permanentEffects.push_back(thresholdEffect); permanentEffects.push_back(thresholdEffect);
effects.push_back(volumeEffect); effects.push_back(volumeEffect);
effects.push_back(thresholdEffect); effects.push_back(thresholdEffect);
wavParser.setLooping(false);
} }
void CommonAudioProcessor::addAllParameters() { void CommonAudioProcessor::addAllParameters() {
@ -187,6 +189,12 @@ double CommonAudioProcessor::getSampleRate() {
void CommonAudioProcessor::loadAudioFile(const juce::File& file) { void CommonAudioProcessor::loadAudioFile(const juce::File& file) {
auto stream = std::make_unique<juce::FileInputStream>(file); auto stream = std::make_unique<juce::FileInputStream>(file);
if (stream->openedOk()) { if (stream->openedOk()) {
loadAudioFile(std::move(stream));
}
}
void CommonAudioProcessor::loadAudioFile(std::unique_ptr<juce::InputStream> stream) {
if (stream != nullptr) {
juce::SpinLock::ScopedLockType lock(wavParserLock); juce::SpinLock::ScopedLockType lock(wavParserLock);
wavParser.parse(std::move(stream)); wavParser.parse(std::move(stream));

Wyświetl plik

@ -55,6 +55,7 @@ public:
void changeProgramName(int index, const juce::String& newName) override; void changeProgramName(int index, const juce::String& newName) override;
double getSampleRate() override; double getSampleRate() override;
void loadAudioFile(const juce::File& file); void loadAudioFile(const juce::File& file);
void loadAudioFile(std::unique_ptr<juce::InputStream> stream);
void stopAudioFile(); void stopAudioFile();
void addAudioPlayerListener(AudioPlayerListener* listener); void addAudioPlayerListener(AudioPlayerListener* listener);
void removeAudioPlayerListener(AudioPlayerListener* listener); void removeAudioPlayerListener(AudioPlayerListener* listener);

Wyświetl plik

@ -3,6 +3,12 @@
#include "audio/EffectParameter.h" #include "audio/EffectParameter.h"
SosciAudioProcessor::SosciAudioProcessor() { SosciAudioProcessor::SosciAudioProcessor() {
// demo audio file on standalone only
if (juce::JUCEApplicationBase::isStandaloneApp()) {
std::unique_ptr<juce::InputStream> stream = std::make_unique<juce::MemoryInputStream>(BinaryData::sosci_flac, BinaryData::sosci_flacSize, false);
loadAudioFile(std::move(stream));
}
addAllParameters(); addAllParameters();
} }

Wyświetl plik

@ -26,8 +26,6 @@ AudioPlayerComponent::AudioPlayerComponent(CommonAudioProcessor& processor) : au
playButton.setTooltip("Play audio file"); playButton.setTooltip("Play audio file");
pauseButton.setTooltip("Pause audio file"); pauseButton.setTooltip("Pause audio file");
repeatButton.setToggleState(true, juce::dontSendNotification);
playButton.onClick = [this]() { playButton.onClick = [this]() {
audioProcessor.wavParser.setPaused(false); audioProcessor.wavParser.setPaused(false);
if (audioProcessor.wavParser.isInitialised()) { if (audioProcessor.wavParser.isInitialised()) {
@ -73,6 +71,8 @@ AudioPlayerComponent::~AudioPlayerComponent() {
// must hold lock // must hold lock
void AudioPlayerComponent::setup() { void AudioPlayerComponent::setup() {
repeatButton.setToggleState(audioProcessor.wavParser.isLooping(), juce::dontSendNotification);
if (audioProcessor.wavParser.isInitialised()) { if (audioProcessor.wavParser.isInitialised()) {
slider.setVisible(true); slider.setVisible(true);
repeatButton.setVisible(true); repeatButton.setVisible(true);
@ -88,7 +88,6 @@ void AudioPlayerComponent::setup() {
}; };
playButton.setVisible(audioProcessor.wavParser.isPaused()); playButton.setVisible(audioProcessor.wavParser.isPaused());
pauseButton.setVisible(!audioProcessor.wavParser.isPaused()); pauseButton.setVisible(!audioProcessor.wavParser.isPaused());
audioProcessor.wavParser.setLooping(repeatButton.getToggleState());
} else { } else {
slider.setVisible(false); slider.setVisible(false);
repeatButton.setVisible(false); repeatButton.setVisible(false);

Wyświetl plik

@ -9,6 +9,9 @@
pluginManufacturerCode="Jhba" pluginCode="Sosc" pluginAUMainType="'aufx'"> pluginManufacturerCode="Jhba" pluginCode="Sosc" pluginAUMainType="'aufx'">
<MAINGROUP id="j5Ge2T" name="sosci"> <MAINGROUP id="j5Ge2T" name="sosci">
<GROUP id="{5ABCED88-0059-A7AF-9596-DBF91DDB0292}" name="Resources"> <GROUP id="{5ABCED88-0059-A7AF-9596-DBF91DDB0292}" name="Resources">
<GROUP id="{42A9EAA7-6D00-065D-0F8B-755E9B552173}" name="audio">
<FILE id="bv80Wk" name="sosci.flac" compile="0" resource="1" file="Resources/audio/sosci.flac"/>
</GROUP>
<GROUP id="{1C0FC3AA-01F6-8768-381C-200ED18AB5F2}" name="fonts"> <GROUP id="{1C0FC3AA-01F6-8768-381C-200ED18AB5F2}" name="fonts">
<FILE id="R0Gs1t" name="FiraSans-Bold.ttf" compile="0" resource="1" <FILE id="R0Gs1t" name="FiraSans-Bold.ttf" compile="0" resource="1"
file="Resources/fonts/FiraSans-Bold.ttf"/> file="Resources/fonts/FiraSans-Bold.ttf"/>