| 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/bind.h" |    5 #include "base/bind.h" | 
|    6 #include "base/bind_helpers.h" |    6 #include "base/bind_helpers.h" | 
|    7 #include "base/message_loop.h" |    7 #include "base/message_loop.h" | 
|    8 #include "base/message_loop/message_loop_proxy.h" |    8 #include "base/message_loop/message_loop_proxy.h" | 
|    9 #include "base/synchronization/waitable_event.h" |    9 #include "base/synchronization/waitable_event.h" | 
|   10 #include "base/threading/thread.h" |   10 #include "base/threading/thread.h" | 
|   11 #include "media/audio/audio_manager.h" |   11 #include "media/audio/audio_manager.h" | 
|   12 #include "media/audio/simple_sources.h" |   12 #include "media/audio/simple_sources.h" | 
|   13 #include "media/audio/virtual_audio_input_stream.h" |   13 #include "media/audio/virtual_audio_input_stream.h" | 
|   14 #include "media/audio/virtual_audio_output_stream.h" |   14 #include "media/audio/virtual_audio_output_stream.h" | 
|   15 #include "testing/gmock/include/gmock/gmock.h" |   15 #include "testing/gmock/include/gmock/gmock.h" | 
|   16 #include "testing/gtest/include/gtest/gtest.h" |   16 #include "testing/gtest/include/gtest/gtest.h" | 
|   17  |   17  | 
|   18 using ::testing::_; |   18 using ::testing::_; | 
|   19  |   19  | 
|   20 namespace media { |   20 namespace media { | 
|   21  |   21  | 
|   22 namespace { |   22 namespace { | 
|   23 const AudioParameters kParams( |   23 const AudioParameters kParams( | 
|   24     AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, 8000, 8, 128); |   24     AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_MONO, 8000, 8, 128); | 
|   25 } |   25 } | 
|   26  |   26  | 
|   27 class MockVirtualAudioInputStream : public VirtualAudioInputStream { |   27 class MockVirtualAudioInputStream : public VirtualAudioInputStream { | 
|   28  public: |   28  public: | 
|   29   explicit MockVirtualAudioInputStream( |   29   explicit MockVirtualAudioInputStream( | 
|   30       const scoped_refptr<base::MessageLoopProxy>& message_loop) |   30       const scoped_refptr<base::MessageLoopProxy>& worker_loop) | 
|   31       : VirtualAudioInputStream( |   31       : VirtualAudioInputStream( | 
|   32             kParams, |   32             kParams, | 
|   33             message_loop, |   33             worker_loop, | 
|   34             base::Bind(&base::DeletePointer<VirtualAudioInputStream>)) {} |   34             base::Bind(&base::DeletePointer<VirtualAudioInputStream>)) {} | 
|   35   ~MockVirtualAudioInputStream() {} |   35   ~MockVirtualAudioInputStream() {} | 
|   36  |   36  | 
|   37   MOCK_METHOD2(AddOutputStream, void(VirtualAudioOutputStream* stream, |   37   MOCK_METHOD2(AddOutputStream, void(VirtualAudioOutputStream* stream, | 
|   38                                      const AudioParameters& output_params)); |   38                                      const AudioParameters& output_params)); | 
|   39   MOCK_METHOD2(RemoveOutputStream, void(VirtualAudioOutputStream* stream, |   39   MOCK_METHOD2(RemoveOutputStream, void(VirtualAudioOutputStream* stream, | 
|   40                                         const AudioParameters& output_params)); |   40                                         const AudioParameters& output_params)); | 
|   41  |   41  | 
|   42  private: |   42  private: | 
|   43   DISALLOW_COPY_AND_ASSIGN(MockVirtualAudioInputStream); |   43   DISALLOW_COPY_AND_ASSIGN(MockVirtualAudioInputStream); | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   80  |   80  | 
|   81   MockVirtualAudioInputStream* const input_stream = |   81   MockVirtualAudioInputStream* const input_stream = | 
|   82       new MockVirtualAudioInputStream(audio_message_loop()); |   82       new MockVirtualAudioInputStream(audio_message_loop()); | 
|   83   audio_message_loop()->PostTask( |   83   audio_message_loop()->PostTask( | 
|   84       FROM_HERE, base::Bind( |   84       FROM_HERE, base::Bind( | 
|   85           base::IgnoreResult(&MockVirtualAudioInputStream::Open), |   85           base::IgnoreResult(&MockVirtualAudioInputStream::Open), | 
|   86           base::Unretained(input_stream))); |   86           base::Unretained(input_stream))); | 
|   87  |   87  | 
|   88   VirtualAudioOutputStream* const output_stream = new VirtualAudioOutputStream( |   88   VirtualAudioOutputStream* const output_stream = new VirtualAudioOutputStream( | 
|   89       kParams, |   89       kParams, | 
|   90       audio_message_loop().get(), |  | 
|   91       input_stream, |   90       input_stream, | 
|   92       base::Bind(&base::DeletePointer<VirtualAudioOutputStream>)); |   91       base::Bind(&base::DeletePointer<VirtualAudioOutputStream>)); | 
|   93  |   92  | 
|   94   EXPECT_CALL(*input_stream, AddOutputStream(output_stream, _)) |   93   EXPECT_CALL(*input_stream, AddOutputStream(output_stream, _)) | 
|   95       .Times(kCycles); |   94       .Times(kCycles); | 
|   96   EXPECT_CALL(*input_stream, RemoveOutputStream(output_stream, _)) |   95   EXPECT_CALL(*input_stream, RemoveOutputStream(output_stream, _)) | 
|   97       .Times(kCycles); |   96       .Times(kCycles); | 
|   98  |   97  | 
|   99   audio_message_loop()->PostTask( |   98   audio_message_loop()->PostTask( | 
|  100       FROM_HERE, base::Bind(base::IgnoreResult(&VirtualAudioOutputStream::Open), |   99       FROM_HERE, base::Bind(base::IgnoreResult(&VirtualAudioOutputStream::Open), | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|  114                             base::Unretained(output_stream))); |  113                             base::Unretained(output_stream))); | 
|  115  |  114  | 
|  116   audio_message_loop()->PostTask( |  115   audio_message_loop()->PostTask( | 
|  117       FROM_HERE, base::Bind(&MockVirtualAudioInputStream::Close, |  116       FROM_HERE, base::Bind(&MockVirtualAudioInputStream::Close, | 
|  118                             base::Unretained(input_stream))); |  117                             base::Unretained(input_stream))); | 
|  119  |  118  | 
|  120   SyncWithAudioThread(); |  119   SyncWithAudioThread(); | 
|  121 } |  120 } | 
|  122  |  121  | 
|  123 }  // namespace media |  122 }  // namespace media | 
| OLD | NEW |