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

Commit 939187a5 authored by Andy Hung's avatar Andy Hung Committed by Android (Google) Code Review
Browse files

Merge "AudioFlinger: Update PatchPanel class includes" into udc-dev-plus-aosp

parents 657bb39c 29ff848f
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
@@ -4721,6 +4721,55 @@ bool AudioFlinger::updateOrphanEffectChains(const sp<IAfEffectModule>& effect)
    return false;
}

// ----------------------------------------------------------------------------
// from PatchPanel

/* List connected audio ports and their attributes */
status_t AudioFlinger::listAudioPorts(unsigned int* num_ports,
        struct audio_port* ports) const
{
    Mutex::Autolock _l(mLock);
    return mPatchPanel->listAudioPorts(num_ports, ports);
}

/* Get supported attributes for a given audio port */
status_t AudioFlinger::getAudioPort(struct audio_port_v7* port) const {
    const status_t status = AudioValidator::validateAudioPort(*port);
    if (status != NO_ERROR) {
        return status;
    }

    Mutex::Autolock _l(mLock);
    return mPatchPanel->getAudioPort(port);
}

/* Connect a patch between several source and sink ports */
status_t AudioFlinger::createAudioPatch(
        const struct audio_patch* patch, audio_patch_handle_t* handle)
{
    const status_t status = AudioValidator::validateAudioPatch(*patch);
    if (status != NO_ERROR) {
        return status;
    }

    Mutex::Autolock _l(mLock);
    return mPatchPanel->createAudioPatch(patch, handle);
}

/* Disconnect a patch */
status_t AudioFlinger::releaseAudioPatch(audio_patch_handle_t handle)
{
    Mutex::Autolock _l(mLock);
    return mPatchPanel->releaseAudioPatch(handle);
}

/* List connected audio ports and they attributes */
status_t AudioFlinger::listAudioPatches(
        unsigned int* num_patches, struct audio_patch* patches) const
{
    Mutex::Autolock _l(mLock);
    return mPatchPanel->listAudioPatches(num_patches, patches);
}

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

+4 −52
Original line number Diff line number Diff line
@@ -19,17 +19,16 @@
#define LOG_TAG "AudioFlinger::PatchPanel"
//#define LOG_NDEBUG 0

#include "Configuration.h"
#include <utils/Log.h>
#include <audio_utils/primitives.h>

#include "AudioFlinger.h"
#include "PatchPanel.h"
#include "PatchCommandThread.h"

#include <audio_utils/primitives.h>
#include <media/AudioParameter.h>
#include <media/AudioValidator.h>
#include <media/DeviceDescriptorBase.h>
#include <media/PatchBuilder.h>
#include <mediautils/ServiceUtilities.h>
#include <utils/Log.h>

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

@@ -48,53 +47,6 @@

namespace android {

/* List connected audio ports and their attributes */
status_t AudioFlinger::listAudioPorts(unsigned int *num_ports,
        struct audio_port* ports) const
{
    Mutex::Autolock _l(mLock);
    return mPatchPanel->listAudioPorts(num_ports, ports);
}

/* Get supported attributes for a given audio port */
status_t AudioFlinger::getAudioPort(struct audio_port_v7* port) const {
    status_t status = AudioValidator::validateAudioPort(*port);
    if (status != NO_ERROR) {
        return status;
    }

    Mutex::Autolock _l(mLock);
    return mPatchPanel->getAudioPort(port);
}

/* Connect a patch between several source and sink ports */
status_t AudioFlinger::createAudioPatch(const struct audio_patch *patch,
                                   audio_patch_handle_t *handle)
{
    status_t status = AudioValidator::validateAudioPatch(*patch);
    if (status != NO_ERROR) {
        return status;
    }

    Mutex::Autolock _l(mLock);
    return mPatchPanel->createAudioPatch(patch, handle);
}

/* Disconnect a patch */
status_t AudioFlinger::releaseAudioPatch(audio_patch_handle_t handle)
{
    Mutex::Autolock _l(mLock);
    return mPatchPanel->releaseAudioPatch(handle);
}

/* List connected audio ports and they attributes */
status_t AudioFlinger::listAudioPatches(
        unsigned int* num_patches, struct audio_patch* patches) const
{
    Mutex::Autolock _l(mLock);
    return mPatchPanel->listAudioPatches(num_patches, patches);
}

/* static */
sp<IAfPatchPanel> IAfPatchPanel::create(const sp<IAfPatchPanelCallback>& afPatchPanelCallback) {
    return sp<PatchPanel>::make(afPatchPanelCallback);
+5 −0
Original line number Diff line number Diff line
@@ -17,6 +17,11 @@

#pragma once

#include "IAfPatchPanel.h"

#include <map>  // avoid transitive dependency
#include <set>  // avoid transitive dependency

namespace android {

class PatchPanel : public IAfPatchPanel {