diff --git a/media/libaudioclient/include/media/AudioPolicy.h b/media/libaudioclient/include/media/AudioPolicy.h index 786fb9ab34..bf8d62795c 100644 --- a/media/libaudioclient/include/media/AudioPolicy.h +++ b/media/libaudioclient/include/media/AudioPolicy.h @@ -49,8 +49,12 @@ namespace android { #define MIX_STATE_IDLE 0 #define MIX_STATE_MIXING 1 +/** Control to which device some audio is rendered */ #define MIX_ROUTE_FLAG_RENDER 0x1 +/** Loop back some audio instead of rendering it */ #define MIX_ROUTE_FLAG_LOOP_BACK (0x1 << 1) +/** Loop back some audio while it is rendered */ +#define MIX_ROUTE_FLAG_LOOP_BACK_AND_RENDER (MIX_ROUTE_FLAG_RENDER | MIX_ROUTE_FLAG_LOOP_BACK) #define MIX_ROUTE_FLAG_ALL (MIX_ROUTE_FLAG_RENDER | MIX_ROUTE_FLAG_LOOP_BACK) #define MAX_MIXES_PER_POLICY 10 @@ -119,6 +123,11 @@ public: #define RECORD_CONFIG_EVENT_START 1 #define RECORD_CONFIG_EVENT_STOP 0 +static inline bool is_mix_loopback_render(uint32_t routeFlags) { + return (routeFlags & MIX_ROUTE_FLAG_LOOP_BACK_AND_RENDER) + == MIX_ROUTE_FLAG_LOOP_BACK_AND_RENDER; +} + }; // namespace android #endif // ANDROID_AUDIO_POLICY_H diff --git a/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp b/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp index 6f48eae9c1..7c76d8a35b 100644 --- a/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp +++ b/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp @@ -45,6 +45,7 @@ template <> const RouteFlagTypeConverter::Table RouteFlagTypeConverter::mTable[] = { MAKE_STRING_FROM_ENUM(MIX_ROUTE_FLAG_RENDER), MAKE_STRING_FROM_ENUM(MIX_ROUTE_FLAG_LOOP_BACK), + MAKE_STRING_FROM_ENUM(MIX_ROUTE_FLAG_LOOP_BACK_AND_RENDER), MAKE_STRING_FROM_ENUM(MIX_ROUTE_FLAG_ALL), TERMINATOR };