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 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_DISPATCHER_EVENTHANDLER_H_ 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_DISPATCHER_EVENTHANDLER_H_ 7 8 #include <string> 9 10 #include "content/common/content_export.h" 11 #include "content/common/media/media_stream_options.h" 12 13 namespace content { 14 15 class CONTENT_EXPORT MediaStreamDispatcherEventHandler { 16 public: 17 // A new media stream have been created. 18 virtual void OnStreamGenerated( 19 int request_id, 20 const std::string& label, 21 const StreamDeviceInfoArray& audio_device_array, 22 const StreamDeviceInfoArray& video_device_array) = 0; 23 24 // Creation of a new media stream failed. The user might have denied access 25 // to the requested devices or no device is available. 26 virtual void OnStreamGenerationFailed( 27 int request_id, 28 content::MediaStreamRequestResult result) = 0; 29 30 // A device has been stopped in the browser processes. 31 virtual void OnDeviceStopped( 32 const std::string& label, 33 const StreamDeviceInfo& device_info) = 0; 34 35 // A new list of devices have been enumerated. 36 virtual void OnDevicesEnumerated( 37 int request_id, 38 const StreamDeviceInfoArray& device_array) = 0; 39 40 // A device has been opened. 41 virtual void OnDeviceOpened( 42 int request_id, 43 const std::string& label, 44 const StreamDeviceInfo& device_info) = 0; 45 46 // Failed to open the device. 47 virtual void OnDeviceOpenFailed(int request_id) = 0; 48 49 protected: 50 virtual ~MediaStreamDispatcherEventHandler() {} 51 }; 52 53 } // namespace content 54 55 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_DISPATCHER_EVENTHANDLER_H_ 56