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:
@@ -16,12 +16,14 @@ using video_widevine_server::sdk::LicenseIdentification;
|
||||
|
||||
class Clock;
|
||||
class CryptoSession;
|
||||
class WvCdmEventListener;
|
||||
|
||||
// This acts as an oracle that basically says "Yes(true) you may still decrypt
|
||||
// or no(false) you may not decrypt this data anymore."
|
||||
class PolicyEngine {
|
||||
public:
|
||||
explicit PolicyEngine(CryptoSession* crypto_session);
|
||||
PolicyEngine(CdmSessionId session_id, WvCdmEventListener* event_listener,
|
||||
CryptoSession* crypto_session);
|
||||
virtual ~PolicyEngine();
|
||||
|
||||
// The value returned should be taken as a hint rather than an absolute
|
||||
@@ -32,11 +34,9 @@ class PolicyEngine {
|
||||
virtual bool CanDecrypt(const KeyId& key_id);
|
||||
|
||||
// OnTimerEvent is called when a timer fires. It notifies the Policy Engine
|
||||
// that the timer has fired and that it should check whether any events have
|
||||
// occurred since the last timer event. If so, it sets event_occurred to true
|
||||
// and sets event to point to the event that occurred. If not, it sets
|
||||
// event_occurred to false.
|
||||
virtual void OnTimerEvent(bool* event_occurred, CdmEventType* event);
|
||||
// that the timer has fired and dispatches the relevant events through
|
||||
// |event_listener_|.
|
||||
virtual void OnTimerEvent();
|
||||
|
||||
// SetLicense is used in handling the initial license response. It stores
|
||||
// an exact copy of the policy information stored in the license.
|
||||
@@ -126,6 +126,10 @@ class PolicyEngine {
|
||||
int64_t next_renewal_time_;
|
||||
int64_t policy_max_duration_seconds_;
|
||||
|
||||
// Used to dispatch CDM events.
|
||||
CdmSessionId session_id_;
|
||||
WvCdmEventListener* event_listener_;
|
||||
|
||||
MaxResEngine max_res_engine_;
|
||||
scoped_ptr<Clock> clock_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user