1*ec779b8eSAndroid Build Coastguard Worker /* 2*ec779b8eSAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project 3*ec779b8eSAndroid Build Coastguard Worker * 4*ec779b8eSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*ec779b8eSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*ec779b8eSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*ec779b8eSAndroid Build Coastguard Worker * 8*ec779b8eSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*ec779b8eSAndroid Build Coastguard Worker * 10*ec779b8eSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*ec779b8eSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*ec779b8eSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*ec779b8eSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*ec779b8eSAndroid Build Coastguard Worker * limitations under the License. 15*ec779b8eSAndroid Build Coastguard Worker */ 16*ec779b8eSAndroid Build Coastguard Worker 17*ec779b8eSAndroid Build Coastguard Worker #define LOG_TAG "VolumeGroupAttributes" 18*ec779b8eSAndroid Build Coastguard Worker //#define LOG_NDEBUG 0 19*ec779b8eSAndroid Build Coastguard Worker #include <utils/Log.h> 20*ec779b8eSAndroid Build Coastguard Worker 21*ec779b8eSAndroid Build Coastguard Worker #include <binder/Parcel.h> 22*ec779b8eSAndroid Build Coastguard Worker 23*ec779b8eSAndroid Build Coastguard Worker #include <media/AidlConversion.h> 24*ec779b8eSAndroid Build Coastguard Worker #include <media/AudioProductStrategy.h> 25*ec779b8eSAndroid Build Coastguard Worker #include <media/VolumeGroupAttributes.h> 26*ec779b8eSAndroid Build Coastguard Worker #include <media/PolicyAidlConversion.h> 27*ec779b8eSAndroid Build Coastguard Worker 28*ec779b8eSAndroid Build Coastguard Worker namespace android { 29*ec779b8eSAndroid Build Coastguard Worker matchesScore(const audio_attributes_t & attributes) const30*ec779b8eSAndroid Build Coastguard Workerint VolumeGroupAttributes::matchesScore(const audio_attributes_t &attributes) const { 31*ec779b8eSAndroid Build Coastguard Worker return AudioProductStrategy::attributesMatchesScore(mAttributes, attributes); 32*ec779b8eSAndroid Build Coastguard Worker } 33*ec779b8eSAndroid Build Coastguard Worker readFromParcel(const Parcel * parcel)34*ec779b8eSAndroid Build Coastguard Workerstatus_t VolumeGroupAttributes::readFromParcel(const Parcel* parcel) { 35*ec779b8eSAndroid Build Coastguard Worker media::AudioAttributesEx aidl; 36*ec779b8eSAndroid Build Coastguard Worker RETURN_STATUS_IF_ERROR(aidl.readFromParcel(parcel)); 37*ec779b8eSAndroid Build Coastguard Worker *this = VALUE_OR_RETURN_STATUS(aidl2legacy_AudioAttributesEx_VolumeGroupAttributes(aidl)); 38*ec779b8eSAndroid Build Coastguard Worker return OK; 39*ec779b8eSAndroid Build Coastguard Worker } 40*ec779b8eSAndroid Build Coastguard Worker writeToParcel(Parcel * parcel) const41*ec779b8eSAndroid Build Coastguard Workerstatus_t VolumeGroupAttributes::writeToParcel(Parcel* parcel) const { 42*ec779b8eSAndroid Build Coastguard Worker media::AudioAttributesEx aidl = VALUE_OR_RETURN_STATUS( 43*ec779b8eSAndroid Build Coastguard Worker legacy2aidl_VolumeGroupAttributes_AudioAttributesEx(*this)); 44*ec779b8eSAndroid Build Coastguard Worker return aidl.writeToParcel(parcel); 45*ec779b8eSAndroid Build Coastguard Worker } 46*ec779b8eSAndroid Build Coastguard Worker 47*ec779b8eSAndroid Build Coastguard Worker ConversionResult<media::AudioAttributesEx> legacy2aidl_VolumeGroupAttributes_AudioAttributesEx(const VolumeGroupAttributes & legacy)48*ec779b8eSAndroid Build Coastguard Workerlegacy2aidl_VolumeGroupAttributes_AudioAttributesEx(const VolumeGroupAttributes& legacy) { 49*ec779b8eSAndroid Build Coastguard Worker media::AudioAttributesEx aidl; 50*ec779b8eSAndroid Build Coastguard Worker aidl.attributes = VALUE_OR_RETURN( 51*ec779b8eSAndroid Build Coastguard Worker legacy2aidl_audio_attributes_t_AudioAttributes(legacy.getAttributes())); 52*ec779b8eSAndroid Build Coastguard Worker aidl.streamType = VALUE_OR_RETURN( 53*ec779b8eSAndroid Build Coastguard Worker legacy2aidl_audio_stream_type_t_AudioStreamType(legacy.getStreamType())); 54*ec779b8eSAndroid Build Coastguard Worker aidl.groupId = VALUE_OR_RETURN(legacy2aidl_volume_group_t_int32_t(legacy.getGroupId())); 55*ec779b8eSAndroid Build Coastguard Worker return aidl; 56*ec779b8eSAndroid Build Coastguard Worker } 57*ec779b8eSAndroid Build Coastguard Worker 58*ec779b8eSAndroid Build Coastguard Worker ConversionResult<VolumeGroupAttributes> aidl2legacy_AudioAttributesEx_VolumeGroupAttributes(const media::AudioAttributesEx & aidl)59*ec779b8eSAndroid Build Coastguard Workeraidl2legacy_AudioAttributesEx_VolumeGroupAttributes(const media::AudioAttributesEx& aidl) { 60*ec779b8eSAndroid Build Coastguard Worker return VolumeGroupAttributes(VALUE_OR_RETURN(aidl2legacy_int32_t_volume_group_t(aidl.groupId)), 61*ec779b8eSAndroid Build Coastguard Worker VALUE_OR_RETURN(aidl2legacy_AudioStreamType_audio_stream_type_t( 62*ec779b8eSAndroid Build Coastguard Worker aidl.streamType)), 63*ec779b8eSAndroid Build Coastguard Worker VALUE_OR_RETURN(aidl2legacy_AudioAttributes_audio_attributes_t( 64*ec779b8eSAndroid Build Coastguard Worker aidl.attributes))); 65*ec779b8eSAndroid Build Coastguard Worker } 66*ec779b8eSAndroid Build Coastguard Worker 67*ec779b8eSAndroid Build Coastguard Worker } // namespace android 68