diff options
Diffstat (limited to 'drm/libmediadrm/DrmHal.cpp')
| -rw-r--r-- | drm/libmediadrm/DrmHal.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drm/libmediadrm/DrmHal.cpp b/drm/libmediadrm/DrmHal.cpp index 5888af0e58..919f4ee1df 100644 --- a/drm/libmediadrm/DrmHal.cpp +++ b/drm/libmediadrm/DrmHal.cpp @@ -40,7 +40,6 @@ #include <mediadrm/DrmSessionManager.h> using drm::V1_0::KeyedVector; -using drm::V1_0::KeyStatusType; using drm::V1_0::KeyRequestType; using drm::V1_0::KeyType; using drm::V1_0::KeyValue; @@ -51,6 +50,7 @@ using drm::V1_1::HdcpLevel; using drm::V1_1::SecureStopRelease; using drm::V1_1::SecurityLevel; using drm::V1_2::KeySetId; +using drm::V1_2::KeyStatusType; using ::android::hardware::drm::V1_1::DrmMetricGroup; using ::android::hardware::hidl_array; using ::android::hardware::hidl_string; @@ -517,6 +517,17 @@ Return<void> DrmHal::sendExpirationUpdate(const hidl_vec<uint8_t>& sessionId, } Return<void> DrmHal::sendKeysChange(const hidl_vec<uint8_t>& sessionId, + const hidl_vec<KeyStatus_V1_0>& keyStatusList_V1_0, bool hasNewUsableKey) { + std::vector<KeyStatus> keyStatusVec; + for (const auto &keyStatus_V1_0 : keyStatusList_V1_0) { + keyStatusVec.push_back({keyStatus_V1_0.keyId, + static_cast<KeyStatusType>(keyStatus_V1_0.type)}); + } + hidl_vec<KeyStatus> keyStatusList_V1_2(keyStatusVec); + return sendKeysChange_1_2(sessionId, keyStatusList_V1_2, hasNewUsableKey); +} + +Return<void> DrmHal::sendKeysChange_1_2(const hidl_vec<uint8_t>& sessionId, const hidl_vec<KeyStatus>& keyStatusList, bool hasNewUsableKey) { mEventLock.lock(); @@ -546,6 +557,9 @@ Return<void> DrmHal::sendKeysChange(const hidl_vec<uint8_t>& sessionId, case KeyStatusType::STATUSPENDING: type = DrmPlugin::kKeyStatusType_StatusPending; break; + case KeyStatusType::USABLEINFUTURE: + type = DrmPlugin::kKeyStatusType_UsableInFuture; + break; case KeyStatusType::INTERNALERROR: default: type = DrmPlugin::kKeyStatusType_InternalError; |
