1 /* 2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_HDI_DRM_V1_0_IMEDIADECRYPTMODULE_H 17 #define OHOS_HDI_DRM_V1_0_IMEDIADECRYPTMODULE_H 18 19 #include <stdint.h> 20 #include <hdf_base.h> 21 #include <hdi_base.h> 22 #include "drm/v1_0/media_key_system_types.h" 23 24 #ifndef HDI_BUFF_MAX_SIZE 25 #define HDI_BUFF_MAX_SIZE (1024 * 200) 26 #endif 27 28 #ifndef HDI_CHECK_VALUE_RETURN 29 #define HDI_CHECK_VALUE_RETURN(lv, compare, rv, ret) \ 30 do { \ 31 if ((lv)compare(rv)) { \ 32 return ret; \ 33 } \ 34 } while (false) 35 #endif 36 37 #ifndef HDI_CHECK_VALUE_RET_GOTO 38 #define HDI_CHECK_VALUE_RET_GOTO(lv, compare, rv, ret, value, table) \ 39 do { \ 40 if ((lv)compare(rv)) { \ 41 ret = value; \ 42 goto table; \ 43 } \ 44 } while (false) 45 #endif 46 47 namespace OHOS { 48 namespace HDI { 49 namespace Drm { 50 namespace V1_0 { 51 using namespace OHOS; 52 using namespace OHOS::HDI; 53 54 enum { 55 CMD_MEDIA_DECRYPT_MODULE_GET_VERSION = 0, 56 CMD_MEDIA_DECRYPT_MODULE_DECRYPT_MEDIA_DATA = 1, 57 CMD_MEDIA_DECRYPT_MODULE_RELEASE = 2, 58 }; 59 60 class IMediaDecryptModule : public HdiBase { 61 public: 62 DECLARE_HDI_DESCRIPTOR(u"ohos.hdi.drm.v1_0.IMediaDecryptModule"); 63 64 virtual ~IMediaDecryptModule() = default; 65 66 virtual int32_t DecryptMediaData(bool secure, const OHOS::HDI::Drm::V1_0::CryptoInfo &cryptoInfo, 67 const OHOS::HDI::Drm::V1_0::DrmBuffer &srcBuffer, const OHOS::HDI::Drm::V1_0::DrmBuffer &destBuffer) = 0; 68 69 virtual int32_t Release() = 0; 70 GetVersion(uint32_t & majorVer,uint32_t & minorVer)71 virtual int32_t GetVersion(uint32_t &majorVer, uint32_t &minorVer) 72 { 73 majorVer = 1; 74 minorVer = 0; 75 return HDF_SUCCESS; 76 } 77 IsProxy()78 virtual bool IsProxy() 79 { 80 return false; 81 } 82 GetDesc()83 virtual const std::u16string GetDesc() 84 { 85 return metaDescriptor_; 86 } 87 }; 88 } // V1_0 89 } // Drm 90 } // HDI 91 } // OHOS 92 93 #endif // OHOS_HDI_DRM_V1_0_IMEDIADECRYPTMODULE_H