OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "content/shell/renderer/test_runner/mock_web_media_stream_center.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "content/shell/renderer/test_runner/TestInterfaces.h" | |
9 #include "content/shell/renderer/test_runner/WebTestDelegate.h" | |
10 #include "third_party/WebKit/public/platform/WebAudioDestinationConsumer.h" | |
11 #include "third_party/WebKit/public/platform/WebAudioSourceProvider.h" | |
12 #include "third_party/WebKit/public/platform/WebMediaStream.h" | |
13 #include "third_party/WebKit/public/platform/WebMediaStreamCenterClient.h" | |
14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | |
15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | |
16 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h " | |
17 #include "third_party/WebKit/public/platform/WebSourceInfo.h" | |
18 #include "third_party/WebKit/public/platform/WebVector.h" | |
19 | |
20 namespace content { | |
21 | |
22 class NewTrackTask : public WebMethodTask<MockWebMediaStreamCenter> { | |
jochen (gone - plz use gerrit)
2014/07/28 09:41:47
nit. this class should be in an anonymous namespac
Abhishek
2014/07/28 15:02:31
Done.
| |
23 public: | |
24 NewTrackTask(MockWebMediaStreamCenter* object, | |
25 const blink::WebMediaStream& stream) | |
26 : WebMethodTask<MockWebMediaStreamCenter>(object), stream_(stream) { | |
27 DCHECK(!stream_.isNull()); | |
28 } | |
29 | |
30 virtual void runIfValid() OVERRIDE { | |
31 blink::WebMediaStreamSource source; | |
32 blink::WebMediaStreamTrack track; | |
33 source.initialize("MagicVideoDevice#1", | |
34 blink::WebMediaStreamSource::TypeVideo, | |
35 "Magic video track"); | |
36 track.initialize(source); | |
37 stream_.addTrack(track); | |
38 } | |
39 | |
40 private: | |
41 blink::WebMediaStream stream_; | |
42 }; | |
jochen (gone - plz use gerrit)
2014/07/28 09:41:47
nit disallow copy/assign
Abhishek
2014/07/28 15:02:30
Done.
| |
43 | |
44 MockWebMediaStreamCenter::MockWebMediaStreamCenter( | |
45 blink::WebMediaStreamCenterClient* client, | |
46 TestInterfaces* interfaces) | |
47 : interfaces_(interfaces) { | |
48 } | |
49 | |
50 bool MockWebMediaStreamCenter::getMediaStreamTrackSources( | |
51 const blink::WebMediaStreamTrackSourcesRequest& request) { | |
52 size_t size = 2; | |
53 blink::WebVector<blink::WebSourceInfo> results(size); | |
54 results[0].initialize("MockAudioDevice#1", | |
55 blink::WebSourceInfo::SourceKindAudio, | |
56 "Mock audio device", | |
57 blink::WebSourceInfo::VideoFacingModeNone); | |
58 results[1].initialize("MockVideoDevice#1", | |
59 blink::WebSourceInfo::SourceKindVideo, | |
60 "Mock video device", | |
61 blink::WebSourceInfo::VideoFacingModeEnvironment); | |
62 request.requestSucceeded(results); | |
63 return true; | |
64 } | |
65 | |
66 void MockWebMediaStreamCenter::didEnableMediaStreamTrack( | |
67 const blink::WebMediaStreamTrack& track) { | |
68 track.source().setReadyState(blink::WebMediaStreamSource::ReadyStateLive); | |
69 } | |
70 | |
71 void MockWebMediaStreamCenter::didDisableMediaStreamTrack( | |
72 const blink::WebMediaStreamTrack& track) { | |
73 track.source().setReadyState(blink::WebMediaStreamSource::ReadyStateMuted); | |
74 } | |
75 | |
76 bool MockWebMediaStreamCenter::didAddMediaStreamTrack( | |
77 const blink::WebMediaStream& stream, | |
78 const blink::WebMediaStreamTrack& track) { | |
79 return true; | |
80 } | |
81 | |
82 bool MockWebMediaStreamCenter::didRemoveMediaStreamTrack( | |
83 const blink::WebMediaStream& stream, | |
84 const blink::WebMediaStreamTrack& track) { | |
85 return true; | |
86 } | |
87 | |
88 void MockWebMediaStreamCenter::didStopLocalMediaStream( | |
89 const blink::WebMediaStream& stream) { | |
90 blink::WebVector<blink::WebMediaStreamTrack> tracks; | |
91 stream.audioTracks(tracks); | |
92 for (size_t i = 0; i < tracks.size(); ++i) | |
93 tracks[i].source().setReadyState( | |
94 blink::WebMediaStreamSource::ReadyStateEnded); | |
95 stream.videoTracks(tracks); | |
96 for (size_t i = 0; i < tracks.size(); ++i) | |
97 tracks[i].source().setReadyState( | |
98 blink::WebMediaStreamSource::ReadyStateEnded); | |
99 } | |
100 | |
101 bool MockWebMediaStreamCenter::didStopMediaStreamTrack( | |
102 const blink::WebMediaStreamTrack& track) { | |
103 track.source().setReadyState(blink::WebMediaStreamSource::ReadyStateEnded); | |
104 return true; | |
105 } | |
106 | |
107 class MockWebAudioDestinationConsumer | |
jochen (gone - plz use gerrit)
2014/07/28 09:41:47
this class should be in an anonymous namespace (an
Abhishek
2014/07/28 15:02:30
Done.
| |
108 : public blink::WebAudioDestinationConsumer { | |
109 public: | |
110 virtual ~MockWebAudioDestinationConsumer() {} | |
jochen (gone - plz use gerrit)
2014/07/28 09:41:47
nit. should have a ctor
Abhishek
2014/07/28 15:02:30
Done.
| |
111 virtual void setFormat(size_t number_of_channels, | |
112 float sample_rate) OVERRIDE {} | |
113 virtual void consumeAudio(const blink::WebVector<const float*>&, | |
114 size_t number_of_frames) OVERRIDE {} | |
115 }; | |
jochen (gone - plz use gerrit)
2014/07/28 09:41:47
nit. disallow copy/assign
Abhishek
2014/07/28 15:02:31
Done.
| |
116 | |
117 void MockWebMediaStreamCenter::didCreateMediaStream( | |
118 blink::WebMediaStream& stream) { | |
119 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; | |
120 stream.audioTracks(audio_tracks); | |
121 for (size_t i = 0; i < audio_tracks.size(); ++i) { | |
122 blink::WebMediaStreamSource source = audio_tracks[i].source(); | |
123 if (source.requiresAudioConsumer()) { | |
124 MockWebAudioDestinationConsumer* consumer = | |
125 new MockWebAudioDestinationConsumer(); | |
126 source.addAudioConsumer(consumer); | |
127 source.removeAudioConsumer(consumer); | |
128 delete consumer; | |
129 } | |
130 } | |
131 interfaces_->delegate()->postTask(new NewTrackTask(this, stream)); | |
132 } | |
133 | |
134 blink::WebAudioSourceProvider* | |
135 MockWebMediaStreamCenter::createWebAudioSourceFromMediaStreamTrack( | |
136 const blink::WebMediaStreamTrack& track) { | |
137 return NULL; | |
138 } | |
139 | |
140 } // namespace content | |
OLD | NEW |