120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie/*
220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * Copyright (C) 2015 The Android Open Source Project
320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *
420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * Licensed under the Apache License, Version 2.0 (the "License");
520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * you may not use this file except in compliance with the License.
620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * You may obtain a copy of the License at
720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *
820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *      http://www.apache.org/licenses/LICENSE-2.0
920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie *
1020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * Unless required by applicable law or agreed to in writing, software
1120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * distributed under the License is distributed on an "AS IS" BASIS,
1220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * See the License for the specific language governing permissions and
1420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie * limitations under the License.
1520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie */
1620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
1720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie#define LOG_TAG "APM::AudioPolicyEngine/Usage"
1820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
1920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie#include "Usage.h"
2020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
2120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffienamespace android
2220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
2320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffienamespace audio_policy
2420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
2520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
2620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffiestatus_t Element<audio_usage_t>::setIdentifier(audio_usage_t identifier)
2720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
2820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    if (identifier > AUDIO_USAGE_MAX) {
2920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie        return BAD_VALUE;
3020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    }
3120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    mIdentifier = identifier;
3220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    ALOGD("%s: Usage %s has identifier 0x%X", __FUNCTION__, getName().c_str(), identifier);
3320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return NO_ERROR;
3420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
3520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
3620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffietemplate <>
3720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffiestatus_t Element<audio_usage_t>::set<routing_strategy>(routing_strategy strategy)
3820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
3920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    if (strategy >= NUM_STRATEGIES) {
4020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie        return BAD_VALUE;
4120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    }
4220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    ALOGD("%s: %d for Usage %s", __FUNCTION__, strategy, getName().c_str());
4320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    mApplicableStrategy = strategy;
4420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return NO_ERROR;
4520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
4620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
4720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffietemplate <>
4820f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffierouting_strategy Element<audio_usage_t>::get<routing_strategy>() const
4920f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie{
5020f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    ALOGD("%s: %d for Usage %s", __FUNCTION__, mApplicableStrategy, getName().c_str());
5120f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie    return mApplicableStrategy;
5220f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie}
5320f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
5420f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie} // namespace audio_policy
5520f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie} // namespace android
5620f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
5720f06f996337c9bf79d0b112083f6427a122ebabFrançois Gaffie
58