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

Commit be9b24a5 authored by Robert Shih's avatar Robert Shih Committed by Android (Google) Code Review
Browse files

Merge "media jni: remove Parcel from IDrmClient interface"

parents 045b3960 3a523903
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -523,6 +523,40 @@ void JDrm::notify(DrmPlugin::EventType eventType, int extra, const Parcel *obj)
    }
}

void JDrm::sendEvent(
        DrmPlugin::EventType eventType,
        const hardware::hidl_vec<uint8_t> &sessionId,
        const hardware::hidl_vec<uint8_t> &data) {
    Parcel obj;
    DrmUtils::WriteByteArray(obj, sessionId);
    DrmUtils::WriteByteArray(obj, data);
    notify(eventType, 0, &obj);
}

void JDrm::sendExpirationUpdate(
        const hardware::hidl_vec<uint8_t> &sessionId,
        int64_t expiryTimeInMS) {
    Parcel obj;
    DrmUtils::WriteExpirationUpdateToParcel(obj, sessionId, expiryTimeInMS);
    notify(DrmPlugin::kDrmPluginEventExpirationUpdate, 0, &obj);
}

void JDrm::sendKeysChange(
        const hardware::hidl_vec<uint8_t> &sessionId,
        const std::vector<DrmKeyStatus> &keyStatusList,
        bool hasNewUsableKey) {
    Parcel obj;
    DrmUtils::WriteKeysChange(obj, sessionId, keyStatusList, hasNewUsableKey);
    notify(DrmPlugin::kDrmPluginEventKeysChange, 0, &obj);
}

void JDrm::sendSessionLostState(
        const hardware::hidl_vec<uint8_t> &sessionId) {
    Parcel obj;
    DrmUtils::WriteByteArray(obj, sessionId);
    notify(DrmPlugin::kDrmPluginEventSessionLostState, 0, &obj);
}

void JDrm::disconnect() {
    if (mDrm != NULL) {
        mDrm->destroyPlugin();
+21 −1
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@

#include <media/stagefright/foundation/ABase.h>
#include <mediadrm/IDrm.h>
#include <mediadrm/IDrmClient.h>
#include <hidl/HidlSupport.h>
#include <utils/Errors.h>
#include <utils/RefBase.h>

@@ -44,7 +46,23 @@ struct JDrm : public BnDrmClient {
    status_t initCheck() const;
    sp<IDrm> getDrm() { return mDrm; }

    void notify(DrmPlugin::EventType, int extra, const Parcel *obj);
    void sendEvent(
            DrmPlugin::EventType eventType,
            const hardware::hidl_vec<uint8_t> &sessionId,
            const hardware::hidl_vec<uint8_t> &data) override;

    void sendExpirationUpdate(
            const hardware::hidl_vec<uint8_t> &sessionId,
            int64_t expiryTimeInMS) override;

    void sendKeysChange(
            const hardware::hidl_vec<uint8_t> &sessionId,
            const std::vector<DrmKeyStatus> &keyStatusList,
            bool hasNewUsableKey) override;

    void sendSessionLostState(
            const hardware::hidl_vec<uint8_t> &sessionId) override;

    status_t setListener(const sp<DrmListener>& listener);

    void disconnect();
@@ -63,6 +81,8 @@ private:
    static sp<IDrm> MakeDrm();
    static sp<IDrm> MakeDrm(const uint8_t uuid[16], const String8 &appPackageName);

    void notify(DrmPlugin::EventType, int extra, const Parcel *obj);

    DISALLOW_EVIL_CONSTRUCTORS(JDrm);
};