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

Commit 1879fff0 authored by Glenn Kasten's avatar Glenn Kasten
Browse files

Add tid parameter to IAudioFlinger::openRecord

Not yet implemented

Change-Id: I35523fb15ad71727ecc9f4bb870f07e4b7397dc4
parent bf04a5d7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ public:
    enum {
        TRACK_DEFAULT = 0,  // client requests a default AudioTrack
        TRACK_TIMED   = 1,  // client requests a TimedAudioTrack
        TRACK_FAST    = 2,  // client requests a fast AudioTrack
        TRACK_FAST    = 2,  // client requests a fast AudioTrack or AudioRecord
    };
    typedef uint32_t track_flags_t;

@@ -77,6 +77,7 @@ public:
                                audio_channel_mask_t channelMask,
                                int frameCount,
                                track_flags_t flags,
                                pid_t tid,  // -1 means unused, otherwise must be valid non-0
                                int *sessionId,
                                status_t *status) = 0;

+4 −0
Original line number Diff line number Diff line
@@ -452,11 +452,15 @@ status_t AudioRecord::openRecord_l(
        return NO_INIT;
    }

    pid_t tid = -1;
    // FIXME see similar logic at AudioTrack

    sp<IAudioRecord> record = audioFlinger->openRecord(getpid(), input,
                                                       sampleRate, format,
                                                       channelMask,
                                                       frameCount,
                                                       IAudioFlinger::TRACK_DEFAULT,
                                                       tid,
                                                       &mSessionId,
                                                       &status);

+4 −1
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@ public:
                                uint32_t channelMask,
                                int frameCount,
                                track_flags_t flags,
                                pid_t tid,
                                int *sessionId,
                                status_t *status)
    {
@@ -151,6 +152,7 @@ public:
        data.writeInt32(channelMask);
        data.writeInt32(frameCount);
        data.writeInt32(flags);
        data.writeInt32((int32_t) tid);
        int lSessionId = 0;
        if (sessionId != NULL) {
            lSessionId = *sessionId;
@@ -726,10 +728,11 @@ status_t BnAudioFlinger::onTransact(
            audio_channel_mask_t channelMask = data.readInt32();
            size_t bufferCount = data.readInt32();
            track_flags_t flags = (track_flags_t) data.readInt32();
            pid_t tid = (pid_t) data.readInt32();
            int sessionId = data.readInt32();
            status_t status;
            sp<IAudioRecord> record = openRecord(pid, input,
                    sampleRate, format, channelMask, bufferCount, flags, &sessionId, &status);
                    sampleRate, format, channelMask, bufferCount, flags, tid, &sessionId, &status);
            reply->writeInt32(sessionId);
            reply->writeInt32(status);
            reply->writeStrongBinder(record->asBinder());
+7 −7
Original line number Diff line number Diff line
@@ -5793,6 +5793,7 @@ sp<IAudioRecord> AudioFlinger::openRecord(
        audio_channel_mask_t channelMask,
        int frameCount,
        IAudioFlinger::track_flags_t flags,
        pid_t tid,
        int *sessionId,
        status_t *status)
{
@@ -5831,13 +5832,8 @@ sp<IAudioRecord> AudioFlinger::openRecord(
            }
        }
        // create new record track. The record track uses one track in mHardwareMixerThread by convention.
        recordTrack = thread->createRecordTrack_l(client,
                                                sampleRate,
                                                format,
                                                channelMask,
                                                frameCount,
                                                lSessionId,
                                                &lStatus);
        recordTrack = thread->createRecordTrack_l(client, sampleRate, format, channelMask,
                                                  frameCount, lSessionId, flags, tid, &lStatus);
    }
    if (lStatus != NO_ERROR) {
        // remove local strong reference to Client before deleting the RecordTrack so that the Client
@@ -6148,6 +6144,8 @@ sp<AudioFlinger::RecordThread::RecordTrack> AudioFlinger::RecordThread::createR
        audio_channel_mask_t channelMask,
        int frameCount,
        int sessionId,
        IAudioFlinger::track_flags_t flags,
        pid_t tid,
        status_t *status)
{
    sp<RecordTrack> track;
@@ -6159,6 +6157,8 @@ sp<AudioFlinger::RecordThread::RecordTrack> AudioFlinger::RecordThread::createR
        goto Exit;
    }

    // FIXME use flags and tid similar to createTrack_l()

    { // scope for mLock
        Mutex::Autolock _l(mLock);

+3 −0
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public:
                                audio_channel_mask_t channelMask,
                                int frameCount,
                                IAudioFlinger::track_flags_t flags,
                                pid_t tid,
                                int *sessionId,
                                status_t *status);

@@ -1407,6 +1408,8 @@ private:
                        audio_channel_mask_t channelMask,
                        int frameCount,
                        int sessionId,
                        IAudioFlinger::track_flags_t flags,
                        pid_t tid,
                        status_t *status);

                status_t    start(RecordTrack* recordTrack,