1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ppapi/c/ppb_fullscreen.h"
6#include "ppapi/c/private/ppb_flash_fullscreen.h"
7#include "ppapi/thunk/thunk.h"
8#include "ppapi/thunk/enter.h"
9#include "ppapi/thunk/ppb_flash_fullscreen_api.h"
10#include "ppapi/thunk/ppb_instance_api.h"
11#include "ppapi/thunk/resource_creation_api.h"
12
13namespace ppapi {
14namespace thunk {
15
16namespace {
17
18PP_Bool IsFullscreen(PP_Instance instance) {
19  EnterInstanceAPI<PPB_Flash_Fullscreen_API> enter(instance);
20  if (enter.failed())
21    return PP_FALSE;
22  return enter.functions()->IsFullscreen(instance);
23}
24
25PP_Bool SetFullscreen(PP_Instance instance, PP_Bool fullscreen) {
26  EnterInstanceAPI<PPB_Flash_Fullscreen_API> enter(instance);
27  if (enter.failed())
28    return PP_FALSE;
29  return enter.functions()->SetFullscreen(instance, fullscreen);
30}
31
32// TODO(raymes): The codepaths for GetScreenSize in PPB_Fullscreen and
33// PPB_Flash_Fullscreen are the same. Consider deprecating the flash version.
34PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) {
35  EnterInstance enter(instance);
36  if (enter.failed())
37    return PP_FALSE;
38  return enter.functions()->GetScreenSize(instance, size);
39}
40
41const PPB_FlashFullscreen_0_1 g_ppb_flash_fullscreen_thunk = {
42  &IsFullscreen,
43  &SetFullscreen,
44  &GetScreenSize
45};
46
47}  // namespace
48
49const PPB_FlashFullscreen_0_1* GetPPB_FlashFullscreen_0_1_Thunk() {
50  return &g_ppb_flash_fullscreen_thunk;
51}
52
53}  // namespace thunk
54}  // namespace ppapi
55