Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions modules/yup_audio_devices/yup_audio_devices.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,13 @@

#include "audio_io/yup_SampleRateHelpers.cpp"
#include "midi_io/yup_MidiDevices.cpp"
#include "midi_io/ump/yup_UMPBytestreamInputHandler.h"
#include "midi_io/ump/yup_UMPU32InputHandler.h"

//==============================================================================
#if YUP_MAC || YUP_IOS
#include <yup_audio_basics/native/yup_CoreAudioTimeConversions_apple.h>
#include <yup_audio_basics/native/yup_AudioWorkgroup_apple.h>

#include "midi_io/ump/yup_UMPBytestreamInputHandler.h"
#include "midi_io/ump/yup_UMPU32InputHandler.h"
#endif

#if YUP_MAC
Expand Down
7 changes: 3 additions & 4 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,13 @@ yup_standalone_app (
# ==== Setup sources
set (sources "")
foreach (module ${target_modules})
file (GLOB_RECURSE module_sources
"${CMAKE_CURRENT_LIST_DIR}/${module}/*.hpp"
"${CMAKE_CURRENT_LIST_DIR}/${module}/*.cpp")
file (GLOB module_sources
"${CMAKE_CURRENT_LIST_DIR}/${module}.cpp")
list (APPEND sources ${module_sources})

if (YUP_PLATFORM_APPLE)
file (GLOB_RECURSE apple_sources
"${CMAKE_CURRENT_LIST_DIR}/${module}/*.mm")
"${CMAKE_CURRENT_LIST_DIR}/${module}.mm")
list (APPEND sources ${apple_sources})
endif()
endforeach()
Expand Down
52 changes: 52 additions & 0 deletions tests/yup_audio_basics.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#include "yup_audio_basics/yup_ADSR.cpp"
#include "yup_audio_basics/yup_AudioChannelSet.cpp"
#include "yup_audio_basics/yup_AudioDataConverters.cpp"
#include "yup_audio_basics/yup_AudioPlayHead.cpp"
#include "yup_audio_basics/yup_AudioProcessLoadMeasurer.cpp"
#include "yup_audio_basics/yup_AudioSampleBuffer.cpp"
#include "yup_audio_basics/yup_BufferingAudioSource.cpp"
#include "yup_audio_basics/yup_ChannelRemappingAudioSource.cpp"
#include "yup_audio_basics/yup_Decibels.cpp"
#include "yup_audio_basics/yup_FloatVectorOperations.cpp"
#include "yup_audio_basics/yup_IIRFilter.cpp"
#include "yup_audio_basics/yup_Interpolators.cpp"
#include "yup_audio_basics/yup_MemoryAudioSource.cpp"
#include "yup_audio_basics/yup_MidiBuffer.cpp"
#include "yup_audio_basics/yup_MidiDataConcatenator.cpp"
#include "yup_audio_basics/yup_MidiFile.cpp"
#include "yup_audio_basics/yup_MidiKeyboardState.cpp"
#include "yup_audio_basics/yup_MidiMessage.cpp"
#include "yup_audio_basics/yup_MidiMessageSequence.cpp"
#include "yup_audio_basics/yup_MidiRPN.cpp"
#include "yup_audio_basics/yup_MixerAudioSource.cpp"
#include "yup_audio_basics/yup_MPEInstrument.cpp"
#include "yup_audio_basics/yup_MPEMessages.cpp"
#include "yup_audio_basics/yup_MPENote.cpp"
#include "yup_audio_basics/yup_MPESynthesiserBase.cpp"
#include "yup_audio_basics/yup_MPEUtils.cpp"
#include "yup_audio_basics/yup_MPEValue.cpp"
#include "yup_audio_basics/yup_MPEZoneLayout.cpp"
#include "yup_audio_basics/yup_ResamplingAudioSource.cpp"
#include "yup_audio_basics/yup_Reverb.cpp"
#include "yup_audio_basics/yup_ReverbAudioSource.cpp"
#include "yup_audio_basics/yup_SmoothedValue.cpp"
#include "yup_audio_basics/yup_Synthesiser.cpp"
#include "yup_audio_basics/yup_ToneGeneratorAudioSource.cpp"
#include "yup_audio_basics/yup_UMP.cpp"
#include "yup_audio_basics/yup_UMPCapabilityInquiry.cpp"
#include "yup_audio_basics/yup_UMPChannelVoice.cpp"
#include "yup_audio_basics/yup_UMPDataMessages.cpp"
#include "yup_audio_basics/yup_UMPExtendedDataMessages.cpp"
#include "yup_audio_basics/yup_UMPFlexDataMessages.cpp"
#include "yup_audio_basics/yup_UMPJitterReductionTimestamps.cpp"
#include "yup_audio_basics/yup_UMPKeyboardState.cpp"
#include "yup_audio_basics/yup_UMPMessages.cpp"
#include "yup_audio_basics/yup_UMPMidi1ByteStream.cpp"
#include "yup_audio_basics/yup_UMPMidi1ChannelVoiceMessage.cpp"
#include "yup_audio_basics/yup_UMPMidi2ChannelVoiceMessage.cpp"
#include "yup_audio_basics/yup_UMPPacketBuffer.cpp"
#include "yup_audio_basics/yup_UMPStreamMessages.cpp"
#include "yup_audio_basics/yup_UMPSysExCollectors.cpp"
#include "yup_audio_basics/yup_UMPTypes.cpp"
#include "yup_audio_basics/yup_UMPUniversalPacket.cpp"
#include "yup_audio_basics/yup_UMPUniversalSysEx.cpp"
56 changes: 28 additions & 28 deletions tests/yup_audio_basics/yup_MixerAudioSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ using namespace yup;
//==============================================================================
namespace
{
class MockAudioSource : public AudioSource
class MockMixerAudioSource : public AudioSource
{
public:
MockAudioSource() = default;
~MockAudioSource() override = default;
MockMixerAudioSource() = default;
~MockMixerAudioSource() override = default;

void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
{
Expand Down Expand Up @@ -95,7 +95,7 @@ TEST_F (MixerAudioSourceTests, Constructor)
TEST_F (MixerAudioSourceTests, Destructor)
{
auto* temp = new MixerAudioSource();
auto* source = new MockAudioSource();
auto* source = new MockMixerAudioSource();
temp->addInputSource (source, true);

// Destructor should call removeAllInputs which releases resources
Expand All @@ -111,7 +111,7 @@ TEST_F (MixerAudioSourceTests, AddInputSourceWithNull)

TEST_F (MixerAudioSourceTests, AddInputSourceWithoutDelete)
{
MockAudioSource source;
MockMixerAudioSource source;
mixer->addInputSource (&source, false);

// Source should not be prepared if mixer hasn't been prepared yet (line 68)
Expand All @@ -122,7 +122,7 @@ TEST_F (MixerAudioSourceTests, AddInputSourceAfterPrepare)
{
mixer->prepareToPlay (512, 44100.0);

MockAudioSource source;
MockMixerAudioSource source;
mixer->addInputSource (&source, false);

// Source should be prepared if mixer was already prepared (line 68-69)
Expand All @@ -133,15 +133,15 @@ TEST_F (MixerAudioSourceTests, AddInputSourceAfterPrepare)

TEST_F (MixerAudioSourceTests, AddInputSourceWithDelete)
{
auto* source = new MockAudioSource();
auto* source = new MockMixerAudioSource();
mixer->addInputSource (source, true);

// Cleanup will happen in mixer destructor or removeInputSource
}

TEST_F (MixerAudioSourceTests, AddDuplicateInput)
{
MockAudioSource source;
MockMixerAudioSource source;
mixer->addInputSource (&source, false);

// Adding same source again should be ignored (line 57)
Expand All @@ -157,15 +157,15 @@ TEST_F (MixerAudioSourceTests, RemoveInputSourceWithNull)

TEST_F (MixerAudioSourceTests, RemoveNonExistentInput)
{
MockAudioSource source;
MockMixerAudioSource source;
// Should return early if input not found (line 88-89)
EXPECT_NO_THROW (mixer->removeInputSource (&source));
EXPECT_FALSE (source.releaseResourcesCalled);
}

TEST_F (MixerAudioSourceTests, RemoveInputSourceWithoutDelete)
{
MockAudioSource source;
MockMixerAudioSource source;
mixer->addInputSource (&source, false);
mixer->removeInputSource (&source);

Expand All @@ -175,7 +175,7 @@ TEST_F (MixerAudioSourceTests, RemoveInputSourceWithoutDelete)

TEST_F (MixerAudioSourceTests, RemoveInputSourceWithDelete)
{
auto* source = new MockAudioSource();
auto* source = new MockMixerAudioSource();
mixer->addInputSource (source, true);

// Should delete the source (line 91-92)
Expand All @@ -192,8 +192,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsEmpty)

TEST_F (MixerAudioSourceTests, RemoveAllInputsWithoutDelete)
{
MockAudioSource source1;
MockAudioSource source2;
MockMixerAudioSource source1;
MockMixerAudioSource source2;

mixer->addInputSource (&source1, false);
mixer->addInputSource (&source2, false);
Expand All @@ -208,8 +208,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsWithoutDelete)

TEST_F (MixerAudioSourceTests, RemoveAllInputsWithDelete)
{
auto* source1 = new MockAudioSource();
auto* source2 = new MockAudioSource();
auto* source1 = new MockMixerAudioSource();
auto* source2 = new MockMixerAudioSource();

mixer->addInputSource (source1, true);
mixer->addInputSource (source2, true);
Expand All @@ -220,8 +220,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsWithDelete)

TEST_F (MixerAudioSourceTests, RemoveAllInputsMixed)
{
MockAudioSource source1;
auto* source2 = new MockAudioSource();
MockMixerAudioSource source1;
auto* source2 = new MockMixerAudioSource();

mixer->addInputSource (&source1, false);
mixer->addInputSource (source2, true);
Expand All @@ -235,8 +235,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsMixed)
//==============================================================================
TEST_F (MixerAudioSourceTests, PrepareToPlay)
{
MockAudioSource source1;
MockAudioSource source2;
MockMixerAudioSource source1;
MockMixerAudioSource source2;

mixer->addInputSource (&source1, false);
mixer->addInputSource (&source2, false);
Expand All @@ -253,8 +253,8 @@ TEST_F (MixerAudioSourceTests, PrepareToPlay)
//==============================================================================
TEST_F (MixerAudioSourceTests, ReleaseResources)
{
MockAudioSource source1;
MockAudioSource source2;
MockMixerAudioSource source1;
MockMixerAudioSource source2;

mixer->addInputSource (&source1, false);
mixer->addInputSource (&source2, false);
Expand Down Expand Up @@ -301,7 +301,7 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithNoInputs)

TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithSingleInput)
{
MockAudioSource source;
MockMixerAudioSource source;
source.fillValue = 0.3f;

mixer->addInputSource (&source, false);
Expand Down Expand Up @@ -332,9 +332,9 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithSingleInput)

TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithMultipleInputs)
{
MockAudioSource source1;
MockAudioSource source2;
MockAudioSource source3;
MockMixerAudioSource source1;
MockMixerAudioSource source2;
MockMixerAudioSource source3;

source1.fillValue = 0.2f;
source2.fillValue = 0.3f;
Expand Down Expand Up @@ -374,7 +374,7 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithMultipleInputs)

TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithStartSampleOffset)
{
MockAudioSource source;
MockMixerAudioSource source;
source.fillValue = 0.5f;

mixer->addInputSource (&source, false);
Expand Down Expand Up @@ -411,8 +411,8 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithStartSampleOffset)

TEST_F (MixerAudioSourceTests, GetNextAudioBlockResizesTempBuffer)
{
MockAudioSource source1;
MockAudioSource source2;
MockMixerAudioSource source1;
MockMixerAudioSource source2;

source1.fillValue = 0.3f;
source2.fillValue = 0.4f;
Expand Down
18 changes: 9 additions & 9 deletions tests/yup_audio_basics/yup_ResamplingAudioSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ using namespace yup;
//==============================================================================
namespace
{
class MockAudioSource : public AudioSource
class MockResamplingAudioSource : public AudioSource
{
public:
MockAudioSource() = default;
~MockAudioSource() override = default;
MockResamplingAudioSource() = default;
~MockResamplingAudioSource() override = default;

void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
{
Expand Down Expand Up @@ -75,7 +75,7 @@ class ResamplingAudioSourceTests : public ::testing::Test
protected:
void SetUp() override
{
mockSource = new MockAudioSource();
mockSource = new MockResamplingAudioSource();
resampler = std::make_unique<ResamplingAudioSource> (mockSource, true, 2);
}

Expand All @@ -84,26 +84,26 @@ class ResamplingAudioSourceTests : public ::testing::Test
resampler.reset();
}

MockAudioSource* mockSource; // Owned by resampler
MockResamplingAudioSource* mockSource; // Owned by resampler
std::unique_ptr<ResamplingAudioSource> resampler;
};

//==============================================================================
TEST_F (ResamplingAudioSourceTests, Constructor)
{
auto* source = new MockAudioSource();
auto* source = new MockResamplingAudioSource();
EXPECT_NO_THROW (ResamplingAudioSource (source, true, 2));
}

TEST_F (ResamplingAudioSourceTests, ConstructorWithDifferentChannels)
{
auto* source = new MockAudioSource();
auto* source = new MockResamplingAudioSource();
EXPECT_NO_THROW (ResamplingAudioSource (source, true, 8));
}

TEST_F (ResamplingAudioSourceTests, Destructor)
{
auto* source = new MockAudioSource();
auto* source = new MockResamplingAudioSource();
auto* temp = new ResamplingAudioSource (source, true, 2);
EXPECT_NO_THROW (delete temp);
}
Expand Down Expand Up @@ -308,7 +308,7 @@ TEST_F (ResamplingAudioSourceTests, GetNextAudioBlockBufferResize)

TEST_F (ResamplingAudioSourceTests, GetNextAudioBlockMultipleChannels)
{
auto* source = new MockAudioSource();
auto* source = new MockResamplingAudioSource();
auto multiChannelResampler = std::make_unique<ResamplingAudioSource> (source, true, 8);

multiChannelResampler->setResamplingRatio (1.0);
Expand Down
16 changes: 8 additions & 8 deletions tests/yup_audio_basics/yup_ReverbAudioSource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ using namespace yup;
//==============================================================================
namespace
{
class MockAudioSource : public AudioSource
class MockReverbAudioSource : public AudioSource
{
public:
MockAudioSource() = default;
~MockAudioSource() override = default;
MockReverbAudioSource() = default;
~MockReverbAudioSource() override = default;

void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override
{
Expand Down Expand Up @@ -75,7 +75,7 @@ class ReverbAudioSourceTests : public ::testing::Test
protected:
void SetUp() override
{
mockSource = new MockAudioSource();
mockSource = new MockReverbAudioSource();
reverbSource = std::make_unique<ReverbAudioSource> (mockSource, true);
}

Expand All @@ -84,26 +84,26 @@ class ReverbAudioSourceTests : public ::testing::Test
reverbSource.reset();
}

MockAudioSource* mockSource; // Owned by reverbSource
MockReverbAudioSource* mockSource; // Owned by reverbSource
std::unique_ptr<ReverbAudioSource> reverbSource;
};

//==============================================================================
TEST_F (ReverbAudioSourceTests, ConstructorWithDeleteInput)
{
auto* source = new MockAudioSource();
auto* source = new MockReverbAudioSource();
EXPECT_NO_THROW (ReverbAudioSource (source, true));
}

TEST_F (ReverbAudioSourceTests, ConstructorWithoutDeleteInput)
{
MockAudioSource source;
MockReverbAudioSource source;
EXPECT_NO_THROW (ReverbAudioSource (&source, false));
}

TEST_F (ReverbAudioSourceTests, Destructor)
{
auto* source = new MockAudioSource();
auto* source = new MockReverbAudioSource();
auto* temp = new ReverbAudioSource (source, true);
EXPECT_NO_THROW (delete temp);
}
Expand Down
2 changes: 2 additions & 0 deletions tests/yup_audio_devices.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#include "yup_audio_devices/yup_AudioDeviceManager.cpp"
#include "yup_audio_devices/yup_UMPPacketCollector.cpp"
2 changes: 2 additions & 0 deletions tests/yup_audio_formats.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#include "yup_audio_formats/yup_AudioFormatManager.cpp"
#include "yup_audio_formats/yup_WaveAudioFormat.cpp"
Loading
Loading