diff --git a/audio/aidl/default/include/core-impl/Stream.h b/audio/aidl/default/include/core-impl/Stream.h index 65680df664..476f1ff30d 100644 --- a/audio/aidl/default/include/core-impl/Stream.h +++ b/audio/aidl/default/include/core-impl/Stream.h @@ -155,20 +155,19 @@ class StreamContext { struct DriverInterface { using CreateInstance = std::function; virtual ~DriverInterface() = default; - // This function is called once, on the main thread, before starting the worker thread. - virtual ::android::status_t init() = 0; - // This function is called from Binder pool thread. It must be done in a thread-safe manner - // if this method and other methods in this interface share data. - virtual ::android::status_t setConnectedDevices( - const std::vector<::aidl::android::media::audio::common::AudioDevice>& - connectedDevices) = 0; - // All the functions below are called on the worker thread. + // All the methods below are called on the worker thread. + virtual ::android::status_t init() = 0; // This function is only called once. virtual ::android::status_t drain(StreamDescriptor::DrainMode mode) = 0; virtual ::android::status_t flush() = 0; virtual ::android::status_t pause() = 0; virtual ::android::status_t transfer(void* buffer, size_t frameCount, size_t* actualFrameCount, int32_t* latencyMs) = 0; virtual ::android::status_t standby() = 0; + // The method below is called from a thread of the Binder pool. Access to data shared with other + // methods of this interface must be done in a thread-safe manner. + virtual ::android::status_t setConnectedDevices( + const std::vector<::aidl::android::media::audio::common::AudioDevice>& + connectedDevices) = 0; }; class StreamWorkerCommonLogic : public ::android::hardware::audio::common::StreamLogic { diff --git a/audio/aidl/default/include/core-impl/StreamStub.h b/audio/aidl/default/include/core-impl/StreamStub.h index df0182cf9f..436e610ccf 100644 --- a/audio/aidl/default/include/core-impl/StreamStub.h +++ b/audio/aidl/default/include/core-impl/StreamStub.h @@ -24,15 +24,16 @@ class DriverStub : public DriverInterface { public: DriverStub(const StreamContext& context, bool isInput); ::android::status_t init() override; - ::android::status_t setConnectedDevices( - const std::vector<::aidl::android::media::audio::common::AudioDevice>& connectedDevices) - override; ::android::status_t drain(StreamDescriptor::DrainMode) override; ::android::status_t flush() override; ::android::status_t pause() override; ::android::status_t transfer(void* buffer, size_t frameCount, size_t* actualFrameCount, int32_t* latencyMs) override; ::android::status_t standby() override; + // Note: called on a different thread. + ::android::status_t setConnectedDevices( + const std::vector<::aidl::android::media::audio::common::AudioDevice>& connectedDevices) + override; private: const size_t mFrameSizeBytes; diff --git a/audio/aidl/default/include/core-impl/StreamUsb.h b/audio/aidl/default/include/core-impl/StreamUsb.h index 36e64cbcdb..05d889a713 100644 --- a/audio/aidl/default/include/core-impl/StreamUsb.h +++ b/audio/aidl/default/include/core-impl/StreamUsb.h @@ -34,15 +34,16 @@ class DriverUsb : public DriverInterface { public: DriverUsb(const StreamContext& context, bool isInput); ::android::status_t init() override; - ::android::status_t setConnectedDevices( - const std::vector<::aidl::android::media::audio::common::AudioDevice>& connectedDevices) - override; ::android::status_t drain(StreamDescriptor::DrainMode) override; ::android::status_t flush() override; ::android::status_t pause() override; ::android::status_t transfer(void* buffer, size_t frameCount, size_t* actualFrameCount, int32_t* latencyMs) override; ::android::status_t standby() override; + // Note: called on a different thread. + ::android::status_t setConnectedDevices( + const std::vector<::aidl::android::media::audio::common::AudioDevice>& connectedDevices) + override; private: ::android::status_t exitStandby();