1 // Copyright 2014 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_PUBLIC_BROWSER_MEDIA_CAPTURE_DEVICES_H_ 6 #define CONTENT_PUBLIC_BROWSER_MEDIA_CAPTURE_DEVICES_H_ 7 8 #include "content/public/common/media_stream_request.h" 9 10 namespace content { 11 12 // This is a singleton class, used to get Audio/Video devices, it must be 13 // called in UI thread. 14 class CONTENT_EXPORT MediaCaptureDevices { 15 public: 16 // Get signleton instance of MediaCaptureDevices. 17 static MediaCaptureDevices* GetInstance(); 18 19 // Return all Audio/Video devices. 20 virtual const MediaStreamDevices& GetAudioCaptureDevices() = 0; 21 virtual const MediaStreamDevices& GetVideoCaptureDevices() = 0; 22 23 private: 24 // This interface should only be implemented inside content. 25 friend class MediaCaptureDevicesImpl; 26 MediaCaptureDevices() {} 27 virtual ~MediaCaptureDevices() {} 28 }; 29 30 } // namespace content 31 32 #endif // CONTENT_PUBLIC_BROWSER_MEDIA_CAPTURE_DEVICES_H_ 33