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

Commit 27f7b2a8 authored by Glenn Kasten's avatar Glenn Kasten
Browse files

AudioRecord::set and constructor now take flags

The new optional parameter 'flags' of type audio_input_flags_t will be
used for requesting a fast track.

Change-Id: Ia7e070cb57c833e608352da354fb30dc26df6918
parent 28f13513
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ public:
     *                     frames are ready in record track output buffer.
     * sessionId:          Not yet supported.
     * transferType:       How data is transferred from AudioRecord.
     * flags:              See comments on audio_input_flags_t in <system/audio.h>
     * threadCanCallJava:  Not present in parameter list, and so is fixed at false.
     */

@@ -156,7 +157,8 @@ public:
                                    void* user = NULL,
                                    int notificationFrames = 0,
                                    int sessionId = 0,
                                    transfer_type transferType = TRANSFER_DEFAULT);
                                    transfer_type transferType = TRANSFER_DEFAULT,
                                    audio_input_flags_t flags = AUDIO_INPUT_FLAG_NONE);

    /* Terminates the AudioRecord and unregisters it from AudioFlinger.
     * Also destroys all resources associated with the AudioRecord.
@@ -188,7 +190,8 @@ public:
                            int notificationFrames = 0,
                            bool threadCanCallJava = false,
                            int sessionId = 0,
                            transfer_type transferType = TRANSFER_DEFAULT);
                            transfer_type transferType = TRANSFER_DEFAULT,
                            audio_input_flags_t flags = AUDIO_INPUT_FLAG_NONE);

    /* Result of constructing the AudioRecord. This must be checked
     * before using any AudioRecord API (except for set()), because using
@@ -464,6 +467,7 @@ private:
    audio_source_t          mInputSource;
    uint32_t                mLatency;           // in ms
    audio_channel_mask_t    mChannelMask;
    audio_input_flags_t     mFlags;
    int                     mSessionId;
    transfer_type           mTransfer;

+6 −2
Original line number Diff line number Diff line
@@ -87,7 +87,8 @@ AudioRecord::AudioRecord(
        void* user,
        int notificationFrames,
        int sessionId,
        transfer_type transferType)
        transfer_type transferType,
        audio_input_flags_t flags)
    : mStatus(NO_INIT), mSessionId(0),
      mPreviousPriority(ANDROID_PRIORITY_NORMAL),
      mPreviousSchedulingGroup(SP_DEFAULT),
@@ -129,7 +130,8 @@ status_t AudioRecord::set(
        int notificationFrames,
        bool threadCanCallJava,
        int sessionId,
        transfer_type transferType)
        transfer_type transferType,
        audio_input_flags_t flags)
{
    switch (transferType) {
    case TRANSFER_DEFAULT:
@@ -218,6 +220,8 @@ status_t AudioRecord::set(
    }
    ALOGV("set(): mSessionId %d", mSessionId);

    mFlags = flags;

    audio_io_handle_t input = AudioSystem::getInput(inputSource,
                                                    sampleRate,
                                                    format,