OLD | NEW |
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 "media/audio/audio_device_thread.h" | 5 #include "media/audio/audio_device_thread.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 const char* thread_name_; | 57 const char* thread_name_; |
58 | 58 |
59 DISALLOW_COPY_AND_ASSIGN(Thread); | 59 DISALLOW_COPY_AND_ASSIGN(Thread); |
60 }; | 60 }; |
61 | 61 |
62 // AudioDeviceThread implementation | 62 // AudioDeviceThread implementation |
63 | 63 |
64 AudioDeviceThread::AudioDeviceThread() { | 64 AudioDeviceThread::AudioDeviceThread() { |
65 } | 65 } |
66 | 66 |
67 AudioDeviceThread::~AudioDeviceThread() { | 67 AudioDeviceThread::~AudioDeviceThread() { DCHECK(!thread_.get()); } |
68 DCHECK(!thread_); | |
69 } | |
70 | 68 |
71 void AudioDeviceThread::Start(AudioDeviceThread::Callback* callback, | 69 void AudioDeviceThread::Start(AudioDeviceThread::Callback* callback, |
72 base::SyncSocket::Handle socket, | 70 base::SyncSocket::Handle socket, |
73 const char* thread_name) { | 71 const char* thread_name) { |
74 base::AutoLock auto_lock(thread_lock_); | 72 base::AutoLock auto_lock(thread_lock_); |
75 CHECK(thread_ == NULL); | 73 CHECK(thread_.get() == NULL); |
76 thread_ = new AudioDeviceThread::Thread(callback, socket, thread_name); | 74 thread_ = new AudioDeviceThread::Thread(callback, socket, thread_name); |
77 thread_->Start(); | 75 thread_->Start(); |
78 } | 76 } |
79 | 77 |
80 void AudioDeviceThread::Stop(base::MessageLoop* loop_for_join) { | 78 void AudioDeviceThread::Stop(base::MessageLoop* loop_for_join) { |
81 base::AutoLock auto_lock(thread_lock_); | 79 base::AutoLock auto_lock(thread_lock_); |
82 if (thread_) { | 80 if (thread_.get()) { |
83 thread_->Stop(loop_for_join); | 81 thread_->Stop(loop_for_join); |
84 thread_ = NULL; | 82 thread_ = NULL; |
85 } | 83 } |
86 } | 84 } |
87 | 85 |
88 bool AudioDeviceThread::IsStopped() { | 86 bool AudioDeviceThread::IsStopped() { |
89 base::AutoLock auto_lock(thread_lock_); | 87 base::AutoLock auto_lock(thread_lock_); |
90 return thread_ == NULL; | 88 return thread_.get() == NULL; |
91 } | 89 } |
92 | 90 |
93 // AudioDeviceThread::Thread implementation | 91 // AudioDeviceThread::Thread implementation |
94 AudioDeviceThread::Thread::Thread(AudioDeviceThread::Callback* callback, | 92 AudioDeviceThread::Thread::Thread(AudioDeviceThread::Callback* callback, |
95 base::SyncSocket::Handle socket, | 93 base::SyncSocket::Handle socket, |
96 const char* thread_name) | 94 const char* thread_name) |
97 : thread_(), | 95 : thread_(), |
98 callback_(callback), | 96 callback_(callback), |
99 socket_(socket), | 97 socket_(socket), |
100 thread_name_(thread_name) { | 98 thread_name_(thread_name) { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 } | 194 } |
197 | 195 |
198 AudioDeviceThread::Callback::~Callback() {} | 196 AudioDeviceThread::Callback::~Callback() {} |
199 | 197 |
200 void AudioDeviceThread::Callback::InitializeOnAudioThread() { | 198 void AudioDeviceThread::Callback::InitializeOnAudioThread() { |
201 MapSharedMemory(); | 199 MapSharedMemory(); |
202 CHECK(shared_memory_.memory()); | 200 CHECK(shared_memory_.memory()); |
203 } | 201 } |
204 | 202 |
205 } // namespace media. | 203 } // namespace media. |
OLD | NEW |