/* * Copyright 2012 Google Inc. All Rights Reserved. */ #ifndef WV_DRM_PLUGIN_FACTORY_H_ #define WV_DRM_PLUGIN_FACTORY_H_ #include "media/stagefright/foundation/ABase.h" #include "media/drm/DrmEngineAPI.h" #include "media/hardware/CryptoAPI.h" namespace wvclearkey { using android::status_t; class WVDrmPluginFactory : public android::DrmPluginFactory, public android::CryptoFactory { public: WVDrmPluginFactory(); virtual ~WVDrmPluginFactory(); // Implement DrmPluginFactory virtual bool isCryptoSchemeSupported(const uint8_t uuid[16]) const; virtual status_t createCryptoPlugin( const uint8_t uuid[16], const void *data, size_t size, android::CryptoPlugin **plugin); virtual status_t createDrmClientPlugin( const uint8_t uuid[16], const void *data, size_t size, android::DrmClientPlugin **plugin); // Implement CryptoFactory virtual status_t createPlugin( const uint8_t uuid[16], const void *data, size_t size, android::CryptoPlugin **plugin) { return createCryptoPlugin(uuid, data, size, plugin); } private: DISALLOW_EVIL_CONSTRUCTORS(WVDrmPluginFactory); void *mLegacyLibraryHandle; android::CryptoFactory *mLegacyFactory; }; } // namespace wvclearkey #endif // WV_DRM_PLUGIN_FACTORY_H_