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 10namespace content { 11 12// This is a singleton class, used to get Audio/Video devices, it must be 13// called in UI thread. 14class 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