summaryrefslogtreecommitdiffstats
path: root/libaudio/AudioHardware.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libaudio/AudioHardware.cpp')
-rw-r--r--libaudio/AudioHardware.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/libaudio/AudioHardware.cpp b/libaudio/AudioHardware.cpp
index c958e36..3e28448 100644
--- a/libaudio/AudioHardware.cpp
+++ b/libaudio/AudioHardware.cpp
@@ -98,6 +98,7 @@ AudioHardware::AudioHardware() :
mActivatedCP(false),
#ifdef HAVE_FM_RADIO
mFmFd(-1),
+ mFmVolume(1),
mFmResumeAfterCall(false),
#endif
mDriverOp(DRV_NONE)
@@ -636,6 +637,7 @@ status_t AudioHardware::setMasterVolume(float volume)
#ifdef HAVE_FM_RADIO
status_t AudioHardware::setFmVolume(float v)
{
+ mFmVolume = v;
if (mFmFd > 0) {
__u8 fmVolume = (AudioSystem::logToLinear(v) + 5) / 7;
LOGD("%s %f %d", __func__, v, (int) fmVolume);
@@ -808,6 +810,8 @@ void AudioHardware::enableFMRadio() {
if (mFmFd < 0) {
mFmFd = open("/dev/radio0", O_RDWR);
+ // In case setFmVolume was called before FM was enabled, we save the volume and call it here.
+ setFmVolume(mFmVolume);
}
}
}