1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_MESSAGE_HANDLER_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_MESSAGE_HANDLER_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/memory/scoped_ptr.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "ui/ozone/public/gpu_platform_support.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace gfx {
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Point;
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace ui {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass NativeDisplayDelegateDri;
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct DisplayMode_Params;
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstruct DisplaySnapshot_Params;
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass DisplayMessageHandler : public GpuPlatformSupport {
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DisplayMessageHandler(scoped_ptr<NativeDisplayDelegateDri> ndd);
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual ~DisplayMessageHandler();
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // GpuPlatformSupport:
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void OnChannelEstablished(IPC::Sender* sender) OVERRIDE;
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  // IPC::Listener:
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void OnForceDPMSOn();
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  void OnRefreshNativeDisplays(
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const std::vector<DisplaySnapshot_Params>& cached_displays);
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void OnConfigureNativeDisplay(int64_t id,
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                const DisplayMode_Params& mode,
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                                const gfx::Point& origin);
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void OnDisableNativeDisplay(int64_t id);
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  IPC::Sender* sender_;
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<NativeDisplayDelegateDri> ndd_;
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(DisplayMessageHandler);
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace ui
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // UI_OZONE_PLATFORM_DRI_CHROMEOS_DISPLAY_MESSAGE_HANDLER_H_
51