summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/AudioPolicyInterface.h
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2014-12-12 16:23:43 -0800
committerJean-Michel Trivi <jmtrivi@google.com>2014-12-15 18:13:39 -0800
commit97bb33f58d742539f3382583d7978fca71ffa2d5 (patch)
treebe3e26027b66bfc605a45af032fb91de1bdb7c7a /services/audiopolicy/AudioPolicyInterface.h
parent6e430fbd927b9cc043639eb728ddc921392a60e8 (diff)
downloadframeworks_av-97bb33f58d742539f3382583d7978fca71ffa2d5.zip
frameworks_av-97bb33f58d742539f3382583d7978fca71ffa2d5.tar.gz
frameworks_av-97bb33f58d742539f3382583d7978fca71ffa2d5.tar.bz2
Fix permission check for audio recording
Define input types covering the different usecases for audio recording, and check the corresponding permissions when starting to record. Move the permission check from audio flinger to audio policy, as only the policy has the information to determine which permission to enforce. Fix missing permission when an application records audio and the audio is injected by an external policy. Bug 18736417 Change-Id: If7ec040502242c990ac8ea464db484339bdce573
Diffstat (limited to 'services/audiopolicy/AudioPolicyInterface.h')
-rw-r--r--services/audiopolicy/AudioPolicyInterface.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/services/audiopolicy/AudioPolicyInterface.h b/services/audiopolicy/AudioPolicyInterface.h
index 2826cad..4508fa7 100644
--- a/services/audiopolicy/AudioPolicyInterface.h
+++ b/services/audiopolicy/AudioPolicyInterface.h
@@ -57,6 +57,16 @@ class AudioPolicyInterface
{
public:
+ typedef enum {
+ API_INPUT_INVALID = -1,
+ API_INPUT_LEGACY = 0,// e.g. audio recording from a microphone
+ API_INPUT_MIX_CAPTURE,// used for "remote submix", capture of the media to play it remotely
+ API_INPUT_MIX_EXT_POLICY_REROUTE,// used for platform audio rerouting, where mixes are
+ // handled by external and dynamically installed
+ // policies which reroute audio mixes
+ } input_type_t;
+
+public:
virtual ~AudioPolicyInterface() {}
//
// configuration functions
@@ -120,7 +130,8 @@ public:
uint32_t samplingRate,
audio_format_t format,
audio_channel_mask_t channelMask,
- audio_input_flags_t flags) = 0;
+ audio_input_flags_t flags,
+ input_type_t *inputType) = 0;
// indicates to the audio policy manager that the input starts being used.
virtual status_t startInput(audio_io_handle_t input,
audio_session_t session) = 0;