263 lines
8.4 KiB
C++
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("."));
|
|
}
|
|
//------------------------------------------------------------------------------
|