Home | History | Annotate | Download | only in browser
      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