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

Side by Side Diff: content/renderer/media/user_media_client_impl.h

Issue 562643003: Implement WebUserMediaClient::requestSources (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code review. Created 6 years, 3 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
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 CONTENT_RENDERER_MEDIA_USER_MEDIA_CLIENT_IMPL_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_USER_MEDIA_CLIENT_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_USER_MEDIA_CLIENT_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_USER_MEDIA_CLIENT_IMPL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/scoped_vector.h" 15 #include "base/memory/scoped_vector.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "base/threading/non_thread_safe.h" 17 #include "base/threading/non_thread_safe.h"
18 #include "content/common/content_export.h" 18 #include "content/common/content_export.h"
19 #include "content/public/renderer/render_frame_observer.h" 19 #include "content/public/renderer/render_frame_observer.h"
20 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" 20 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
21 #include "content/renderer/media/media_stream_source.h" 21 #include "content/renderer/media/media_stream_source.h"
22 #include "third_party/WebKit/public/platform/WebMediaStream.h" 22 #include "third_party/WebKit/public/platform/WebMediaStream.h"
23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 23 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
24 #include "third_party/WebKit/public/platform/WebSourceInfo.h"
24 #include "third_party/WebKit/public/platform/WebVector.h" 25 #include "third_party/WebKit/public/platform/WebVector.h"
25 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" 26 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
26 #include "third_party/WebKit/public/web/WebUserMediaClient.h" 27 #include "third_party/WebKit/public/web/WebUserMediaClient.h"
27 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" 28 #include "third_party/WebKit/public/web/WebUserMediaRequest.h"
28 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" 29 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
29 30
30 namespace content { 31 namespace content {
31 class PeerConnectionDependencyFactory; 32 class PeerConnectionDependencyFactory;
32 class MediaStreamDispatcher; 33 class MediaStreamDispatcher;
33 class MediaStreamVideoSource; 34 class MediaStreamVideoSource;
(...skipping 23 matching lines...) Expand all
57 58
58 // blink::WebUserMediaClient implementation 59 // blink::WebUserMediaClient implementation
59 virtual void requestUserMedia( 60 virtual void requestUserMedia(
60 const blink::WebUserMediaRequest& user_media_request); 61 const blink::WebUserMediaRequest& user_media_request);
61 virtual void cancelUserMediaRequest( 62 virtual void cancelUserMediaRequest(
62 const blink::WebUserMediaRequest& user_media_request); 63 const blink::WebUserMediaRequest& user_media_request);
63 virtual void requestMediaDevices( 64 virtual void requestMediaDevices(
64 const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE; 65 const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE;
65 virtual void cancelMediaDevicesRequest( 66 virtual void cancelMediaDevicesRequest(
66 const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE; 67 const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE;
68 virtual void requestSources(
69 const blink::WebMediaStreamTrackSourcesRequest& sources_request) OVERRIDE;
67 70
68 // MediaStreamDispatcherEventHandler implementation. 71 // MediaStreamDispatcherEventHandler implementation.
69 virtual void OnStreamGenerated( 72 virtual void OnStreamGenerated(
70 int request_id, 73 int request_id,
71 const std::string& label, 74 const std::string& label,
72 const StreamDeviceInfoArray& audio_array, 75 const StreamDeviceInfoArray& audio_array,
73 const StreamDeviceInfoArray& video_array) OVERRIDE; 76 const StreamDeviceInfoArray& video_array) OVERRIDE;
74 virtual void OnStreamGenerationFailed( 77 virtual void OnStreamGenerationFailed(
75 int request_id, 78 int request_id,
76 MediaStreamRequestResult result) OVERRIDE; 79 MediaStreamRequestResult result) OVERRIDE;
(...skipping 24 matching lines...) Expand all
101 virtual void GetUserMediaRequestFailed( 104 virtual void GetUserMediaRequestFailed(
102 blink::WebUserMediaRequest* request_info, 105 blink::WebUserMediaRequest* request_info,
103 MediaStreamRequestResult result); 106 MediaStreamRequestResult result);
104 virtual void GetUserMediaRequestTrackStartedFailed( 107 virtual void GetUserMediaRequestTrackStartedFailed(
105 blink::WebUserMediaRequest* request_info, 108 blink::WebUserMediaRequest* request_info,
106 MediaStreamRequestResult result, 109 MediaStreamRequestResult result,
107 const blink::WebString& result_name); 110 const blink::WebString& result_name);
108 virtual void EnumerateDevicesSucceded( 111 virtual void EnumerateDevicesSucceded(
109 blink::WebMediaDevicesRequest* request, 112 blink::WebMediaDevicesRequest* request,
110 blink::WebVector<blink::WebMediaDeviceInfo>& devices); 113 blink::WebVector<blink::WebMediaDeviceInfo>& devices);
114 virtual void EnumerateSourcesSucceded(
115 blink::WebMediaStreamTrackSourcesRequest* request,
116 blink::WebVector<blink::WebSourceInfo>& sources);
111 // Creates a MediaStreamVideoSource object. 117 // Creates a MediaStreamVideoSource object.
112 // This is virtual for test purposes. 118 // This is virtual for test purposes.
113 virtual MediaStreamVideoSource* CreateVideoSource( 119 virtual MediaStreamVideoSource* CreateVideoSource(
114 const StreamDeviceInfo& device, 120 const StreamDeviceInfo& device,
115 const MediaStreamSource::SourceStoppedCallback& stop_callback); 121 const MediaStreamSource::SourceStoppedCallback& stop_callback);
116 122
117 private: 123 private:
118 // Class for storing information about a WebKit request to create a 124 // Class for storing information about a WebKit request to create a
119 // MediaStream. 125 // MediaStream.
120 class UserMediaRequestInfo 126 class UserMediaRequestInfo
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // underlying media sources and tracks have been created and started. 204 // underlying media sources and tracks have been created and started.
199 void OnCreateNativeTracksCompleted( 205 void OnCreateNativeTracksCompleted(
200 UserMediaRequestInfo* request, 206 UserMediaRequestInfo* request,
201 MediaStreamRequestResult result, 207 MediaStreamRequestResult result,
202 const blink::WebString& result_name); 208 const blink::WebString& result_name);
203 209
204 void OnStreamGeneratedForCancelledRequest( 210 void OnStreamGeneratedForCancelledRequest(
205 const StreamDeviceInfoArray& audio_array, 211 const StreamDeviceInfoArray& audio_array,
206 const StreamDeviceInfoArray& video_array); 212 const StreamDeviceInfoArray& video_array);
207 213
214 void FinalizeEnumerateDevices(MediaDevicesRequestInfo* request);
215 void FinalizeEnumerateSources(MediaDevicesRequestInfo* request);
216
208 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id); 217 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id);
209 UserMediaRequestInfo* FindUserMediaRequestInfo( 218 UserMediaRequestInfo* FindUserMediaRequestInfo(
210 const blink::WebUserMediaRequest& request); 219 const blink::WebUserMediaRequest& request);
211 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request); 220 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request);
212 void DeleteAllUserMediaRequests(); 221 void DeleteAllUserMediaRequests();
213 222
214 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id); 223 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id);
215 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo( 224 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(
216 const blink::WebMediaDevicesRequest& request); 225 const blink::WebMediaDevicesRequest& request);
217 void CancelAndDeleteMediaDevicesRequest(MediaDevicesRequestInfo* request); 226 void CancelAndDeleteMediaDevicesRequest(MediaDevicesRequestInfo* request);
(...skipping 26 matching lines...) Expand all
244 // Note: This member must be the last to ensure all outstanding weak pointers 253 // Note: This member must be the last to ensure all outstanding weak pointers
245 // are invalidated first. 254 // are invalidated first.
246 base::WeakPtrFactory<UserMediaClientImpl> weak_factory_; 255 base::WeakPtrFactory<UserMediaClientImpl> weak_factory_;
247 256
248 DISALLOW_COPY_AND_ASSIGN(UserMediaClientImpl); 257 DISALLOW_COPY_AND_ASSIGN(UserMediaClientImpl);
249 }; 258 };
250 259
251 } // namespace content 260 } // namespace content
252 261
253 #endif // CONTENT_RENDERER_MEDIA_USER_MEDIA_CLIENT_IMPL_H_ 262 #endif // CONTENT_RENDERER_MEDIA_USER_MEDIA_CLIENT_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/media/mock_media_stream_dispatcher.cc ('k') | content/renderer/media/user_media_client_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698