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

Side by Side Diff: content/shell/renderer/test_runner/mock_web_media_stream_center.cc

Issue 418303002: test_runner: Migrate MockWebMediaStreamCenter to Chromium C++ style. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixing mac build error Created 6 years, 4 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
« no previous file with comments | « content/shell/renderer/test_runner/mock_web_media_stream_center.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 namespace {
23 class NewTrackTask : public WebMethodTask<MockWebMediaStreamCenter> {
24 public:
25 NewTrackTask(MockWebMediaStreamCenter* object,
26 const blink::WebMediaStream& stream)
27 : WebMethodTask<MockWebMediaStreamCenter>(object), stream_(stream) {
28 DCHECK(!stream_.isNull());
29 }
30
31 virtual ~NewTrackTask() {}
32
33 virtual void runIfValid() OVERRIDE {
34 blink::WebMediaStreamSource source;
35 blink::WebMediaStreamTrack track;
36 source.initialize("MagicVideoDevice#1",
37 blink::WebMediaStreamSource::TypeVideo,
38 "Magic video track");
39 track.initialize(source);
40 stream_.addTrack(track);
41 }
42
43 private:
44 blink::WebMediaStream stream_;
45
46 DISALLOW_COPY_AND_ASSIGN(NewTrackTask);
47 };
48
49 class MockWebAudioDestinationConsumer
50 : public blink::WebAudioDestinationConsumer {
51 public:
52 MockWebAudioDestinationConsumer() {}
53 virtual ~MockWebAudioDestinationConsumer() {}
54 virtual void setFormat(size_t number_of_channels, float sample_rate) {}
55 virtual void consumeAudio(const blink::WebVector<const float*>&,
56 size_t number_of_frames) {}
57
58 DISALLOW_COPY_AND_ASSIGN(MockWebAudioDestinationConsumer);
59 };
60
61 } // namespace
62
63 MockWebMediaStreamCenter::MockWebMediaStreamCenter(
64 blink::WebMediaStreamCenterClient* client,
65 TestInterfaces* interfaces)
66 : interfaces_(interfaces) {
67 }
68
69 MockWebMediaStreamCenter::~MockWebMediaStreamCenter() {
70 }
71
72 bool MockWebMediaStreamCenter::getMediaStreamTrackSources(
73 const blink::WebMediaStreamTrackSourcesRequest& request) {
74 size_t size = 2;
75 blink::WebVector<blink::WebSourceInfo> results(size);
76 results[0].initialize("MockAudioDevice#1",
77 blink::WebSourceInfo::SourceKindAudio,
78 "Mock audio device",
79 blink::WebSourceInfo::VideoFacingModeNone);
80 results[1].initialize("MockVideoDevice#1",
81 blink::WebSourceInfo::SourceKindVideo,
82 "Mock video device",
83 blink::WebSourceInfo::VideoFacingModeEnvironment);
84 request.requestSucceeded(results);
85 return true;
86 }
87
88 void MockWebMediaStreamCenter::didEnableMediaStreamTrack(
89 const blink::WebMediaStreamTrack& track) {
90 track.source().setReadyState(blink::WebMediaStreamSource::ReadyStateLive);
91 }
92
93 void MockWebMediaStreamCenter::didDisableMediaStreamTrack(
94 const blink::WebMediaStreamTrack& track) {
95 track.source().setReadyState(blink::WebMediaStreamSource::ReadyStateMuted);
96 }
97
98 bool MockWebMediaStreamCenter::didAddMediaStreamTrack(
99 const blink::WebMediaStream& stream,
100 const blink::WebMediaStreamTrack& track) {
101 return true;
102 }
103
104 bool MockWebMediaStreamCenter::didRemoveMediaStreamTrack(
105 const blink::WebMediaStream& stream,
106 const blink::WebMediaStreamTrack& track) {
107 return true;
108 }
109
110 void MockWebMediaStreamCenter::didStopLocalMediaStream(
111 const blink::WebMediaStream& stream) {
112 blink::WebVector<blink::WebMediaStreamTrack> tracks;
113 stream.audioTracks(tracks);
114 for (size_t i = 0; i < tracks.size(); ++i)
115 tracks[i].source().setReadyState(
116 blink::WebMediaStreamSource::ReadyStateEnded);
117 stream.videoTracks(tracks);
118 for (size_t i = 0; i < tracks.size(); ++i)
119 tracks[i].source().setReadyState(
120 blink::WebMediaStreamSource::ReadyStateEnded);
121 }
122
123 bool MockWebMediaStreamCenter::didStopMediaStreamTrack(
124 const blink::WebMediaStreamTrack& track) {
125 track.source().setReadyState(blink::WebMediaStreamSource::ReadyStateEnded);
126 return true;
127 }
128
129 void MockWebMediaStreamCenter::didCreateMediaStream(
130 blink::WebMediaStream& stream) {
131 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
132 stream.audioTracks(audio_tracks);
133 for (size_t i = 0; i < audio_tracks.size(); ++i) {
134 blink::WebMediaStreamSource source = audio_tracks[i].source();
135 if (source.requiresAudioConsumer()) {
136 MockWebAudioDestinationConsumer* consumer =
137 new MockWebAudioDestinationConsumer();
138 source.addAudioConsumer(consumer);
139 source.removeAudioConsumer(consumer);
140 delete consumer;
141 }
142 }
143 interfaces_->delegate()->postTask(new NewTrackTask(this, stream));
144 }
145
146 blink::WebAudioSourceProvider*
147 MockWebMediaStreamCenter::createWebAudioSourceFromMediaStreamTrack(
148 const blink::WebMediaStreamTrack& track) {
149 return NULL;
150 }
151
152 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/renderer/test_runner/mock_web_media_stream_center.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698