Index: chromeos/display/real_output_configurator_delegate.h |
diff --git a/chromeos/display/real_output_configurator_delegate.h b/chromeos/display/real_output_configurator_delegate.h |
index 2753ae55ffb19c778613eab77193abb8467c1699..57f194920b3e6fd81b55c267cea2d0d2c01f9824 100644 |
--- a/chromeos/display/real_output_configurator_delegate.h |
+++ b/chromeos/display/real_output_configurator_delegate.h |
@@ -5,11 +5,13 @@ |
#ifndef CHROMEOS_DISPLAY_REAL_OUTPUT_CONFIGURATOR_DELEGATE_H_ |
#define CHROMEOS_DISPLAY_REAL_OUTPUT_CONFIGURATOR_DELEGATE_H_ |
+#include <map> |
#include <vector> |
#include "base/basictypes.h" |
#include "base/compiler_specific.h" |
#include "chromeos/display/output_configurator.h" |
+#include "ppapi/c/private/ppb_output_protection_private.h" |
typedef XID Window; |
@@ -53,8 +55,24 @@ class RealOutputConfiguratorDelegate : public OutputConfigurator::Delegate { |
int touch_device_id, |
const OutputConfigurator::CoordinateTransformation& ctm) OVERRIDE; |
virtual void SendProjectingStateToPowerManager(bool projecting) OVERRIDE; |
+ virtual bool QueryOutputProtectionStatus( |
+ const void* client, |
+ uint32_t* link_mask, |
+ uint32_t* protection_mask) OVERRIDE; |
+ virtual bool EnableOutputProtection( |
+ const void* client, |
+ uint32_t desired_method_mask) OVERRIDE; |
private: |
+ // Mapping a client to its protection request bitmask. |
+ typedef std::map<const void*, uint32_t> ProtectionRequests; |
+ |
+ enum HDCPState { |
+ HDCP_State_Undesired, |
+ HDCP_State_Desired, |
+ HDCP_State_Enabled |
+ }; |
+ |
// Gets details corresponding to |mode|. Parameters may be NULL. Returns |
// true on success. |
bool GetModeDetails(RRMode mode, int* width, int* height, bool* interlaced); |
@@ -105,6 +123,15 @@ class RealOutputConfiguratorDelegate : public OutputConfigurator::Delegate { |
void GetTouchscreens( |
std::vector<OutputConfigurator::OutputSnapshot>* outputs); |
+ // Get HDCP state of output. |
+ bool GetHDCPState(RROutput id, HDCPState* state); |
+ // Set HDCP state of output. |
+ bool SetHDCPState(RROutput id, HDCPState state); |
+ // Query output protection link type of output. |
+ bool QueryOutputProtectionLinkType( |
+ RROutput id, |
+ PP_OutputProtectionLinkType_Private *link_type); |
+ |
Display* display_; |
Window window_; |
@@ -114,6 +141,9 @@ class RealOutputConfiguratorDelegate : public OutputConfigurator::Delegate { |
// Used to enable modes which rely on panel fitting. |
bool is_panel_fitting_enabled_; |
+ // Output protection requests of each client. |
+ ProtectionRequests client_protection_requests_; |
+ |
DISALLOW_COPY_AND_ASSIGN(RealOutputConfiguratorDelegate); |
}; |