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 16 namespace ppapi { 17 namespace thunk { 18 19 namespace { 20 21 int32_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 34 int32_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 49 PP_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 58 PP_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 64 int32_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 74 int32_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 85 int32_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 102 const 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 114 PPAPI_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