/src/mozilla-central/dom/media/AudioDeviceInfo.cpp
Line | Count | Source (jump to first uncovered line) |
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, |
15 | | NS_ConvertUTF8toUTF16(aInfo->friendly_name), |
16 | | NS_ConvertUTF8toUTF16(aInfo->group_id), |
17 | | NS_ConvertUTF8toUTF16(aInfo->vendor_name), |
18 | | aInfo->type, |
19 | | aInfo->state, |
20 | | aInfo->preferred, |
21 | | aInfo->format, |
22 | | aInfo->default_format, |
23 | | aInfo->max_channels, |
24 | | aInfo->default_rate, |
25 | | aInfo->max_rate, |
26 | | aInfo->min_rate, |
27 | | aInfo->latency_lo, |
28 | | aInfo->latency_hi) |
29 | 0 | { |
30 | 0 | } |
31 | | |
32 | | |
33 | | AudioDeviceInfo::AudioDeviceInfo(AudioDeviceID aID, |
34 | | const nsAString& aName, |
35 | | const nsAString& aGroupId, |
36 | | const nsAString& aVendor, |
37 | | uint16_t aType, |
38 | | uint16_t aState, |
39 | | uint16_t aPreferred, |
40 | | uint16_t aSupportedFormat, |
41 | | uint16_t aDefaultFormat, |
42 | | uint32_t aMaxChannels, |
43 | | uint32_t aDefaultRate, |
44 | | uint32_t aMaxRate, |
45 | | uint32_t aMinRate, |
46 | | uint32_t aMaxLatency, |
47 | | uint32_t aMinLatency) |
48 | | : mDeviceId(aID) |
49 | | , mName(aName) |
50 | | , mGroupId(aGroupId) |
51 | | , mVendor(aVendor) |
52 | | , mType(aType) |
53 | | , mState(aState) |
54 | | , mPreferred(aPreferred) |
55 | | , mSupportedFormat(aSupportedFormat) |
56 | | , mDefaultFormat(aDefaultFormat) |
57 | | , mMaxChannels(aMaxChannels) |
58 | | , mDefaultRate(aDefaultRate) |
59 | | , mMaxRate(aMaxRate) |
60 | | , mMinRate(aMinRate) |
61 | | , mMaxLatency(aMaxLatency) |
62 | | , mMinLatency(aMinLatency) |
63 | 0 | { |
64 | 0 | MOZ_ASSERT(mType == TYPE_UNKNOWN || |
65 | 0 | mType == TYPE_INPUT || |
66 | 0 | mType == TYPE_OUTPUT, "Wrong type"); |
67 | 0 | MOZ_ASSERT(mState == STATE_DISABLED || |
68 | 0 | mState == STATE_UNPLUGGED || |
69 | 0 | mState == STATE_ENABLED, "Wrong state"); |
70 | 0 | MOZ_ASSERT(mPreferred == PREF_NONE || |
71 | 0 | mPreferred == PREF_ALL || |
72 | 0 | mPreferred & (PREF_MULTIMEDIA | PREF_VOICE | PREF_NOTIFICATION), |
73 | 0 | "Wrong preferred value"); |
74 | 0 | MOZ_ASSERT(mSupportedFormat & (FMT_S16LE | FMT_S16BE | FMT_F32LE | FMT_F32BE), |
75 | 0 | "Wrong supported format"); |
76 | 0 | MOZ_ASSERT(mDefaultFormat == FMT_S16LE || |
77 | 0 | mDefaultFormat == FMT_S16BE || |
78 | 0 | mDefaultFormat == FMT_F32LE || |
79 | 0 | mDefaultFormat == FMT_F32BE, "Wrong default format"); |
80 | 0 | } |
81 | | |
82 | | AudioDeviceID |
83 | | AudioDeviceInfo::DeviceID() const |
84 | 0 | { |
85 | 0 | return mDeviceId; |
86 | 0 | } |
87 | | const nsString& AudioDeviceInfo::Name() const |
88 | 0 | { |
89 | 0 | return mName; |
90 | 0 | } |
91 | | uint32_t AudioDeviceInfo::MaxChannels() const |
92 | 0 | { |
93 | 0 | return mMaxChannels; |
94 | 0 | } |
95 | | uint32_t AudioDeviceInfo::Type() const |
96 | 0 | { |
97 | 0 | return mType; |
98 | 0 | } |
99 | | uint32_t AudioDeviceInfo::State() const |
100 | 0 | { |
101 | 0 | return mState; |
102 | 0 | } |
103 | | |
104 | | bool AudioDeviceInfo::Preferred() const |
105 | 0 | { |
106 | 0 | return mPreferred; |
107 | 0 | } |
108 | | |
109 | | /* readonly attribute DOMString name; */ |
110 | | NS_IMETHODIMP |
111 | | AudioDeviceInfo::GetName(nsAString& aName) |
112 | 0 | { |
113 | 0 | aName = mName; |
114 | 0 | return NS_OK; |
115 | 0 | } |
116 | | |
117 | | /* readonly attribute DOMString groupId; */ |
118 | | NS_IMETHODIMP |
119 | | AudioDeviceInfo::GetGroupId(nsAString& aGroupId) |
120 | 0 | { |
121 | 0 | aGroupId = mGroupId; |
122 | 0 | return NS_OK; |
123 | 0 | } |
124 | | |
125 | | /* readonly attribute DOMString vendor; */ |
126 | | NS_IMETHODIMP |
127 | | AudioDeviceInfo::GetVendor(nsAString& aVendor) |
128 | 0 | { |
129 | 0 | aVendor = mVendor; |
130 | 0 | return NS_OK; |
131 | 0 | } |
132 | | |
133 | | /* readonly attribute unsigned short type; */ |
134 | | NS_IMETHODIMP |
135 | | AudioDeviceInfo::GetType(uint16_t* aType) |
136 | 0 | { |
137 | 0 | *aType = mType; |
138 | 0 | return NS_OK; |
139 | 0 | } |
140 | | |
141 | | /* readonly attribute unsigned short state; */ |
142 | | NS_IMETHODIMP |
143 | | AudioDeviceInfo::GetState(uint16_t* aState) |
144 | 0 | { |
145 | 0 | *aState = mState; |
146 | 0 | return NS_OK; |
147 | 0 | } |
148 | | |
149 | | /* readonly attribute unsigned short preferred; */ |
150 | | NS_IMETHODIMP |
151 | | AudioDeviceInfo::GetPreferred(uint16_t* aPreferred) |
152 | 0 | { |
153 | 0 | *aPreferred = mPreferred; |
154 | 0 | return NS_OK; |
155 | 0 | } |
156 | | |
157 | | /* readonly attribute unsigned short supportedFormat; */ |
158 | | NS_IMETHODIMP |
159 | | AudioDeviceInfo::GetSupportedFormat(uint16_t* aSupportedFormat) |
160 | 0 | { |
161 | 0 | *aSupportedFormat = mSupportedFormat; |
162 | 0 | return NS_OK; |
163 | 0 | } |
164 | | |
165 | | /* readonly attribute unsigned short defaultFormat; */ |
166 | | NS_IMETHODIMP |
167 | | AudioDeviceInfo::GetDefaultFormat(uint16_t* aDefaultFormat) |
168 | 0 | { |
169 | 0 | *aDefaultFormat = mDefaultFormat; |
170 | 0 | return NS_OK; |
171 | 0 | } |
172 | | |
173 | | /* readonly attribute unsigned long maxChannels; */ |
174 | | NS_IMETHODIMP |
175 | | AudioDeviceInfo::GetMaxChannels(uint32_t* aMaxChannels) |
176 | 0 | { |
177 | 0 | *aMaxChannels = mMaxChannels; |
178 | 0 | return NS_OK; |
179 | 0 | } |
180 | | |
181 | | /* readonly attribute unsigned long defaultRate; */ |
182 | | NS_IMETHODIMP |
183 | | AudioDeviceInfo::GetDefaultRate(uint32_t* aDefaultRate) |
184 | 0 | { |
185 | 0 | *aDefaultRate = mDefaultRate; |
186 | 0 | return NS_OK; |
187 | 0 | } |
188 | | |
189 | | /* readonly attribute unsigned long maxRate; */ |
190 | | NS_IMETHODIMP |
191 | | AudioDeviceInfo::GetMaxRate(uint32_t* aMaxRate) |
192 | 0 | { |
193 | 0 | *aMaxRate = mMaxRate; |
194 | 0 | return NS_OK; |
195 | 0 | } |
196 | | |
197 | | /* readonly attribute unsigned long minRate; */ |
198 | | NS_IMETHODIMP |
199 | | AudioDeviceInfo::GetMinRate(uint32_t* aMinRate) |
200 | 0 | { |
201 | 0 | *aMinRate = mMinRate; |
202 | 0 | return NS_OK; |
203 | 0 | } |
204 | | |
205 | | /* readonly attribute unsigned long maxLatency; */ |
206 | | NS_IMETHODIMP |
207 | | AudioDeviceInfo::GetMaxLatency(uint32_t* aMaxLatency) |
208 | 0 | { |
209 | 0 | *aMaxLatency = mMaxLatency; |
210 | 0 | return NS_OK; |
211 | 0 | } |
212 | | |
213 | | /* readonly attribute unsigned long minLatency; */ |
214 | | NS_IMETHODIMP |
215 | | AudioDeviceInfo::GetMinLatency(uint32_t* aMinLatency) |
216 | 0 | { |
217 | 0 | *aMinLatency = mMinLatency; |
218 | 0 | return NS_OK; |
219 | 0 | } |