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

Commit dd5f4c8c authored by Glenn Kasten's avatar Glenn Kasten
Browse files

Move up initialization of mFormat, mStreamType, and mSharedBuffer earlier

This will allow removal of most of the parameter list to createTrack_l.

Also check for valid stream type at client so we can log a better error
message.

Change-Id: Ia7176896d47fbb49106119fca26d9de8e7efe859
parent 0cde076d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -674,6 +674,7 @@ protected:
    audio_stream_type_t     mStreamType;
    uint32_t                mChannelCount;
    audio_channel_mask_t    mChannelMask;
    sp<IMemory>             mSharedBuffer;
    transfer_type           mTransfer;

    // mFrameSize is equal to mFrameSizeAF for non-PCM or 16-bit PCM data.  For 8-bit PCM data, it's
@@ -715,7 +716,6 @@ protected:
    bool                    mRetryOnPartialBuffer;  // sleep and retry after partial obtainBuffer()
    uint32_t                mObservedSequence;      // last observed value of mSequence

    sp<IMemory>             mSharedBuffer;
    uint32_t                mLoopPeriod;            // in frames, zero means looping is disabled
    uint32_t                mMarkerPosition;        // in wrapping (overflow) frame units
    bool                    mMarkerReached;
+7 −3
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ status_t AudioTrack::set(
        ALOGE("Invalid transfer type %d", transferType);
        return BAD_VALUE;
    }
    mSharedBuffer = sharedBuffer;
    mTransfer = transferType;

    // FIXME "int" here is legacy and will be replaced by size_t later
@@ -244,6 +245,11 @@ status_t AudioTrack::set(
    if (streamType == AUDIO_STREAM_DEFAULT) {
        streamType = AUDIO_STREAM_MUSIC;
    }
    if (uint32_t(streamType) >= AUDIO_STREAM_CNT) {
        ALOGE("Invalid stream type %d", streamType);
        return BAD_VALUE;
    }
    mStreamType = streamType;

    status_t status;
    if (sampleRate == 0) {
@@ -266,6 +272,7 @@ status_t AudioTrack::set(
        ALOGE("Invalid format %d", format);
        return BAD_VALUE;
    }
    mFormat = format;

    if (!audio_is_output_channel(channelMask)) {
        ALOGE("Invalid channel mask %#x", channelMask);
@@ -363,9 +370,6 @@ status_t AudioTrack::set(
    }

    mStatus = NO_ERROR;
    mStreamType = streamType;
    mFormat = format;
    mSharedBuffer = sharedBuffer;
    mState = STATE_STOPPED;
    mUserData = user;
    mLoopPeriod = 0;