|
|
|
@ -97,7 +97,8 @@ status_t ClearKeyDescramblerFactory::createPlugin(
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
ClearKeyCasPlugin::ClearKeyCasPlugin(
|
|
|
|
|
void *appData, CasPluginCallback callback)
|
|
|
|
|
: mCallback(callback), mCallbackExt(NULL), mAppData(appData) {
|
|
|
|
|
: mCallback(callback), mCallbackExt(NULL), mStatusCallback(NULL),
|
|
|
|
|
mAppData(appData) {
|
|
|
|
|
ALOGV("CTOR");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -112,6 +113,13 @@ ClearKeyCasPlugin::~ClearKeyCasPlugin() {
|
|
|
|
|
ClearKeySessionLibrary::get()->destroyPlugin(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status_t ClearKeyCasPlugin::setStatusCallback(
|
|
|
|
|
CasPluginStatusCallback callback) {
|
|
|
|
|
ALOGV("setStatusCallback");
|
|
|
|
|
mStatusCallback = callback;
|
|
|
|
|
return OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status_t ClearKeyCasPlugin::setPrivateData(const CasData &/*data*/) {
|
|
|
|
|
ALOGV("setPrivateData");
|
|
|
|
|
|
|
|
|
@ -135,6 +143,19 @@ status_t ClearKeyCasPlugin::openSession(CasSessionId* sessionId) {
|
|
|
|
|
return ClearKeySessionLibrary::get()->addSession(this, sessionId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status_t ClearKeyCasPlugin::openSession(uint32_t intent, uint32_t mode,
|
|
|
|
|
CasSessionId* sessionId) {
|
|
|
|
|
ALOGV("openSession with intent=%d, mode=%d", intent, mode);
|
|
|
|
|
// Echo the received information to the callback.
|
|
|
|
|
// Clear key plugin doesn't use any event, echo'ing for testing only.
|
|
|
|
|
if (mStatusCallback != NULL) {
|
|
|
|
|
mStatusCallback((void*)mAppData, intent, mode);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Clear key plugin doesn't use intent and mode.
|
|
|
|
|
return ClearKeySessionLibrary::get()->addSession(this, sessionId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
status_t ClearKeyCasPlugin::closeSession(const CasSessionId &sessionId) {
|
|
|
|
|
ALOGV("closeSession: sessionId=%s", sessionIdToString(sessionId).string());
|
|
|
|
|
std::shared_ptr<ClearKeyCasSession> session =
|
|
|
|
|