tor-browser

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

AudioDeviceInfo.cpp (5273B)


      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 #include "AudioDeviceInfo.h"
      7 
      8 NS_IMPL_ISUPPORTS(AudioDeviceInfo, nsIAudioDeviceInfo)
      9 
     10 using namespace mozilla;
     11 using namespace mozilla::CubebUtils;
     12 
     13 AudioDeviceInfo::AudioDeviceInfo(cubeb_device_info* aInfo)
     14    : AudioDeviceInfo(aInfo->devid, NS_ConvertUTF8toUTF16(aInfo->friendly_name),
     15                      NS_ConvertUTF8toUTF16(aInfo->group_id),
     16                      NS_ConvertUTF8toUTF16(aInfo->vendor_name), aInfo->type,
     17                      aInfo->state, aInfo->preferred, aInfo->format,
     18                      aInfo->default_format, aInfo->max_channels,
     19                      aInfo->default_rate, aInfo->max_rate, aInfo->min_rate,
     20                      aInfo->latency_lo, aInfo->latency_hi) {}
     21 
     22 AudioDeviceInfo::AudioDeviceInfo(
     23    AudioDeviceID aID, const nsAString& aName, const nsAString& aGroupId,
     24    const nsAString& aVendor, uint16_t aType, uint16_t aState,
     25    uint16_t aPreferred, uint16_t aSupportedFormat, uint16_t aDefaultFormat,
     26    uint32_t aMaxChannels, uint32_t aDefaultRate, uint32_t aMaxRate,
     27    uint32_t aMinRate, uint32_t aMaxLatency, uint32_t aMinLatency)
     28    : mDeviceId(aID),
     29      mName(aName),
     30      mGroupId(aGroupId),
     31      mVendor(aVendor),
     32      mType(aType),
     33      mState(aState),
     34      mPreferred(aPreferred),
     35      mSupportedFormat(aSupportedFormat),
     36      mDefaultFormat(aDefaultFormat),
     37      mMaxChannels(aMaxChannels),
     38      mDefaultRate(aDefaultRate),
     39      mMaxRate(aMaxRate),
     40      mMinRate(aMinRate),
     41      mMaxLatency(aMaxLatency),
     42      mMinLatency(aMinLatency) {
     43  MOZ_ASSERT(
     44      mType == TYPE_UNKNOWN || mType == TYPE_INPUT || mType == TYPE_OUTPUT,
     45      "Wrong type");
     46  MOZ_ASSERT(mState == STATE_DISABLED || mState == STATE_UNPLUGGED ||
     47                 mState == STATE_ENABLED,
     48             "Wrong state");
     49  MOZ_ASSERT(
     50      mPreferred == PREF_NONE || mPreferred == PREF_ALL ||
     51          mPreferred & (PREF_MULTIMEDIA | PREF_VOICE | PREF_NOTIFICATION),
     52      "Wrong preferred value");
     53  MOZ_ASSERT(mSupportedFormat & (FMT_S16LE | FMT_S16BE | FMT_F32LE | FMT_F32BE),
     54             "Wrong supported format");
     55  MOZ_ASSERT(mDefaultFormat == FMT_S16LE || mDefaultFormat == FMT_S16BE ||
     56                 mDefaultFormat == FMT_F32LE || mDefaultFormat == FMT_F32BE,
     57             "Wrong default format");
     58 }
     59 
     60 AudioDeviceID AudioDeviceInfo::DeviceID() const { return mDeviceId; }
     61 const nsString& AudioDeviceInfo::Name() const { return mName; }
     62 uint32_t AudioDeviceInfo::MaxChannels() const { return mMaxChannels; }
     63 uint32_t AudioDeviceInfo::Type() const { return mType; }
     64 uint32_t AudioDeviceInfo::State() const { return mState; }
     65 const nsString& AudioDeviceInfo::GroupID() const { return mGroupId; }
     66 
     67 bool AudioDeviceInfo::Preferred() const { return mPreferred; }
     68 
     69 /* readonly attribute DOMString name; */
     70 NS_IMETHODIMP
     71 AudioDeviceInfo::GetName(nsAString& aName) {
     72  aName = mName;
     73  return NS_OK;
     74 }
     75 
     76 /* readonly attribute DOMString groupId; */
     77 NS_IMETHODIMP
     78 AudioDeviceInfo::GetGroupId(nsAString& aGroupId) {
     79  aGroupId = mGroupId;
     80  return NS_OK;
     81 }
     82 
     83 /* readonly attribute DOMString vendor; */
     84 NS_IMETHODIMP
     85 AudioDeviceInfo::GetVendor(nsAString& aVendor) {
     86  aVendor = mVendor;
     87  return NS_OK;
     88 }
     89 
     90 /* readonly attribute unsigned short type; */
     91 NS_IMETHODIMP
     92 AudioDeviceInfo::GetType(uint16_t* aType) {
     93  *aType = mType;
     94  return NS_OK;
     95 }
     96 
     97 /* readonly attribute unsigned short state; */
     98 NS_IMETHODIMP
     99 AudioDeviceInfo::GetState(uint16_t* aState) {
    100  *aState = mState;
    101  return NS_OK;
    102 }
    103 
    104 /* readonly attribute unsigned short preferred; */
    105 NS_IMETHODIMP
    106 AudioDeviceInfo::GetPreferred(uint16_t* aPreferred) {
    107  *aPreferred = mPreferred;
    108  return NS_OK;
    109 }
    110 
    111 /* readonly attribute unsigned short supportedFormat; */
    112 NS_IMETHODIMP
    113 AudioDeviceInfo::GetSupportedFormat(uint16_t* aSupportedFormat) {
    114  *aSupportedFormat = mSupportedFormat;
    115  return NS_OK;
    116 }
    117 
    118 /* readonly attribute unsigned short defaultFormat; */
    119 NS_IMETHODIMP
    120 AudioDeviceInfo::GetDefaultFormat(uint16_t* aDefaultFormat) {
    121  *aDefaultFormat = mDefaultFormat;
    122  return NS_OK;
    123 }
    124 
    125 /* readonly attribute unsigned long maxChannels; */
    126 NS_IMETHODIMP
    127 AudioDeviceInfo::GetMaxChannels(uint32_t* aMaxChannels) {
    128  *aMaxChannels = mMaxChannels;
    129  return NS_OK;
    130 }
    131 
    132 /* readonly attribute unsigned long defaultRate; */
    133 NS_IMETHODIMP
    134 AudioDeviceInfo::GetDefaultRate(uint32_t* aDefaultRate) {
    135  *aDefaultRate = mDefaultRate;
    136  return NS_OK;
    137 }
    138 
    139 /* readonly attribute unsigned long maxRate; */
    140 NS_IMETHODIMP
    141 AudioDeviceInfo::GetMaxRate(uint32_t* aMaxRate) {
    142  *aMaxRate = mMaxRate;
    143  return NS_OK;
    144 }
    145 
    146 /* readonly attribute unsigned long minRate; */
    147 NS_IMETHODIMP
    148 AudioDeviceInfo::GetMinRate(uint32_t* aMinRate) {
    149  *aMinRate = mMinRate;
    150  return NS_OK;
    151 }
    152 
    153 /* readonly attribute unsigned long maxLatency; */
    154 NS_IMETHODIMP
    155 AudioDeviceInfo::GetMaxLatency(uint32_t* aMaxLatency) {
    156  *aMaxLatency = mMaxLatency;
    157  return NS_OK;
    158 }
    159 
    160 /* readonly attribute unsigned long minLatency; */
    161 NS_IMETHODIMP
    162 AudioDeviceInfo::GetMinLatency(uint32_t* aMinLatency) {
    163  *aMinLatency = mMinLatency;
    164  return NS_OK;
    165 }