| 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..1f886096a1178c02a7131e072bbd37c1020e0b78 100644
|
| --- a/chromeos/display/real_output_configurator_delegate.h
|
| +++ b/chromeos/display/real_output_configurator_delegate.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef CHROMEOS_DISPLAY_REAL_OUTPUT_CONFIGURATOR_DELEGATE_H_
|
| #define CHROMEOS_DISPLAY_REAL_OUTPUT_CONFIGURATOR_DELEGATE_H_
|
|
|
| +#include <map>
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| @@ -54,7 +55,26 @@ class RealOutputConfiguratorDelegate : public OutputConfigurator::Delegate {
|
| const OutputConfigurator::CoordinateTransformation& ctm) OVERRIDE;
|
| virtual void SendProjectingStateToPowerManager(bool projecting) OVERRIDE;
|
|
|
| + virtual uint64_t RegisterOutputProtectionClient() OVERRIDE;
|
| + virtual void UnregisterOutputProtectionClient(uint64_t client_id) OVERRIDE;
|
| + virtual bool QueryOutputProtectionStatus(
|
| + uint64_t client_id,
|
| + uint32_t* link_mask,
|
| + uint32_t* protection_mask) OVERRIDE;
|
| + virtual bool EnableOutputProtection(
|
| + uint64_t client_id,
|
| + uint32_t desired_method_mask) OVERRIDE;
|
| +
|
| private:
|
| + // Mapping a client to its protection request bitmask.
|
| + typedef std::map<uint64_t, 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 +125,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,
|
| + OutputLinkType *link_type);
|
| +
|
| Display* display_;
|
| Window window_;
|
|
|
| @@ -114,6 +143,12 @@ 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_;
|
| +
|
| + // TODO(kcwu) lock
|
| + uint64_t next_client_id_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(RealOutputConfiguratorDelegate);
|
| };
|
|
|
|
|