| 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 "base/message_loop.h" | 5 #include "base/message_loop.h" |
| 6 #include "base/stringprintf.h" | 6 #include "base/stringprintf.h" |
| 7 #include "media/audio/linux/alsa_output.h" | 7 #include "media/audio/linux/alsa_output.h" |
| 8 #include "media/audio/linux/alsa_wrapper.h" | 8 #include "media/audio/linux/alsa_wrapper.h" |
| 9 #include "media/audio/linux/audio_manager_linux.h" | 9 #include "media/audio/linux/audio_manager_linux.h" |
| 10 #include "media/base/data_buffer.h" | 10 #include "media/base/data_buffer.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 MOCK_METHOD3(DeviceNameHint, int(int card, | 36 MOCK_METHOD3(DeviceNameHint, int(int card, |
| 37 const char* iface, | 37 const char* iface, |
| 38 void*** hints)); | 38 void*** hints)); |
| 39 MOCK_METHOD2(DeviceNameGetHint, char*(const void* hint, const char* id)); | 39 MOCK_METHOD2(DeviceNameGetHint, char*(const void* hint, const char* id)); |
| 40 MOCK_METHOD1(DeviceNameFreeHint, int(void** hints)); | 40 MOCK_METHOD1(DeviceNameFreeHint, int(void** hints)); |
| 41 | 41 |
| 42 MOCK_METHOD4(PcmOpen, int(snd_pcm_t** handle, const char* name, | 42 MOCK_METHOD4(PcmOpen, int(snd_pcm_t** handle, const char* name, |
| 43 snd_pcm_stream_t stream, int mode)); | 43 snd_pcm_stream_t stream, int mode)); |
| 44 MOCK_METHOD1(PcmClose, int(snd_pcm_t* handle)); | 44 MOCK_METHOD1(PcmClose, int(snd_pcm_t* handle)); |
| 45 MOCK_METHOD1(PcmPrepare, int(snd_pcm_t* handle)); | 45 MOCK_METHOD1(PcmPrepare, int(snd_pcm_t* handle)); |
| 46 MOCK_METHOD1(PcmDrain, int(snd_pcm_t* handle)); |
| 46 MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle)); | 47 MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle)); |
| 47 MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay)); | 48 MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay)); |
| 48 MOCK_METHOD3(PcmWritei, snd_pcm_sframes_t(snd_pcm_t* handle, | 49 MOCK_METHOD3(PcmWritei, snd_pcm_sframes_t(snd_pcm_t* handle, |
| 49 const void* buffer, | 50 const void* buffer, |
| 50 snd_pcm_uframes_t size)); | 51 snd_pcm_uframes_t size)); |
| 51 MOCK_METHOD3(PcmReadi, snd_pcm_sframes_t(snd_pcm_t* handle, | 52 MOCK_METHOD3(PcmReadi, snd_pcm_sframes_t(snd_pcm_t* handle, |
| 52 void* buffer, | 53 void* buffer, |
| 53 snd_pcm_uframes_t size)); | 54 snd_pcm_uframes_t size)); |
| 54 MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent)); | 55 MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent)); |
| 55 MOCK_METHOD7(PcmSetParams, int(snd_pcm_t* handle, snd_pcm_format_t format, | 56 MOCK_METHOD7(PcmSetParams, int(snd_pcm_t* handle, snd_pcm_format_t format, |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 .Times(AtLeast(3)) | 452 .Times(AtLeast(3)) |
| 452 .WillOnce(Return(kTestFramesPerPacket)) // Buffer is empty. | 453 .WillOnce(Return(kTestFramesPerPacket)) // Buffer is empty. |
| 453 .WillOnce(Return(kTestFramesPerPacket)) | 454 .WillOnce(Return(kTestFramesPerPacket)) |
| 454 .WillRepeatedly(DoAll(InvokeWithoutArgs(&message_loop_, | 455 .WillRepeatedly(DoAll(InvokeWithoutArgs(&message_loop_, |
| 455 &MessageLoop::QuitNow), | 456 &MessageLoop::QuitNow), |
| 456 Return(0))); // Buffer is full. | 457 Return(0))); // Buffer is full. |
| 457 | 458 |
| 458 test_stream->Start(&mock_callback); | 459 test_stream->Start(&mock_callback); |
| 459 message_loop_.RunAllPending(); | 460 message_loop_.RunAllPending(); |
| 460 | 461 |
| 462 EXPECT_CALL(mock_alsa_wrapper_, PcmDrain(kFakeHandle)) |
| 463 .WillOnce(Return(0)); |
| 464 test_stream->Stop(); |
| 465 |
| 461 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) | 466 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) |
| 462 .WillOnce(Return(0)); | 467 .WillOnce(Return(0)); |
| 463 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) | 468 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) |
| 464 .WillOnce(Return(kTestDeviceName)); | 469 .WillOnce(Return(kTestDeviceName)); |
| 465 test_stream->Close(); | 470 test_stream->Close(); |
| 466 } | 471 } |
| 467 | 472 |
| 468 TEST_F(AlsaPcmOutputStreamTest, WritePacket_FinishedPacket) { | 473 TEST_F(AlsaPcmOutputStreamTest, WritePacket_FinishedPacket) { |
| 469 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); | 474 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); |
| 470 InitBuffer(test_stream); | 475 InitBuffer(test_stream); |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 | 823 |
| 819 // TODO(ajwong): Find a way to test whether or not another task has been | 824 // TODO(ajwong): Find a way to test whether or not another task has been |
| 820 // posted so we can verify that the Alsa code will indeed break the task | 825 // posted so we can verify that the Alsa code will indeed break the task |
| 821 // posting loop. | 826 // posting loop. |
| 822 | 827 |
| 823 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); | 828 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); |
| 824 test_stream->Close(); | 829 test_stream->Close(); |
| 825 } | 830 } |
| 826 | 831 |
| 827 } // namespace media | 832 } // namespace media |
| OLD | NEW |