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

Commit ef61973b authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge changes I533b7460,Ic472045c

* changes:
  audio policy: improve capture policy for clients with same UID
  audio policy: allow silencing capture per port
parents 4ba35819 8ed73c1c
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -340,11 +340,11 @@ public:
        return reply.readInt32();
    }

    virtual void setRecordSilenced(uid_t uid, bool silenced)
    virtual void setRecordSilenced(audio_port_handle_t portId, bool silenced)
    {
        Parcel data, reply;
        data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor());
        data.writeInt32(uid);
        data.writeInt32(portId);
        data.writeInt32(silenced ? 1 : 0);
        remote()->transact(SET_RECORD_SILENCED, data, &reply);
    }
@@ -1156,11 +1156,9 @@ status_t BnAudioFlinger::onTransact(
        } break;
        case SET_RECORD_SILENCED: {
            CHECK_INTERFACE(IAudioFlinger, data, reply);
            uid_t uid = data.readInt32();
            audio_source_t source;
            data.read(&source, sizeof(audio_source_t));
            audio_port_handle_t portId = data.readInt32();
            bool silenced = data.readInt32() == 1;
            setRecordSilenced(uid, silenced);
            setRecordSilenced(portId, silenced);
            return NO_ERROR;
        } break;
        case SET_PARAMETERS: {
+1 −1
Original line number Diff line number Diff line
@@ -384,7 +384,7 @@ public:
    // mic mute/state
    virtual     status_t    setMicMute(bool state) = 0;
    virtual     bool        getMicMute() const = 0;
    virtual     void        setRecordSilenced(uid_t uid, bool silenced) = 0;
    virtual     void        setRecordSilenced(audio_port_handle_t portId, bool silenced) = 0;

    virtual     status_t    setParameters(audio_io_handle_t ioHandle,
                                    const String8& keyValuePairs) = 0;
+4 −4
Original line number Diff line number Diff line
@@ -1132,16 +1132,16 @@ bool AudioFlinger::getMicMute() const
    return mute;
}

void AudioFlinger::setRecordSilenced(uid_t uid, bool silenced)
void AudioFlinger::setRecordSilenced(audio_port_handle_t portId, bool silenced)
{
    ALOGV("AudioFlinger::setRecordSilenced(uid:%d, silenced:%d)", uid, silenced);
    ALOGV("AudioFlinger::setRecordSilenced(portId:%d, silenced:%d)", portId, silenced);

    AutoMutex lock(mLock);
    for (size_t i = 0; i < mRecordThreads.size(); i++) {
        mRecordThreads[i]->setRecordSilenced(uid, silenced);
        mRecordThreads[i]->setRecordSilenced(portId, silenced);
    }
    for (size_t i = 0; i < mMmapThreads.size(); i++) {
        mMmapThreads[i]->setRecordSilenced(uid, silenced);
        mMmapThreads[i]->setRecordSilenced(portId, silenced);
    }
}

+1 −1
Original line number Diff line number Diff line
@@ -162,7 +162,7 @@ public:
    virtual     status_t    setMicMute(bool state);
    virtual     bool        getMicMute() const;

    virtual     void        setRecordSilenced(uid_t uid, bool silenced);
    virtual     void        setRecordSilenced(audio_port_handle_t portId, bool silenced);

    virtual     status_t    setParameters(audio_io_handle_t ioHandle, const String8& keyValuePairs);
    virtual     String8     getParameters(audio_io_handle_t ioHandle, const String8& keys) const;
+4 −4
Original line number Diff line number Diff line
@@ -7934,12 +7934,12 @@ void AudioFlinger::RecordThread::dumpTracks_l(int fd, const Vector<String16>& ar
    write(fd, result.string(), result.size());
}

void AudioFlinger::RecordThread::setRecordSilenced(uid_t uid, bool silenced)
void AudioFlinger::RecordThread::setRecordSilenced(audio_port_handle_t portId, bool silenced)
{
    Mutex::Autolock _l(mLock);
    for (size_t i = 0; i < mTracks.size() ; i++) {
        sp<RecordTrack> track = mTracks[i];
        if (track != 0 && track->uid() == uid) {
        if (track != 0 && track->portId() == portId) {
            track->setSilenced(silenced);
        }
    }
@@ -9477,11 +9477,11 @@ void AudioFlinger::MmapCaptureThread::updateMetadata_l()
    mInput->stream->updateSinkMetadata(metadata);
}

void AudioFlinger::MmapCaptureThread::setRecordSilenced(uid_t uid, bool silenced)
void AudioFlinger::MmapCaptureThread::setRecordSilenced(audio_port_handle_t portId, bool silenced)
{
    Mutex::Autolock _l(mLock);
    for (size_t i = 0; i < mActiveTracks.size() ; i++) {
        if (mActiveTracks[i]->uid() == uid) {
        if (mActiveTracks[i]->portId() == portId) {
            mActiveTracks[i]->setSilenced_l(silenced);
            broadcast_l();
        }
Loading