OLD | NEW |
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 <windows.h> | 5 #include <windows.h> |
6 #include <mmsystem.h> | 6 #include <mmsystem.h> |
7 | 7 |
8 #include "base/basictypes.h" | |
9 #include "base/environment.h" | 8 #include "base/environment.h" |
10 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
11 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
12 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
13 #include "base/path_service.h" | 12 #include "base/path_service.h" |
14 #include "base/test/test_timeouts.h" | 13 #include "base/test/test_timeouts.h" |
15 #include "base/time/time.h" | 14 #include "base/time/time.h" |
16 #include "base/win/scoped_com_initializer.h" | 15 #include "base/win/scoped_com_initializer.h" |
17 #include "media/audio/audio_io.h" | 16 #include "media/audio/audio_io.h" |
18 #include "media/audio/audio_manager.h" | 17 #include "media/audio/audio_manager.h" |
(...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 base::MessageLoopForUI loop; | 371 base::MessageLoopForUI loop; |
373 MockAudioSourceCallback source; | 372 MockAudioSourceCallback source; |
374 | 373 |
375 // Create default WASAPI output stream which plays out in stereo using | 374 // Create default WASAPI output stream which plays out in stereo using |
376 // the shared mixing rate. The default buffer size is 10ms. | 375 // the shared mixing rate. The default buffer size is 10ms. |
377 AudioOutputStreamWrapper aosw(audio_manager.get()); | 376 AudioOutputStreamWrapper aosw(audio_manager.get()); |
378 AudioOutputStream* aos = aosw.Create(); | 377 AudioOutputStream* aos = aosw.Create(); |
379 EXPECT_TRUE(aos->Open()); | 378 EXPECT_TRUE(aos->Open()); |
380 | 379 |
381 // Derive the expected size in bytes of each packet. | 380 // Derive the expected size in bytes of each packet. |
382 uint32 bytes_per_packet = aosw.channels() * aosw.samples_per_packet() * | 381 uint32_t bytes_per_packet = aosw.channels() * aosw.samples_per_packet() * |
383 (aosw.bits_per_sample() / 8); | 382 (aosw.bits_per_sample() / 8); |
384 | 383 |
385 // Wait for the first callback and verify its parameters. Ignore any | 384 // Wait for the first callback and verify its parameters. Ignore any |
386 // subsequent callbacks that might arrive. | 385 // subsequent callbacks that might arrive. |
387 EXPECT_CALL(source, OnMoreData(NotNull(), HasValidDelay(bytes_per_packet), 0)) | 386 EXPECT_CALL(source, OnMoreData(NotNull(), HasValidDelay(bytes_per_packet), 0)) |
388 .WillOnce(DoAll(QuitLoop(loop.task_runner()), | 387 .WillOnce(DoAll(QuitLoop(loop.task_runner()), |
389 Return(aosw.samples_per_packet()))) | 388 Return(aosw.samples_per_packet()))) |
390 .WillRepeatedly(Return(0)); | 389 .WillRepeatedly(Return(0)); |
391 | 390 |
392 aos->Start(&source); | 391 aos->Start(&source); |
393 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 392 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 base::MessageLoopForUI loop; | 566 base::MessageLoopForUI loop; |
568 MockAudioSourceCallback source; | 567 MockAudioSourceCallback source; |
569 | 568 |
570 // Create exclusive-mode WASAPI output stream which plays out in stereo | 569 // Create exclusive-mode WASAPI output stream which plays out in stereo |
571 // using the minimum buffer size at 48kHz sample rate. | 570 // using the minimum buffer size at 48kHz sample rate. |
572 AudioOutputStreamWrapper aosw(audio_manager.get()); | 571 AudioOutputStreamWrapper aosw(audio_manager.get()); |
573 AudioOutputStream* aos = aosw.Create(48000, 160); | 572 AudioOutputStream* aos = aosw.Create(48000, 160); |
574 EXPECT_TRUE(aos->Open()); | 573 EXPECT_TRUE(aos->Open()); |
575 | 574 |
576 // Derive the expected size in bytes of each packet. | 575 // Derive the expected size in bytes of each packet. |
577 uint32 bytes_per_packet = aosw.channels() * aosw.samples_per_packet() * | 576 uint32_t bytes_per_packet = aosw.channels() * aosw.samples_per_packet() * |
578 (aosw.bits_per_sample() / 8); | 577 (aosw.bits_per_sample() / 8); |
579 | 578 |
580 // Wait for the first callback and verify its parameters. | 579 // Wait for the first callback and verify its parameters. |
581 EXPECT_CALL(source, OnMoreData(NotNull(), HasValidDelay(bytes_per_packet), 0)) | 580 EXPECT_CALL(source, OnMoreData(NotNull(), HasValidDelay(bytes_per_packet), 0)) |
582 .WillOnce(DoAll(QuitLoop(loop.task_runner()), | 581 .WillOnce(DoAll(QuitLoop(loop.task_runner()), |
583 Return(aosw.samples_per_packet()))) | 582 Return(aosw.samples_per_packet()))) |
584 .WillRepeatedly(Return(aosw.samples_per_packet())); | 583 .WillRepeatedly(Return(aosw.samples_per_packet())); |
585 | 584 |
586 aos->Start(&source); | 585 aos->Start(&source); |
587 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 586 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
588 TestTimeouts::action_timeout()); | 587 TestTimeouts::action_timeout()); |
(...skipping 12 matching lines...) Expand all Loading... |
601 base::MessageLoopForUI loop; | 600 base::MessageLoopForUI loop; |
602 MockAudioSourceCallback source; | 601 MockAudioSourceCallback source; |
603 | 602 |
604 // Create exclusive-mode WASAPI output stream which plays out in stereo | 603 // Create exclusive-mode WASAPI output stream which plays out in stereo |
605 // using the minimum buffer size at 44.1kHz sample rate. | 604 // using the minimum buffer size at 44.1kHz sample rate. |
606 AudioOutputStreamWrapper aosw(audio_manager.get()); | 605 AudioOutputStreamWrapper aosw(audio_manager.get()); |
607 AudioOutputStream* aos = aosw.Create(44100, 160); | 606 AudioOutputStream* aos = aosw.Create(44100, 160); |
608 EXPECT_TRUE(aos->Open()); | 607 EXPECT_TRUE(aos->Open()); |
609 | 608 |
610 // Derive the expected size in bytes of each packet. | 609 // Derive the expected size in bytes of each packet. |
611 uint32 bytes_per_packet = aosw.channels() * aosw.samples_per_packet() * | 610 uint32_t bytes_per_packet = aosw.channels() * aosw.samples_per_packet() * |
612 (aosw.bits_per_sample() / 8); | 611 (aosw.bits_per_sample() / 8); |
613 | 612 |
614 // Wait for the first callback and verify its parameters. | 613 // Wait for the first callback and verify its parameters. |
615 EXPECT_CALL(source, OnMoreData(NotNull(), HasValidDelay(bytes_per_packet), 0)) | 614 EXPECT_CALL(source, OnMoreData(NotNull(), HasValidDelay(bytes_per_packet), 0)) |
616 .WillOnce(DoAll(QuitLoop(loop.task_runner()), | 615 .WillOnce(DoAll(QuitLoop(loop.task_runner()), |
617 Return(aosw.samples_per_packet()))) | 616 Return(aosw.samples_per_packet()))) |
618 .WillRepeatedly(Return(aosw.samples_per_packet())); | 617 .WillRepeatedly(Return(aosw.samples_per_packet())); |
619 | 618 |
620 aos->Start(&source); | 619 aos->Start(&source); |
621 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 620 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
622 TestTimeouts::action_timeout()); | 621 TestTimeouts::action_timeout()); |
623 loop.Run(); | 622 loop.Run(); |
624 aos->Stop(); | 623 aos->Stop(); |
625 aos->Close(); | 624 aos->Close(); |
626 } | 625 } |
627 | 626 |
628 } // namespace media | 627 } // namespace media |
OLD | NEW |