| OLD | NEW |
| 1 // Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2010 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_io.h" | 5 #include "media/audio/audio_io.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <mmsystem.h> | 8 #include <mmsystem.h> |
| 9 | 9 |
| 10 #include "base/at_exit.h" |
| 10 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
| 11 #include "media/audio/fake_audio_input_stream.h" | 12 #include "media/audio/fake_audio_input_stream.h" |
| 12 #include "media/audio/fake_audio_output_stream.h" | 13 #include "media/audio/fake_audio_output_stream.h" |
| 13 #include "media/audio/win/audio_manager_win.h" | 14 #include "media/audio/win/audio_manager_win.h" |
| 14 #include "media/audio/win/wavein_input_win.h" | 15 #include "media/audio/win/wavein_input_win.h" |
| 15 #include "media/audio/win/waveout_output_win.h" | 16 #include "media/audio/win/waveout_output_win.h" |
| 16 | 17 |
| 17 namespace { | 18 namespace { |
| 18 | 19 |
| 19 // The next 3 constants are some sensible limits to prevent integer overflow | 20 // The next 3 constants are some sensible limits to prevent integer overflow |
| (...skipping 14 matching lines...) Expand all Loading... |
| 34 | 35 |
| 35 const int kMaxInputChannels = 2; | 36 const int kMaxInputChannels = 2; |
| 36 const int kMaxSamplesPerPacket = kMaxSampleRate; | 37 const int kMaxSamplesPerPacket = kMaxSampleRate; |
| 37 // We use 3 buffers for recording audio so that if a recording callback takes | 38 // We use 3 buffers for recording audio so that if a recording callback takes |
| 38 // some time to return we won't lose audio. More buffers while recording are | 39 // some time to return we won't lose audio. More buffers while recording are |
| 39 // ok because they don't introduce any delay in recording, unlike in playback | 40 // ok because they don't introduce any delay in recording, unlike in playback |
| 40 // where you first need to fill in that number of buffers before starting to | 41 // where you first need to fill in that number of buffers before starting to |
| 41 // play. | 42 // play. |
| 42 const int kNumInputBuffers = 3; | 43 const int kNumInputBuffers = 3; |
| 43 | 44 |
| 45 AudioManagerWin* g_audio_manager = NULL; |
| 46 |
| 44 } // namespace. | 47 } // namespace. |
| 45 | 48 |
| 46 bool AudioManagerWin::HasAudioOutputDevices() { | 49 bool AudioManagerWin::HasAudioOutputDevices() { |
| 47 return (::waveOutGetNumDevs() != 0); | 50 return (::waveOutGetNumDevs() != 0); |
| 48 } | 51 } |
| 49 | 52 |
| 50 bool AudioManagerWin::HasAudioInputDevices() { | 53 bool AudioManagerWin::HasAudioInputDevices() { |
| 51 return (::waveInGetNumDevs() != 0); | 54 return (::waveInGetNumDevs() != 0); |
| 52 } | 55 } |
| 53 | 56 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 | 118 |
| 116 void AudioManagerWin::MuteAll() { | 119 void AudioManagerWin::MuteAll() { |
| 117 } | 120 } |
| 118 | 121 |
| 119 void AudioManagerWin::UnMuteAll() { | 122 void AudioManagerWin::UnMuteAll() { |
| 120 } | 123 } |
| 121 | 124 |
| 122 AudioManagerWin::~AudioManagerWin() { | 125 AudioManagerWin::~AudioManagerWin() { |
| 123 } | 126 } |
| 124 | 127 |
| 125 // static | 128 void DestroyAudioManagerWin(void* param) { |
| 126 AudioManager* AudioManager::CreateAudioManager() { | 129 delete g_audio_manager; |
| 127 return new AudioManagerWin(); | 130 g_audio_manager = NULL; |
| 128 } | 131 } |
| 132 |
| 133 AudioManager* AudioManager::GetAudioManager() { |
| 134 if (!g_audio_manager) { |
| 135 g_audio_manager = new AudioManagerWin(); |
| 136 base::AtExitManager::RegisterCallback(&DestroyAudioManagerWin, NULL); |
| 137 } |
| 138 return g_audio_manager; |
| 139 } |
| OLD | NEW |