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)
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef UI_DISPLAY_TYPES_DISPLAY_MODE_H_
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define UI_DISPLAY_TYPES_DISPLAY_MODE_H_
723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include <string>
923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "base/macros.h"
11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ui/display/types/display_types_export.h"
1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ui/gfx/geometry/size.h"
1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace ui {
1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// This class represents the basic information for a native mode. Platforms will
1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// extend this class to add platform specific information about the mode.
18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass DISPLAY_TYPES_EXPORT DisplayMode {
1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) public:
2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  DisplayMode(const gfx::Size& size, bool interlaced, float refresh_rate);
2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  virtual ~DisplayMode();
2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  const gfx::Size& size() const { return size_; }
2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  bool is_interlaced() const { return is_interlaced_; }
2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  float refresh_rate() const { return refresh_rate_; }
2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  virtual std::string ToString() const;
2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) private:
3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  gfx::Size size_;
3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  bool is_interlaced_;
3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  float refresh_rate_;
3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(DisplayMode);
3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)};
3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}  // namespace ui
3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif  // UI_DISPLAY_TYPES_DISPLAY_MODE_H_
40