summaryrefslogtreecommitdiffstats
path: root/include/media/IAudioPolicyService.h
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2010-07-13 04:45:46 -0700
committerEric Laurent <elaurent@google.com>2010-07-20 10:31:57 -0700
commitde070137f11d346fba77605bd76a44c040a618fc (patch)
treeba741240b391a66899514061ccda38254e539013 /include/media/IAudioPolicyService.h
parentf997cabca292d70d078ae828e21c28e6df62995f (diff)
downloadframeworks_av-de070137f11d346fba77605bd76a44c040a618fc.zip
frameworks_av-de070137f11d346fba77605bd76a44c040a618fc.tar.gz
frameworks_av-de070137f11d346fba77605bd76a44c040a618fc.tar.bz2
Audio policy manager changes for audio effects
Added methods for audio effects management by audio policy manager. - control of total CPU load and memory used by effect engines - selection of output stream for global effects - added audio session id in parameter list for startOutput() and stopOutput(). this is not used in default audio policy manager implementation. Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring effect engines from one output mixer thread to another when audio tracks in the same session are moved or when requested by audio policy manager. Also fixed mutex deadlock problem with effect chains locks. Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
Diffstat (limited to 'include/media/IAudioPolicyService.h')
-rw-r--r--include/media/IAudioPolicyService.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/include/media/IAudioPolicyService.h b/include/media/IAudioPolicyService.h
index 4804bbd..49eee59 100644
--- a/include/media/IAudioPolicyService.h
+++ b/include/media/IAudioPolicyService.h
@@ -53,8 +53,12 @@ public:
uint32_t format = AudioSystem::FORMAT_DEFAULT,
uint32_t channels = 0,
AudioSystem::output_flags flags = AudioSystem::OUTPUT_FLAG_INDIRECT) = 0;
- virtual status_t startOutput(audio_io_handle_t output, AudioSystem::stream_type stream) = 0;
- virtual status_t stopOutput(audio_io_handle_t output, AudioSystem::stream_type stream) = 0;
+ virtual status_t startOutput(audio_io_handle_t output,
+ AudioSystem::stream_type stream,
+ int session = 0) = 0;
+ virtual status_t stopOutput(audio_io_handle_t output,
+ AudioSystem::stream_type stream,
+ int session = 0) = 0;
virtual void releaseOutput(audio_io_handle_t output) = 0;
virtual audio_io_handle_t getInput(int inputSource,
uint32_t samplingRate = 0,
@@ -69,6 +73,14 @@ public:
int indexMax) = 0;
virtual status_t setStreamVolumeIndex(AudioSystem::stream_type stream, int index) = 0;
virtual status_t getStreamVolumeIndex(AudioSystem::stream_type stream, int *index) = 0;
+ virtual uint32_t getStrategyForStream(AudioSystem::stream_type stream) = 0;
+ virtual audio_io_handle_t getOutputForEffect(effect_descriptor_t *desc) = 0;
+ virtual status_t registerEffect(effect_descriptor_t *desc,
+ audio_io_handle_t output,
+ uint32_t strategy,
+ int session,
+ int id) = 0;
+ virtual status_t unregisterEffect(int id) = 0;
};