Interface update in change 16810770 Bug: 214410088 Test: atest VtsAidlHalDrmTargetTest Change-Id: I19da51ef75952f5ff6c7c02e0393f574e69ee30b
69 lines
2.0 KiB
C++
69 lines
2.0 KiB
C++
//
|
|
// Copyright 2021 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine License
|
|
// Agreement.
|
|
//
|
|
|
|
#ifndef WV_DRM_FACTORY_H_
|
|
#define WV_DRM_FACTORY_H_
|
|
|
|
#include <aidl/android/hardware/drm/BnDrmFactory.h>
|
|
#include <aidl/android/hardware/drm/IDrmFactory.h>
|
|
#include <aidl/android/hardware/drm/IDrmPlugin.h>
|
|
|
|
#include "WVGenericCryptoInterface.h"
|
|
#include "WVTypes.h"
|
|
|
|
namespace wvdrm {
|
|
namespace hardware {
|
|
namespace drm {
|
|
namespace widevine {
|
|
|
|
struct WVDrmFactory : public ::aidl::android::hardware::drm::BnDrmFactory {
|
|
WVDrmFactory() {}
|
|
virtual ~WVDrmFactory() {}
|
|
|
|
::ndk::ScopedAStatus createDrmPlugin(
|
|
const ::aidl::android::hardware::drm::Uuid& in_uuid,
|
|
const std::string& in_appPackageName,
|
|
std::shared_ptr<::aidl::android::hardware::drm::IDrmPlugin>* _aidl_return)
|
|
override;
|
|
|
|
::ndk::ScopedAStatus createCryptoPlugin(
|
|
const ::aidl::android::hardware::drm::Uuid& in_uuid,
|
|
const std::vector<uint8_t>& in_initData,
|
|
std::shared_ptr<::aidl::android::hardware::drm::ICryptoPlugin>*
|
|
_aidl_return) override;
|
|
|
|
::ndk::ScopedAStatus getSupportedCryptoSchemes(
|
|
::aidl::android::hardware::drm::CryptoSchemes* _aidl_return) override;
|
|
|
|
// This method is not part of the AIDL interface, it is provided
|
|
// for Widevine CDM.
|
|
bool isCryptoSchemeSupported(
|
|
const ::aidl::android::hardware::drm::Uuid& in_uuid);
|
|
|
|
binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;
|
|
|
|
private:
|
|
WVDRM_DISALLOW_COPY_AND_ASSIGN(WVDrmFactory);
|
|
|
|
static WVGenericCryptoInterface sOemCryptoInterface;
|
|
|
|
static bool areSpoidsEnabled();
|
|
static bool isBlankAppPackageNameAllowed();
|
|
static int32_t firstApiLevel();
|
|
static std::string stringToHex(const std::string& input);
|
|
static void printCdmMetrics(int fd);
|
|
static void printCdmProperties(int fd);
|
|
|
|
friend class WVDrmFactoryTestPeer;
|
|
};
|
|
|
|
} // namespace widevine
|
|
} // namespace drm
|
|
} // namespace hardware
|
|
} // namespace wvdrm
|
|
|
|
#endif // WV_DRM_FACTORY_H_
|