1927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski/* 2927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * Copyright (C) 2014 The Android Open Source Project 3927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * 4927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * you may not use this file except in compliance with the License. 6927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * You may obtain a copy of the License at 7927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * 8927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * 10927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * Unless required by applicable law or agreed to in writing, software 11927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * See the License for the specific language governing permissions and 14927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski * limitations under the License. 15927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski */ 16927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 17927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski#ifndef __NO_OP_DRM_MANAGER_CLIENT_IMPL_H__ 18927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski#define __NO_OP_DRM_MANAGER_CLIENT_IMPL_H__ 19927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 20927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski#include "DrmManagerClientImpl.h" 21927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 22927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinskinamespace android { 23927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 24927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinskiclass NoOpDrmManagerClientImpl : public DrmManagerClientImpl { 25927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinskipublic: 26927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski NoOpDrmManagerClientImpl() { } 27927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 28927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski void remove(int uniqueId); 29927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski void addClient(int uniqueId); 30927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski void removeClient(int uniqueId); 31927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t setOnInfoListener( 32927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int uniqueId, const sp<DrmManagerClient::OnInfoListener>& infoListener); 33927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski DrmConstraints* getConstraints(int uniqueId, const String8* path, const int action); 34927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 35927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski DrmMetadata* getMetadata(int uniqueId, const String8* path); 36927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski bool canHandle(int uniqueId, const String8& path, const String8& mimeType); 37927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo); 38927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski DrmInfo* acquireDrmInfo(int uniqueId, const DrmInfoRequest* drmInfoRequest); 39927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t saveRights(int uniqueId, const DrmRights& drmRights, 40927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski const String8& rightsPath, const String8& contentPath); 41927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski String8 getOriginalMimeType(int uniqueId, const String8& path, int fd); 42927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int getDrmObjectType(int uniqueId, const String8& path, const String8& mimeType); 43927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int checkRightsStatus(int uniqueId, const String8& path, int action); 44927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t consumeRights(int uniqueId, sp<DecryptHandle> &decryptHandle, int action, bool reserve); 45927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t setPlaybackStatus( 46927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int uniqueId, sp<DecryptHandle> &decryptHandle, int playbackStatus, int64_t position); 47927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski bool validateAction( 48927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int uniqueId, const String8& path, int action, const ActionDescription& description); 49927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t removeRights(int uniqueId, const String8& path); 50927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t removeAllRights(int uniqueId); 51927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int openConvertSession(int uniqueId, const String8& mimeType); 52927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski DrmConvertedStatus* convertData(int uniqueId, int convertId, const DrmBuffer* inputData); 53927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski DrmConvertedStatus* closeConvertSession(int uniqueId, int convertId); 54927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t getAllSupportInfo(int uniqueId, int* length, DrmSupportInfo** drmSupportInfoArray); 55927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski sp<DecryptHandle> openDecryptSession( 56927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int uniqueId, int fd, off64_t offset, off64_t length, const char* mime); 57927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski sp<DecryptHandle> openDecryptSession( 58927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int uniqueId, const char* uri, const char* mime); 59927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski sp<DecryptHandle> openDecryptSession(int uniqueId, const DrmBuffer& buf, 60927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski const String8& mimeType); 61927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t closeDecryptSession(int uniqueId, sp<DecryptHandle> &decryptHandle); 62927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t initializeDecryptUnit(int uniqueId, sp<DecryptHandle> &decryptHandle, 63927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski int decryptUnitId, const DrmBuffer* headerInfo); 64927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t decrypt(int uniqueId, sp<DecryptHandle> &decryptHandle, int decryptUnitId, 65927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski const DrmBuffer* encBuffer, DrmBuffer** decBuffer, DrmBuffer* IV); 66927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t finalizeDecryptUnit(int uniqueId, sp<DecryptHandle> &decryptHandle, int decryptUnitId); 67927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski ssize_t pread(int uniqueId, sp<DecryptHandle> &decryptHandle, 68927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski void* buffer, ssize_t numBytes, off64_t offset); 69927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski status_t notify(const DrmInfoEvent& event); 70927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski}; 71927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 72927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski} 73927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski 74927634a98167e24241b89d80a1ea4511c0bb9cd1Adam Lesinski#endif // __NO_OP_DRM_MANAGER_CLIENT_IMPL_H 75