10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be
30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file.
40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#ifndef UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_SNAPSHOT_DRI_H_
60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_SNAPSHOT_DRI_H_
70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/display/types/display_snapshot.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/ozone/platform/dri/scoped_drm_types.h"
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace ui {
120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass DriWrapper;
140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass DisplaySnapshotDri : public DisplaySnapshot {
160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public:
170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DisplaySnapshotDri(DriWrapper* drm,
180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                     drmModeConnector* connector,
190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                     drmModeCrtc* crtc,
200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                     uint32_t index);
210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual ~DisplaySnapshotDri();
220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // Native properties of a display used by the DRI implementation in
240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // configuring this display.
250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t connector() const { return connector_; }
260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t crtc() const { return crtc_; }
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  drmModePropertyRes* dpms_property() const { return dpms_property_.get(); }
280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // DisplaySnapshot overrides:
300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual std::string ToString() const OVERRIDE;
310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch private:
330529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t connector_;
340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t crtc_;
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ScopedDrmPropertyPtr dpms_property_;
360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  std::string name_;
370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  bool overscan_flag_;
380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DISALLOW_COPY_AND_ASSIGN(DisplaySnapshotDri);
400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch};
410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}  // namespace ui
430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#endif  // UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_SNAPSHOT_DRI_H_
45