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