1// Copyright (c) 2013 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// From dev/ppb_truetype_font_dev.idl modified Thu Oct 31 12:30:06 2013. 6 7#include "ppapi/c/dev/ppb_truetype_font_dev.h" 8#include "ppapi/c/pp_completion_callback.h" 9#include "ppapi/c/pp_errors.h" 10#include "ppapi/shared_impl/tracked_callback.h" 11#include "ppapi/thunk/enter.h" 12#include "ppapi/thunk/ppapi_thunk_export.h" 13#include "ppapi/thunk/ppb_truetype_font_api.h" 14#include "ppapi/thunk/ppb_truetype_font_singleton_api.h" 15 16namespace ppapi { 17namespace thunk { 18 19namespace { 20 21int32_t GetFontFamilies(PP_Instance instance, 22 struct PP_ArrayOutput output, 23 struct PP_CompletionCallback callback) { 24 VLOG(4) << "PPB_TrueTypeFont_Dev::GetFontFamilies()"; 25 EnterInstanceAPI<PPB_TrueTypeFont_Singleton_API> enter(instance, callback); 26 if (enter.failed()) 27 return enter.retval(); 28 return enter.SetResult(enter.functions()->GetFontFamilies( 29 instance, 30 output, 31 enter.callback())); 32} 33 34int32_t GetFontsInFamily(PP_Instance instance, 35 struct PP_Var family, 36 struct PP_ArrayOutput output, 37 struct PP_CompletionCallback callback) { 38 VLOG(4) << "PPB_TrueTypeFont_Dev::GetFontsInFamily()"; 39 EnterInstanceAPI<PPB_TrueTypeFont_Singleton_API> enter(instance, callback); 40 if (enter.failed()) 41 return enter.retval(); 42 return enter.SetResult(enter.functions()->GetFontsInFamily( 43 instance, 44 family, 45 output, 46 enter.callback())); 47} 48 49PP_Resource Create(PP_Instance instance, 50 const struct PP_TrueTypeFontDesc_Dev* desc) { 51 VLOG(4) << "PPB_TrueTypeFont_Dev::Create()"; 52 EnterResourceCreation enter(instance); 53 if (enter.failed()) 54 return 0; 55 return enter.functions()->CreateTrueTypeFont(instance, desc); 56} 57 58PP_Bool IsTrueTypeFont(PP_Resource resource) { 59 VLOG(4) << "PPB_TrueTypeFont_Dev::IsTrueTypeFont()"; 60 EnterResource<PPB_TrueTypeFont_API> enter(resource, false); 61 return PP_FromBool(enter.succeeded()); 62} 63 64int32_t Describe(PP_Resource font, 65 struct PP_TrueTypeFontDesc_Dev* desc, 66 struct PP_CompletionCallback callback) { 67 VLOG(4) << "PPB_TrueTypeFont_Dev::Describe()"; 68 EnterResource<PPB_TrueTypeFont_API> enter(font, callback, true); 69 if (enter.failed()) 70 return enter.retval(); 71 return enter.SetResult(enter.object()->Describe(desc, enter.callback())); 72} 73 74int32_t GetTableTags(PP_Resource font, 75 struct PP_ArrayOutput output, 76 struct PP_CompletionCallback callback) { 77 VLOG(4) << "PPB_TrueTypeFont_Dev::GetTableTags()"; 78 EnterResource<PPB_TrueTypeFont_API> enter(font, callback, true); 79 if (enter.failed()) 80 return enter.retval(); 81 return enter.SetResult(enter.object()->GetTableTags(output, 82 enter.callback())); 83} 84 85int32_t GetTable(PP_Resource font, 86 uint32_t table, 87 int32_t offset, 88 int32_t max_data_length, 89 struct PP_ArrayOutput output, 90 struct PP_CompletionCallback callback) { 91 VLOG(4) << "PPB_TrueTypeFont_Dev::GetTable()"; 92 EnterResource<PPB_TrueTypeFont_API> enter(font, callback, true); 93 if (enter.failed()) 94 return enter.retval(); 95 return enter.SetResult(enter.object()->GetTable(table, 96 offset, 97 max_data_length, 98 output, 99 enter.callback())); 100} 101 102const PPB_TrueTypeFont_Dev_0_1 g_ppb_truetypefont_dev_thunk_0_1 = { 103 &GetFontFamilies, 104 &GetFontsInFamily, 105 &Create, 106 &IsTrueTypeFont, 107 &Describe, 108 &GetTableTags, 109 &GetTable 110}; 111 112} // namespace 113 114PPAPI_THUNK_EXPORT const PPB_TrueTypeFont_Dev_0_1* 115 GetPPB_TrueTypeFont_Dev_0_1_Thunk() { 116 return &g_ppb_truetypefont_dev_thunk_0_1; 117} 118 119} // namespace thunk 120} // namespace ppapi 121