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

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

Merge "MediaRecorder: add getPortId() method"

parents ddafe428 44f43604
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ enum {
    GET_ROUTED_DEVICE_ID,
    ENABLE_AUDIO_DEVICE_CALLBACK,
    GET_ACTIVE_MICROPHONES,

    GET_PORT_ID,
};

class BpMediaRecorder: public BpInterface<IMediaRecorder>
@@ -407,6 +407,23 @@ public:
        return status;
    }

    status_t getPortId(audio_port_handle_t *portId)
    {
        ALOGV("getPortId");
        if (portId == nullptr) {
            return BAD_VALUE;
        }
        Parcel data, reply;
        data.writeInterfaceToken(IMediaRecorder::getInterfaceDescriptor());
        status_t status = remote()->transact(GET_PORT_ID, data, &reply);
        if (status != OK
                || (status = (status_t)reply.readInt32()) != NO_ERROR) {
            *portId = AUDIO_PORT_HANDLE_NONE;
            return status;
        }
        *portId = (audio_port_handle_t)reply.readInt32();
        return NO_ERROR;
    }
};

IMPLEMENT_META_INTERFACE(MediaRecorder, "android.media.IMediaRecorder");
@@ -661,6 +678,17 @@ status_t BnMediaRecorder::onTransact(
            return NO_ERROR;

        }
        case GET_PORT_ID: {
            ALOGV("GET_PORT_ID");
            CHECK_INTERFACE(IMediaRecorder, data, reply);
            audio_port_handle_t portId;
            status_t status = getPortId(&portId);
            reply->writeInt32(status);
            if (status == NO_ERROR) {
                reply->writeInt32(portId);
            }
            return NO_ERROR;
        }
        default:
            return BBinder::onTransact(code, data, reply, flags);
    }
+1 −1
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ public:
    virtual status_t enableAudioDeviceCallback(bool enabled) = 0;
    virtual status_t getActiveMicrophones(
                        std::vector<media::MicrophoneInfo>* activeMicrophones) = 0;

    virtual status_t getPortId(audio_port_handle_t *portId) = 0;
};

// ----------------------------------------------------------------------------
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ struct MediaRecorderBase {
    virtual status_t enableAudioDeviceCallback(bool enabled) = 0;
    virtual status_t getActiveMicrophones(
                        std::vector<media::MicrophoneInfo>* activeMicrophones) = 0;
    virtual status_t getPortId(audio_port_handle_t *portId) const = 0;



+1 −0
Original line number Diff line number Diff line
@@ -264,6 +264,7 @@ public:
    status_t    getRoutedDeviceId(audio_port_handle_t *deviceId);
    status_t    enableAudioDeviceCallback(bool enabled);
    status_t    getActiveMicrophones(std::vector<media::MicrophoneInfo>* activeMicrophones);
    status_t    getPortId(audio_port_handle_t *portId) const;

private:
    void                    doCleanUp();
+11 −0
Original line number Diff line number Diff line
@@ -842,4 +842,15 @@ status_t MediaRecorder::getActiveMicrophones(std::vector<media::MicrophoneInfo>*
    return mMediaRecorder->getActiveMicrophones(activeMicrophones);
}

status_t MediaRecorder::getPortId(audio_port_handle_t *portId) const
{
    ALOGV("getPortId");

    if (mMediaRecorder == NULL) {
        ALOGE("media recorder is not initialized yet");
        return INVALID_OPERATION;
    }
    return mMediaRecorder->getPortId(portId);
}

} // namespace android
Loading