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#ifndef PPAPI_SIMPLE_PS_MAIN_H_ 6#define PPAPI_SIMPLE_PS_MAIN_H_ 7 8#include "ppapi_simple/ps.h" 9#include "ppapi_simple/ps_event.h" 10 11EXTERN_C_BEGIN 12 13typedef int (*PSMainFunc_t)(int argc, char *argv[]); 14 15/** 16 * PSMainCreate 17 * 18 * Constructs an instance SimpleInstance and configures it to call into 19 * the provided "main" function. 20 */ 21void* PSMainCreate(PP_Instance inst, PSMainFunc_t entry_point); 22 23/** 24 * PSUserMainGet 25 * 26 * Prototype for the user provided function which retrieves the user's main 27 * function. 28 * This is normally defined using the PPAPI_SIMPLE_REGISTER_MAIN macro. 29 */ 30PSMainFunc_t PSUserMainGet(); 31 32/** 33 * PPAPI_SIMPLE_REGISTER_MAIN 34 * 35 * Constructs a PSInstance object and configures it to use call the provided 36 * 'main' function on its own thread once initialization is complete. 37 */ 38#define PPAPI_SIMPLE_REGISTER_MAIN(main_func) \ 39 PSMainFunc_t PSUserMainGet() { \ 40 return main_func; \ 41 } \ 42 void* PSUserCreateInstance(PP_Instance inst) { \ 43 return PSMainCreate(inst, main_func); \ 44 } 45 46EXTERN_C_END 47 48#endif /* PPAPI_SIMPLE_PS_MAIN_H_ */ 49