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

Side by Side Diff: content/test/webrtc_audio_device_test.h

Issue 11880009: Introduce AudioHardwareConfig for renderer side audio device info. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Style nits. Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #ifndef CONTENT_TEST_WEBRTC_AUDIO_DEVICE_TEST_H_ 5 #ifndef CONTENT_TEST_WEBRTC_AUDIO_DEVICE_TEST_H_
6 #define CONTENT_TEST_WEBRTC_AUDIO_DEVICE_TEST_H_ 6 #define CONTENT_TEST_WEBRTC_AUDIO_DEVICE_TEST_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "content/browser/renderer_host/media/mock_media_observer.h" 14 #include "content/browser/renderer_host/media/mock_media_observer.h"
15 #include "content/public/renderer/content_renderer_client.h" 15 #include "content/public/renderer/content_renderer_client.h"
16 #include "ipc/ipc_listener.h" 16 #include "ipc/ipc_listener.h"
17 #include "media/base/audio_hardware_config.h"
17 #include "media/base/channel_layout.h" 18 #include "media/base/channel_layout.h"
18 #include "testing/gtest/include/gtest/gtest.h" 19 #include "testing/gtest/include/gtest/gtest.h"
19 #include "third_party/webrtc/common_types.h" 20 #include "third_party/webrtc/common_types.h"
20 21
21 namespace IPC { 22 namespace IPC {
22 class Channel; 23 class Channel;
23 } 24 }
24 25
25 namespace media { 26 namespace media {
26 class AudioManager; 27 class AudioManager;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 103
103 T* operator->() { return ptr_; } 104 T* operator->() { return ptr_; }
104 T* get() const { return ptr_; } 105 T* get() const { return ptr_; }
105 106
106 bool valid() const { return ptr_ != NULL; } 107 bool valid() const { return ptr_ != NULL; }
107 108
108 protected: 109 protected:
109 T* ptr_; 110 T* ptr_;
110 }; 111 };
111 112
112 // Individual tests can provide an implementation (or mock) of this interface
113 // when the audio code queries for hardware capabilities on the IO thread.
114 class AudioUtilInterface {
115 public:
116 virtual ~AudioUtilInterface() {}
117 virtual int GetAudioHardwareSampleRate() = 0;
118 virtual int GetAudioInputHardwareSampleRate(
119 const std::string& device_id) = 0;
120 virtual media::ChannelLayout GetAudioInputHardwareChannelLayout(
121 const std::string& device_id) = 0;
122 };
123
124 // Implemented and defined in the cc file. 113 // Implemented and defined in the cc file.
125 class ReplaceContentClientRenderer; 114 class ReplaceContentClientRenderer;
126 115
127 class WebRTCAudioDeviceTest : public ::testing::Test, public IPC::Listener { 116 class WebRTCAudioDeviceTest : public ::testing::Test, public IPC::Listener {
128 public: 117 public:
129 WebRTCAudioDeviceTest(); 118 WebRTCAudioDeviceTest();
130 virtual ~WebRTCAudioDeviceTest(); 119 virtual ~WebRTCAudioDeviceTest();
131 120
132 virtual void SetUp() OVERRIDE; 121 virtual void SetUp() OVERRIDE;
133 virtual void TearDown() OVERRIDE; 122 virtual void TearDown() OVERRIDE;
134 123
135 // Sends an IPC message to the IO thread channel. 124 // Sends an IPC message to the IO thread channel.
136 bool Send(IPC::Message* message); 125 bool Send(IPC::Message* message);
137 126
138 void SetAudioUtilCallback(AudioUtilInterface* callback); 127 void SetAudioHardwareConfig(media::AudioHardwareConfig* hardware_config);
139 128
140 protected: 129 protected:
141 void InitializeIOThread(const char* thread_name); 130 void InitializeIOThread(const char* thread_name);
142 void UninitializeIOThread(); 131 void UninitializeIOThread();
143 void CreateChannel(const char* name); 132 void CreateChannel(const char* name);
144 void DestroyChannel(); 133 void DestroyChannel();
145 134
146 void OnGetHardwareSampleRate(int* sample_rate); 135 void OnGetAudioHardwareConfig(int* output_buffer_size,
147 void OnGetHardwareInputSampleRate(int* sample_rate); 136 int* output_sample_rate, int* input_sample_rate,
148 void OnGetHardwareInputChannelLayout(media::ChannelLayout* channels); 137 media::ChannelLayout* input_channel_layout);
149 138
150 // IPC::Listener implementation. 139 // IPC::Listener implementation.
151 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; 140 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
152 141
153 // Posts a final task to the IO message loop and waits for completion. 142 // Posts a final task to the IO message loop and waits for completion.
154 void WaitForIOThreadCompletion(); 143 void WaitForIOThreadCompletion();
155 void WaitForAudioManagerCompletion(); 144 void WaitForAudioManagerCompletion();
156 void WaitForMessageLoopCompletion(base::MessageLoopProxy* loop); 145 void WaitForMessageLoopCompletion(base::MessageLoopProxy* loop);
157 146
158 // Convenience getter for gmock. 147 // Convenience getter for gmock.
(...skipping 11 matching lines...) Expand all
170 scoped_ptr<MockMediaObserver> media_observer_; 159 scoped_ptr<MockMediaObserver> media_observer_;
171 scoped_ptr<MediaStreamManager> media_stream_manager_; 160 scoped_ptr<MediaStreamManager> media_stream_manager_;
172 scoped_ptr<media::AudioManager> audio_manager_; 161 scoped_ptr<media::AudioManager> audio_manager_;
173 scoped_ptr<AudioMirroringManager> mirroring_manager_; 162 scoped_ptr<AudioMirroringManager> mirroring_manager_;
174 scoped_ptr<net::URLRequestContext> test_request_context_; 163 scoped_ptr<net::URLRequestContext> test_request_context_;
175 scoped_ptr<ResourceContext> resource_context_; 164 scoped_ptr<ResourceContext> resource_context_;
176 scoped_ptr<IPC::Channel> channel_; 165 scoped_ptr<IPC::Channel> channel_;
177 scoped_refptr<AudioRendererHost> audio_render_host_; 166 scoped_refptr<AudioRendererHost> audio_render_host_;
178 scoped_refptr<AudioInputRendererHost> audio_input_renderer_host_; 167 scoped_refptr<AudioInputRendererHost> audio_input_renderer_host_;
179 168
180 AudioUtilInterface* audio_util_callback_; // Weak reference. 169 media::AudioHardwareConfig* audio_hardware_config_; // Weak reference.
181 170
182 // Initialized on the main test thread that we mark as the UI thread. 171 // Initialized on the main test thread that we mark as the UI thread.
183 scoped_ptr<TestBrowserThread> ui_thread_; 172 scoped_ptr<TestBrowserThread> ui_thread_;
184 // Initialized on our IO thread to satisfy BrowserThread::IO checks. 173 // Initialized on our IO thread to satisfy BrowserThread::IO checks.
185 scoped_ptr<TestBrowserThread> io_thread_; 174 scoped_ptr<TestBrowserThread> io_thread_;
186 175
187 #if defined(OS_WIN) 176 #if defined(OS_WIN)
188 // COM initialization on the IO thread. 177 // COM initialization on the IO thread.
189 scoped_ptr<base::win::ScopedCOMInitializer> initialize_com_; 178 scoped_ptr<base::win::ScopedCOMInitializer> initialize_com_;
190 #endif 179 #endif
(...skipping 18 matching lines...) Expand all
209 virtual int SendPacket(int channel, const void* data, int len) OVERRIDE; 198 virtual int SendPacket(int channel, const void* data, int len) OVERRIDE;
210 virtual int SendRTCPPacket(int channel, const void* data, int len) OVERRIDE; 199 virtual int SendRTCPPacket(int channel, const void* data, int len) OVERRIDE;
211 200
212 private: 201 private:
213 webrtc::VoENetwork* network_; 202 webrtc::VoENetwork* network_;
214 }; 203 };
215 204
216 } // namespace content 205 } // namespace content
217 206
218 #endif // CONTENT_TEST_WEBRTC_AUDIO_DEVICE_TEST_H_ 207 #endif // CONTENT_TEST_WEBRTC_AUDIO_DEVICE_TEST_H_
OLDNEW
« no previous file with comments | « content/renderer/renderer_webkitplatformsupport_impl.cc ('k') | content/test/webrtc_audio_device_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698