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

Unified Diff: media/audio/audio_system_impl.cc

Issue 2763383002: Switching AudioInputDeviceManager from using AudioManager interface to AudioSystem one. (Closed)
Patch Set: Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: media/audio/audio_system_impl.cc
diff --git a/media/audio/audio_system_impl.cc b/media/audio/audio_system_impl.cc
index 00ea330761b28861dc27bd55cdc39f9ffc1c8337..f124d2ef5468f4fc50304a574bda87ff41017598 100644
--- a/media/audio/audio_system_impl.cc
+++ b/media/audio/audio_system_impl.cc
@@ -60,19 +60,18 @@ AudioDeviceDescriptions GetDeviceDescriptionsOnDeviceThread(
} // namespace
AudioSystemImpl::AudioSystemImpl(AudioManager* audio_manager)
- : audio_manager_(audio_manager) {
+ : audio_manager_(audio_manager), weak_factory_(this) {
DCHECK(audio_manager_);
AudioSystem::SetInstance(this);
}
AudioSystemImpl::~AudioSystemImpl() {
- AudioSystem::ClearInstance(this);
+ DCHECK(GetTaskRunner()->BelongsToCurrentThread());
}
// static
-std::unique_ptr<AudioSystem> AudioSystemImpl::Create(
- AudioManager* audio_manager) {
- return base::WrapUnique(new AudioSystemImpl(audio_manager));
+AudioSystem::UniquePtr AudioSystemImpl::Create(AudioManager* audio_manager) {
+ return UniquePtr(new AudioSystemImpl(audio_manager));
}
void AudioSystemImpl::GetInputStreamParameters(
@@ -122,11 +121,11 @@ void AudioSystemImpl::HasInputDevices(OnBoolCallback on_has_devices_cb) const {
}
void AudioSystemImpl::GetDeviceDescriptions(
- OnDeviceDescriptionsCallback on_descriptions_cp,
+ OnDeviceDescriptionsCallback on_descriptions_cb,
bool for_input) {
if (GetTaskRunner()->BelongsToCurrentThread()) {
GetTaskRunner()->PostTask(
- FROM_HERE, base::Bind(on_descriptions_cp,
+ FROM_HERE, base::Bind(on_descriptions_cb,
base::Passed(GetDeviceDescriptionsOnDeviceThread(
audio_manager_, for_input))));
return;
@@ -136,15 +135,36 @@ void AudioSystemImpl::GetDeviceDescriptions(
GetTaskRunner(), FROM_HERE,
base::Bind(&GetDeviceDescriptionsOnDeviceThread,
base::Unretained(audio_manager_), for_input),
- std::move(on_descriptions_cp));
+ std::move(on_descriptions_cb));
}
-AudioManager* AudioSystemImpl::GetAudioManager() const {
- return audio_manager_;
+void AudioSystemImpl::GetAssociatedOutputDeviceID(
+ const std::string& input_device_id,
+ OnDeviceIdCallback on_device_id_cb) {
+ if (GetTaskRunner()->BelongsToCurrentThread()) {
+ GetTaskRunner()->PostTask(
+ FROM_HERE,
+ base::Bind(on_device_id_cb, audio_manager_->GetAssociatedOutputDeviceID(
+ input_device_id)));
+ return;
+ }
+ base::PostTaskAndReplyWithResult(
+ GetTaskRunner(), FROM_HERE,
+ base::Bind(&AudioManager::GetAssociatedOutputDeviceID,
+ base::Unretained(audio_manager_), input_device_id),
+ std::move(on_device_id_cb));
+}
+
+base::WeakPtr<AudioSystem> AudioSystemImpl::GetWeakPtr() {
+ return weak_factory_.GetWeakPtr();
}
base::SingleThreadTaskRunner* AudioSystemImpl::GetTaskRunner() const {
return audio_manager_->GetTaskRunner();
}
+AudioManager* AudioSystemImpl::GetAudioManager() const {
+ return audio_manager_;
+}
+
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698