Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(616)

Side by Side Diff: media/audio/virtual_audio_input_stream_unittest.cc

Issue 2023343002: Migrate WaitableEvent to enum-based constructor in media/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@WEvent_enums
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <list> 7 #include <list>
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 17 matching lines...) Expand all
28 namespace media { 28 namespace media {
29 29
30 namespace { 30 namespace {
31 31
32 const AudioParameters kParams( 32 const AudioParameters kParams(
33 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 8000, 8, 10); 33 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 8000, 8, 10);
34 34
35 class MockInputCallback : public AudioInputStream::AudioInputCallback { 35 class MockInputCallback : public AudioInputStream::AudioInputCallback {
36 public: 36 public:
37 MockInputCallback() 37 MockInputCallback()
38 : data_pushed_(false, false) { 38 : data_pushed_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
39 base::WaitableEvent::InitialState::NOT_SIGNALED) {
39 ON_CALL(*this, OnData(_, _, _, _)).WillByDefault( 40 ON_CALL(*this, OnData(_, _, _, _)).WillByDefault(
40 InvokeWithoutArgs(&data_pushed_, &base::WaitableEvent::Signal)); 41 InvokeWithoutArgs(&data_pushed_, &base::WaitableEvent::Signal));
41 } 42 }
42 43
43 virtual ~MockInputCallback() {} 44 virtual ~MockInputCallback() {}
44 45
45 MOCK_METHOD4(OnData, 46 MOCK_METHOD4(OnData,
46 void(AudioInputStream* stream, 47 void(AudioInputStream* stream,
47 const AudioBus* source, 48 const AudioBus* source,
48 uint32_t hardware_delay_bytes, 49 uint32_t hardware_delay_bytes,
49 double volume)); 50 double volume));
50 MOCK_METHOD1(OnError, void(AudioInputStream* stream)); 51 MOCK_METHOD1(OnError, void(AudioInputStream* stream));
51 52
52 void WaitForDataPushes() { 53 void WaitForDataPushes() {
53 for (int i = 0; i < 3; ++i) { 54 for (int i = 0; i < 3; ++i) {
54 data_pushed_.Wait(); 55 data_pushed_.Wait();
55 } 56 }
56 } 57 }
57 58
58 private: 59 private:
59 base::WaitableEvent data_pushed_; 60 base::WaitableEvent data_pushed_;
60 61
61 DISALLOW_COPY_AND_ASSIGN(MockInputCallback); 62 DISALLOW_COPY_AND_ASSIGN(MockInputCallback);
62 }; 63 };
63 64
64 class TestAudioSource : public SineWaveAudioSource { 65 class TestAudioSource : public SineWaveAudioSource {
65 public: 66 public:
66 TestAudioSource() 67 TestAudioSource()
67 : SineWaveAudioSource( 68 : SineWaveAudioSource(kParams.channel_layout(),
68 kParams.channel_layout(), 200.0, kParams.sample_rate()), 69 200.0,
69 data_pulled_(false, false) {} 70 kParams.sample_rate()),
71 data_pulled_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
72 base::WaitableEvent::InitialState::NOT_SIGNALED) {}
70 73
71 ~TestAudioSource() override {} 74 ~TestAudioSource() override {}
72 75
73 int OnMoreData(AudioBus* audio_bus, 76 int OnMoreData(AudioBus* audio_bus,
74 uint32_t total_bytes_delay, 77 uint32_t total_bytes_delay,
75 uint32_t frames_skipped) override { 78 uint32_t frames_skipped) override {
76 const int ret = SineWaveAudioSource::OnMoreData( 79 const int ret = SineWaveAudioSource::OnMoreData(
77 audio_bus, total_bytes_delay, frames_skipped); 80 audio_bus, total_bytes_delay, frames_skipped);
78 data_pulled_.Signal(); 81 data_pulled_.Signal();
79 return ret; 82 return ret;
(...skipping 12 matching lines...) Expand all
92 }; 95 };
93 96
94 } // namespace 97 } // namespace
95 98
96 class VirtualAudioInputStreamTest : public testing::TestWithParam<bool> { 99 class VirtualAudioInputStreamTest : public testing::TestWithParam<bool> {
97 public: 100 public:
98 VirtualAudioInputStreamTest() 101 VirtualAudioInputStreamTest()
99 : audio_thread_(new base::Thread("AudioThread")), 102 : audio_thread_(new base::Thread("AudioThread")),
100 worker_thread_(new base::Thread("AudioWorkerThread")), 103 worker_thread_(new base::Thread("AudioWorkerThread")),
101 stream_(NULL), 104 stream_(NULL),
102 closed_stream_(false, false) { 105 closed_stream_(base::WaitableEvent::ResetPolicy::AUTOMATIC,
106 base::WaitableEvent::InitialState::NOT_SIGNALED) {
103 audio_thread_->Start(); 107 audio_thread_->Start();
104 audio_task_runner_ = audio_thread_->task_runner(); 108 audio_task_runner_ = audio_thread_->task_runner();
105 } 109 }
106 110
107 virtual ~VirtualAudioInputStreamTest() { 111 virtual ~VirtualAudioInputStreamTest() {
108 SyncWithAudioThread(); 112 SyncWithAudioThread();
109 113
110 DCHECK(output_streams_.empty()); 114 DCHECK(output_streams_.empty());
111 DCHECK(stopped_output_streams_.empty()); 115 DCHECK(stopped_output_streams_.empty());
112 } 116 }
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 worker_task_runner_ = worker_thread_->task_runner(); 219 worker_task_runner_ = worker_thread_->task_runner();
216 } 220 }
217 return worker_task_runner_; 221 return worker_task_runner_;
218 } else { 222 } else {
219 return audio_task_runner_; 223 return audio_task_runner_;
220 } 224 }
221 } 225 }
222 226
223 private: 227 private:
224 void SyncWithAudioThread() { 228 void SyncWithAudioThread() {
225 base::WaitableEvent done(false, false); 229 base::WaitableEvent done(base::WaitableEvent::ResetPolicy::AUTOMATIC,
230 base::WaitableEvent::InitialState::NOT_SIGNALED);
226 audio_task_runner_->PostTask( 231 audio_task_runner_->PostTask(
227 FROM_HERE, 232 FROM_HERE,
228 base::Bind(&base::WaitableEvent::Signal, base::Unretained(&done))); 233 base::Bind(&base::WaitableEvent::Signal, base::Unretained(&done)));
229 done.Wait(); 234 done.Wait();
230 } 235 }
231 236
232 std::unique_ptr<base::Thread> audio_thread_; 237 std::unique_ptr<base::Thread> audio_thread_;
233 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner_; 238 scoped_refptr<base::SingleThreadTaskRunner> audio_task_runner_;
234 std::unique_ptr<base::Thread> worker_thread_; 239 std::unique_ptr<base::Thread> worker_thread_;
235 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner_; 240 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner_;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 } 348 }
344 RUN_ON_AUDIO_THREAD(Close); 349 RUN_ON_AUDIO_THREAD(Close);
345 WaitUntilClosed(); 350 WaitUntilClosed();
346 } 351 }
347 352
348 INSTANTIATE_TEST_CASE_P(SingleVersusMultithreaded, 353 INSTANTIATE_TEST_CASE_P(SingleVersusMultithreaded,
349 VirtualAudioInputStreamTest, 354 VirtualAudioInputStreamTest,
350 ::testing::Values(false, true)); 355 ::testing::Values(false, true));
351 356
352 } // namespace media 357 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/scoped_task_runner_observer.cc ('k') | media/audio/virtual_audio_output_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698