| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/copresence/mediums/audio/audio_player.h" | 5 #include "components/copresence/mediums/audio/audio_player.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
| 9 #include "components/copresence/mediums/audio/audio_player_impl.h" | 9 #include "components/copresence/mediums/audio/audio_player_impl.h" |
| 10 #include "components/copresence/public/copresence_constants.h" | 10 #include "components/copresence/public/copresence_constants.h" |
| 11 #include "components/copresence/test/audio_test_support.h" | 11 #include "components/copresence/test/audio_test_support.h" |
| 12 #include "media/audio/audio_manager.h" | 12 #include "media/audio/audio_manager.h" |
| 13 #include "media/audio/audio_manager_base.h" | 13 #include "media/audio/audio_manager_base.h" |
| 14 #include "media/base/audio_bus.h" | 14 #include "media/base/audio_bus.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 class TestAudioOutputStream : public media::AudioOutputStream { | 19 class TestAudioOutputStream : public media::AudioOutputStream { |
| 20 public: | 20 public: |
| 21 typedef base::Callback<void(scoped_ptr<media::AudioBus>, int frames)> | 21 typedef base::Callback<void(scoped_ptr<media::AudioBus>, int frames)> |
| 22 GatherSamplesCallback; | 22 GatherSamplesCallback; |
| 23 TestAudioOutputStream(int default_frame_count, | 23 TestAudioOutputStream(int default_frame_count, |
| 24 int max_frame_count, | 24 int max_frame_count, |
| 25 GatherSamplesCallback gather_callback) | 25 GatherSamplesCallback gather_callback) |
| 26 : default_frame_count_(default_frame_count), | 26 : default_frame_count_(default_frame_count), |
| 27 max_frame_count_(max_frame_count), | 27 max_frame_count_(max_frame_count), |
| 28 gather_callback_(gather_callback), | 28 gather_callback_(gather_callback), |
| 29 callback_(NULL) { | 29 callback_(nullptr) { |
| 30 caller_loop_ = base::MessageLoop::current(); | 30 caller_loop_ = base::MessageLoop::current(); |
| 31 } | 31 } |
| 32 | 32 |
| 33 ~TestAudioOutputStream() override {} | 33 ~TestAudioOutputStream() override {} |
| 34 | 34 |
| 35 bool Open() override { return true; } | 35 bool Open() override { return true; } |
| 36 void Start(AudioSourceCallback* callback) override { | 36 void Start(AudioSourceCallback* callback) override { |
| 37 callback_ = callback; | 37 callback_ = callback; |
| 38 GatherPlayedSamples(); | 38 GatherPlayedSamples(); |
| 39 } | 39 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 66 DISALLOW_COPY_AND_ASSIGN(TestAudioOutputStream); | 66 DISALLOW_COPY_AND_ASSIGN(TestAudioOutputStream); |
| 67 }; | 67 }; |
| 68 | 68 |
| 69 } // namespace | 69 } // namespace |
| 70 | 70 |
| 71 namespace copresence { | 71 namespace copresence { |
| 72 | 72 |
| 73 class AudioPlayerTest : public testing::Test, | 73 class AudioPlayerTest : public testing::Test, |
| 74 public base::SupportsWeakPtr<AudioPlayerTest> { | 74 public base::SupportsWeakPtr<AudioPlayerTest> { |
| 75 public: | 75 public: |
| 76 AudioPlayerTest() : buffer_index_(0), player_(NULL) { | 76 AudioPlayerTest() : buffer_index_(0), player_(nullptr) { |
| 77 if (!media::AudioManager::Get()) | 77 if (!media::AudioManager::Get()) |
| 78 media::AudioManager::CreateForTesting(); | 78 media::AudioManager::CreateForTesting(); |
| 79 } | 79 } |
| 80 | 80 |
| 81 ~AudioPlayerTest() override { DeletePlayer(); } | 81 ~AudioPlayerTest() override { DeletePlayer(); } |
| 82 | 82 |
| 83 void CreatePlayer() { | 83 void CreatePlayer() { |
| 84 DeletePlayer(); | 84 DeletePlayer(); |
| 85 player_ = new AudioPlayerImpl(); | 85 player_ = new AudioPlayerImpl(); |
| 86 player_->set_output_stream_for_testing(new TestAudioOutputStream( | 86 player_->set_output_stream_for_testing(new TestAudioOutputStream( |
| 87 kDefaultFrameCount, | 87 kDefaultFrameCount, |
| 88 kMaxFrameCount, | 88 kMaxFrameCount, |
| 89 base::Bind(&AudioPlayerTest::GatherSamples, AsWeakPtr()))); | 89 base::Bind(&AudioPlayerTest::GatherSamples, AsWeakPtr()))); |
| 90 player_->Initialize(); | 90 player_->Initialize(); |
| 91 } | 91 } |
| 92 | 92 |
| 93 void DeletePlayer() { | 93 void DeletePlayer() { |
| 94 if (!player_) | 94 if (!player_) |
| 95 return; | 95 return; |
| 96 player_->Finalize(); | 96 player_->Finalize(); |
| 97 player_ = NULL; | 97 player_ = nullptr; |
| 98 } | 98 } |
| 99 | 99 |
| 100 void PlayAndVerifySamples( | 100 void PlayAndVerifySamples( |
| 101 const scoped_refptr<media::AudioBusRefCounted>& samples) { | 101 const scoped_refptr<media::AudioBusRefCounted>& samples) { |
| 102 buffer_ = media::AudioBus::Create(1, kMaxFrameCount); | 102 buffer_ = media::AudioBus::Create(1, kMaxFrameCount); |
| 103 player_->Play(samples); | 103 player_->Play(samples); |
| 104 player_->FlushAudioLoopForTesting(); | 104 player_->FlushAudioLoopForTesting(); |
| 105 | 105 |
| 106 int differences = 0; | 106 int differences = 0; |
| 107 for (int i = 0; i < samples->frames(); ++i) | 107 for (int i = 0; i < samples->frames(); ++i) |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 TEST_F(AudioPlayerTest, PlayingEndToEnd) { | 182 TEST_F(AudioPlayerTest, PlayingEndToEnd) { |
| 183 const int kNumSamples = kDefaultFrameCount * 10; | 183 const int kNumSamples = kDefaultFrameCount * 10; |
| 184 CreatePlayer(); | 184 CreatePlayer(); |
| 185 | 185 |
| 186 PlayAndVerifySamples(CreateRandomAudioRefCounted(0x1337, 1, kNumSamples)); | 186 PlayAndVerifySamples(CreateRandomAudioRefCounted(0x1337, 1, kNumSamples)); |
| 187 | 187 |
| 188 DeletePlayer(); | 188 DeletePlayer(); |
| 189 } | 189 } |
| 190 | 190 |
| 191 } // namespace copresence | 191 } // namespace copresence |
| OLD | NEW |