diff options
Diffstat (limited to 'media/jni/android_media_MediaDrm.h')
-rw-r--r-- | media/jni/android_media_MediaDrm.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/media/jni/android_media_MediaDrm.h b/media/jni/android_media_MediaDrm.h index 01067c4..9b3917f 100644 --- a/media/jni/android_media_MediaDrm.h +++ b/media/jni/android_media_MediaDrm.h @@ -20,6 +20,8 @@ #include "jni.h" #include <media/stagefright/foundation/ABase.h> +#include <media/IDrm.h> +#include <media/IDrmClient.h> #include <utils/Errors.h> #include <utils/RefBase.h> @@ -27,15 +29,24 @@ namespace android { struct IDrm; -struct JDrm : public RefBase { +class DrmListener: virtual public RefBase +{ +public: + virtual void notify(DrmPlugin::EventType eventType, int extra, + const Parcel *obj) = 0; +}; + +struct JDrm : public BnDrmClient { static bool IsCryptoSchemeSupported(const uint8_t uuid[16]); JDrm(JNIEnv *env, jobject thiz, const uint8_t uuid[16]); status_t initCheck() const; - sp<IDrm> getDrm() { return mDrm; } + void notify(DrmPlugin::EventType, int extra, const Parcel *obj); + status_t setListener(const sp<DrmListener>& listener); + protected: virtual ~JDrm(); @@ -43,6 +54,10 @@ private: jweak mObject; sp<IDrm> mDrm; + sp<DrmListener> mListener; + Mutex mNotifyLock; + Mutex mLock; + static sp<IDrm> MakeDrm(); static sp<IDrm> MakeDrm(const uint8_t uuid[16]); |