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

Side by Side Diff: webrtc/test/fake_audio_device.cc

Issue 1476453002: Clean up PlatformThread. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: IsRunning DCHECK Created 5 years 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
« no previous file with comments | « webrtc/test/fake_audio_device.h ('k') | webrtc/test/frame_generator_capturer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 12 matching lines...) Expand all
23 namespace test { 23 namespace test {
24 24
25 FakeAudioDevice::FakeAudioDevice(Clock* clock, const std::string& filename) 25 FakeAudioDevice::FakeAudioDevice(Clock* clock, const std::string& filename)
26 : audio_callback_(NULL), 26 : audio_callback_(NULL),
27 capturing_(false), 27 capturing_(false),
28 captured_audio_(), 28 captured_audio_(),
29 playout_buffer_(), 29 playout_buffer_(),
30 last_playout_ms_(-1), 30 last_playout_ms_(-1),
31 clock_(clock), 31 clock_(clock),
32 tick_(EventTimerWrapper::Create()), 32 tick_(EventTimerWrapper::Create()),
33 thread_(FakeAudioDevice::Run, this, "FakeAudioDevice"),
33 file_utility_(new ModuleFileUtility(0)), 34 file_utility_(new ModuleFileUtility(0)),
34 input_stream_(FileWrapper::Create()) { 35 input_stream_(FileWrapper::Create()) {
35 memset(captured_audio_, 0, sizeof(captured_audio_)); 36 memset(captured_audio_, 0, sizeof(captured_audio_));
36 memset(playout_buffer_, 0, sizeof(playout_buffer_)); 37 memset(playout_buffer_, 0, sizeof(playout_buffer_));
37 // Open audio input file as read-only and looping. 38 // Open audio input file as read-only and looping.
38 EXPECT_EQ(0, input_stream_->OpenFile(filename.c_str(), true, true)) 39 EXPECT_EQ(0, input_stream_->OpenFile(filename.c_str(), true, true))
39 << filename; 40 << filename;
40 } 41 }
41 42
42 FakeAudioDevice::~FakeAudioDevice() { 43 FakeAudioDevice::~FakeAudioDevice() {
43 Stop(); 44 Stop();
44 45
45 if (thread_.get() != NULL) 46 thread_.Stop();
46 thread_->Stop();
47 } 47 }
48 48
49 int32_t FakeAudioDevice::Init() { 49 int32_t FakeAudioDevice::Init() {
50 rtc::CritScope cs(&lock_); 50 rtc::CritScope cs(&lock_);
51 if (file_utility_->InitPCMReading(*input_stream_.get()) != 0) 51 if (file_utility_->InitPCMReading(*input_stream_.get()) != 0)
52 return -1; 52 return -1;
53 53
54 if (!tick_->StartTimer(true, 10)) 54 if (!tick_->StartTimer(true, 10))
55 return -1; 55 return -1;
56 thread_ = PlatformThread::CreateThread(FakeAudioDevice::Run, this, 56 thread_.Start();
57 "FakeAudioDevice"); 57 thread_.SetPriority(rtc::kHighPriority);
58 if (thread_.get() == NULL)
59 return -1;
60 if (!thread_->Start()) {
61 thread_.reset();
62 return -1;
63 }
64 thread_->SetPriority(webrtc::kHighPriority);
65 return 0; 58 return 0;
66 } 59 }
67 60
68 int32_t FakeAudioDevice::RegisterAudioCallback(AudioTransport* callback) { 61 int32_t FakeAudioDevice::RegisterAudioCallback(AudioTransport* callback) {
69 rtc::CritScope cs(&lock_); 62 rtc::CritScope cs(&lock_);
70 audio_callback_ = callback; 63 audio_callback_ = callback;
71 return 0; 64 return 0;
72 } 65 }
73 66
74 bool FakeAudioDevice::Playing() const { 67 bool FakeAudioDevice::Playing() const {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 rtc::CritScope cs(&lock_); 135 rtc::CritScope cs(&lock_);
143 capturing_ = true; 136 capturing_ = true;
144 } 137 }
145 138
146 void FakeAudioDevice::Stop() { 139 void FakeAudioDevice::Stop() {
147 rtc::CritScope cs(&lock_); 140 rtc::CritScope cs(&lock_);
148 capturing_ = false; 141 capturing_ = false;
149 } 142 }
150 } // namespace test 143 } // namespace test
151 } // namespace webrtc 144 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/test/fake_audio_device.h ('k') | webrtc/test/frame_generator_capturer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698