audio: Fix the comment about threading of DriverInterface::init am: 3755134720

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2597780

Change-Id: I669e578fd127a6a775f0170b58ff6bc03958ce98
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mikhail Naganov
2023-05-22 18:58:10 +00:00
committed by Automerger Merge Worker
3 changed files with 15 additions and 14 deletions

View File

@@ -155,20 +155,19 @@ class StreamContext {
struct DriverInterface {
using CreateInstance = std::function<DriverInterface*(const StreamContext&)>;
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 {

View File

@@ -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;

View File

@@ -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();