summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/AudioFlinger.cpp
diff options
context:
space:
mode:
authorMingming Yin <mingming@codeaurora.org>2012-12-27 17:43:05 -0800
committerKonsta <konsta09@gmail.com>2013-03-06 09:51:55 +0200
commita35c8f521c9cbb64f3d32df5ded7eab2db2727ee (patch)
tree6b41434b68ca73397fff0950f7aac2ac44de77bd /services/audioflinger/AudioFlinger.cpp
parent720055270a0412311d39ca77ff1c0e6d744d6b5e (diff)
downloadframeworks_av-a35c8f521c9cbb64f3d32df5ded7eab2db2727ee.zip
frameworks_av-a35c8f521c9cbb64f3d32df5ded7eab2db2727ee.tar.gz
frameworks_av-a35c8f521c9cbb64f3d32df5ded7eab2db2727ee.tar.bz2
qcom-fm: audio: add support for FM feature
Change-Id: Idd5c7a0364710d54809ef5d4c7b2404b22dc4cf6 Conflicts: include/media/IAudioFlinger.h media/libmediaplayerservice/StagefrightRecorder.cpp media/libstagefright/Android.mk
Diffstat (limited to 'services/audioflinger/AudioFlinger.cpp')
-rw-r--r--services/audioflinger/AudioFlinger.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 5975b62..88da88c 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -1,9 +1,8 @@
/*
**
** Copyright 2007, The Android Open Source Project
-** Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
+** Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
**
-** Copyright (c) 2012, The Linux Foundation. All rights reserved.
** Not a Contribution, Apache license notifications and license are retained
** for attribution purposes only.
**
@@ -1377,6 +1376,29 @@ status_t AudioFlinger::getRenderPosition(uint32_t *halFrames, uint32_t *dspFrame
return BAD_VALUE;
}
+#ifdef QCOM_FM_ENABLED
+status_t AudioFlinger::setFmVolume(float value)
+{
+ status_t ret = initCheck();
+ if (ret != NO_ERROR) {
+ return ret;
+ }
+
+ // check calling permissions
+ if (!settingsAllowed()) {
+ return PERMISSION_DENIED;
+ }
+
+ AutoMutex lock(mHardwareLock);
+ audio_hw_device_t *dev = mPrimaryHardwareDev->hwDevice();
+ mHardwareStatus = AUDIO_SET_FM_VOLUME;
+ ret = dev->set_fm_volume(dev, value);
+ mHardwareStatus = AUDIO_HW_IDLE;
+
+ return ret;
+}
+#endif
+
void AudioFlinger::registerClient(const sp<IAudioFlingerClient>& client)
{