summaryrefslogtreecommitdiffstats
path: root/chromium/ui/display/types/chromeos/native_display_delegate.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/display/types/chromeos/native_display_delegate.h')
-rw-r--r--chromium/ui/display/types/chromeos/native_display_delegate.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/chromium/ui/display/types/chromeos/native_display_delegate.h b/chromium/ui/display/types/chromeos/native_display_delegate.h
new file mode 100644
index 00000000000..8cbffdb1813
--- /dev/null
+++ b/chromium/ui/display/types/chromeos/native_display_delegate.h
@@ -0,0 +1,95 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_DISPLAY_TYPES_CHROMEOS_NATIVE_DISPLAY_DELEGATE_H_
+#define UI_DISPLAY_TYPES_CHROMEOS_NATIVE_DISPLAY_DELEGATE_H_
+
+#include <stdint.h>
+
+#include <vector>
+
+#include "ui/display/types/display_constants.h"
+#include "ui/display/types/display_types_export.h"
+
+namespace gfx {
+class Point;
+class Size;
+}
+
+namespace ui {
+class DisplayMode;
+class DisplaySnapshot;
+
+class NativeDisplayObserver;
+
+// Interface for classes that perform display configuration actions on behalf
+// of DisplayConfigurator.
+class DISPLAY_TYPES_EXPORT NativeDisplayDelegate {
+ public:
+ virtual ~NativeDisplayDelegate() {}
+
+ virtual void Initialize() = 0;
+
+ // Grabs and refreshes any display server related resources. Must be balanced
+ // by a call to UngrabServer().
+ virtual void GrabServer() = 0;
+
+ // Released the display server and any resources allocated by GrabServer().
+ virtual void UngrabServer() = 0;
+
+ // Flushes all pending requests and waits for replies.
+ virtual void SyncWithServer() = 0;
+
+ // Sets the window's background color to |color_argb|.
+ virtual void SetBackgroundColor(uint32_t color_argb) = 0;
+
+ // Enables DPMS and forces it to the "on" state.
+ virtual void ForceDPMSOn() = 0;
+
+ // Returns information about the current outputs. This method may block for
+ // 60 milliseconds or more.
+ // NativeDisplayDelegate maintains ownership of the ui::DisplaySnapshot
+ // pointers.
+ virtual std::vector<ui::DisplaySnapshot*> GetDisplays() = 0;
+
+ // Adds |mode| to |output|. |mode| must be a valid display mode pointer.
+ virtual void AddMode(const ui::DisplaySnapshot& output,
+ const ui::DisplayMode* mode) = 0;
+
+ // Configures the display represented by |output| to use |mode| and positions
+ // the display to |origin| in the framebuffer. |mode| can be NULL, which
+ // represents disabling the display. Returns true on success.
+ virtual bool Configure(const ui::DisplaySnapshot& output,
+ const ui::DisplayMode* mode,
+ const gfx::Point& origin) = 0;
+
+ // Called to set the frame buffer (underlying XRR "screen") size.
+ virtual void CreateFrameBuffer(const gfx::Size& size) = 0;
+
+ // Gets HDCP state of output.
+ virtual bool GetHDCPState(const ui::DisplaySnapshot& output,
+ ui::HDCPState* state) = 0;
+
+ // Sets HDCP state of output.
+ virtual bool SetHDCPState(const ui::DisplaySnapshot& output,
+ ui::HDCPState state) = 0;
+
+ // Gets the available list of color calibrations.
+ virtual std::vector<ui::ColorCalibrationProfile>
+ GetAvailableColorCalibrationProfiles(
+ const ui::DisplaySnapshot& output) = 0;
+
+ // Sets the color calibration of |output| to |new_profile|.
+ virtual bool SetColorCalibrationProfile(
+ const ui::DisplaySnapshot& output,
+ ui::ColorCalibrationProfile new_profile) = 0;
+
+ virtual void AddObserver(NativeDisplayObserver* observer) = 0;
+
+ virtual void RemoveObserver(NativeDisplayObserver* observer) = 0;
+};
+
+} // namespace ui
+
+#endif // UI_DISPLAY_TYPES_CHROMEOS_NATIVE_DISPLAY_DELEGATE_H_