1dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi/* 2dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * Copyright (C) 2010 The Android Open Source Project 3dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * 4dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 5dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * you may not use this file except in compliance with the License. 6dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * You may obtain a copy of the License at 7dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * 8dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 9dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * 10dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 11dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 12dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * See the License for the specific language governing permissions and 14dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi * limitations under the License. 15dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi */ 16dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 17dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi#include "sles_allinclusive.h" 18dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi//#include "math.h" 19dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi//#include "utils/RefBase.h" 20dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 21dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 22dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel TriviSLresult android_outputMix_create(COutputMix *om) { 2303716fc64636a68ba59881508e80550b948f0f40Glenn Kasten SL_LOGV("Create outputMix=%p", om); 242a25d97e40dbd5dd9195195a3a269095a4932097Glenn Kasten return SL_RESULT_SUCCESS; 25dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi} 26dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 27dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 28dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel TriviSLresult android_outputMix_realize(COutputMix *om, SLboolean async) { 29dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi SLresult result = SL_RESULT_SUCCESS; 3003716fc64636a68ba59881508e80550b948f0f40Glenn Kasten SL_LOGV("Realize outputMix=%p", om); 31dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 32dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi // initialize effects 33dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi // initialize EQ 34dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi if (memcmp(SL_IID_EQUALIZER, &om->mEqualizer.mEqDescriptor.type, 35dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi sizeof(effect_uuid_t)) == 0) { 3667f98b44415db86ac64b36e09be9baf090666257Jean-Michel Trivi android_eq_init(android::AudioSystem::SESSION_OUTPUT_MIX /*sessionId*/, &om->mEqualizer); 37dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi } 3868817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi // initialize BassBoost 3968817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi if (memcmp(SL_IID_BASSBOOST, &om->mBassBoost.mBassBoostDescriptor.type, 4068817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi sizeof(effect_uuid_t)) == 0) { 4167f98b44415db86ac64b36e09be9baf090666257Jean-Michel Trivi android_bb_init(android::AudioSystem::SESSION_OUTPUT_MIX /*sessionId*/, &om->mBassBoost); 4268817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi } 4368817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi // initialize PresetReverb 4468817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi if (memcmp(SL_IID_PRESETREVERB, &om->mPresetReverb.mPresetReverbDescriptor.type, 4568817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi sizeof(effect_uuid_t)) == 0) { 4668817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi android_prev_init(&om->mPresetReverb); 4768817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi } 4868817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi // initialize EnvironmentalReverb 4968817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi if (memcmp(SL_IID_ENVIRONMENTALREVERB, 5068817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi &om->mEnvironmentalReverb.mEnvironmentalReverbDescriptor.type, 5168817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi sizeof(effect_uuid_t)) == 0) { 5268817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi android_erev_init(&om->mEnvironmentalReverb); 5368817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi } 5468817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi // initialize Virtualizer 5568817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi if (memcmp(SL_IID_VIRTUALIZER, &om->mVirtualizer.mVirtualizerDescriptor.type, 5668817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi sizeof(effect_uuid_t)) == 0) { 5767f98b44415db86ac64b36e09be9baf090666257Jean-Michel Trivi android_virt_init(android::AudioSystem::SESSION_OUTPUT_MIX /*sessionId*/, 5867f98b44415db86ac64b36e09be9baf090666257Jean-Michel Trivi &om->mVirtualizer); 5968817ee6ff2ede1dac61078894d8920fb961061fJean-Michel Trivi } 60dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 61dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi return result; 62dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi} 63dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 64dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi 65dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel TriviSLresult android_outputMix_destroy(COutputMix *om) { 6603716fc64636a68ba59881508e80550b948f0f40Glenn Kasten SL_LOGV("Destroy outputMix=%p", om); 672a25d97e40dbd5dd9195195a3a269095a4932097Glenn Kasten return SL_RESULT_SUCCESS; 68dc098b54cd7df1b79b4560ae0570d88e4b9f751eJean-Michel Trivi} 69