Skip to content

Commit ca3c402

Browse files
committed
Target: Add sound effect getter
1 parent 71095b6 commit ca3c402

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

include/scratchcpp/target.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ class LIBSCRATCHCPP_EXPORT Target
8989
double volume() const;
9090
void setVolume(double newVolume);
9191

92+
virtual double soundEffect(Sound::Effect effect) const;
9293
virtual void setSoundEffect(Sound::Effect effect, double value);
9394

9495
virtual Rect boundingRect() const;

src/scratch/target.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,17 @@ void Target::setVolume(double newVolume)
422422
}
423423
}
424424

425+
/*! Returns the value of the given sound effect. */
426+
double Target::soundEffect(Sound::Effect effect) const
427+
{
428+
auto it = impl->soundEffects.find(effect);
429+
430+
if (it != impl->soundEffects.cend())
431+
return it->second;
432+
433+
return 0;
434+
}
435+
425436
/*! Sets the value of the given sound effect. */
426437
void Target::setSoundEffect(Sound::Effect effect, double value)
427438
{

test/mocks/targetmock.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class TargetMock : public Target
1717

1818
MOCK_METHOD(void, setLayerOrder, (int), (override));
1919

20+
MOCK_METHOD(double, soundEffect, (Sound::Effect), (const, override));
2021
MOCK_METHOD(void, setSoundEffect, (Sound::Effect, double), (override));
2122

2223
MOCK_METHOD(Rect, boundingRect, (), (const, override));

test/scratch_classes/target_test.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -512,9 +512,11 @@ TEST(TargetTest, Volume)
512512
SoundPrivate::audioOutput = nullptr;
513513
}
514514

515-
TEST(TargetTest, SetSoundEffect)
515+
TEST(TargetTest, SoundEffect)
516516
{
517517
Target target;
518+
ASSERT_EQ(target.soundEffect(Sound::Effect::Pitch), 0);
519+
ASSERT_EQ(target.soundEffect(Sound::Effect::Pan), 0);
518520

519521
auto s1 = std::make_shared<SoundMock>();
520522
auto s2 = std::make_shared<SoundMock>();
@@ -531,11 +533,15 @@ TEST(TargetTest, SetSoundEffect)
531533
EXPECT_CALL(*s2, setEffect(Sound::Effect::Pitch, 12.5));
532534
EXPECT_CALL(*s3, setEffect(Sound::Effect::Pitch, 12.5));
533535
target.setSoundEffect(Sound::Effect::Pitch, 12.5);
536+
ASSERT_EQ(target.soundEffect(Sound::Effect::Pitch), 12.5);
537+
ASSERT_EQ(target.soundEffect(Sound::Effect::Pan), 0);
534538

535539
EXPECT_CALL(*s1, setEffect(Sound::Effect::Pan, -56.7));
536540
EXPECT_CALL(*s2, setEffect(Sound::Effect::Pan, -56.7));
537541
EXPECT_CALL(*s3, setEffect(Sound::Effect::Pan, -56.7));
538542
target.setSoundEffect(Sound::Effect::Pan, -56.7);
543+
ASSERT_EQ(target.soundEffect(Sound::Effect::Pitch), 12.5);
544+
ASSERT_EQ(target.soundEffect(Sound::Effect::Pan), -56.7);
539545

540546
auto s4 = std::make_shared<SoundMock>();
541547
EXPECT_CALL(*s4, setVolume);

0 commit comments

Comments
 (0)