Files
Webcam/include/modules/script_squirrel/legacy/platform_binding.cpp

263 lines
8.4 KiB
C++

/* -----------------------------------------------------------------------------
nEngine - GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "squirrel.h"
#include "script_squirrel/legacy/binding_helpers.h"
#include "licensing/licensing.h"
#include "analytics/analytics.h"
#include "billing/billing.h"
#include "locale/country.h"
#include "platform.h"
#include "log/log.h"
using namespace GS;
//------------------------------------------------------------------------------
SQInteger PlatformAnalyticsLogEvent(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETSTRING(name)
if (Platform::Get().analytics.IsValid())
Platform::Get().analytics->logEvent(name);
__SQ_GETEND
__SQ_RETURN
}
SQInteger PlatformAnalyticsServeFullscreenAd(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETSTRING(location)
if (Platform::Get().analytics.IsValid())
Platform::Get().analytics->serveFullscreenAd(location);
__SQ_GETEND
__SQ_RETURN
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PlatformBillingConfirmEvent(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETSTRING(id)
if (Platform::Get().billing.IsNull())
return sq_throwerror(vm, "No billing system on this platform.");
Platform::Get().billing->confirmPurchase(id);
__SQ_GETEND
__SQ_RETURN
}
SQInteger PlatformBillingRestorePurchases(HSQUIRRELVM vm)
{
if (Platform::Get().billing.IsNull())
return sq_throwerror(vm, "No billing system on this platform.");
Platform::Get().billing->restorePurchases();
__SQ_RETURN
}
SQInteger PlatformBillingRequestPurchase(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETSTRING(id)
if (Platform::Get().billing.IsNull())
return sq_throwerror(vm, "No billing system on this platform.");
Platform::Get().billing->requestPurchase(id);
__SQ_GETEND
__SQ_RETURN
}
SQInteger PlatformBillingIsSupported(HSQUIRRELVM vm)
{ __SQ_RETURNBOOL(Platform::Get().billing.IsValid()) }
SQInteger PlatformGetLocale(HSQUIRRELVM vm)
{ __SQ_RETURNSTRING(Platform::Get().GetLocale()) }
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PlatformLicensingIsSupported(HSQUIRRELVM vm)
{
__SQ_RETURNBOOL(Platform::Get().licensing.IsValid())
}
SQInteger PlatformLicensingCheck(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETSTRING(id)
if (Platform::Get().licensing.IsNull())
return sq_throwerror(vm, "No licensing system on this platform.");
Platform::Get().licensing->updateLicence(id);
__SQ_GETEND
__SQ_RETURNBOOL(true)
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PlatformGetName(HSQUIRRELVM vm)
{ __SQ_RETURNSTRING(Platform::Get().GetName()) }
SQInteger PlatformGetDeviceName(HSQUIRRELVM vm)
{ __SQ_RETURNSTRING(Platform::Get().GetDeviceName()) }
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PlatformOpenURL(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETSTRING(url)
bool r = Platform::Get().OpenURL(url);
__SQ_GETEND
__SQ_RETURNBOOL(r)
}
SQInteger PlatformSendToBackground(HSQUIRRELVM vm)
{
__SQ_GETSTART(1)
__SQ_GETBOOL(kill)
__SQ_GETEND
__SQ_RETURNBOOL(Platform::Get().SendToBackground(asbool(kill)))
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PlatformGetUserPath(HSQUIRRELVM vm)
{
String path;
if (!Platform::Get().GetUserDir(path))
return sq_throwerror(vm, "Failed to get user path.");
__SQ_RETURNSTRING(path)
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger PlatformOpenAppPage(HSQUIRRELVM vm)
{
Platform::Get().OpenAppPage();
__SQ_RETURN
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void RegisterPlatformBinding(HSQUIRRELVM vm)
{
using namespace GS::Script;
/*#
Section: SystemMisc
Desc: Miscellaneous
#*/
/*#
Func: PlatformOpenURL
Proto: bool:String id
Desc: Open an URL using the platform browser if available.
#*/
sq_register(vm, PlatformOpenURL, "PlatformOpenURL", _SC(".s"));
/*#
Func: PlatformSendToBackground
Proto: bool:bool kill
Desc: Send the current application to background, optionally try to kill it.
#*/
sq_register(vm, PlatformSendToBackground, "PlatformSendToBackground", _SC(".b"));
/*#
Func: PlatformGetUserPath
Proto: String:
Desc: Return the current user path.
#*/
sq_register(vm, PlatformGetUserPath, "PlatformGetUserPath", _SC("."));
/*#
Section: SystemVisibility
Desc: Platform visibility
#*/
/*#
Func: PlatformOpenAppPage
Proto: void:
Desc: Open the platform specific application page, use this to send the user to your rating page.
#*/
sq_register(vm, PlatformOpenAppPage, "PlatformOpenAppPage", _SC("."));
/*#
Section: SystemLicensing
Desc: Licensing
#*/
/*#
Func: PlatformLicensingCheck
Proto: void:String license_info
Desc: Launch an asynchronous licensing request, the result will be sent to your script global 'OnLicensingEvent(String event)' function.
#*/
sq_register(vm, PlatformLicensingCheck, "PlatformLicensingCheck", _SC(".s"));
/*#
Func: PlatformLicensingIsSupported
Proto: bool:
Desc: Returns true if the current platform supports app license verification.
#*/
sq_register(vm, PlatformLicensingIsSupported, "PlatformLicensingIsSupported", _SC("."));
/*#
Section: SystemBilling
Desc: In-app billing
#*/
/*#
Func: PlatformBillingConfirmEvent
Proto: void:String id
Desc: Confirm a billing event (like a purchase or a refund).
#*/
sq_register(vm, PlatformBillingConfirmEvent, "PlatformBillingConfirmEvent", _SC(".s"));
/*#
Func: PlatformBillingRestorePurchases
Proto: void:
Desc: Restore all managed purchases. The billing event callback will be called for each purchase ever made by the current user with the event string "Restored".
#*/
sq_register(vm, PlatformBillingRestorePurchases, "PlatformBillingRestorePurchases", _SC("."));
/*#
Func: PlatformBillingRequestPurchase
Proto: void:String id
Desc: Launch a purchase intent for the specified virtual good identifier. Returns true of the intent was successfully launched. Results will be transmitted to you through the global 'OnBillingEvent(String event, String item)' script callback.
#*/
sq_register(vm, PlatformBillingRequestPurchase, "PlatformBillingRequestPurchase", _SC(".s"));
/*#
Func: PlatformBillingIsSupported
Proto: bool:
Desc: Returns true if the current platform supports in-app billing (in-app purchase).
#*/
sq_register(vm, PlatformBillingIsSupported, "PlatformBillingIsSupported", _SC("."));
/*#
Func: PlatformGetLocale
Proto: String:
Desc: Return the current platform locale ISO2 code string (ISO 3166 two-character alphabetic code).
#*/
sq_register(vm, PlatformGetLocale, "PlatformGetLocale", _SC("."));
/*#
Section: SystemAnalytics
Desc: Analytics
#*/
/*#
Func: PlatformAnalyticsLogEvent
Proto: void:String name
Desc: Log a named analytics event.
#*/
sq_register(vm, PlatformAnalyticsLogEvent, "PlatformAnalyticsLogEvent", _SC(".s"));
/*#
Func: PlatformAnalyticsServeFullscreenAd
Proto: void:String location
Desc: Serve a fullscreen ad, the location string is used as a marker to track the location of the display.
#*/
sq_register(vm, PlatformAnalyticsServeFullscreenAd, "PlatformAnalyticsServeFullscreenAd", _SC(".s"));
/*#
Section: SystemHardware
Desc: Host device
#*/
/*#
Func: PlatformGetName
Proto: String:
Desc: Return the platform name (eg. "Win32", "iOS", "Android", ...).
Note: A platform may run on several devices.
fd See: PlatformGetDeviceName
#*/
sq_register(vm, PlatformGetDeviceName, "PlatformGetDeviceName", _SC("."));
/*#
Func: PlatformGetDeviceName
Proto: String:
Desc: Return the device name the platform is currently running on (eg. "iPad", "iPhone").
#*/
sq_register(vm, PlatformGetDeviceName, "PlatformGetDeviceName", _SC("."));
}
//------------------------------------------------------------------------------