mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
audio: Fix the comment about threading of DriverInterface::init
'DriverInterface::init' is called on the same thread as other interface methods (the worker thread), except for 'setConnectedDevices'. Update the comment to reflect this, and rearrange the methods order in the interface. Bug: 283463913 Test: m Change-Id: I8937506d20ff8233b4b934c421173ce2bec9d43e
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user