Loading media/libaudiohal/impl/ConversionHelperHidl.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -99,8 +99,8 @@ void ConversionHelperHidl::parametersToHal( values->setTo(params.toString()); } ConversionHelperHidl::ConversionHelperHidl(const char* className) : mClassName(className) { ConversionHelperHidl::ConversionHelperHidl(std::string_view className) : mClassName(className.begin(), className.end()) { } // static Loading @@ -125,7 +125,7 @@ status_t ConversionHelperHidl::analyzeResult(const Result& result) { } void ConversionHelperHidl::emitError(const char* funcName, const char* description) { ALOGE("%s %p %s: %s (from rpc)", mClassName, this, funcName, description); ALOGE("%s %p %s: %s (from rpc)", mClassName.c_str(), this, funcName, description); } } // namespace android media/libaudiohal/impl/ConversionHelperHidl.h +6 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ class ConversionHelperHidl { static void parametersToHal(const hidl_vec<ParameterValue>& parameters, String8 *values); static void argsFromHal(const Vector<String16>& args, hidl_vec<hidl_string> *hidlArgs); ConversionHelperHidl(const char* className); ConversionHelperHidl(std::string_view className); template<typename R, typename T> status_t processReturn(const char* funcName, const Return<R>& ret, T *retval) { Loading Loading @@ -76,8 +76,12 @@ class ConversionHelperHidl { return ret.isOk() ? analyzeResult(retval) : FAILED_TRANSACTION; } const std::string& getClassName() const { return mClassName; } private: const char* mClassName; const std::string mClassName; static status_t analyzeResult(const CoreResult& result); Loading media/libaudiohal/impl/DeviceHalHidl.cpp +32 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <cutils/properties.h> #include <hwbinder/IPCThreadState.h> #include <media/AudioContainers.h> #include <mediautils/TimeCheck.h> #include <utils/Log.h> #include PATH(android/hardware/audio/FILE_VERSION/IPrimaryDevice.h) Loading @@ -45,13 +46,16 @@ namespace android { using namespace ::android::hardware::audio::common::COMMON_TYPES_CPP_VERSION; using namespace ::android::hardware::audio::CORE_TYPES_CPP_VERSION; #define TIME_CHECK() auto timeCheck = \ mediautils::makeTimeCheckStatsForClassMethod(getClassName(), __func__) DeviceHalHidl::DeviceHalHidl(const sp<::android::hardware::audio::CPP_VERSION::IDevice>& device) : ConversionHelperHidl("Device"), mDevice(device) { : ConversionHelperHidl("DeviceHalHidl"), mDevice(device) { } DeviceHalHidl::DeviceHalHidl( const sp<::android::hardware::audio::CPP_VERSION::IPrimaryDevice>& device) : ConversionHelperHidl("Device"), : ConversionHelperHidl("DeviceHalHidl"), #if MAJOR_VERSION <= 6 || (MAJOR_VERSION == 7 && MINOR_VERSION == 0) mDevice(device), #endif Loading Loading @@ -84,22 +88,26 @@ status_t DeviceHalHidl::getSupportedDevices(uint32_t*) { } status_t DeviceHalHidl::initCheck() { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("initCheck", mDevice->initCheck()); } status_t DeviceHalHidl::setVoiceVolume(float volume) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; if (mPrimaryDevice == 0) return INVALID_OPERATION; return processReturn("setVoiceVolume", mPrimaryDevice->setVoiceVolume(volume)); } status_t DeviceHalHidl::setMasterVolume(float volume) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("setMasterVolume", mDevice->setMasterVolume(volume)); } status_t DeviceHalHidl::getMasterVolume(float *volume) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMasterVolume( Loading @@ -113,17 +121,20 @@ status_t DeviceHalHidl::getMasterVolume(float *volume) { } status_t DeviceHalHidl::setMode(audio_mode_t mode) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; if (mPrimaryDevice == 0) return INVALID_OPERATION; return processReturn("setMode", mPrimaryDevice->setMode(AudioMode(mode))); } status_t DeviceHalHidl::setMicMute(bool state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("setMicMute", mDevice->setMicMute(state)); } status_t DeviceHalHidl::getMicMute(bool *state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMicMute( Loading @@ -137,11 +148,13 @@ status_t DeviceHalHidl::getMicMute(bool *state) { } status_t DeviceHalHidl::setMasterMute(bool state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("setMasterMute", mDevice->setMasterMute(state)); } status_t DeviceHalHidl::getMasterMute(bool *state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMasterMute( Loading @@ -155,6 +168,7 @@ status_t DeviceHalHidl::getMasterMute(bool *state) { } status_t DeviceHalHidl::setParameters(const String8& kvPairs) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; hidl_vec<ParameterValue> hidlParams; status_t status = parametersFromHal(kvPairs, &hidlParams); Loading @@ -165,6 +179,7 @@ status_t DeviceHalHidl::setParameters(const String8& kvPairs) { } status_t DeviceHalHidl::getParameters(const String8& keys, String8 *values) { TIME_CHECK(); values->clear(); if (mDevice == 0) return NO_INIT; hidl_vec<hidl_string> hidlKeys; Loading @@ -185,6 +200,7 @@ status_t DeviceHalHidl::getParameters(const String8& keys, String8 *values) { status_t DeviceHalHidl::getInputBufferSize( const struct audio_config *config, size_t *size) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; AudioConfig hidlConfig; HidlUtils::audioConfigFromHal(*config, true /*isInput*/, &hidlConfig); Loading @@ -207,6 +223,7 @@ status_t DeviceHalHidl::openOutputStream( struct audio_config *config, const char *address, sp<StreamOutHalInterface> *outStream) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; DeviceAddress hidlDevice; if (status_t status = CoreUtils::deviceAddressFromHal(deviceType, address, &hidlDevice); Loading Loading @@ -263,6 +280,7 @@ status_t DeviceHalHidl::openInputStream( audio_devices_t outputDevice, const char *outputDeviceAddress, sp<StreamInHalInterface> *inStream) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; DeviceAddress hidlDevice; if (status_t status = CoreUtils::deviceAddressFromHal(devices, address, &hidlDevice); Loading Loading @@ -326,6 +344,7 @@ status_t DeviceHalHidl::openInputStream( } status_t DeviceHalHidl::supportsAudioPatches(bool *supportsPatches) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("supportsAudioPatches", mDevice->supportsAudioPatches(), supportsPatches); } Loading @@ -336,6 +355,7 @@ status_t DeviceHalHidl::createAudioPatch( unsigned int num_sinks, const struct audio_port_config *sinks, audio_patch_handle_t *patch) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; if (patch == nullptr) return BAD_VALUE; Loading Loading @@ -381,6 +401,7 @@ status_t DeviceHalHidl::createAudioPatch( } status_t DeviceHalHidl::releaseAudioPatch(audio_patch_handle_t patch) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("releaseAudioPatch", mDevice->releaseAudioPatch(patch)); } Loading @@ -403,10 +424,12 @@ status_t DeviceHalHidl::getAudioPortImpl(HalPort *port) { } status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { TIME_CHECK(); return getAudioPortImpl(port); } status_t DeviceHalHidl::getAudioPort(struct audio_port_v7 *port) { TIME_CHECK(); #if MAJOR_VERSION >= 7 return getAudioPortImpl(port); #else Loading @@ -427,6 +450,7 @@ status_t DeviceHalHidl::getAudioPort(struct audio_port_v7 *port) { } status_t DeviceHalHidl::setAudioPortConfig(const struct audio_port_config *config) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; AudioPortConfig hidlConfig; HidlUtils::audioPortConfigFromHal(*config, &hidlConfig); Loading @@ -441,6 +465,7 @@ status_t DeviceHalHidl::getMicrophones( } #elif MAJOR_VERSION >= 4 status_t DeviceHalHidl::getMicrophones(std::vector<media::MicrophoneInfo> *microphonesInfo) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMicrophones( Loading @@ -461,6 +486,7 @@ status_t DeviceHalHidl::getMicrophones(std::vector<media::MicrophoneInfo> *micro #if MAJOR_VERSION >= 6 status_t DeviceHalHidl::addDeviceEffect( audio_port_handle_t device, sp<EffectHalInterface> effect) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("addDeviceEffect", mDevice->addDeviceEffect( static_cast<AudioPortHandle>(device), effect->effectId())); Loading @@ -475,6 +501,7 @@ status_t DeviceHalHidl::addDeviceEffect( #if MAJOR_VERSION >= 6 status_t DeviceHalHidl::removeDeviceEffect( audio_port_handle_t device, sp<EffectHalInterface> effect) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("removeDeviceEffect", mDevice->removeDeviceEffect( static_cast<AudioPortHandle>(device), effect->effectId())); Loading @@ -487,6 +514,7 @@ status_t DeviceHalHidl::removeDeviceEffect( #endif status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool connected) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; #if MAJOR_VERSION == 7 && MINOR_VERSION == 1 if (supportsSetConnectedState7_1) { Loading @@ -513,6 +541,7 @@ status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool } error::Result<audio_hw_sync_t> DeviceHalHidl::getHwAvSync() { TIME_CHECK(); if (mDevice == 0) return NO_INIT; audio_hw_sync_t value; Result result; Loading @@ -525,6 +554,7 @@ error::Result<audio_hw_sync_t> DeviceHalHidl::getHwAvSync() { } status_t DeviceHalHidl::dump(int fd, const Vector<String16>& args) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; native_handle_t* hidlHandle = native_handle_create(1, 0); hidlHandle->data[0] = fd; Loading media/libaudiohal/impl/StreamHalHidl.cpp +61 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <media/AudioParameter.h> #include <mediautils/memory.h> #include <mediautils/SchedulingPolicyService.h> #include <mediautils/TimeCheck.h> #include <utils/Log.h> #include PATH(android/hardware/audio/CORE_TYPES_FILE_VERSION/IStreamOutCallback.h) Loading @@ -45,8 +46,11 @@ using ReadCommand = ::android::hardware::audio::CORE_TYPES_CPP_VERSION::IStreamI using namespace ::android::hardware::audio::common::COMMON_TYPES_CPP_VERSION; using namespace ::android::hardware::audio::CORE_TYPES_CPP_VERSION; StreamHalHidl::StreamHalHidl(IStream *stream) : ConversionHelperHidl("Stream"), #define TIME_CHECK() auto TimeCheck = \ mediautils::makeTimeCheckStatsForClassMethod(getClassName(), __func__) StreamHalHidl::StreamHalHidl(std::string_view className, IStream *stream) : ConversionHelperHidl(className), mStream(stream), mHalThreadPriority(HAL_THREAD_PRIORITY_DEFAULT), mCachedBufferSize(0){ Loading @@ -67,6 +71,7 @@ StreamHalHidl::~StreamHalHidl() { } status_t StreamHalHidl::getBufferSize(size_t *size) { TIME_CHECK(); if (!mStream) return NO_INIT; status_t status = processReturn("getBufferSize", mStream->getBufferSize(), size); if (status == OK) { Loading @@ -76,6 +81,7 @@ status_t StreamHalHidl::getBufferSize(size_t *size) { } status_t StreamHalHidl::getAudioProperties(audio_config_base_t *configBase) { TIME_CHECK(); *configBase = AUDIO_CONFIG_BASE_INITIALIZER; if (!mStream) return NO_INIT; #if MAJOR_VERSION <= 6 Loading Loading @@ -105,6 +111,7 @@ status_t StreamHalHidl::getAudioProperties(audio_config_base_t *configBase) { } status_t StreamHalHidl::setParameters(const String8& kvPairs) { TIME_CHECK(); if (!mStream) return NO_INIT; hidl_vec<ParameterValue> hidlParams; status_t status = parametersFromHal(kvPairs, &hidlParams); Loading @@ -114,6 +121,7 @@ status_t StreamHalHidl::setParameters(const String8& kvPairs) { } status_t StreamHalHidl::getParameters(const String8& keys, String8 *values) { TIME_CHECK(); values->clear(); if (!mStream) return NO_INIT; hidl_vec<hidl_string> hidlKeys; Loading @@ -134,21 +142,25 @@ status_t StreamHalHidl::getParameters(const String8& keys, String8 *values) { } status_t StreamHalHidl::addEffect(sp<EffectHalInterface> effect) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("addEffect", mStream->addEffect(effect->effectId())); } status_t StreamHalHidl::removeEffect(sp<EffectHalInterface> effect) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("removeEffect", mStream->removeEffect(effect->effectId())); } status_t StreamHalHidl::standby() { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("standby", mStream->standby()); } status_t StreamHalHidl::dump(int fd, const Vector<String16>& args) { TIME_CHECK(); if (!mStream) return NO_INIT; native_handle_t* hidlHandle = native_handle_create(1, 0); hidlHandle->data[0] = fd; Loading @@ -173,17 +185,20 @@ status_t StreamHalHidl::dump(int fd, const Vector<String16>& args) { } status_t StreamHalHidl::start() { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("start", mStream->start()); } status_t StreamHalHidl::stop() { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("stop", mStream->stop()); } status_t StreamHalHidl::createMmapBuffer(int32_t minSizeFrames, struct audio_mmap_buffer_info *info) { TIME_CHECK(); Result retval; Return<void> ret = mStream->createMmapBuffer( minSizeFrames, Loading Loading @@ -216,6 +231,7 @@ status_t StreamHalHidl::createMmapBuffer(int32_t minSizeFrames, } status_t StreamHalHidl::getMmapPosition(struct audio_mmap_position *position) { TIME_CHECK(); Result retval; Return<void> ret = mStream->getMmapPosition( [&](Result r, const MmapPosition& hidlPosition) { Loading Loading @@ -244,7 +260,7 @@ status_t StreamHalHidl::getCachedBufferSize(size_t *size) { status_t StreamHalHidl::getHalPid(pid_t *pid) { using ::android::hidl::base::V1_0::DebugInfo; using ::android::hidl::manager::V1_0::IServiceManager; TIME_CHECK(); DebugInfo debugInfo; auto ret = mStream->getDebugInfo([&] (const auto &info) { debugInfo = info; Loading Loading @@ -275,6 +291,7 @@ bool StreamHalHidl::requestHalThreadPriority(pid_t threadPid, pid_t threadId) { status_t StreamHalHidl::legacyCreateAudioPatch(const struct audio_port_config& port, std::optional<audio_source_t> source, audio_devices_t type) { TIME_CHECK(); LOG_ALWAYS_FATAL_IF(port.type != AUDIO_PORT_TYPE_DEVICE, "port type must be device"); unique_malloced_ptr<char> address; if (strcmp(port.ext.device.address, "") != 0) { Loading @@ -293,6 +310,7 @@ status_t StreamHalHidl::legacyCreateAudioPatch(const struct audio_port_config& p } status_t StreamHalHidl::legacyReleaseAudioPatch() { TIME_CHECK(); AudioParameter param; param.addInt(String8(AudioParameter::keyRouting), 0); return setParameters(param.toString()); Loading Loading @@ -352,7 +370,8 @@ struct StreamOutCallback : public IStreamOutCallback { StreamOutHalHidl::StreamOutHalHidl( const sp<::android::hardware::audio::CPP_VERSION::IStreamOut>& stream) : StreamHalHidl(stream.get()), mStream(stream), mWriterClient(0), mEfGroup(nullptr) { : StreamHalHidl("StreamOutHalHidl", stream.get()) , mStream(stream), mWriterClient(0), mEfGroup(nullptr) { } StreamOutHalHidl::~StreamOutHalHidl() { Loading @@ -376,11 +395,13 @@ StreamOutHalHidl::~StreamOutHalHidl() { } status_t StreamOutHalHidl::getFrameSize(size_t *size) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("getFrameSize", mStream->getFrameSize(), size); } status_t StreamOutHalHidl::getLatency(uint32_t *latency) { TIME_CHECK(); if (mStream == 0) return NO_INIT; if (mWriterClient == gettid() && mCommandMQ) { return callWriterThread( Loading @@ -394,12 +415,14 @@ status_t StreamOutHalHidl::getLatency(uint32_t *latency) { } status_t StreamOutHalHidl::setVolume(float left, float right) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("setVolume", mStream->setVolume(left, right)); } #if MAJOR_VERSION == 2 status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) { TIME_CHECK(); if (mStream == 0) return NO_INIT; std::vector<ParameterValue> parameters; String8 halParameters; Loading @@ -410,6 +433,7 @@ status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) } #elif MAJOR_VERSION >= 4 status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("selectPresentation", mStream->selectPresentation(presentationId, programId)); Loading @@ -417,6 +441,7 @@ status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) #endif status_t StreamOutHalHidl::write(const void *buffer, size_t bytes, size_t *written) { TIME_CHECK(); if (mStream == 0) return NO_INIT; *written = 0; Loading Loading @@ -562,6 +587,7 @@ status_t StreamOutHalHidl::prepareForWriting(size_t bufferSize) { } status_t StreamOutHalHidl::getRenderPosition(uint32_t *dspFrames) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getRenderPosition( Loading @@ -575,6 +601,7 @@ status_t StreamOutHalHidl::getRenderPosition(uint32_t *dspFrames) { } status_t StreamOutHalHidl::getNextWriteTimestamp(int64_t *timestamp) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getNextWriteTimestamp( Loading @@ -588,6 +615,7 @@ status_t StreamOutHalHidl::getNextWriteTimestamp(int64_t *timestamp) { } status_t StreamOutHalHidl::setCallback(wp<StreamOutHalInterfaceCallback> callback) { TIME_CHECK(); if (mStream == 0) return NO_INIT; status_t status = processReturn( "setCallback", mStream->setCallback(new StreamOutCallback(this))); Loading @@ -598,6 +626,7 @@ status_t StreamOutHalHidl::setCallback(wp<StreamOutHalInterfaceCallback> callbac } status_t StreamOutHalHidl::supportsPauseAndResume(bool *supportsPause, bool *supportsResume) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Return<void> ret = mStream->supportsPauseAndResume( [&](bool p, bool r) { Loading @@ -608,32 +637,38 @@ status_t StreamOutHalHidl::supportsPauseAndResume(bool *supportsPause, bool *sup } status_t StreamOutHalHidl::pause() { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("pause", mStream->pause()); } status_t StreamOutHalHidl::resume() { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("pause", mStream->resume()); } status_t StreamOutHalHidl::supportsDrain(bool *supportsDrain) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("supportsDrain", mStream->supportsDrain(), supportsDrain); } status_t StreamOutHalHidl::drain(bool earlyNotify) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "drain", mStream->drain(earlyNotify ? AudioDrain::EARLY_NOTIFY : AudioDrain::ALL)); } status_t StreamOutHalHidl::flush() { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("pause", mStream->flush()); } status_t StreamOutHalHidl::getPresentationPosition(uint64_t *frames, struct timespec *timestamp) { TIME_CHECK(); if (mStream == 0) return NO_INIT; if (mWriterClient == gettid() && mCommandMQ) { return callWriterThread( Loading Loading @@ -667,6 +702,7 @@ status_t StreamOutHalHidl::updateSourceMetadata( #elif MAJOR_VERSION >= 4 status_t StreamOutHalHidl::updateSourceMetadata( const StreamOutHalInterface::SourceMetadata& sourceMetadata) { TIME_CHECK(); #if MAJOR_VERSION == 4 ::android::hardware::audio::CORE_TYPES_CPP_VERSION::SourceMetadata hidlMetadata; #else Loading Loading @@ -717,6 +753,7 @@ status_t StreamOutHalHidl::setEventCallback( #else status_t StreamOutHalHidl::getDualMonoMode(audio_dual_mono_mode_t* mode) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getDualMonoMode( Loading @@ -730,12 +767,14 @@ status_t StreamOutHalHidl::getDualMonoMode(audio_dual_mono_mode_t* mode) { } status_t StreamOutHalHidl::setDualMonoMode(audio_dual_mono_mode_t mode) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setDualMonoMode", mStream->setDualMonoMode(static_cast<DualMonoMode>(mode))); } status_t StreamOutHalHidl::getAudioDescriptionMixLevel(float* leveldB) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getAudioDescriptionMixLevel( Loading @@ -749,12 +788,14 @@ status_t StreamOutHalHidl::getAudioDescriptionMixLevel(float* leveldB) { } status_t StreamOutHalHidl::setAudioDescriptionMixLevel(float leveldB) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setAudioDescriptionMixLevel", mStream->setAudioDescriptionMixLevel(leveldB)); } status_t StreamOutHalHidl::getPlaybackRateParameters(audio_playback_rate_t* playbackRate) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getPlaybackRateParameters( Loading @@ -775,6 +816,7 @@ status_t StreamOutHalHidl::getPlaybackRateParameters(audio_playback_rate_t* play } status_t StreamOutHalHidl::setPlaybackRateParameters(const audio_playback_rate_t& playbackRate) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setPlaybackRateParameters", mStream->setPlaybackRateParameters( Loading Loading @@ -809,6 +851,7 @@ struct StreamOutEventCallback : public IStreamOutEventCallback { status_t StreamOutHalHidl::setEventCallback( const sp<StreamOutHalInterfaceEventCallback>& callback) { TIME_CHECK(); if (mStream == nullptr) return NO_INIT; mEventCallback = callback; status_t status = processReturn( Loading @@ -823,12 +866,14 @@ status_t StreamOutHalHidl::setEventCallback( using hardware::audio::V7_1::LatencyMode; status_t StreamOutHalHidl::setLatencyMode(audio_latency_mode_t mode) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setLatencyMode", mStream->setLatencyMode(static_cast<LatencyMode>(mode))); }; status_t StreamOutHalHidl::getRecommendedLatencyModes(std::vector<audio_latency_mode_t> *modes) { TIME_CHECK(); if (!mStream) return NO_INIT; Result retval; Return<void> ret = mStream->getRecommendedLatencyModes( Loading Loading @@ -869,6 +914,7 @@ struct StreamOutLatencyModeCallback : public IStreamOutLatencyModeCallback { status_t StreamOutHalHidl::setLatencyModeCallback( const sp<StreamOutHalInterfaceLatencyModeCallback>& callback) { TIME_CHECK(); if (mStream == nullptr) return NO_INIT; mLatencyModeCallback = callback; Loading Loading @@ -940,7 +986,8 @@ status_t StreamOutHalHidl::exit() { StreamInHalHidl::StreamInHalHidl( const sp<::android::hardware::audio::CORE_TYPES_CPP_VERSION::IStreamIn>& stream) : StreamHalHidl(stream.get()), mStream(stream), mReaderClient(0), mEfGroup(nullptr) { : StreamHalHidl("StreamInHalHidl", stream.get()) , mStream(stream), mReaderClient(0), mEfGroup(nullptr) { } StreamInHalHidl::~StreamInHalHidl() { Loading @@ -953,16 +1000,19 @@ StreamInHalHidl::~StreamInHalHidl() { } status_t StreamInHalHidl::getFrameSize(size_t *size) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("getFrameSize", mStream->getFrameSize(), size); } status_t StreamInHalHidl::setGain(float gain) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("setGain", mStream->setGain(gain)); } status_t StreamInHalHidl::read(void *buffer, size_t bytes, size_t *read) { TIME_CHECK(); if (mStream == 0) return NO_INIT; *read = 0; Loading Loading @@ -1090,11 +1140,13 @@ status_t StreamInHalHidl::prepareForReading(size_t bufferSize) { } status_t StreamInHalHidl::getInputFramesLost(uint32_t *framesLost) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("getInputFramesLost", mStream->getInputFramesLost(), framesLost); } status_t StreamInHalHidl::getCapturePosition(int64_t *frames, int64_t *time) { TIME_CHECK(); if (mStream == 0) return NO_INIT; if (mReaderClient == gettid() && mCommandMQ) { ReadParameters params; Loading Loading @@ -1134,6 +1186,7 @@ status_t StreamInHalHidl::updateSinkMetadata( #elif MAJOR_VERSION >= 4 status_t StreamInHalHidl::getActiveMicrophones( std::vector<media::MicrophoneInfo> *microphonesInfo) { TIME_CHECK(); if (!mStream) return NO_INIT; Result retval; Return<void> ret = mStream->getActiveMicrophones( Loading @@ -1152,6 +1205,7 @@ status_t StreamInHalHidl::getActiveMicrophones( status_t StreamInHalHidl::updateSinkMetadata(const StreamInHalInterface::SinkMetadata& sinkMetadata) { TIME_CHECK(); #if MAJOR_VERSION == 4 ::android::hardware::audio::CORE_TYPES_CPP_VERSION::SinkMetadata hidlMetadata; #else Loading Loading @@ -1179,12 +1233,14 @@ status_t StreamInHalHidl::setPreferredMicrophoneFieldDimension(float zoom __unus } #else status_t StreamInHalHidl::setPreferredMicrophoneDirection(audio_microphone_direction_t direction) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("setPreferredMicrophoneDirection", mStream->setMicrophoneDirection(static_cast<MicrophoneDirection>(direction))); } status_t StreamInHalHidl::setPreferredMicrophoneFieldDimension(float zoom) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("setPreferredMicrophoneFieldDimension", mStream->setMicrophoneFieldDimension(zoom)); Loading media/libaudiohal/impl/StreamHalHidl.h +1 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ class StreamHalHidl : public virtual StreamHalInterface, public ConversionHelper protected: // Subclasses can not be constructed directly by clients. explicit StreamHalHidl(IStream *stream); StreamHalHidl(std::string_view className, IStream *stream); ~StreamHalHidl() override; Loading Loading
media/libaudiohal/impl/ConversionHelperHidl.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -99,8 +99,8 @@ void ConversionHelperHidl::parametersToHal( values->setTo(params.toString()); } ConversionHelperHidl::ConversionHelperHidl(const char* className) : mClassName(className) { ConversionHelperHidl::ConversionHelperHidl(std::string_view className) : mClassName(className.begin(), className.end()) { } // static Loading @@ -125,7 +125,7 @@ status_t ConversionHelperHidl::analyzeResult(const Result& result) { } void ConversionHelperHidl::emitError(const char* funcName, const char* description) { ALOGE("%s %p %s: %s (from rpc)", mClassName, this, funcName, description); ALOGE("%s %p %s: %s (from rpc)", mClassName.c_str(), this, funcName, description); } } // namespace android
media/libaudiohal/impl/ConversionHelperHidl.h +6 −2 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ class ConversionHelperHidl { static void parametersToHal(const hidl_vec<ParameterValue>& parameters, String8 *values); static void argsFromHal(const Vector<String16>& args, hidl_vec<hidl_string> *hidlArgs); ConversionHelperHidl(const char* className); ConversionHelperHidl(std::string_view className); template<typename R, typename T> status_t processReturn(const char* funcName, const Return<R>& ret, T *retval) { Loading Loading @@ -76,8 +76,12 @@ class ConversionHelperHidl { return ret.isOk() ? analyzeResult(retval) : FAILED_TRANSACTION; } const std::string& getClassName() const { return mClassName; } private: const char* mClassName; const std::string mClassName; static status_t analyzeResult(const CoreResult& result); Loading
media/libaudiohal/impl/DeviceHalHidl.cpp +32 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <cutils/properties.h> #include <hwbinder/IPCThreadState.h> #include <media/AudioContainers.h> #include <mediautils/TimeCheck.h> #include <utils/Log.h> #include PATH(android/hardware/audio/FILE_VERSION/IPrimaryDevice.h) Loading @@ -45,13 +46,16 @@ namespace android { using namespace ::android::hardware::audio::common::COMMON_TYPES_CPP_VERSION; using namespace ::android::hardware::audio::CORE_TYPES_CPP_VERSION; #define TIME_CHECK() auto timeCheck = \ mediautils::makeTimeCheckStatsForClassMethod(getClassName(), __func__) DeviceHalHidl::DeviceHalHidl(const sp<::android::hardware::audio::CPP_VERSION::IDevice>& device) : ConversionHelperHidl("Device"), mDevice(device) { : ConversionHelperHidl("DeviceHalHidl"), mDevice(device) { } DeviceHalHidl::DeviceHalHidl( const sp<::android::hardware::audio::CPP_VERSION::IPrimaryDevice>& device) : ConversionHelperHidl("Device"), : ConversionHelperHidl("DeviceHalHidl"), #if MAJOR_VERSION <= 6 || (MAJOR_VERSION == 7 && MINOR_VERSION == 0) mDevice(device), #endif Loading Loading @@ -84,22 +88,26 @@ status_t DeviceHalHidl::getSupportedDevices(uint32_t*) { } status_t DeviceHalHidl::initCheck() { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("initCheck", mDevice->initCheck()); } status_t DeviceHalHidl::setVoiceVolume(float volume) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; if (mPrimaryDevice == 0) return INVALID_OPERATION; return processReturn("setVoiceVolume", mPrimaryDevice->setVoiceVolume(volume)); } status_t DeviceHalHidl::setMasterVolume(float volume) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("setMasterVolume", mDevice->setMasterVolume(volume)); } status_t DeviceHalHidl::getMasterVolume(float *volume) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMasterVolume( Loading @@ -113,17 +121,20 @@ status_t DeviceHalHidl::getMasterVolume(float *volume) { } status_t DeviceHalHidl::setMode(audio_mode_t mode) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; if (mPrimaryDevice == 0) return INVALID_OPERATION; return processReturn("setMode", mPrimaryDevice->setMode(AudioMode(mode))); } status_t DeviceHalHidl::setMicMute(bool state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("setMicMute", mDevice->setMicMute(state)); } status_t DeviceHalHidl::getMicMute(bool *state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMicMute( Loading @@ -137,11 +148,13 @@ status_t DeviceHalHidl::getMicMute(bool *state) { } status_t DeviceHalHidl::setMasterMute(bool state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("setMasterMute", mDevice->setMasterMute(state)); } status_t DeviceHalHidl::getMasterMute(bool *state) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMasterMute( Loading @@ -155,6 +168,7 @@ status_t DeviceHalHidl::getMasterMute(bool *state) { } status_t DeviceHalHidl::setParameters(const String8& kvPairs) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; hidl_vec<ParameterValue> hidlParams; status_t status = parametersFromHal(kvPairs, &hidlParams); Loading @@ -165,6 +179,7 @@ status_t DeviceHalHidl::setParameters(const String8& kvPairs) { } status_t DeviceHalHidl::getParameters(const String8& keys, String8 *values) { TIME_CHECK(); values->clear(); if (mDevice == 0) return NO_INIT; hidl_vec<hidl_string> hidlKeys; Loading @@ -185,6 +200,7 @@ status_t DeviceHalHidl::getParameters(const String8& keys, String8 *values) { status_t DeviceHalHidl::getInputBufferSize( const struct audio_config *config, size_t *size) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; AudioConfig hidlConfig; HidlUtils::audioConfigFromHal(*config, true /*isInput*/, &hidlConfig); Loading @@ -207,6 +223,7 @@ status_t DeviceHalHidl::openOutputStream( struct audio_config *config, const char *address, sp<StreamOutHalInterface> *outStream) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; DeviceAddress hidlDevice; if (status_t status = CoreUtils::deviceAddressFromHal(deviceType, address, &hidlDevice); Loading Loading @@ -263,6 +280,7 @@ status_t DeviceHalHidl::openInputStream( audio_devices_t outputDevice, const char *outputDeviceAddress, sp<StreamInHalInterface> *inStream) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; DeviceAddress hidlDevice; if (status_t status = CoreUtils::deviceAddressFromHal(devices, address, &hidlDevice); Loading Loading @@ -326,6 +344,7 @@ status_t DeviceHalHidl::openInputStream( } status_t DeviceHalHidl::supportsAudioPatches(bool *supportsPatches) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("supportsAudioPatches", mDevice->supportsAudioPatches(), supportsPatches); } Loading @@ -336,6 +355,7 @@ status_t DeviceHalHidl::createAudioPatch( unsigned int num_sinks, const struct audio_port_config *sinks, audio_patch_handle_t *patch) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; if (patch == nullptr) return BAD_VALUE; Loading Loading @@ -381,6 +401,7 @@ status_t DeviceHalHidl::createAudioPatch( } status_t DeviceHalHidl::releaseAudioPatch(audio_patch_handle_t patch) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("releaseAudioPatch", mDevice->releaseAudioPatch(patch)); } Loading @@ -403,10 +424,12 @@ status_t DeviceHalHidl::getAudioPortImpl(HalPort *port) { } status_t DeviceHalHidl::getAudioPort(struct audio_port *port) { TIME_CHECK(); return getAudioPortImpl(port); } status_t DeviceHalHidl::getAudioPort(struct audio_port_v7 *port) { TIME_CHECK(); #if MAJOR_VERSION >= 7 return getAudioPortImpl(port); #else Loading @@ -427,6 +450,7 @@ status_t DeviceHalHidl::getAudioPort(struct audio_port_v7 *port) { } status_t DeviceHalHidl::setAudioPortConfig(const struct audio_port_config *config) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; AudioPortConfig hidlConfig; HidlUtils::audioPortConfigFromHal(*config, &hidlConfig); Loading @@ -441,6 +465,7 @@ status_t DeviceHalHidl::getMicrophones( } #elif MAJOR_VERSION >= 4 status_t DeviceHalHidl::getMicrophones(std::vector<media::MicrophoneInfo> *microphonesInfo) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; Result retval; Return<void> ret = mDevice->getMicrophones( Loading @@ -461,6 +486,7 @@ status_t DeviceHalHidl::getMicrophones(std::vector<media::MicrophoneInfo> *micro #if MAJOR_VERSION >= 6 status_t DeviceHalHidl::addDeviceEffect( audio_port_handle_t device, sp<EffectHalInterface> effect) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("addDeviceEffect", mDevice->addDeviceEffect( static_cast<AudioPortHandle>(device), effect->effectId())); Loading @@ -475,6 +501,7 @@ status_t DeviceHalHidl::addDeviceEffect( #if MAJOR_VERSION >= 6 status_t DeviceHalHidl::removeDeviceEffect( audio_port_handle_t device, sp<EffectHalInterface> effect) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; return processReturn("removeDeviceEffect", mDevice->removeDeviceEffect( static_cast<AudioPortHandle>(device), effect->effectId())); Loading @@ -487,6 +514,7 @@ status_t DeviceHalHidl::removeDeviceEffect( #endif status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool connected) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; #if MAJOR_VERSION == 7 && MINOR_VERSION == 1 if (supportsSetConnectedState7_1) { Loading @@ -513,6 +541,7 @@ status_t DeviceHalHidl::setConnectedState(const struct audio_port_v7 *port, bool } error::Result<audio_hw_sync_t> DeviceHalHidl::getHwAvSync() { TIME_CHECK(); if (mDevice == 0) return NO_INIT; audio_hw_sync_t value; Result result; Loading @@ -525,6 +554,7 @@ error::Result<audio_hw_sync_t> DeviceHalHidl::getHwAvSync() { } status_t DeviceHalHidl::dump(int fd, const Vector<String16>& args) { TIME_CHECK(); if (mDevice == 0) return NO_INIT; native_handle_t* hidlHandle = native_handle_create(1, 0); hidlHandle->data[0] = fd; Loading
media/libaudiohal/impl/StreamHalHidl.cpp +61 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <media/AudioParameter.h> #include <mediautils/memory.h> #include <mediautils/SchedulingPolicyService.h> #include <mediautils/TimeCheck.h> #include <utils/Log.h> #include PATH(android/hardware/audio/CORE_TYPES_FILE_VERSION/IStreamOutCallback.h) Loading @@ -45,8 +46,11 @@ using ReadCommand = ::android::hardware::audio::CORE_TYPES_CPP_VERSION::IStreamI using namespace ::android::hardware::audio::common::COMMON_TYPES_CPP_VERSION; using namespace ::android::hardware::audio::CORE_TYPES_CPP_VERSION; StreamHalHidl::StreamHalHidl(IStream *stream) : ConversionHelperHidl("Stream"), #define TIME_CHECK() auto TimeCheck = \ mediautils::makeTimeCheckStatsForClassMethod(getClassName(), __func__) StreamHalHidl::StreamHalHidl(std::string_view className, IStream *stream) : ConversionHelperHidl(className), mStream(stream), mHalThreadPriority(HAL_THREAD_PRIORITY_DEFAULT), mCachedBufferSize(0){ Loading @@ -67,6 +71,7 @@ StreamHalHidl::~StreamHalHidl() { } status_t StreamHalHidl::getBufferSize(size_t *size) { TIME_CHECK(); if (!mStream) return NO_INIT; status_t status = processReturn("getBufferSize", mStream->getBufferSize(), size); if (status == OK) { Loading @@ -76,6 +81,7 @@ status_t StreamHalHidl::getBufferSize(size_t *size) { } status_t StreamHalHidl::getAudioProperties(audio_config_base_t *configBase) { TIME_CHECK(); *configBase = AUDIO_CONFIG_BASE_INITIALIZER; if (!mStream) return NO_INIT; #if MAJOR_VERSION <= 6 Loading Loading @@ -105,6 +111,7 @@ status_t StreamHalHidl::getAudioProperties(audio_config_base_t *configBase) { } status_t StreamHalHidl::setParameters(const String8& kvPairs) { TIME_CHECK(); if (!mStream) return NO_INIT; hidl_vec<ParameterValue> hidlParams; status_t status = parametersFromHal(kvPairs, &hidlParams); Loading @@ -114,6 +121,7 @@ status_t StreamHalHidl::setParameters(const String8& kvPairs) { } status_t StreamHalHidl::getParameters(const String8& keys, String8 *values) { TIME_CHECK(); values->clear(); if (!mStream) return NO_INIT; hidl_vec<hidl_string> hidlKeys; Loading @@ -134,21 +142,25 @@ status_t StreamHalHidl::getParameters(const String8& keys, String8 *values) { } status_t StreamHalHidl::addEffect(sp<EffectHalInterface> effect) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("addEffect", mStream->addEffect(effect->effectId())); } status_t StreamHalHidl::removeEffect(sp<EffectHalInterface> effect) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("removeEffect", mStream->removeEffect(effect->effectId())); } status_t StreamHalHidl::standby() { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("standby", mStream->standby()); } status_t StreamHalHidl::dump(int fd, const Vector<String16>& args) { TIME_CHECK(); if (!mStream) return NO_INIT; native_handle_t* hidlHandle = native_handle_create(1, 0); hidlHandle->data[0] = fd; Loading @@ -173,17 +185,20 @@ status_t StreamHalHidl::dump(int fd, const Vector<String16>& args) { } status_t StreamHalHidl::start() { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("start", mStream->start()); } status_t StreamHalHidl::stop() { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("stop", mStream->stop()); } status_t StreamHalHidl::createMmapBuffer(int32_t minSizeFrames, struct audio_mmap_buffer_info *info) { TIME_CHECK(); Result retval; Return<void> ret = mStream->createMmapBuffer( minSizeFrames, Loading Loading @@ -216,6 +231,7 @@ status_t StreamHalHidl::createMmapBuffer(int32_t minSizeFrames, } status_t StreamHalHidl::getMmapPosition(struct audio_mmap_position *position) { TIME_CHECK(); Result retval; Return<void> ret = mStream->getMmapPosition( [&](Result r, const MmapPosition& hidlPosition) { Loading Loading @@ -244,7 +260,7 @@ status_t StreamHalHidl::getCachedBufferSize(size_t *size) { status_t StreamHalHidl::getHalPid(pid_t *pid) { using ::android::hidl::base::V1_0::DebugInfo; using ::android::hidl::manager::V1_0::IServiceManager; TIME_CHECK(); DebugInfo debugInfo; auto ret = mStream->getDebugInfo([&] (const auto &info) { debugInfo = info; Loading Loading @@ -275,6 +291,7 @@ bool StreamHalHidl::requestHalThreadPriority(pid_t threadPid, pid_t threadId) { status_t StreamHalHidl::legacyCreateAudioPatch(const struct audio_port_config& port, std::optional<audio_source_t> source, audio_devices_t type) { TIME_CHECK(); LOG_ALWAYS_FATAL_IF(port.type != AUDIO_PORT_TYPE_DEVICE, "port type must be device"); unique_malloced_ptr<char> address; if (strcmp(port.ext.device.address, "") != 0) { Loading @@ -293,6 +310,7 @@ status_t StreamHalHidl::legacyCreateAudioPatch(const struct audio_port_config& p } status_t StreamHalHidl::legacyReleaseAudioPatch() { TIME_CHECK(); AudioParameter param; param.addInt(String8(AudioParameter::keyRouting), 0); return setParameters(param.toString()); Loading Loading @@ -352,7 +370,8 @@ struct StreamOutCallback : public IStreamOutCallback { StreamOutHalHidl::StreamOutHalHidl( const sp<::android::hardware::audio::CPP_VERSION::IStreamOut>& stream) : StreamHalHidl(stream.get()), mStream(stream), mWriterClient(0), mEfGroup(nullptr) { : StreamHalHidl("StreamOutHalHidl", stream.get()) , mStream(stream), mWriterClient(0), mEfGroup(nullptr) { } StreamOutHalHidl::~StreamOutHalHidl() { Loading @@ -376,11 +395,13 @@ StreamOutHalHidl::~StreamOutHalHidl() { } status_t StreamOutHalHidl::getFrameSize(size_t *size) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("getFrameSize", mStream->getFrameSize(), size); } status_t StreamOutHalHidl::getLatency(uint32_t *latency) { TIME_CHECK(); if (mStream == 0) return NO_INIT; if (mWriterClient == gettid() && mCommandMQ) { return callWriterThread( Loading @@ -394,12 +415,14 @@ status_t StreamOutHalHidl::getLatency(uint32_t *latency) { } status_t StreamOutHalHidl::setVolume(float left, float right) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("setVolume", mStream->setVolume(left, right)); } #if MAJOR_VERSION == 2 status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) { TIME_CHECK(); if (mStream == 0) return NO_INIT; std::vector<ParameterValue> parameters; String8 halParameters; Loading @@ -410,6 +433,7 @@ status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) } #elif MAJOR_VERSION >= 4 status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("selectPresentation", mStream->selectPresentation(presentationId, programId)); Loading @@ -417,6 +441,7 @@ status_t StreamOutHalHidl::selectPresentation(int presentationId, int programId) #endif status_t StreamOutHalHidl::write(const void *buffer, size_t bytes, size_t *written) { TIME_CHECK(); if (mStream == 0) return NO_INIT; *written = 0; Loading Loading @@ -562,6 +587,7 @@ status_t StreamOutHalHidl::prepareForWriting(size_t bufferSize) { } status_t StreamOutHalHidl::getRenderPosition(uint32_t *dspFrames) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getRenderPosition( Loading @@ -575,6 +601,7 @@ status_t StreamOutHalHidl::getRenderPosition(uint32_t *dspFrames) { } status_t StreamOutHalHidl::getNextWriteTimestamp(int64_t *timestamp) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getNextWriteTimestamp( Loading @@ -588,6 +615,7 @@ status_t StreamOutHalHidl::getNextWriteTimestamp(int64_t *timestamp) { } status_t StreamOutHalHidl::setCallback(wp<StreamOutHalInterfaceCallback> callback) { TIME_CHECK(); if (mStream == 0) return NO_INIT; status_t status = processReturn( "setCallback", mStream->setCallback(new StreamOutCallback(this))); Loading @@ -598,6 +626,7 @@ status_t StreamOutHalHidl::setCallback(wp<StreamOutHalInterfaceCallback> callbac } status_t StreamOutHalHidl::supportsPauseAndResume(bool *supportsPause, bool *supportsResume) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Return<void> ret = mStream->supportsPauseAndResume( [&](bool p, bool r) { Loading @@ -608,32 +637,38 @@ status_t StreamOutHalHidl::supportsPauseAndResume(bool *supportsPause, bool *sup } status_t StreamOutHalHidl::pause() { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("pause", mStream->pause()); } status_t StreamOutHalHidl::resume() { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("pause", mStream->resume()); } status_t StreamOutHalHidl::supportsDrain(bool *supportsDrain) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("supportsDrain", mStream->supportsDrain(), supportsDrain); } status_t StreamOutHalHidl::drain(bool earlyNotify) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "drain", mStream->drain(earlyNotify ? AudioDrain::EARLY_NOTIFY : AudioDrain::ALL)); } status_t StreamOutHalHidl::flush() { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("pause", mStream->flush()); } status_t StreamOutHalHidl::getPresentationPosition(uint64_t *frames, struct timespec *timestamp) { TIME_CHECK(); if (mStream == 0) return NO_INIT; if (mWriterClient == gettid() && mCommandMQ) { return callWriterThread( Loading Loading @@ -667,6 +702,7 @@ status_t StreamOutHalHidl::updateSourceMetadata( #elif MAJOR_VERSION >= 4 status_t StreamOutHalHidl::updateSourceMetadata( const StreamOutHalInterface::SourceMetadata& sourceMetadata) { TIME_CHECK(); #if MAJOR_VERSION == 4 ::android::hardware::audio::CORE_TYPES_CPP_VERSION::SourceMetadata hidlMetadata; #else Loading Loading @@ -717,6 +753,7 @@ status_t StreamOutHalHidl::setEventCallback( #else status_t StreamOutHalHidl::getDualMonoMode(audio_dual_mono_mode_t* mode) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getDualMonoMode( Loading @@ -730,12 +767,14 @@ status_t StreamOutHalHidl::getDualMonoMode(audio_dual_mono_mode_t* mode) { } status_t StreamOutHalHidl::setDualMonoMode(audio_dual_mono_mode_t mode) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setDualMonoMode", mStream->setDualMonoMode(static_cast<DualMonoMode>(mode))); } status_t StreamOutHalHidl::getAudioDescriptionMixLevel(float* leveldB) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getAudioDescriptionMixLevel( Loading @@ -749,12 +788,14 @@ status_t StreamOutHalHidl::getAudioDescriptionMixLevel(float* leveldB) { } status_t StreamOutHalHidl::setAudioDescriptionMixLevel(float leveldB) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setAudioDescriptionMixLevel", mStream->setAudioDescriptionMixLevel(leveldB)); } status_t StreamOutHalHidl::getPlaybackRateParameters(audio_playback_rate_t* playbackRate) { TIME_CHECK(); if (mStream == 0) return NO_INIT; Result retval; Return<void> ret = mStream->getPlaybackRateParameters( Loading @@ -775,6 +816,7 @@ status_t StreamOutHalHidl::getPlaybackRateParameters(audio_playback_rate_t* play } status_t StreamOutHalHidl::setPlaybackRateParameters(const audio_playback_rate_t& playbackRate) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setPlaybackRateParameters", mStream->setPlaybackRateParameters( Loading Loading @@ -809,6 +851,7 @@ struct StreamOutEventCallback : public IStreamOutEventCallback { status_t StreamOutHalHidl::setEventCallback( const sp<StreamOutHalInterfaceEventCallback>& callback) { TIME_CHECK(); if (mStream == nullptr) return NO_INIT; mEventCallback = callback; status_t status = processReturn( Loading @@ -823,12 +866,14 @@ status_t StreamOutHalHidl::setEventCallback( using hardware::audio::V7_1::LatencyMode; status_t StreamOutHalHidl::setLatencyMode(audio_latency_mode_t mode) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn( "setLatencyMode", mStream->setLatencyMode(static_cast<LatencyMode>(mode))); }; status_t StreamOutHalHidl::getRecommendedLatencyModes(std::vector<audio_latency_mode_t> *modes) { TIME_CHECK(); if (!mStream) return NO_INIT; Result retval; Return<void> ret = mStream->getRecommendedLatencyModes( Loading Loading @@ -869,6 +914,7 @@ struct StreamOutLatencyModeCallback : public IStreamOutLatencyModeCallback { status_t StreamOutHalHidl::setLatencyModeCallback( const sp<StreamOutHalInterfaceLatencyModeCallback>& callback) { TIME_CHECK(); if (mStream == nullptr) return NO_INIT; mLatencyModeCallback = callback; Loading Loading @@ -940,7 +986,8 @@ status_t StreamOutHalHidl::exit() { StreamInHalHidl::StreamInHalHidl( const sp<::android::hardware::audio::CORE_TYPES_CPP_VERSION::IStreamIn>& stream) : StreamHalHidl(stream.get()), mStream(stream), mReaderClient(0), mEfGroup(nullptr) { : StreamHalHidl("StreamInHalHidl", stream.get()) , mStream(stream), mReaderClient(0), mEfGroup(nullptr) { } StreamInHalHidl::~StreamInHalHidl() { Loading @@ -953,16 +1000,19 @@ StreamInHalHidl::~StreamInHalHidl() { } status_t StreamInHalHidl::getFrameSize(size_t *size) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("getFrameSize", mStream->getFrameSize(), size); } status_t StreamInHalHidl::setGain(float gain) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("setGain", mStream->setGain(gain)); } status_t StreamInHalHidl::read(void *buffer, size_t bytes, size_t *read) { TIME_CHECK(); if (mStream == 0) return NO_INIT; *read = 0; Loading Loading @@ -1090,11 +1140,13 @@ status_t StreamInHalHidl::prepareForReading(size_t bufferSize) { } status_t StreamInHalHidl::getInputFramesLost(uint32_t *framesLost) { TIME_CHECK(); if (mStream == 0) return NO_INIT; return processReturn("getInputFramesLost", mStream->getInputFramesLost(), framesLost); } status_t StreamInHalHidl::getCapturePosition(int64_t *frames, int64_t *time) { TIME_CHECK(); if (mStream == 0) return NO_INIT; if (mReaderClient == gettid() && mCommandMQ) { ReadParameters params; Loading Loading @@ -1134,6 +1186,7 @@ status_t StreamInHalHidl::updateSinkMetadata( #elif MAJOR_VERSION >= 4 status_t StreamInHalHidl::getActiveMicrophones( std::vector<media::MicrophoneInfo> *microphonesInfo) { TIME_CHECK(); if (!mStream) return NO_INIT; Result retval; Return<void> ret = mStream->getActiveMicrophones( Loading @@ -1152,6 +1205,7 @@ status_t StreamInHalHidl::getActiveMicrophones( status_t StreamInHalHidl::updateSinkMetadata(const StreamInHalInterface::SinkMetadata& sinkMetadata) { TIME_CHECK(); #if MAJOR_VERSION == 4 ::android::hardware::audio::CORE_TYPES_CPP_VERSION::SinkMetadata hidlMetadata; #else Loading Loading @@ -1179,12 +1233,14 @@ status_t StreamInHalHidl::setPreferredMicrophoneFieldDimension(float zoom __unus } #else status_t StreamInHalHidl::setPreferredMicrophoneDirection(audio_microphone_direction_t direction) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("setPreferredMicrophoneDirection", mStream->setMicrophoneDirection(static_cast<MicrophoneDirection>(direction))); } status_t StreamInHalHidl::setPreferredMicrophoneFieldDimension(float zoom) { TIME_CHECK(); if (!mStream) return NO_INIT; return processReturn("setPreferredMicrophoneFieldDimension", mStream->setMicrophoneFieldDimension(zoom)); Loading
media/libaudiohal/impl/StreamHalHidl.h +1 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ class StreamHalHidl : public virtual StreamHalInterface, public ConversionHelper protected: // Subclasses can not be constructed directly by clients. explicit StreamHalHidl(IStream *stream); StreamHalHidl(std::string_view className, IStream *stream); ~StreamHalHidl() override; Loading