diff options
Diffstat (limited to 'drm/libdrmframework/include/DrmManager.h')
-rw-r--r-- | drm/libdrmframework/include/DrmManager.h | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/drm/libdrmframework/include/DrmManager.h b/drm/libdrmframework/include/DrmManager.h deleted file mode 100644 index c9167d4..0000000 --- a/drm/libdrmframework/include/DrmManager.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __DRM_MANAGER_H__ -#define __DRM_MANAGER_H__ - -#include <utils/Errors.h> -#include <utils/threads.h> -#include <drm/drm_framework_common.h> -#include "IDrmEngine.h" -#include "PlugInManager.h" -#include "IDrmServiceListener.h" - -namespace android { - -class IDrmManager; -class DrmRegistrationInfo; -class DrmUnregistrationInfo; -class DrmRightsAcquisitionInfo; -class DrmConstraints; -class DrmMetadata; -class DrmRights; -class DrmInfo; -class DrmInfoStatus; -class DrmConvertedStatus; -class DrmInfoRequest; -class DrmSupportInfo; -class ActionDescription; - -/** - * This is implementation class for DRM Manager. This class delegates the - * functionality to corresponding DRM Engine. - * - * The DrmManagerService class creates an instance of this class. - * - */ -class DrmManager : public IDrmEngine::OnInfoListener { -public: - DrmManager(); - virtual ~DrmManager(); - -public: - int addUniqueId(bool isNative); - - void removeUniqueId(int uniqueId); - - void addClient(int uniqueId); - - void removeClient(int uniqueId); - - status_t loadPlugIns(); - - status_t loadPlugIns(const String8& plugInDirPath); - - status_t unloadPlugIns(); - - status_t setDrmServiceListener( - int uniqueId, const sp<IDrmServiceListener>& drmServiceListener); - - status_t installDrmEngine(int uniqueId, const String8& drmEngineFile); - - DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action); - - DrmMetadata* getMetadata(int uniqueId, const String8* path); - - bool canHandle(int uniqueId, const String8& path, const String8& mimeType); - - DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo); - - DrmInfo* acquireDrmInfo(int uniqueId, const DrmInfoRequest* drmInfoRequest); - - status_t saveRights(int uniqueId, const DrmRights& drmRights, - const String8& rightsPath, const String8& contentPath); - - String8 getOriginalMimeType(int uniqueId, const String8& path); - - int getDrmObjectType(int uniqueId, const String8& path, const String8& mimeType); - - int checkRightsStatus(int uniqueId, const String8& path, int action); - - status_t consumeRights(int uniqueId, DecryptHandle* decryptHandle, int action, bool reserve); - - status_t setPlaybackStatus( - int uniqueId, DecryptHandle* decryptHandle, int playbackStatus, int64_t position); - - bool validateAction( - int uniqueId, const String8& path, int action, const ActionDescription& description); - - status_t removeRights(int uniqueId, const String8& path); - - status_t removeAllRights(int uniqueId); - - int openConvertSession(int uniqueId, const String8& mimeType); - - DrmConvertedStatus* convertData(int uniqueId, int convertId, const DrmBuffer* inputData); - - DrmConvertedStatus* closeConvertSession(int uniqueId, int convertId); - - status_t getAllSupportInfo(int uniqueId, int* length, DrmSupportInfo** drmSupportInfoArray); - - DecryptHandle* openDecryptSession( - int uniqueId, int fd, off64_t offset, off64_t length, const char* mime); - - DecryptHandle* openDecryptSession(int uniqueId, const char* uri, const char* mime); - - status_t closeDecryptSession(int uniqueId, DecryptHandle* decryptHandle); - - status_t initializeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, - int decryptUnitId, const DrmBuffer* headerInfo); - - status_t decrypt(int uniqueId, DecryptHandle* decryptHandle, int decryptUnitId, - const DrmBuffer* encBuffer, DrmBuffer** decBuffer, DrmBuffer* IV); - - status_t finalizeDecryptUnit(int uniqueId, DecryptHandle* decryptHandle, int decryptUnitId); - - ssize_t pread(int uniqueId, DecryptHandle* decryptHandle, - void* buffer, ssize_t numBytes, off64_t offset); - - void onInfo(const DrmInfoEvent& event); - -private: - String8 getSupportedPlugInId(int uniqueId, const String8& path, const String8& mimeType); - - String8 getSupportedPlugInId(const String8& mimeType); - - String8 getSupportedPlugInIdFromPath(int uniqueId, const String8& path); - - bool canHandle(int uniqueId, const String8& path); - -private: - Vector<int> mUniqueIdVector; - static const String8 EMPTY_STRING; - - int mDecryptSessionId; - int mConvertId; - Mutex mLock; - Mutex mListenerLock; - Mutex mDecryptLock; - Mutex mConvertLock; - TPlugInManager<IDrmEngine> mPlugInManager; - KeyedVector< DrmSupportInfo, String8 > mSupportInfoToPlugInIdMap; - KeyedVector< int, IDrmEngine*> mConvertSessionMap; - KeyedVector< int, sp<IDrmServiceListener> > mServiceListeners; - KeyedVector< int, IDrmEngine*> mDecryptSessionMap; -}; - -}; - -#endif /* __DRM_MANAGER_H__ */ - |