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
80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "ui/display/types/chromeos/display_snapshot.h"
90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochtypedef struct _drmModeConnector drmModeConnector;
110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochtypedef struct _drmModeCrtc drmModeCrtc;
120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochtypedef struct _drmModeProperty drmModePropertyRes;
130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace ui {
150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass DriWrapper;
170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass DisplaySnapshotDri : public DisplaySnapshot {
190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public:
200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DisplaySnapshotDri(DriWrapper* drm,
210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                     drmModeConnector* connector,
220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                     drmModeCrtc* crtc,
230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                     uint32_t index);
240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual ~DisplaySnapshotDri();
250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // Native properties of a display used by the DRI implementation in
270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // configuring this display.
280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t connector() const { return connector_; }
290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t crtc() const { return crtc_; }
300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  drmModePropertyRes* dpms_property() const { return dpms_property_; }
310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  // DisplaySnapshot overrides:
330529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  virtual std::string ToString() const OVERRIDE;
340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch private:
360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t connector_;
370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  uint32_t crtc_;
380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  drmModePropertyRes* dpms_property_;
390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  std::string name_;
400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  bool overscan_flag_;
410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DISALLOW_COPY_AND_ASSIGN(DisplaySnapshotDri);
430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch};
440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
450529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}  // namespace ui
460529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
470529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#endif  // UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_SNAPSHOT_DRI_H_
48