| 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)); | |
| 47 MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle)); | 46 MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle)); |
| 48 MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay)); | 47 MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay)); |
| 49 MOCK_METHOD3(PcmWritei, snd_pcm_sframes_t(snd_pcm_t* handle, | 48 MOCK_METHOD3(PcmWritei, snd_pcm_sframes_t(snd_pcm_t* handle, |
| 50 const void* buffer, | 49 const void* buffer, |
| 51 snd_pcm_uframes_t size)); | 50 snd_pcm_uframes_t size)); |
| 52 MOCK_METHOD3(PcmReadi, snd_pcm_sframes_t(snd_pcm_t* handle, | 51 MOCK_METHOD3(PcmReadi, snd_pcm_sframes_t(snd_pcm_t* handle, |
| 53 void* buffer, | 52 void* buffer, |
| 54 snd_pcm_uframes_t size)); | 53 snd_pcm_uframes_t size)); |
| 55 MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent)); | 54 MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent)); |
| 56 MOCK_METHOD7(PcmSetParams, int(snd_pcm_t* handle, snd_pcm_format_t format, | 55 MOCK_METHOD7(PcmSetParams, int(snd_pcm_t* handle, snd_pcm_format_t format, |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 .WillRepeatedly(Return(kTestFramesPerPacket)); | 443 .WillRepeatedly(Return(kTestFramesPerPacket)); |
| 445 | 444 |
| 446 // Expect scheduling. | 445 // Expect scheduling. |
| 447 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) | 446 EXPECT_CALL(mock_alsa_wrapper_, PcmAvailUpdate(kFakeHandle)) |
| 448 .Times(AtLeast(2)) | 447 .Times(AtLeast(2)) |
| 449 .WillRepeatedly(Return(kTestFramesPerPacket)); | 448 .WillRepeatedly(Return(kTestFramesPerPacket)); |
| 450 | 449 |
| 451 test_stream->Start(&mock_callback); | 450 test_stream->Start(&mock_callback); |
| 452 message_loop_.RunAllPending(); | 451 message_loop_.RunAllPending(); |
| 453 | 452 |
| 454 EXPECT_CALL(mock_alsa_wrapper_, PcmDrain(kFakeHandle)) | |
| 455 .WillOnce(Return(0)); | |
| 456 | |
| 457 test_stream->Stop(); | |
| 458 | |
| 459 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) | 453 EXPECT_CALL(mock_alsa_wrapper_, PcmClose(kFakeHandle)) |
| 460 .WillOnce(Return(0)); | 454 .WillOnce(Return(0)); |
| 461 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) | 455 EXPECT_CALL(mock_alsa_wrapper_, PcmName(kFakeHandle)) |
| 462 .WillOnce(Return(kTestDeviceName)); | 456 .WillOnce(Return(kTestDeviceName)); |
| 463 test_stream->Close(); | 457 test_stream->Close(); |
| 464 } | 458 } |
| 465 | 459 |
| 466 TEST_F(AlsaPcmOutputStreamTest, WritePacket_FinishedPacket) { | 460 TEST_F(AlsaPcmOutputStreamTest, WritePacket_FinishedPacket) { |
| 467 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); | 461 AlsaPcmOutputStream* test_stream = CreateStream(kTestChannelLayout); |
| 468 InitBuffer(test_stream); | 462 InitBuffer(test_stream); |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 | 856 |
| 863 // TODO(ajwong): Find a way to test whether or not another task has been | 857 // TODO(ajwong): Find a way to test whether or not another task has been |
| 864 // posted so we can verify that the Alsa code will indeed break the task | 858 // posted so we can verify that the Alsa code will indeed break the task |
| 865 // posting loop. | 859 // posting loop. |
| 866 | 860 |
| 867 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); | 861 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); |
| 868 test_stream->Close(); | 862 test_stream->Close(); |
| 869 } | 863 } |
| 870 | 864 |
| 871 } // namespace media | 865 } // namespace media |
| OLD | NEW |