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

Side by Side Diff: media/audio/test_audio_input_controller_factory.h

Issue 10704154: Small refactor to media architecture in order to allow end-to-end tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Changed MockAudioManager ctor Created 8 years, 5 months 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 #ifndef MEDIA_AUDIO_TEST_AUDIO_INPUT_CONTROLLER_FACTORY_H_ 5 #ifndef MEDIA_AUDIO_TEST_AUDIO_INPUT_CONTROLLER_FACTORY_H_
6 #define MEDIA_AUDIO_TEST_AUDIO_INPUT_CONTROLLER_FACTORY_H_ 6 #define MEDIA_AUDIO_TEST_AUDIO_INPUT_CONTROLLER_FACTORY_H_
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "media/audio/audio_input_controller.h" 9 #include "media/audio/audio_input_controller.h"
10 10
(...skipping 26 matching lines...) Expand all
37 // controller->event_handler()->OnData(...); 37 // controller->event_handler()->OnData(...);
38 // controller->event_handler()->OnError(...); 38 // controller->event_handler()->OnError(...);
39 // 39 //
40 // // Make sure consumer of AudioInputController does the right thing. 40 // // Make sure consumer of AudioInputController does the right thing.
41 // ... 41 // ...
42 // // Reset factory. 42 // // Reset factory.
43 // AudioInputController::set_factory_for_testing(NULL); 43 // AudioInputController::set_factory_for_testing(NULL);
44 44
45 class TestAudioInputController : public AudioInputController { 45 class TestAudioInputController : public AudioInputController {
46 public: 46 public:
47 class Delegate {
48 public:
49 virtual void TestAudioControllerOpened(
50 TestAudioInputController* controller) = 0;
51 virtual void TestAudioControllerClosed(
52 TestAudioInputController* controller) = 0;
53 };
54
47 TestAudioInputController(TestAudioInputControllerFactory* factory, 55 TestAudioInputController(TestAudioInputControllerFactory* factory,
48 AudioManager* audio_manager, 56 AudioManager* audio_manager,
57 const AudioParameters& audio_parameters,
49 EventHandler* event_handler, 58 EventHandler* event_handler,
50 SyncWriter* sync_writer); 59 SyncWriter* sync_writer);
51 60
52 // Returns the event handler installed on the AudioInputController. 61 // Returns the event handler installed on the AudioInputController.
53 EventHandler* event_handler() const { return event_handler_; } 62 EventHandler* event_handler() const { return event_handler_; }
54 63
55 // Overriden to do nothing. It is assumed the caller will notify the event 64 // Returns the AudioParameters passed by the requester upon creation through
56 // handler with recorded data and other events. 65 // AudioManager::Create(...).
57 virtual void Record() OVERRIDE {} 66 const AudioParameters& audio_parameters() const { return audio_parameters_; }
67
68 // Notifies the TestAudioControllerOpened() event to the delegate (if any).
69 virtual void Record() OVERRIDE;
58 70
59 // Ensure that the closure is run on the audio-manager thread. 71 // Ensure that the closure is run on the audio-manager thread.
60 virtual void Close(const base::Closure& closed_task) OVERRIDE; 72 virtual void Close(const base::Closure& closed_task) OVERRIDE;
61 73
62 protected: 74 protected:
63 virtual ~TestAudioInputController(); 75 virtual ~TestAudioInputController();
64 76
65 private: 77 private:
78 AudioParameters audio_parameters_;
79
66 // These are not owned by us and expected to be valid for this object's 80 // These are not owned by us and expected to be valid for this object's
67 // lifetime. 81 // lifetime.
68 TestAudioInputControllerFactory* factory_; 82 TestAudioInputControllerFactory* factory_;
69 EventHandler* event_handler_; 83 EventHandler* event_handler_;
70 84
71 DISALLOW_COPY_AND_ASSIGN(TestAudioInputController); 85 DISALLOW_COPY_AND_ASSIGN(TestAudioInputController);
72 }; 86 };
73 87
88 typedef TestAudioInputController::Delegate TestAudioInputControllerDelegate;
89
74 // Simple AudioInputController::Factory method that creates 90 // Simple AudioInputController::Factory method that creates
75 // TestAudioInputControllers. 91 // TestAudioInputControllers.
76 class TestAudioInputControllerFactory : public AudioInputController::Factory { 92 class TestAudioInputControllerFactory : public AudioInputController::Factory {
77 public: 93 public:
78 TestAudioInputControllerFactory(); 94 TestAudioInputControllerFactory();
95 virtual ~TestAudioInputControllerFactory();
79 96
80 // AudioInputController::Factory methods. 97 // AudioInputController::Factory methods.
81 virtual AudioInputController* Create( 98 virtual AudioInputController* Create(
82 AudioManager* audio_manager, 99 AudioManager* audio_manager,
83 AudioInputController::EventHandler* event_handler, 100 AudioInputController::EventHandler* event_handler,
84 AudioParameters params) OVERRIDE; 101 AudioParameters params) OVERRIDE;
85 102
103 void SetDelegateForTests(TestAudioInputControllerDelegate* delegate);
104
86 TestAudioInputController* controller() const { return controller_; } 105 TestAudioInputController* controller() const { return controller_; }
87 106
88 private: 107 private:
89 friend class TestAudioInputController; 108 friend class TestAudioInputController;
90 109
91 // Invoked by a TestAudioInputController when it gets destroyed. 110 // Invoked by a TestAudioInputController when it gets destroyed.
92 void OnTestAudioInputControllerDestroyed( 111 void OnTestAudioInputControllerDestroyed(
93 TestAudioInputController* controller); 112 TestAudioInputController* controller);
94 113
95 // The caller of Create owns this object. 114 // The caller of Create owns this object.
96 TestAudioInputController* controller_; 115 TestAudioInputController* controller_;
97 116
117 // The delegate for tests for receiving audio controller events.
118 TestAudioInputControllerDelegate* delegate_;
119
98 DISALLOW_COPY_AND_ASSIGN(TestAudioInputControllerFactory); 120 DISALLOW_COPY_AND_ASSIGN(TestAudioInputControllerFactory);
99 }; 121 };
100 122
101 } // namespace media 123 } // namespace media
102 124
103 #endif // MEDIA_AUDIO_TEST_AUDIO_INPUT_CONTROLLER_FACTORY_H_ 125 #endif // MEDIA_AUDIO_TEST_AUDIO_INPUT_CONTROLLER_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698