Add a bridge implementation of get_master_volume.

Add an implementation of the new get_master_volume method to bridge from the new
C only audio HAL to the old C++ legacy audio HAL.

Change-Id: Ib66bdcd3bee50949047e7ad51388e15491a71724
This commit is contained in:
John Grossman 2011-08-22 13:25:06 -07:00
parent 953c114065
commit 5be2265e30
4 changed files with 21 additions and 0 deletions

View file

@ -125,6 +125,11 @@ size_t AudioHardwareBase::getInputBufferSize(uint32_t sampleRate, int format, in
return 320;
}
status_t AudioHardwareBase::getMasterVolume(float *volume)
{
return INVALID_OPERATION;
}
status_t AudioHardwareBase::dumpState(int fd, const Vector<String16>& args)
{
const size_t SIZE = 256;

View file

@ -346,6 +346,12 @@ static int adev_set_master_volume(struct audio_hw_device *dev, float volume)
return ladev->hwif->setMasterVolume(volume);
}
static int adev_get_master_volume(struct audio_hw_device *dev, float* volume)
{
struct legacy_audio_device *ladev = to_ladev(dev);
return ladev->hwif->getMasterVolume(volume);
}
static int adev_set_mode(struct audio_hw_device *dev, int mode)
{
struct legacy_audio_device *ladev = to_ladev(dev);
@ -553,6 +559,7 @@ static int legacy_adev_open(const hw_module_t* module, const char* name,
ladev->device.init_check = adev_init_check;
ladev->device.set_voice_volume = adev_set_voice_volume;
ladev->device.set_master_volume = adev_set_master_volume;
ladev->device.get_master_volume = adev_get_master_volume;
ladev->device.set_mode = adev_set_mode;
ladev->device.set_mic_mute = adev_set_mic_mute;
ladev->device.get_mic_mute = adev_get_mic_mute;

View file

@ -46,6 +46,7 @@ public:
virtual String8 getParameters(const String8& keys);
virtual size_t getInputBufferSize(uint32_t sampleRate, int format, int channelCount);
virtual status_t getMasterVolume(float *volume);
/**This method dumps the state of the audio hardware */
virtual status_t dumpState(int fd, const Vector<String16>& args);

View file

@ -209,6 +209,14 @@ public:
*/
virtual status_t setMasterVolume(float volume) = 0;
/**
* Get the current master volume value for the HAL, if the HAL supports
* master volume control. AudioFlinger will query this value from the
* primary audio HAL when the service starts and use the value for setting
* the initial master volume across all HALs.
*/
virtual status_t getMasterVolume(float *volume) = 0;
/**
* setMode is called when the audio mode changes. NORMAL mode is for
* standard audio playback, RINGTONE when a ringtone is playing, and IN_CALL