diff options
Diffstat (limited to 'services/audiopolicy/managerdefault/AudioPolicyManager.h')
-rw-r--r-- | services/audiopolicy/managerdefault/AudioPolicyManager.h | 88 |
1 files changed, 1 insertions, 87 deletions
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h index cf64154..bf3ae4a 100644 --- a/services/audiopolicy/managerdefault/AudioPolicyManager.h +++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h @@ -42,6 +42,7 @@ #include <EffectDescriptor.h> #include <SoundTriggerSession.h> #include <StreamDescriptor.h> +#include <SessionRoute.h> namespace android { @@ -237,93 +238,6 @@ public: routing_strategy getStrategy(audio_stream_type_t stream) const; protected: - class SessionRoute : public RefBase { - public: - // For Input (Source) routes, use STREAM_TYPE_NA ("NA" = "not applicable)for the - // streamType argument - static const audio_stream_type_t STREAM_TYPE_NA = AUDIO_STREAM_DEFAULT; - - // For Output (Sink) routes, use SOURCE_TYPE_NA ("NA" = "not applicable") for the - // source argument - - static const audio_source_t SOURCE_TYPE_NA = AUDIO_SOURCE_DEFAULT; - - SessionRoute(audio_session_t session, - audio_stream_type_t streamType, - audio_source_t source, - sp<DeviceDescriptor> deviceDescriptor, - uid_t uid) - : mUid(uid), - mSession(session), - mDeviceDescriptor(deviceDescriptor), - mRefCount(0), - mActivityCount(0), - mChanged(false), - mStreamType(streamType), - mSource(source) - {} - - void log(const char* prefix); - - bool isActive() { - return (mDeviceDescriptor != 0) && (mChanged || (mActivityCount > 0)); - } - - uid_t mUid; - audio_session_t mSession; - sp<DeviceDescriptor> mDeviceDescriptor; - - // "reference" counting - int mRefCount; // +/- on references - int mActivityCount; // +/- on start/stop - bool mChanged; - // for outputs - const audio_stream_type_t mStreamType; - // for inputs - const audio_source_t mSource; - }; - - class SessionRouteMap: public KeyedVector<audio_session_t, sp<SessionRoute>> { - public: - // These constants identify the SessionRoutMap as holding EITHER input routes, - // or output routes. An error will occur if an attempt is made to add a SessionRoute - // object with mStreamType == STREAM_TYPE_NA (i.e. an input SessionRoute) to a - // SessionRoutMap that is marked for output (i.e. mMapType == SESSION_ROUTE_MAP_OUTPUT) - // and similarly for output SessionRoutes and Input SessionRouteMaps. - typedef enum { - MAPTYPE_INPUT = 0, - MAPTYPE_OUTPUT = 1 - } session_route_map_type_t; - - SessionRouteMap(session_route_map_type_t mapType) : - mMapType(mapType) { - } - - bool hasRoute(audio_session_t session); - - void removeRoute(audio_session_t session); - - int incRouteActivity(audio_session_t session); - int decRouteActivity(audio_session_t session); - bool hasRouteChanged(audio_session_t session); // also clears the changed flag - void log(const char* caption); - - // Specify an Output(Sink) route by passing SessionRoute::SOURCE_TYPE_NA in the - // source argument. - // Specify an Input(Source) rout by passing SessionRoute::AUDIO_STREAM_DEFAULT - // in the streamType argument. - void addRoute(audio_session_t session, - audio_stream_type_t streamType, - audio_source_t source, - sp<DeviceDescriptor> deviceDescriptor, - uid_t uid); - - private: - // Used to mark a SessionRoute as for either inputs (mMapType == kSessionRouteMap_Input) - // or outputs (mMapType == kSessionRouteMap_Output) - const session_route_map_type_t mMapType; - }; - // From AudioPolicyManagerObserver virtual const AudioPatchCollection &getAudioPatches() const { |