Update of DRM framework

- Overload openDecryptSession() with uri parameter
   in order to accept URI of DRM content,
   Following API is added,
       DecryptHandle*openDecryptSession(const char* uri);.
 - Unify texisting three event types of processDrmInfo()
   so that caller of DRM framework does not have to handle many event types.
 - Let DrmManagerService call load/unload plugins API so that
   client of DRM framework does not have to manage plug-in load/unload.
 - Trivial fix in DrmManagerClient.java is also incorporated.

Changes are made by Sony Corporation.

Change-Id: If62b47fa0360718fdc943e6e6143671d7db26adc
This commit is contained in:
Takeshi Aimi
2010-10-08 23:05:49 +09:00
parent dcd25efb46
commit e943f84129
18 changed files with 276 additions and 243 deletions

View File

@@ -46,14 +46,6 @@ void DrmManagerClientImpl::remove(int uniqueId) {
getDrmManagerService()->removeUniqueId(uniqueId);
}
DrmManagerClientImpl::DrmManagerClientImpl() {
}
DrmManagerClientImpl::~DrmManagerClientImpl() {
}
const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() {
mMutex.lock();
if (NULL == mDrmManagerService.get()) {
@@ -77,16 +69,12 @@ const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() {
return mDrmManagerService;
}
status_t DrmManagerClientImpl::loadPlugIns(int uniqueId) {
return getDrmManagerService()->loadPlugIns(uniqueId);
void DrmManagerClientImpl::addClient(int uniqueId) {
getDrmManagerService()->addClient(uniqueId);
}
status_t DrmManagerClientImpl::loadPlugIns(int uniqueId, const String8& plugInDirPath) {
status_t status = DRM_ERROR_UNKNOWN;
if (EMPTY_STRING != plugInDirPath) {
status = getDrmManagerService()->loadPlugIns(uniqueId, plugInDirPath);
}
return status;
void DrmManagerClientImpl::removeClient(int uniqueId) {
getDrmManagerService()->removeClient(uniqueId);
}
status_t DrmManagerClientImpl::setOnInfoListener(
@@ -96,10 +84,6 @@ status_t DrmManagerClientImpl::setOnInfoListener(
return getDrmManagerService()->setDrmServiceListener(uniqueId, this);
}
status_t DrmManagerClientImpl::unloadPlugIns(int uniqueId) {
return getDrmManagerService()->unloadPlugIns(uniqueId);
}
status_t DrmManagerClientImpl::installDrmEngine(int uniqueId, const String8& drmEngineFile) {
status_t status = DRM_ERROR_UNKNOWN;
if (EMPTY_STRING != drmEngineFile) {
@@ -251,6 +235,14 @@ DecryptHandle* DrmManagerClientImpl::openDecryptSession(
return getDrmManagerService()->openDecryptSession(uniqueId, fd, offset, length);
}
DecryptHandle* DrmManagerClientImpl::openDecryptSession(int uniqueId, const char* uri) {
DecryptHandle* handle = NULL;
if (NULL != uri) {
handle = getDrmManagerService()->openDecryptSession(uniqueId, uri);
}
return handle;
}
status_t DrmManagerClientImpl::closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle) {
status_t status = DRM_ERROR_UNKNOWN;
if (NULL != decryptHandle) {