Replace generic OnEvent with actual event callbacks
Also pass session_id and event_listener to PolicyEngine to make it easier to dispatch events from PolicyEngine. Bug: 19771437 Merged from Widevine CDM repo: https://widevine-internal-review.googlesource.com/#/c/13816/ Change-Id: I5723cb371cb3c43c945051af3402b09069ba5859
This commit is contained in:
@@ -30,7 +30,8 @@ CdmSession::CdmSession(const CdmClientPropertySet* cdm_client_property_set,
|
||||
event_listener_(event_listener),
|
||||
license_parser_(new CdmLicense),
|
||||
crypto_session_(new CryptoSession),
|
||||
policy_engine_(new PolicyEngine(crypto_session_.get())),
|
||||
policy_engine_(new PolicyEngine(session_id_, event_listener_,
|
||||
crypto_session_.get())),
|
||||
file_handle_(new DeviceFiles),
|
||||
license_received_(false),
|
||||
is_offline_(false),
|
||||
@@ -519,9 +520,6 @@ void CdmSession::NotifyResolution(uint32_t width, uint32_t height) {
|
||||
}
|
||||
|
||||
void CdmSession::OnTimerEvent(bool update_usage) {
|
||||
bool event_occurred = false;
|
||||
CdmEventType event;
|
||||
|
||||
if (update_usage && has_decrypted_since_last_report_) {
|
||||
policy_engine_->DecryptionEvent();
|
||||
has_decrypted_since_last_report_ = false;
|
||||
@@ -529,17 +527,12 @@ void CdmSession::OnTimerEvent(bool update_usage) {
|
||||
StoreLicense(DeviceFiles::kLicenseStateActive);
|
||||
}
|
||||
}
|
||||
policy_engine_->OnTimerEvent(&event_occurred, &event);
|
||||
|
||||
if (event_occurred) {
|
||||
if (event_listener_) event_listener_->OnEvent(session_id_, event);
|
||||
}
|
||||
policy_engine_->OnTimerEvent();
|
||||
}
|
||||
|
||||
void CdmSession::OnKeyReleaseEvent(const CdmKeySetId& key_set_id) {
|
||||
if (key_set_id_ == key_set_id) {
|
||||
if (event_listener_)
|
||||
event_listener_->OnEvent(session_id_, LICENSE_EXPIRED_EVENT);
|
||||
if (event_listener_) event_listener_->OnSessionExpiration(session_id_);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user