1 /*
2  *  Copyright 2004 The WebRTC Project Authors. All rights reserved.
3  *
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
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "webrtc/sound/platformsoundsystemfactory.h"
12 
13 #include "webrtc/sound/platformsoundsystem.h"
14 #include "webrtc/sound/soundsysteminterface.h"
15 
16 namespace rtc {
17 
PlatformSoundSystemFactory()18 PlatformSoundSystemFactory::PlatformSoundSystemFactory() {
19 }
20 
~PlatformSoundSystemFactory()21 PlatformSoundSystemFactory::~PlatformSoundSystemFactory() {
22 }
23 
SetupInstance()24 bool PlatformSoundSystemFactory::SetupInstance() {
25   if (!instance_.get()) {
26     instance_.reset(CreatePlatformSoundSystem());
27   }
28   if (!instance_->Init()) {
29     LOG(LS_ERROR) << "Can't initialize platform's sound system";
30     return false;
31   }
32   return true;
33 }
34 
CleanupInstance()35 void PlatformSoundSystemFactory::CleanupInstance() {
36   instance_->Terminate();
37   // We do not delete the sound system because we might be re-initialized soon.
38 }
39 
40 }  // namespace rtc
41