tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

AudioDeviceInfo.h (1954B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #ifndef MOZILLA_AudioDeviceInfo_H
      7 #define MOZILLA_AudioDeviceInfo_H
      8 
      9 #include "CubebUtils.h"
     10 #include "nsIAudioDeviceInfo.h"
     11 
     12 // This is mapped to the cubeb_device_info.
     13 class AudioDeviceInfo final : public nsIAudioDeviceInfo {
     14 public:
     15  NS_DECL_THREADSAFE_ISUPPORTS
     16  NS_DECL_NSIAUDIODEVICEINFO
     17 
     18  using AudioDeviceID = mozilla::CubebUtils::AudioDeviceID;
     19 
     20  AudioDeviceInfo(const AudioDeviceID aID, const nsAString& aName,
     21                  const nsAString& aGroupId, const nsAString& aVendor,
     22                  uint16_t aType, uint16_t aState, uint16_t aPreferred,
     23                  uint16_t aSupportedFormat, uint16_t aDefaultFormat,
     24                  uint32_t aMaxChannels, uint32_t aDefaultRate,
     25                  uint32_t aMaxRate, uint32_t aMinRate, uint32_t aMaxLatency,
     26                  uint32_t aMinLatency);
     27  explicit AudioDeviceInfo(cubeb_device_info* aInfo);
     28 
     29  AudioDeviceID DeviceID() const;
     30  const nsString& Name() const;
     31  uint32_t DefaultRate() const { return mDefaultRate; }
     32  uint32_t MaxChannels() const;
     33  uint32_t Type() const;
     34  uint32_t State() const;
     35  const nsString& GroupID() const;
     36  bool Preferred() const;
     37 
     38 private:
     39  virtual ~AudioDeviceInfo() = default;
     40 
     41  const AudioDeviceID mDeviceId;
     42  const nsString mName;
     43  const nsString mGroupId;
     44  const nsString mVendor;
     45  const uint16_t mType;
     46  const uint16_t mState;
     47  const uint16_t mPreferred;
     48  const uint16_t mSupportedFormat;
     49  const uint16_t mDefaultFormat;
     50  const uint32_t mMaxChannels;
     51  const uint32_t mDefaultRate;
     52  const uint32_t mMaxRate;
     53  const uint32_t mMinRate;
     54  const uint32_t mMaxLatency;
     55  const uint32_t mMinLatency;
     56 };
     57 
     58 #endif  // MOZILLA_AudioDeviceInfo_H