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