Coverage Report

Created: 2018-09-25 14:53

/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
}