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

Commit bf06f7af authored by Paul Mclean's avatar Paul Mclean Committed by Android (Google) Code Review
Browse files

Merge "Adding Audio HAL V5: Direction API"

parents 1dfd7ba8 03a6e6a0
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1398,6 +1398,17 @@ status_t AudioRecord::getActiveMicrophones(std::vector<media::MicrophoneInfo>* a
    return mAudioRecord->getActiveMicrophones(activeMicrophones).transactionError();
}

status_t AudioRecord::setMicrophoneDirection(audio_microphone_direction_t direction)
{
    AutoMutex lock(mLock);
    return mAudioRecord->setMicrophoneDirection(direction).transactionError();
}

status_t AudioRecord::setMicrophoneFieldDimension(float zoom) {
    AutoMutex lock(mLock);
    return mAudioRecord->setMicrophoneFieldDimension(zoom).transactionError();
}

// =========================================================================

void AudioRecord::DeathNotifier::binderDied(const wp<IBinder>& who __unused)
+8 −0
Original line number Diff line number Diff line
@@ -36,4 +36,12 @@ interface IAudioRecord {
  /* Get a list of current active microphones.
   */
  void getActiveMicrophones(out MicrophoneInfo[] activeMicrophones);

  /* Set the microphone direction (for processing).
   */
  void setMicrophoneDirection(int /*audio_microphone_direction_t*/ direction);

  /* Set the microphone zoom (for processing).
   */
  void setMicrophoneFieldDimension(float zoom);
}
+8 −0
Original line number Diff line number Diff line
@@ -534,6 +534,14 @@ public:
     */
            status_t    getActiveMicrophones(std::vector<media::MicrophoneInfo>* activeMicrophones);

    /* Set the Microphone direction (for processing purposes).
     */
            status_t    setMicrophoneDirection(audio_microphone_direction_t direction);

    /* Set the Microphone zoom factor (for processing purposes).
     */
            status_t    setMicrophoneFieldDimension(float zoom);

     /* Get the unique port ID assigned to this AudioRecord instance by audio policy manager.
      * The ID is unique across all audioserver clients and can change during the life cycle
      * of a given AudioRecord instance if the connection to audioserver is restored.
+24 −0
Original line number Diff line number Diff line
@@ -854,5 +854,29 @@ status_t StreamInHalHidl::updateSinkMetadata(const
}
#endif

#if MAJOR_VERSION < 5
status_t StreamInHalHidl::setMicrophoneDirection(audio_microphone_direction_t direction __unused) {
    if (mStream == 0) return NO_INIT;
    return INVALID_OPERATION;
}

status_t StreamInHalHidl::setMicrophoneFieldDimension(float zoom __unused) {
    if (mStream == 0) return NO_INIT;
    return INVALID_OPERATION;
}
#else
status_t StreamInHalHidl::setMicrophoneDirection(audio_microphone_direction_t direction) {
    if (!mStream) return NO_INIT;
    return processReturn("setMicrophoneDirection",
                mStream->setMicrophoneDirection(static_cast<MicrophoneDirection>(direction)));
}

status_t StreamInHalHidl::setMicrophoneFieldDimension(float zoom) {
    if (!mStream) return NO_INIT;
    return processReturn("setMicrophoneFieldDimension",
                mStream->setMicrophoneFieldDimension(zoom));
}
#endif

} // namespace CPP_VERSION
} // namespace android
+6 −0
Original line number Diff line number Diff line
@@ -220,6 +220,12 @@ class StreamInHalHidl : public StreamInHalInterface, public StreamHalHidl {
    // Get active microphones
    virtual status_t getActiveMicrophones(std::vector<media::MicrophoneInfo> *microphones);

    // Set microphone direction (for processing)
    virtual status_t setMicrophoneDirection(audio_microphone_direction_t direction) override;

    // Set microphone zoom (for processing)
    virtual status_t setMicrophoneFieldDimension(float zoom) override;

    // Called when the metadata of the stream's sink has been changed.
    status_t updateSinkMetadata(const SinkMetadata& sinkMetadata) override;

Loading