diff options
Diffstat (limited to 'media/libmedia')
-rw-r--r-- | media/libmedia/AudioSystem.cpp | 13 | ||||
-rw-r--r-- | media/libmedia/IAudioFlinger.cpp | 25 |
2 files changed, 37 insertions, 1 deletions
diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp index fd8c320..aaf2ddd 100644 --- a/media/libmedia/AudioSystem.cpp +++ b/media/libmedia/AudioSystem.cpp @@ -1,5 +1,9 @@ /* * Copyright (C) 2006-2007 The Android Open Source Project + * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. + * + * Not a Contribution, Apache license notifications and license are retained + * for attribution purposes only * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -411,6 +415,15 @@ void AudioSystem::releaseAudioSessionId(int audioSession) { } } +#ifdef QCOM_FM_ENABLED +status_t AudioSystem::setFmVolume(float value) +{ + const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); + if (af == 0) return PERMISSION_DENIED; + return af->setFmVolume(value); +} +#endif + // --------------------------------------------------------------------------- void AudioSystem::AudioFlingerClient::binderDied(const wp<IBinder>& who) { diff --git a/media/libmedia/IAudioFlinger.cpp b/media/libmedia/IAudioFlinger.cpp index cc6a75c..9d5691f 100644 --- a/media/libmedia/IAudioFlinger.cpp +++ b/media/libmedia/IAudioFlinger.cpp @@ -1,7 +1,8 @@ /* ** ** Copyright 2007, The Android Open Source Project -** Copyright (c) 2012, The Linux Foundation. All rights reserved. +** Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. +** ** Not a Contribution, Apache license notifications and license are retained ** for attribution purposes only. ** @@ -73,6 +74,9 @@ enum { GET_EFFECT_DESCRIPTOR, CREATE_EFFECT, MOVE_EFFECTS, +#ifdef QCOM_FM_ENABLED + SET_FM_VOLUME, +#endif LOAD_HW_MODULE, GET_PRIMARY_OUTPUT_SAMPLING_RATE, GET_PRIMARY_OUTPUT_FRAME_COUNT, @@ -730,6 +734,17 @@ public: return reply.readInt32(); } +#ifdef QCOM_FM_ENABLED + virtual status_t setFmVolume(float volume) + { + Parcel data, reply; + data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); + data.writeFloat(volume); + remote()->transact(SET_FM_VOLUME, data, &reply); + return reply.readInt32(); + } +#endif + virtual audio_module_handle_t loadHwModule(const char *name) { Parcel data, reply; @@ -1128,6 +1143,14 @@ status_t BnAudioFlinger::onTransact( reply->writeInt32(moveEffects(session, srcOutput, dstOutput)); return NO_ERROR; } break; +#ifdef QCOM_FM_ENABLED + case SET_FM_VOLUME: { + CHECK_INTERFACE(IAudioFlinger, data, reply); + float volume = data.readFloat(); + reply->writeInt32( setFmVolume(volume) ); + return NO_ERROR; + } break; +#endif case LOAD_HW_MODULE: { CHECK_INTERFACE(IAudioFlinger, data, reply); reply->writeInt32(loadHwModule(data.readCString())); |