Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10759)

Unified Diff: chromeos/display/real_output_configurator_delegate.h

Issue 24039002: Pepper API implementation for output protection. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: revise init & terminate of PepperOutputProtectionMessageFilter Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..9e053023b8cb8cdbbd396aac346eba33421637eb 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;
Daniel Erat 2013/09/18 22:39:16 nit: delete blank line
kcwu 2013/09/20 03:03:47 Done.
+ 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,
Daniel Erat 2013/09/18 22:39:16 nit: HDCP_STATE_UNDESIRED etc. to match the enum n
kcwu 2013/09/20 03:03:47 Done.
+ 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);
Daniel Erat 2013/09/18 22:39:16 nit: add blank lines between methods
kcwu 2013/09/20 03:03:47 Done.
+ // 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_;
+
+ // Id for next output protection client.
+ uint64_t next_client_id_;
Daniel Erat 2013/09/18 22:39:16 nit: next_output_protection_client_id_ but does t
kcwu 2013/09/20 03:03:47 Done.
+
DISALLOW_COPY_AND_ASSIGN(RealOutputConfiguratorDelegate);
};

Powered by Google App Engine
This is Rietveld 408576698