Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b76736da authored by Andy Hung's avatar Andy Hung Committed by Gerrit Code Review
Browse files

Merge changes from topic "setParameter_IAudioRecord" into main

* changes:
  AudioRecord: add set/get Parameters API's
  audio: add setParameters support in IAudioRecord
parents 6afcb1bb 8ee003d8
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1222,6 +1222,21 @@ audio_io_handle_t AudioRecord::getInputPrivate() const
    return mInput;
}

status_t AudioRecord::setParameters(const String8& keyValuePairs) {
    AutoMutex lock(mLock);
    if (mInput == AUDIO_IO_HANDLE_NONE || mAudioRecord == nullptr) {
        return NO_INIT;
    }
    return statusTFromBinderStatus(mAudioRecord->setParameters(keyValuePairs.c_str()));
}

String8 AudioRecord::getParameters(const String8& keys) {
    AutoMutex lock(mLock);
    return mInput != AUDIO_IO_HANDLE_NONE
               ? AudioSystem::getParameters(mInput, keys)
               : String8();
}

// -------------------------------------------------------------------------

ssize_t AudioRecord::read(void* buffer, size_t userSize, bool blocking)
+3 −0
Original line number Diff line number Diff line
@@ -50,4 +50,7 @@ interface IAudioRecord {
  void setPreferredMicrophoneFieldDimension(float zoom);

  void shareAudioHistory(@utf8InCpp String sharedAudioPackageName, long sharedAudioStartMs);

  /** Send parameters to the audio hardware. */
  void setParameters(@utf8InCpp String keyValuePairs);
}
+6 −0
Original line number Diff line number Diff line
@@ -589,6 +589,12 @@ public:
    /* Get the flags */
            audio_input_flags_t getFlags() const { AutoMutex _l(mLock); return mFlags; }

    /* Set parameters */
            status_t    setParameters(const String8& keyValuePairs);

    /* Get parameters */
            String8     getParameters(const String8& keys);

    /* Get active microphones. A empty vector of MicrophoneInfoFw will be passed as a parameter,
     * the data will be filled when querying the hal.
     */
+1 −0
Original line number Diff line number Diff line
@@ -528,6 +528,7 @@ public:
    virtual status_t setPreferredMicrophoneFieldDimension(float zoom) = 0;
    virtual status_t shareAudioHistory(
            const std::string& sharedAudioPackageName, int64_t sharedAudioStartMs) = 0;
    virtual status_t setParameters(const String8& keyValuePairs) = 0;
    virtual int32_t startFrames() const = 0;

    static bool checkServerLatencySupported(audio_format_t format, audio_input_flags_t flags) {
+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ public:
    status_t setPreferredMicrophoneFieldDimension(float zoom) final;
    status_t shareAudioHistory(const std::string& sharedAudioPackageName,
            int64_t sharedAudioStartMs) final;
    status_t setParameters(const String8& keyValuePairs) final;
    int32_t startFrames() const final { return mStartFrames; }

    using SinkMetadatas = std::vector<record_track_metadata_v7_t>;
Loading