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

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

Powered by Google App Engine
This is Rietveld 408576698