am 9e0bb6d5: am 0544d059: Merge "DRM Framework bug fixes."

* commit '9e0bb6d5eef5dfe2da60c50f3aaa39512307d11d':
  DRM Framework bug fixes.
This commit is contained in:
Gloria Wang
2011-01-11 14:55:56 -08:00
committed by Android Git Automerger
4 changed files with 11 additions and 2 deletions

View File

@@ -117,7 +117,11 @@ status_t DrmManager::unloadPlugIns() {
status_t DrmManager::setDrmServiceListener( status_t DrmManager::setDrmServiceListener(
int uniqueId, const sp<IDrmServiceListener>& drmServiceListener) { int uniqueId, const sp<IDrmServiceListener>& drmServiceListener) {
Mutex::Autolock _l(mLock); Mutex::Autolock _l(mLock);
mServiceListeners.add(uniqueId, drmServiceListener); if (NULL != drmServiceListener.get()) {
mServiceListeners.add(uniqueId, drmServiceListener);
} else {
mServiceListeners.removeItem(uniqueId);
}
return DRM_NO_ERROR; return DRM_NO_ERROR;
} }

View File

@@ -31,6 +31,7 @@ DrmManagerClient::DrmManagerClient():
DrmManagerClient::~DrmManagerClient() { DrmManagerClient::~DrmManagerClient() {
DrmManagerClientImpl::remove(mUniqueId); DrmManagerClientImpl::remove(mUniqueId);
mDrmManagerClientImpl->removeClient(mUniqueId); mDrmManagerClientImpl->removeClient(mUniqueId);
mDrmManagerClientImpl->setOnInfoListener(mUniqueId, NULL);
delete mDrmManagerClientImpl; mDrmManagerClientImpl = NULL; delete mDrmManagerClientImpl; mDrmManagerClientImpl = NULL;
} }

View File

@@ -81,7 +81,8 @@ status_t DrmManagerClientImpl::setOnInfoListener(
int uniqueId, const sp<DrmManagerClient::OnInfoListener>& infoListener) { int uniqueId, const sp<DrmManagerClient::OnInfoListener>& infoListener) {
Mutex::Autolock _l(mLock); Mutex::Autolock _l(mLock);
mOnInfoListener = infoListener; mOnInfoListener = infoListener;
return getDrmManagerService()->setDrmServiceListener(uniqueId, this); return getDrmManagerService()->setDrmServiceListener(uniqueId,
(NULL != infoListener.get()) ? this : NULL);
} }
status_t DrmManagerClientImpl::installDrmEngine(int uniqueId, const String8& drmEngineFile) { status_t DrmManagerClientImpl::installDrmEngine(int uniqueId, const String8& drmEngineFile) {

View File

@@ -48,6 +48,9 @@ public:
public: public:
class OnInfoListener: virtual public RefBase { class OnInfoListener: virtual public RefBase {
public:
virtual ~OnInfoListener() {}
public: public:
virtual void onInfo(const DrmInfoEvent& event) = 0; virtual void onInfo(const DrmInfoEvent& event) = 0;
}; };