diff options
Diffstat (limited to 'ppapi/proxy/ppb_fullscreen_proxy.cc')
-rw-r--r-- | ppapi/proxy/ppb_fullscreen_proxy.cc | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/ppapi/proxy/ppb_fullscreen_proxy.cc b/ppapi/proxy/ppb_fullscreen_proxy.cc new file mode 100644 index 0000000..ddf0cdb --- /dev/null +++ b/ppapi/proxy/ppb_fullscreen_proxy.cc @@ -0,0 +1,75 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ppapi/proxy/ppb_fullscreen_proxy.h" + +#include "ppapi/c/dev/ppb_fullscreen_dev.h" +#include "ppapi/proxy/plugin_dispatcher.h" +#include "ppapi/proxy/ppapi_messages.h" + +namespace pp { +namespace proxy { + +namespace { + +PP_Bool IsFullscreen(PP_Instance instance) { + PP_Bool result = PP_FALSE; + PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBFullscreen_IsFullscreen( + INTERFACE_ID_PPB_FULLSCREEN, instance, &result)); + return result; +} + +PP_Bool SetFullscreen(PP_Instance instance, PP_Bool fullscreen) { + PP_Bool result = PP_FALSE; + PluginDispatcher::Get()->Send(new PpapiHostMsg_PPBFullscreen_SetFullscreen( + INTERFACE_ID_PPB_FULLSCREEN, instance, fullscreen, &result)); + return result; +} + +const PPB_Fullscreen_Dev ppb_fullscreen = { + &IsFullscreen, + &SetFullscreen +}; + +} // namespace + +PPB_Fullscreen_Proxy::PPB_Fullscreen_Proxy(Dispatcher* dispatcher, + const void* target_interface) + : InterfaceProxy(dispatcher, target_interface) { +} + +PPB_Fullscreen_Proxy::~PPB_Fullscreen_Proxy() { +} + +const void* PPB_Fullscreen_Proxy::GetSourceInterface() const { + return &ppb_fullscreen; +} + +InterfaceID PPB_Fullscreen_Proxy::GetInterfaceId() const { + return INTERFACE_ID_PPB_FULLSCREEN; +} + +void PPB_Fullscreen_Proxy::OnMessageReceived(const IPC::Message& msg) { + IPC_BEGIN_MESSAGE_MAP(PPB_Fullscreen_Proxy, msg) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFullscreen_IsFullscreen, + OnMsgIsFullscreen) + IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBFullscreen_SetFullscreen, + OnMsgSetFullscreen) + IPC_END_MESSAGE_MAP() + // TODO(brettw): handle bad messages! +} + +void PPB_Fullscreen_Proxy::OnMsgIsFullscreen(PP_Instance instance, + PP_Bool* result) { + *result = ppb_fullscreen_target()->IsFullscreen(instance); +} + +void PPB_Fullscreen_Proxy::OnMsgSetFullscreen(PP_Instance instance, + PP_Bool fullscreen, + PP_Bool* result) { + *result = ppb_fullscreen_target()->SetFullscreen(instance, fullscreen); +} + +} // namespace proxy +} // namespace pp |