jsb_pluginx_extension_registration.cpp 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "jsb_pluginx_extension_registration.h"
  2. #include "jsb_pluginx_spidermonkey_specifics.h"
  3. #include "jsb_pluginx_manual_callback.h"
  4. #include "jsb_pluginx_manual_protocols.h"
  5. static jsval anonEvaluate(JSContext *cx, JS::HandleObject thisObj, const char* string) {
  6. JS::RootedValue out(cx);
  7. // JSB_AUTOCOMPARTMENT_WITH_GLOBAL_OBJCET
  8. if (JS_EvaluateScript(cx, thisObj, string, strlen(string), "(string)", 1, &out) == true) {
  9. return out.get();
  10. }
  11. return JSVAL_VOID;
  12. }
  13. extern JSObject *jsb_cocos2d_plugin_ProtocolIAP_prototype;
  14. extern JSObject *jsb_cocos2d_plugin_ProtocolAds_prototype;
  15. extern JSObject *jsb_cocos2d_plugin_ProtocolShare_prototype;
  16. extern JSObject *jsb_cocos2d_plugin_PluginProtocol_prototype;
  17. extern JSObject *jsb_cocos2d_plugin_ProtocolSocial_prototype;
  18. extern JSObject *jsb_cocos2d_plugin_ProtocolUser_prototype;
  19. extern JSObject *jsb_cocos2d_plugin_FacebookAgent_prototype;
  20. void register_pluginx_js_extensions(JSContext* cx, JS::HandleObject global)
  21. {
  22. JS::RootedObject ns(cx);
  23. pluginx::get_or_create_js_obj(cx, global, "plugin", &ns);
  24. JS::RootedObject iap(cx, jsb_cocos2d_plugin_ProtocolIAP_prototype);
  25. JS_DefineFunction(cx, iap, "setListener", js_pluginx_ProtocolIAP_setResultListener, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  26. JS_DefineFunction(cx, iap, "getListener", js_pluginx_ProtocolIAP_getResultListener, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  27. JS_DefineFunction(cx, iap, "payForProduct", js_pluginx_ProtocolIAP_payForProduct, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  28. JS::RootedObject ads(cx, jsb_cocos2d_plugin_ProtocolAds_prototype);
  29. JS_DefineFunction(cx, ads, "setListener", js_pluginx_ProtocolAds_setAdsListener, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  30. JS_DefineFunction(cx, ads, "getListener", js_pluginx_ProtocolAds_getAdsListener, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  31. JS::RootedObject share(cx, jsb_cocos2d_plugin_ProtocolShare_prototype);
  32. JS_DefineFunction(cx, share, "setListener", js_pluginx_ProtocolShare_setResultListener, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  33. JS_DefineFunction(cx, share, "getListener", js_pluginx_ProtocolShare_getResultListener, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  34. JS_DefineFunction(cx, share, "share", js_pluginx_ProtocolShare_share, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  35. JS::RootedObject social(cx, jsb_cocos2d_plugin_ProtocolSocial_prototype);
  36. JS_DefineFunction(cx, social, "setListener", js_pluginx_ProtocolSocial_setListener, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  37. JS_DefineFunction(cx, social, "getListener", js_pluginx_ProtocolSocial_getListener, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  38. JS_DefineFunction(cx, social, "submitScore", js_pluginx_ProtocolSocial_submitScore, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  39. JS_DefineFunction(cx, social, "unlockAchievement", js_pluginx_ProtocolSocial_unlockAchievement, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  40. JS::RootedObject user(cx, jsb_cocos2d_plugin_ProtocolUser_prototype);
  41. JS_DefineFunction(cx, user, "setActionListener", js_pluginx_ProtocolUser_setActionListener, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  42. JS_DefineFunction(cx, user, "getActionListener", js_pluginx_ProtocolUser_getActionListener, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  43. JS_DefineFunction(cx, user, "login", js_pluginx_ProtocolUser_login, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  44. JS_DefineFunction(cx, user, "logout", js_pluginx_ProtocolUser_logout, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  45. JS::RootedObject protocol(cx, jsb_cocos2d_plugin_PluginProtocol_prototype);
  46. JS_DefineFunction(cx, protocol, "callFuncWithParam", js_pluginx_PluginProtocol_callFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  47. JS_DefineFunction(cx, protocol, "callStringFuncWithParam", js_pluginx_PluginProtocol_callStringFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  48. JS_DefineFunction(cx, protocol, "callIntFuncWithParam", js_pluginx_PluginProtocol_callIntFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  49. JS_DefineFunction(cx, protocol, "callFloatFuncWithParam", js_pluginx_PluginProtocol_callFloatFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  50. JS_DefineFunction(cx, protocol, "callBoolFuncWithParam", js_pluginx_PluginProtocol_callBoolFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT);
  51. JS::RootedObject facebook(cx, jsb_cocos2d_plugin_FacebookAgent_prototype);
  52. JS_DefineFunction(cx, facebook, "login", js_pluginx_FacebookAgent_login, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  53. JS_DefineFunction(cx, facebook, "_api", js_pluginx_FacebookAgent_api, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  54. JS_DefineFunction(cx, facebook, "appRequest", js_pluginx_FacebookAgent_appRequest, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  55. JS_DefineFunction(cx, facebook, "dialog", js_pluginx_FacebookAgent_dialog, 0, JSPROP_READONLY | JSPROP_PERMANENT);
  56. js_register_pluginx_protocols_PluginParam(cx, ns);
  57. }