/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "sles_allinclusive.h"
/* Device table (change this when you port!) */
static const SLAudioInputDescriptor AudioInputDescriptor_mic = {
(SLchar *) "mic", // deviceName
SL_DEVCONNECTION_INTEGRATED, // deviceConnection
SL_DEVSCOPE_ENVIRONMENT, // deviceScope
SL_DEVLOCATION_HANDSET, // deviceLocation
SL_BOOLEAN_TRUE, // isForTelephony
SL_SAMPLINGRATE_44_1, // minSampleRate
SL_SAMPLINGRATE_44_1, // maxSampleRate
SL_BOOLEAN_TRUE, // isFreqRangeContinuous
NULL, // samplingRatesSupported
0, // numOfSamplingRatesSupported
1 // maxChannels
};
const struct AudioInput_id_descriptor AudioInput_id_descriptors[] = {
{SL_DEFAULTDEVICEID_AUDIOINPUT, &AudioInputDescriptor_mic},
{0, NULL}
};
static const SLAudioOutputDescriptor AudioOutputDescriptor_speaker = {
(SLchar *) "speaker", // deviceName
SL_DEVCONNECTION_INTEGRATED, // deviceConnection
SL_DEVSCOPE_USER, // deviceScope
SL_DEVLOCATION_HEADSET, // deviceLocation
SL_BOOLEAN_TRUE, // isForTelephony
SL_SAMPLINGRATE_44_1, // minSamplingRate
SL_SAMPLINGRATE_44_1, // maxSamplingRate
SL_BOOLEAN_TRUE, // isFreqRangeContinuous
NULL, // samplingRatesSupported
0, // numOfSamplingRatesSupported
2 // maxChannels
};
static const SLAudioOutputDescriptor AudioOutputDescriptor_headset = {
(SLchar *) "headset",
SL_DEVCONNECTION_ATTACHED_WIRED,
SL_DEVSCOPE_USER,
SL_DEVLOCATION_HEADSET,
SL_BOOLEAN_FALSE,
SL_SAMPLINGRATE_44_1,
SL_SAMPLINGRATE_44_1,
SL_BOOLEAN_TRUE,
NULL,
0,
2
};
static const SLAudioOutputDescriptor AudioOutputDescriptor_handsfree = {
(SLchar *) "handsfree",
SL_DEVCONNECTION_INTEGRATED,
SL_DEVSCOPE_ENVIRONMENT,
SL_DEVLOCATION_HANDSET,
SL_BOOLEAN_FALSE,
SL_SAMPLINGRATE_44_1,
SL_SAMPLINGRATE_44_1,
SL_BOOLEAN_TRUE,
NULL,
0,
2
};
const struct AudioOutput_id_descriptor AudioOutput_id_descriptors[] = {
{SL_DEFAULTDEVICEID_AUDIOOUTPUT, &AudioOutputDescriptor_speaker},
{DEVICE_ID_HEADSET, &AudioOutputDescriptor_headset},
{DEVICE_ID_HANDSFREE, &AudioOutputDescriptor_handsfree},
{0, NULL}
};
static const SLLEDDescriptor SLLEDDescriptor_default = {
32, // ledCount
0, // primaryLED
~0 // colorMask
};
const struct LED_id_descriptor LED_id_descriptors[] = {
{SL_DEFAULTDEVICEID_LED, &SLLEDDescriptor_default},
{0, NULL}
};
static const SLVibraDescriptor SLVibraDescriptor_default = {
SL_BOOLEAN_TRUE, // supportsFrequency
SL_BOOLEAN_TRUE, // supportsIntensity
20000, // minFrequency
100000 // maxFrequency
};
const struct Vibra_id_descriptor Vibra_id_descriptors[] = {
{SL_DEFAULTDEVICEID_VIBRA, &SLVibraDescriptor_default},
{0, NULL}
};
// should build this table from Caps table below
static const SLuint32 Codec_IDs[] = {
SL_AUDIOCODEC_PCM,
SL_AUDIOCODEC_MP3,
SL_AUDIOCODEC_AMR,
SL_AUDIOCODEC_AMRWB,
SL_AUDIOCODEC_AMRWBPLUS,
SL_AUDIOCODEC_AAC,
SL_AUDIOCODEC_WMA,
SL_AUDIOCODEC_REAL,
SL_AUDIOCODEC_VORBIS
};
const SLuint32 *Decoder_IDs = Codec_IDs;
const SLuint32 *Encoder_IDs = Codec_IDs;
static const SLmilliHertz SamplingRates_A[] = {
SL_SAMPLINGRATE_8,
SL_SAMPLINGRATE_11_025,
SL_SAMPLINGRATE_12,
SL_SAMPLINGRATE_16,
SL_SAMPLINGRATE_22_05,
SL_SAMPLINGRATE_24,
SL_SAMPLINGRATE_32,
SL_SAMPLINGRATE_44_1,
SL_SAMPLINGRATE_48
};
static const SLAudioCodecDescriptor CodecDescriptor_A = {
2, // maxChannels
8, // minBitsPerSample
16, // maxBitsPerSample
SL_SAMPLINGRATE_8, // minSampleRate
SL_SAMPLINGRATE_48, // maxSampleRate
SL_BOOLEAN_FALSE, // isFreqRangeContinuous
(SLmilliHertz *) SamplingRates_A,
// pSampleRatesSupported;
sizeof(SamplingRates_A) / sizeof(SamplingRates_A[0]),
// numSampleRatesSupported
1, // minBitRate
~0, // maxBitRate
SL_BOOLEAN_TRUE, // isBitrateRangeContinuous
NULL, // pBitratesSupported
0, // numBitratesSupported
SL_AUDIOPROFILE_PCM, // profileSetting
0 // modeSetting
};
const CodecDescriptor DecoderDescriptors[] = {
{SL_AUDIOCODEC_PCM, &CodecDescriptor_A},
{SL_AUDIOCODEC_MP3, &CodecDescriptor_A},
{SL_AUDIOCODEC_AMR, &CodecDescriptor_A},
{SL_AUDIOCODEC_AMRWB, &CodecDescriptor_A},
{SL_AUDIOCODEC_AMRWBPLUS, &CodecDescriptor_A},
{SL_AUDIOCODEC_AAC, &CodecDescriptor_A},
{SL_AUDIOCODEC_WMA, &CodecDescriptor_A},
{SL_AUDIOCODEC_REAL, &CodecDescriptor_A},
{SL_AUDIOCODEC_VORBIS, &CodecDescriptor_A},
{SL_AUDIOCODEC_NULL, NULL}
};
const CodecDescriptor EncoderDescriptors[] = {
{SL_AUDIOCODEC_PCM, &CodecDescriptor_A},
{SL_AUDIOCODEC_MP3, &CodecDescriptor_A},
{SL_AUDIOCODEC_AMR, &CodecDescriptor_A},
{SL_AUDIOCODEC_AMRWB, &CodecDescriptor_A},
{SL_AUDIOCODEC_AMRWBPLUS, &CodecDescriptor_A},
{SL_AUDIOCODEC_AAC, &CodecDescriptor_A},
{SL_AUDIOCODEC_WMA, &CodecDescriptor_A},
{SL_AUDIOCODEC_REAL, &CodecDescriptor_A},
{SL_AUDIOCODEC_VORBIS, &CodecDescriptor_A},
{SL_AUDIOCODEC_NULL, NULL}
};