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