Loading drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.cpp +40 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,20 @@ status_t ClearKeyCasFactory::createPlugin( *plugin = new ClearKeyCasPlugin(appData, callback); return OK; } /////////////////////////////////////////////////////////////////////////////// status_t ClearKeyCasFactory::createPlugin( int32_t CA_system_id, void *appData, CasPluginCallbackExt callback, CasPlugin **plugin) { if (!isSystemIdSupported(CA_system_id)) { return BAD_VALUE; } *plugin = new ClearKeyCasPlugin(appData, callback); return OK; } //////////////////////////////////////////////////////////////////////////////// bool ClearKeyDescramblerFactory::isSystemIdSupported( int32_t CA_system_id) const { return CA_system_id == sClearKeySystemId; Loading @@ -88,6 +101,12 @@ ClearKeyCasPlugin::ClearKeyCasPlugin( ALOGV("CTOR"); } ClearKeyCasPlugin::ClearKeyCasPlugin( void *appData, CasPluginCallbackExt callback) : mCallbackExt(callback), mAppData(appData) { ALOGV("CTOR"); } ClearKeyCasPlugin::~ClearKeyCasPlugin() { ALOGV("DTOR"); ClearKeySessionLibrary::get()->destroyPlugin(this); Loading Loading @@ -167,8 +186,27 @@ status_t ClearKeyCasPlugin::sendEvent( // Echo the received event to the callback. // Clear key plugin doesn't use any event, echo'ing for testing only. if (mCallback != NULL) { mCallback((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size()); mCallback((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size()); } else if (mCallbackExt != NULL) { mCallbackExt((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size(), NULL); } return OK; } status_t ClearKeyCasPlugin::sendSessionEvent( const CasSessionId &sessionId, int32_t event, int arg, const CasData &eventData) { ALOGV("sendSessionEvent: sessionId=%s, event=%d, arg=%d", sessionIdToString(sessionId).string(), event, arg); // Echo the received event to the callback. // Clear key plugin doesn't use any event, echo'ing for testing only. if (mCallbackExt != NULL) { mCallbackExt((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size(), &sessionId); } return OK; } Loading drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.h +11 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,11 @@ public: void *appData, CasPluginCallback callback, CasPlugin **plugin) override; virtual status_t createPlugin( int32_t CA_system_id, void *appData, CasPluginCallbackExt callback, CasPlugin **plugin) override; }; class ClearKeyDescramblerFactory : public DescramblerFactory { Loading @@ -63,6 +68,7 @@ public: class ClearKeyCasPlugin : public CasPlugin { public: ClearKeyCasPlugin(void *appData, CasPluginCallback callback); ClearKeyCasPlugin(void *appData, CasPluginCallbackExt callback); virtual ~ClearKeyCasPlugin(); virtual status_t setPrivateData( Loading @@ -85,6 +91,10 @@ public: virtual status_t sendEvent( int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t sendSessionEvent( const CasSessionId &sessionId, int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t provision(const String8 &str) override; virtual status_t refreshEntitlements( Loading @@ -94,6 +104,7 @@ private: Mutex mKeyFetcherLock; std::unique_ptr<KeyFetcher> mKeyFetcher; CasPluginCallback mCallback; CasPluginCallbackExt mCallbackExt; void* mAppData; }; Loading drm/mediacas/plugins/mock/MockCasPlugin.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,19 @@ status_t MockCasFactory::createPlugin( return OK; } status_t MockCasFactory::createPlugin( int32_t CA_system_id, void* /*appData*/, CasPluginCallbackExt /*callback*/, CasPlugin **plugin) { if (!isSystemIdSupported(CA_system_id)) { return BAD_VALUE; } *plugin = new MockCasPlugin(); return OK; } /////////////////////////////////////////////////////////////////////////////// bool MockDescramblerFactory::isSystemIdSupported(int32_t CA_system_id) const { Loading Loading @@ -170,6 +183,16 @@ status_t MockCasPlugin::sendEvent( return OK; } status_t MockCasPlugin::sendSessionEvent( const CasSessionId &sessionId, int32_t event, int /*arg*/, const CasData& /*eventData*/) { ALOGV("sendSessionEvent: sessionId=%s, event=%d", arrayToString(sessionId).string(), event); Mutex::Autolock lock(mLock); return OK; } status_t MockCasPlugin::provision(const String8 &str) { ALOGV("provision: provisionString=%s", str.string()); Mutex::Autolock lock(mLock); Loading drm/mediacas/plugins/mock/MockCasPlugin.h +10 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,11 @@ public: void *appData, CasPluginCallback callback, CasPlugin **plugin) override; virtual status_t createPlugin( int32_t CA_system_id, void *appData, CasPluginCallbackExt callback, CasPlugin **plugin) override; }; class MockDescramblerFactory : public DescramblerFactory { Loading Loading @@ -80,6 +85,10 @@ public: virtual status_t sendEvent( int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t sendSessionEvent( const CasSessionId &sessionId, int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t provision(const String8 &str) override; virtual status_t refreshEntitlements( Loading Loading
drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.cpp +40 −2 Original line number Diff line number Diff line Loading @@ -65,7 +65,20 @@ status_t ClearKeyCasFactory::createPlugin( *plugin = new ClearKeyCasPlugin(appData, callback); return OK; } /////////////////////////////////////////////////////////////////////////////// status_t ClearKeyCasFactory::createPlugin( int32_t CA_system_id, void *appData, CasPluginCallbackExt callback, CasPlugin **plugin) { if (!isSystemIdSupported(CA_system_id)) { return BAD_VALUE; } *plugin = new ClearKeyCasPlugin(appData, callback); return OK; } //////////////////////////////////////////////////////////////////////////////// bool ClearKeyDescramblerFactory::isSystemIdSupported( int32_t CA_system_id) const { return CA_system_id == sClearKeySystemId; Loading @@ -88,6 +101,12 @@ ClearKeyCasPlugin::ClearKeyCasPlugin( ALOGV("CTOR"); } ClearKeyCasPlugin::ClearKeyCasPlugin( void *appData, CasPluginCallbackExt callback) : mCallbackExt(callback), mAppData(appData) { ALOGV("CTOR"); } ClearKeyCasPlugin::~ClearKeyCasPlugin() { ALOGV("DTOR"); ClearKeySessionLibrary::get()->destroyPlugin(this); Loading Loading @@ -167,8 +186,27 @@ status_t ClearKeyCasPlugin::sendEvent( // Echo the received event to the callback. // Clear key plugin doesn't use any event, echo'ing for testing only. if (mCallback != NULL) { mCallback((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size()); mCallback((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size()); } else if (mCallbackExt != NULL) { mCallbackExt((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size(), NULL); } return OK; } status_t ClearKeyCasPlugin::sendSessionEvent( const CasSessionId &sessionId, int32_t event, int arg, const CasData &eventData) { ALOGV("sendSessionEvent: sessionId=%s, event=%d, arg=%d", sessionIdToString(sessionId).string(), event, arg); // Echo the received event to the callback. // Clear key plugin doesn't use any event, echo'ing for testing only. if (mCallbackExt != NULL) { mCallbackExt((void*)mAppData, event, arg, (uint8_t*)eventData.data(), eventData.size(), &sessionId); } return OK; } Loading
drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.h +11 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,11 @@ public: void *appData, CasPluginCallback callback, CasPlugin **plugin) override; virtual status_t createPlugin( int32_t CA_system_id, void *appData, CasPluginCallbackExt callback, CasPlugin **plugin) override; }; class ClearKeyDescramblerFactory : public DescramblerFactory { Loading @@ -63,6 +68,7 @@ public: class ClearKeyCasPlugin : public CasPlugin { public: ClearKeyCasPlugin(void *appData, CasPluginCallback callback); ClearKeyCasPlugin(void *appData, CasPluginCallbackExt callback); virtual ~ClearKeyCasPlugin(); virtual status_t setPrivateData( Loading @@ -85,6 +91,10 @@ public: virtual status_t sendEvent( int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t sendSessionEvent( const CasSessionId &sessionId, int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t provision(const String8 &str) override; virtual status_t refreshEntitlements( Loading @@ -94,6 +104,7 @@ private: Mutex mKeyFetcherLock; std::unique_ptr<KeyFetcher> mKeyFetcher; CasPluginCallback mCallback; CasPluginCallbackExt mCallbackExt; void* mAppData; }; Loading
drm/mediacas/plugins/mock/MockCasPlugin.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,19 @@ status_t MockCasFactory::createPlugin( return OK; } status_t MockCasFactory::createPlugin( int32_t CA_system_id, void* /*appData*/, CasPluginCallbackExt /*callback*/, CasPlugin **plugin) { if (!isSystemIdSupported(CA_system_id)) { return BAD_VALUE; } *plugin = new MockCasPlugin(); return OK; } /////////////////////////////////////////////////////////////////////////////// bool MockDescramblerFactory::isSystemIdSupported(int32_t CA_system_id) const { Loading Loading @@ -170,6 +183,16 @@ status_t MockCasPlugin::sendEvent( return OK; } status_t MockCasPlugin::sendSessionEvent( const CasSessionId &sessionId, int32_t event, int /*arg*/, const CasData& /*eventData*/) { ALOGV("sendSessionEvent: sessionId=%s, event=%d", arrayToString(sessionId).string(), event); Mutex::Autolock lock(mLock); return OK; } status_t MockCasPlugin::provision(const String8 &str) { ALOGV("provision: provisionString=%s", str.string()); Mutex::Autolock lock(mLock); Loading
drm/mediacas/plugins/mock/MockCasPlugin.h +10 −1 Original line number Diff line number Diff line Loading @@ -42,6 +42,11 @@ public: void *appData, CasPluginCallback callback, CasPlugin **plugin) override; virtual status_t createPlugin( int32_t CA_system_id, void *appData, CasPluginCallbackExt callback, CasPlugin **plugin) override; }; class MockDescramblerFactory : public DescramblerFactory { Loading Loading @@ -80,6 +85,10 @@ public: virtual status_t sendEvent( int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t sendSessionEvent( const CasSessionId &sessionId, int32_t event, int32_t arg, const CasData &eventData) override; virtual status_t provision(const String8 &str) override; virtual status_t refreshEntitlements( Loading