123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#ifndef UI_DISPLAY_CHROMEOS_X11_DISPLAY_SNAPSHOT_X11_H_ 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#define UI_DISPLAY_CHROMEOS_X11_DISPLAY_SNAPSHOT_X11_H_ 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/display/display_export.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/display/types/display_snapshot.h" 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Forward declare from Xlib and Xrandr. 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)typedef unsigned long XID; 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)typedef XID RROutput; 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)typedef XID RRCrtc; 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace ui { 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)class DISPLAY_EXPORT DisplaySnapshotX11 : public DisplaySnapshot { 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) public: 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DisplaySnapshotX11(int64_t display_id, 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) bool has_proper_display_id, 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const gfx::Point& origin, 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const gfx::Size& physical_size, 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch DisplayConnectionType type, 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) bool is_aspect_preserving_scaling, 26c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch bool has_overscan, 27c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch std::string display_name, 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const std::vector<const DisplayMode*>& modes, 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const DisplayMode* current_mode, 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const DisplayMode* native_mode, 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) RROutput output, 3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) RRCrtc crtc, 3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int index); 3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual ~DisplaySnapshotX11(); 3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) RROutput output() const { return output_; } 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) RRCrtc crtc() const { return crtc_; } 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int index() const { return index_; } 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // DisplaySnapshot overrides: 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual std::string ToString() const OVERRIDE; 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) private: 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) RROutput output_; 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // CRTC that should be used for this output. Not necessarily the CRTC 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // that XRandR reports is currently being used. 4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) RRCrtc crtc_; 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // This output's index in the array returned by XRandR. Stable even as 5123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // outputs are connected or disconnected. 5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) int index_; 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(DisplaySnapshotX11); 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}; 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace ui 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#endif // UI_DISPLAY_CHROMEOS_X11_DISPLAY_SNAPSHOT_X11_H_ 60