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

Side by Side Diff: media/audio/audio_output_controller_unittest.cc

Issue 11233023: Handle audio device changes on Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments! Created 8 years, 1 month 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 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/environment.h" 6 #include "base/environment.h"
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/synchronization/waitable_event.h" 10 #include "base/synchronization/waitable_event.h"
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 252
253 MockAudioOutputControllerSyncReader sync_reader; 253 MockAudioOutputControllerSyncReader sync_reader;
254 EXPECT_CALL(sync_reader, UpdatePendingBytes(_)) 254 EXPECT_CALL(sync_reader, UpdatePendingBytes(_))
255 .Times(AtLeast(1)); 255 .Times(AtLeast(1));
256 EXPECT_CALL(sync_reader, Read(_, _)) 256 EXPECT_CALL(sync_reader, Read(_, _))
257 .WillRepeatedly(DoAll(ClearBuffer(), SignalEvent(&event), Return(4))); 257 .WillRepeatedly(DoAll(ClearBuffer(), SignalEvent(&event), Return(4)));
258 EXPECT_CALL(sync_reader, DataReady()) 258 EXPECT_CALL(sync_reader, DataReady())
259 .WillRepeatedly(Return(true)); 259 .WillRepeatedly(Return(true));
260 EXPECT_CALL(sync_reader, Close()); 260 EXPECT_CALL(sync_reader, Close());
261 261
262 AudioParameters params(AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout, 262 AudioParameters params(AudioParameters::AUDIO_PCM_LOW_LATENCY, kChannelLayout,
263 kSampleRate, kBitsPerSample, kSamplesPerPacket); 263 kSampleRate, kBitsPerSample, kSamplesPerPacket);
264 scoped_refptr<AudioOutputController> controller = 264 scoped_refptr<AudioOutputController> controller =
265 AudioOutputController::Create( 265 AudioOutputController::Create(
266 audio_manager.get(), &event_handler, params, &sync_reader); 266 audio_manager.get(), &event_handler, params, &sync_reader);
267 ASSERT_TRUE(controller.get()); 267 ASSERT_TRUE(controller.get());
268 268
269 // Wait for OnCreated() to be called. 269 // Wait for OnCreated() to be called.
270 event.Wait(); 270 event.Wait();
271 271
272 ASSERT_FALSE(play_event.IsSignaled()); 272 ASSERT_FALSE(play_event.IsSignaled());
273 controller->Play(); 273 controller->Play();
274 play_event.Wait(); 274 play_event.Wait();
275 275
276 // Force a state change and wait for the stream to come back to playing state. 276 // Force a state change and wait for the stream to come back to playing state.
277 play_event.Reset(); 277 play_event.Reset();
278 audio_manager->GetMessageLoop()->PostTask(FROM_HERE, 278 audio_manager->GetMessageLoop()->PostTask(FROM_HERE,
279 base::Bind(&AudioOutputController::OnDeviceChange, controller)); 279 base::Bind(&AudioOutputController::OnDeviceChange, controller));
280 play_event.Wait(); 280 play_event.Wait();
281 281
282 // Now stop the controller. 282 // Now stop the controller.
283 CloseAudioController(controller); 283 CloseAudioController(controller);
284 } 284 }
285 285
286 } // namespace media 286 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698