// // Copyright 2013 Google Inc. All Rights Reserved. // #ifndef WV_DRM_PLUGIN_H_ #define WV_DRM_PLUGIN_H_ #include "media/drm/DrmAPI.h" #include "media/stagefright/foundation/ABase.h" #include "media/stagefright/foundation/AString.h" #include "utils/Errors.h" #include "utils/KeyedVector.h" #include "utils/List.h" #include "utils/String8.h" #include "utils/Vector.h" #include "wv_content_decryption_module.h" namespace wvdrm { using android::KeyedVector; using android::List; using android::status_t; using android::String8; using android::Vector; class WVDrmPlugin : public android::DrmPlugin { public: WVDrmPlugin(wvcdm::WvContentDecryptionModule* cdm); virtual ~WVDrmPlugin() {} virtual status_t openSession(Vector& sessionId); virtual status_t closeSession(const Vector& sessionId); virtual status_t getLicenseRequest( const Vector& sessionId, const Vector& initData, const String8& mimeType, LicenseType licenseType, const KeyedVector& optionalParameters, Vector& request, String8& defaultUrl); virtual status_t provideLicenseResponse(const Vector& sessionId, const Vector& response); virtual status_t removeLicense(const Vector& sessionId); virtual status_t queryLicenseStatus( const Vector& sessionId, KeyedVector& infoMap) const; virtual status_t getProvisionRequest(Vector& request, String8& defaultUrl); virtual status_t provideProvisionResponse(const Vector& response); virtual status_t getSecureStops(List >& secureStops); virtual status_t releaseSecureStops(const Vector& ssRelease); virtual status_t getPropertyString(const String8& name, String8& value) const; virtual status_t getPropertyByteArray(const String8& name, Vector& value) const; virtual status_t setPropertyString(const String8& name, const String8& value); virtual status_t setPropertyByteArray(const String8& name, const Vector& value); private: DISALLOW_EVIL_CONSTRUCTORS(WVDrmPlugin); wvcdm::WvContentDecryptionModule* mCDM; }; } // namespace wvdrm #endif // WV_DRM_PLUGIN_H_