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