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/private/ppb_flash_font_file.h"
6#include "ppapi/thunk/enter.h"
7#include "ppapi/thunk/ppb_flash_font_file_api.h"
8#include "ppapi/thunk/resource_creation_api.h"
9#include "ppapi/thunk/thunk.h"
10
11namespace ppapi {
12namespace thunk {
13
14namespace {
15
16PP_Resource Create(PP_Instance instance,
17                   const PP_BrowserFont_Trusted_Description* description,
18                   PP_PrivateFontCharset charset) {
19  EnterResourceCreation enter(instance);
20  if (enter.failed())
21    return 0;
22  return enter.functions()->CreateFlashFontFile(instance, description, charset);
23}
24
25PP_Bool IsFlashFontFile(PP_Resource resource) {
26  EnterResource<PPB_Flash_FontFile_API> enter(resource, false);
27  return PP_FromBool(enter.succeeded());
28}
29
30PP_Bool GetFontTable(PP_Resource font_file,
31                     uint32_t table,
32                     void* output,
33                     uint32_t* output_length) {
34  EnterResource<PPB_Flash_FontFile_API> enter(font_file, true);
35  if (enter.failed())
36    return PP_FALSE;
37  return enter.object()->GetFontTable(table, output, output_length);
38}
39
40const PPB_Flash_FontFile g_ppb_flash_fontfile_thunk = {
41  &Create,
42  &IsFlashFontFile,
43  &GetFontTable
44};
45
46}  // namespace
47
48const PPB_Flash_FontFile_0_1* GetPPB_Flash_FontFile_0_1_Thunk() {
49  return &g_ppb_flash_fontfile_thunk;
50}
51
52}  // namespace thunk
53}  // namespace ppapi
54