23 #include "xaglobals.h" |
23 #include "xaglobals.h" |
24 #include "xaaudioiodevicecapabilitiesitf.h" |
24 #include "xaaudioiodevicecapabilitiesitf.h" |
25 #include "xacapabilitiesmgr.h" |
25 #include "xacapabilitiesmgr.h" |
26 |
26 |
27 |
27 |
28 static XAchar deviceName1[] = "Default Mic"; |
|
29 |
|
30 /* XAAudIODevCapaItfImpl* GetImpl |
28 /* XAAudIODevCapaItfImpl* GetImpl |
31 * Description: Validate interface pointer and cast it to implementation pointer. |
29 * Description: Validate interface pointer and cast it to implementation pointer. |
32 */ |
30 */ |
33 static XAAudIODevCapaItfImpl* GetImpl(XAAudioIODeviceCapabilitiesItf self) |
31 static XAAudIODevCapaItfImpl* GetImpl(XAAudioIODeviceCapabilitiesItf self) |
34 { |
32 { |
122 if( res == XA_RESULT_SUCCESS ) |
120 if( res == XA_RESULT_SUCCESS ) |
123 { |
121 { |
124 XAAudioInputDescriptor* desc = ((XAAudioInputDescriptor*)(temp.pEntry)); |
122 XAAudioInputDescriptor* desc = ((XAAudioInputDescriptor*)(temp.pEntry)); |
125 /* map applicable values to XAAudioCodecCapabilities */ |
123 /* map applicable values to XAAudioCodecCapabilities */ |
126 pDescriptor->maxChannels=desc->maxChannels; |
124 pDescriptor->maxChannels=desc->maxChannels; |
127 pDescriptor->minSampleRate=desc->minSampleRate*1000; /* milliHz */ |
125 pDescriptor->minSampleRate=desc->minSampleRate; /* milliHz */ |
128 if (desc->maxSampleRate < (0xFFFFFFFF / 1000)) |
126 if (desc->maxSampleRate < (0xFFFFFFFF )) |
129 { |
127 { |
130 pDescriptor->maxSampleRate = desc->maxSampleRate*1000; |
128 pDescriptor->maxSampleRate = desc->maxSampleRate; |
131 } |
129 } |
132 else |
130 else |
133 { |
131 { |
134 pDescriptor->maxSampleRate = 0xFFFFFFFF; |
132 pDescriptor->maxSampleRate = 0xFFFFFFFF; |
135 } |
133 } |
136 pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_TRUE; |
134 pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous; |
137 pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED; |
135 pDescriptor->deviceConnection = desc->deviceConnection; |
138 pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT; |
136 pDescriptor->deviceScope = desc->deviceScope; |
139 pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET; |
137 pDescriptor->deviceLocation = desc->deviceLocation; |
140 pDescriptor->deviceName = temp.adaptId; |
138 pDescriptor->deviceName = desc->deviceName; |
141 /* other caps undefined */ |
139 /* other caps undefined */ |
142 } |
140 pDescriptor->isForTelephony = desc->isForTelephony; |
143 |
141 pDescriptor->samplingRatesSupported = desc->samplingRatesSupported; |
144 switch (deviceId) |
142 pDescriptor->numOfSamplingRatesSupported = desc->numOfSamplingRatesSupported; |
145 { |
143 } |
146 case 0xAD7E5001: |
|
147 { |
|
148 impl->sampleRateArray[0] = 8000000; |
|
149 impl->sampleRateArray[1] = 11025000; |
|
150 impl->sampleRateArray[2] = 12000000; |
|
151 impl->sampleRateArray[3] = 16000000; |
|
152 impl->sampleRateArray[4] = 22050000; |
|
153 impl->sampleRateArray[5] = 24000000; |
|
154 impl->sampleRateArray[6] = 32000000; |
|
155 impl->sampleRateArray[7] = 44100000; |
|
156 impl->sampleRateArray[8] = 48000000; |
|
157 impl->sampleRateArray[9] = 64000000; |
|
158 impl->sampleRateArray[10] = 88200000; |
|
159 impl->sampleRateArray[11] = 96000000; |
|
160 |
|
161 pDescriptor->deviceName = (XAchar *)deviceName1; |
|
162 pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED; |
|
163 pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT; |
|
164 pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET; |
|
165 pDescriptor->isForTelephony = XA_BOOLEAN_FALSE; |
|
166 pDescriptor->minSampleRate=8000000; /* milliHz */ |
|
167 pDescriptor->maxSampleRate = 96000000; |
|
168 pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_FALSE; |
|
169 pDescriptor->samplingRatesSupported = (XAmilliHertz*)(&(impl->sampleRateArray)); |
|
170 pDescriptor->numOfSamplingRatesSupported = 12; |
|
171 pDescriptor->maxChannels = 2; |
|
172 } |
|
173 break; |
|
174 default: |
|
175 res = XA_RESULT_PARAMETER_INVALID; |
|
176 break; |
|
177 } |
|
178 } |
144 } |
179 |
145 |
180 DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioInputCapabilities"); |
146 DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioInputCapabilities"); |
181 return res; |
147 return res; |
182 } |
148 } |
290 if( res == XA_RESULT_SUCCESS ) |
256 if( res == XA_RESULT_SUCCESS ) |
291 { |
257 { |
292 XAAudioOutputDescriptor* desc = ((XAAudioOutputDescriptor*)(temp.pEntry)); |
258 XAAudioOutputDescriptor* desc = ((XAAudioOutputDescriptor*)(temp.pEntry)); |
293 /* map applicable values to XAAudioCodecCapabilities */ |
259 /* map applicable values to XAAudioCodecCapabilities */ |
294 pDescriptor->maxChannels=desc->maxChannels; |
260 pDescriptor->maxChannels=desc->maxChannels; |
295 pDescriptor->minSampleRate=desc->minSampleRate*1000; /* milliHz */ |
261 pDescriptor->minSampleRate=desc->minSampleRate; /* milliHz */ |
296 if (desc->maxSampleRate < (0xFFFFFFFF / 1000)) |
262 if (desc->maxSampleRate < (0xFFFFFFFF)) |
297 { |
263 { |
298 pDescriptor->maxSampleRate = desc->maxSampleRate*1000; |
264 pDescriptor->maxSampleRate = desc->maxSampleRate; |
299 } |
265 } |
300 else |
266 else |
301 { |
267 { |
302 pDescriptor->maxSampleRate = 0xFFFFFFFF; |
268 pDescriptor->maxSampleRate = 0xFFFFFFFF; |
303 } |
269 } |
304 pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_TRUE; |
270 pDescriptor->isFreqRangeContinuous=desc->isFreqRangeContinuous; |
305 pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED; |
271 pDescriptor->deviceConnection = desc->deviceConnection; |
306 pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT; |
272 pDescriptor->deviceScope = desc->deviceScope; |
307 pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET; |
273 pDescriptor->deviceLocation = desc->deviceLocation; |
308 pDescriptor->pDeviceName = temp.adaptId; |
274 pDescriptor->pDeviceName = desc->pDeviceName; |
309 /* other caps undefined */ |
275 /* other caps undefined */ |
310 } |
276 pDescriptor->isForTelephony = desc->isForTelephony; |
311 |
277 pDescriptor->samplingRatesSupported = desc->samplingRatesSupported; |
312 |
278 pDescriptor->numOfSamplingRatesSupported = desc->numOfSamplingRatesSupported; |
313 switch (deviceId) |
279 } |
314 { |
|
315 case 0xAD7E5002: |
|
316 { |
|
317 impl->sampleRateArray[0] = 8000000; |
|
318 impl->sampleRateArray[1] = 11025000; |
|
319 impl->sampleRateArray[2] = 12000000; |
|
320 impl->sampleRateArray[3] = 16000000; |
|
321 impl->sampleRateArray[4] = 22050000; |
|
322 impl->sampleRateArray[5] = 24000000; |
|
323 impl->sampleRateArray[6] = 32000000; |
|
324 impl->sampleRateArray[7] = 44100000; |
|
325 impl->sampleRateArray[8] = 48000000; |
|
326 impl->sampleRateArray[9] = 64000000; |
|
327 impl->sampleRateArray[10] = 88200000; |
|
328 impl->sampleRateArray[11] = 96000000; |
|
329 |
|
330 pDescriptor->pDeviceName = (XAchar *)"Device Speaker"; |
|
331 pDescriptor->deviceConnection = XA_DEVCONNECTION_INTEGRATED; |
|
332 pDescriptor->deviceScope = XA_DEVSCOPE_ENVIRONMENT; |
|
333 pDescriptor->deviceLocation = XA_DEVLOCATION_HANDSET; |
|
334 pDescriptor->isForTelephony = XA_BOOLEAN_FALSE; |
|
335 pDescriptor->minSampleRate=8000000; /* milliHz */ |
|
336 pDescriptor->maxSampleRate = 96000000; |
|
337 pDescriptor->isFreqRangeContinuous=XA_BOOLEAN_FALSE; |
|
338 pDescriptor->samplingRatesSupported = (XAmilliHertz*)(&(impl->sampleRateArray)); |
|
339 pDescriptor->numOfSamplingRatesSupported = 12; |
|
340 pDescriptor->maxChannels = 2; |
|
341 } |
|
342 break; |
|
343 default: |
|
344 res = XA_RESULT_PARAMETER_INVALID; |
|
345 break; |
|
346 } |
|
347 } |
280 } |
348 |
281 |
349 DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities"); |
282 DEBUG_API("<-XAAudIODevCapaItfImpl_QueryAudioOutputCapabilities"); |
350 return res; |
283 return res; |
351 } |
284 } |