AudioPolicyService InputDesc minor cleanup

Add a non-default constructor to set the mSessionId, and make mSessionId const.

Remove explicit clear on mEffects - it is automatically cleared by the destructor.

AudioPolicyService::setPreProcessorEnabled:
 - parameter is const *
 - use an alias instead of making a Vector copy

Destructor doesn't need to be virtual since there are no subclasses.

Change-Id: Ibc3c3bea8259839430b1cf5356186c7d96f1082f
This commit is contained in:
Glenn Kasten
2012-03-07 16:49:22 -08:00
parent 21b4d6b7a5
commit fcf2ac041e
2 changed files with 7 additions and 9 deletions

View File

@@ -298,8 +298,7 @@ audio_io_handle_t AudioPolicyService::getInput(audio_source_t inputSource,
ssize_t idx = mInputs.indexOfKey(input);
InputDesc *inputDesc;
if (idx < 0) {
inputDesc = new InputDesc();
inputDesc->mSessionId = audioSession;
inputDesc = new InputDesc(audioSession);
mInputs.add(input, inputDesc);
} else {
inputDesc = mInputs.valueAt(idx);
@@ -358,7 +357,6 @@ void AudioPolicyService::releaseInput(audio_io_handle_t input)
}
InputDesc *inputDesc = mInputs.valueAt(index);
setPreProcessorEnabled(inputDesc, false);
inputDesc->mEffects.clear();
delete inputDesc;
mInputs.removeItemsAt(index);
}
@@ -600,9 +598,9 @@ status_t AudioPolicyService::dumpPermissionDenial(int fd)
return NO_ERROR;
}
void AudioPolicyService::setPreProcessorEnabled(InputDesc *inputDesc, bool enabled)
void AudioPolicyService::setPreProcessorEnabled(const InputDesc *inputDesc, bool enabled)
{
Vector<sp<AudioEffect> > fxVector = inputDesc->mEffects;
const Vector<sp<AudioEffect> > &fxVector = inputDesc->mEffects;
for (size_t i = 0; i < fxVector.size(); i++) {
fxVector.itemAt(i)->setEnabled(enabled);
}

View File

@@ -279,15 +279,15 @@ private:
class InputDesc {
public:
InputDesc() {}
virtual ~InputDesc() {}
int mSessionId;
InputDesc(int session) : mSessionId(session) {}
/*virtual*/ ~InputDesc() {}
const int mSessionId;
Vector< sp<AudioEffect> >mEffects;
};
static const char * const kInputSourceNames[AUDIO_SOURCE_CNT -1];
void setPreProcessorEnabled(InputDesc *inputDesc, bool enabled);
void setPreProcessorEnabled(const InputDesc *inputDesc, bool enabled);
status_t loadPreProcessorConfig(const char *path);
status_t loadEffects(cnode *root, Vector <EffectDesc *>& effects);
EffectDesc *loadEffect(cnode *root);