audiopolicy: add Volume for attribute and callback native APIs
Change-Id: I259de42452d2802aa8dbd553f56040dea6995a93
Signed-off-by: François Gaffie <francois.gaffie@renault.com>
Bug: 124767636
Test: make
diff --git a/services/audiopolicy/service/AudioPolicyService.h b/services/audiopolicy/service/AudioPolicyService.h
index e19b4e5..5888841 100644
--- a/services/audiopolicy/service/AudioPolicyService.h
+++ b/services/audiopolicy/service/AudioPolicyService.h
@@ -111,6 +111,17 @@
int *index,
audio_devices_t device);
+ virtual status_t setVolumeIndexForAttributes(const audio_attributes_t &attr,
+ int index,
+ audio_devices_t device);
+ virtual status_t getVolumeIndexForAttributes(const audio_attributes_t &attr,
+ int &index,
+ audio_devices_t device);
+ virtual status_t getMinVolumeIndexForAttributes(const audio_attributes_t &attr,
+ int &index);
+ virtual status_t getMaxVolumeIndexForAttributes(const audio_attributes_t &attr,
+ int &index);
+
virtual uint32_t getStrategyForStream(audio_stream_type_t stream);
virtual audio_devices_t getDevicesForStream(audio_stream_type_t stream);
@@ -192,6 +203,8 @@
virtual void setAudioPortCallbacksEnabled(bool enabled);
+ virtual void setAudioVolumeGroupCallbacksEnabled(bool enabled);
+
virtual status_t acquireSoundTriggerSession(audio_session_t *session,
audio_io_handle_t *ioHandle,
audio_devices_t *device);
@@ -275,6 +288,9 @@
audio_patch_handle_t patchHandle,
audio_source_t source);
+ void onAudioVolumeGroupChanged(volume_group_t group, int flags);
+ void doOnAudioVolumeGroupChanged(volume_group_t group, int flags);
+
private:
AudioPolicyService() ANDROID_API;
virtual ~AudioPolicyService();
@@ -404,6 +420,7 @@
RELEASE_AUDIO_PATCH,
UPDATE_AUDIOPORT_LIST,
UPDATE_AUDIOPATCH_LIST,
+ CHANGED_AUDIOVOLUMEGROUP,
SET_AUDIOPORT_CONFIG,
DYN_POLICY_MIX_STATE_UPDATE,
RECORDING_CONFIGURATION_UPDATE
@@ -435,6 +452,7 @@
int delayMs);
void updateAudioPortListCommand();
void updateAudioPatchListCommand();
+ void changeAudioVolumeGroupCommand(volume_group_t group, int flags);
status_t setAudioPortConfigCommand(const struct audio_port_config *config,
int delayMs);
void dynamicPolicyMixStateUpdateCommand(const String8& regId,
@@ -516,6 +534,12 @@
audio_patch_handle_t mHandle;
};
+ class AudioVolumeGroupData : public AudioCommandData {
+ public:
+ volume_group_t mGroup;
+ int mFlags;
+ };
+
class SetAudioPortConfigData : public AudioCommandData {
public:
struct audio_port_config mConfig;
@@ -648,6 +672,8 @@
audio_patch_handle_t patchHandle,
audio_source_t source);
+ virtual void onAudioVolumeGroupChanged(volume_group_t group, int flags);
+
virtual audio_unique_id_t newAudioUniqueId(audio_unique_id_use_t use);
private:
@@ -666,6 +692,7 @@
void onAudioPatchListUpdate();
void onDynamicPolicyMixStateUpdate(const String8& regId,
int32_t state);
+ void onAudioVolumeGroupChanged(volume_group_t group, int flags);
void onRecordingConfigurationUpdate(
int event,
const record_client_info_t *clientInfo,
@@ -676,6 +703,7 @@
audio_patch_handle_t patchHandle,
audio_source_t source);
void setAudioPortCallbacksEnabled(bool enabled);
+ void setAudioVolumeGroupCallbacksEnabled(bool enabled);
uid_t uid() {
return mUid;
@@ -693,6 +721,7 @@
const pid_t mPid;
const sp<IAudioPolicyServiceClient> mAudioPolicyServiceClient;
bool mAudioPortCallbacksEnabled;
+ bool mAudioVolumeGroupCallbacksEnabled;
};
class AudioClient : public virtual RefBase {