Please Select Your Location
Australia
Österreich
België
Canada
Canada - Français
中国
Česká republika
Denmark
Deutschland
France
HongKong
Iceland
Ireland
Italia
日本
Korea
Latvija
Lietuva
Lëtzebuerg
Malta
المملكة العربية السعودية (Arabic)
Nederland
New Zealand
Norge
Polska
Portugal
Russia
Saudi Arabia
Southeast Asia
España
Suisse
Suomi
Sverige
台灣
Ukraine
United Kingdom
United States
Please Select Your Location
België
Česká republika
Denmark
Iceland
Ireland
Italia
Latvija
Lietuva
Lëtzebuerg
Malta
Nederland
Norge
Polska
Portugal
España
Suisse
Suomi
Sverige

Unreal

ViveportApiDemo.h

#include "Components/ActorComponent.h"
#include "ViveportApiDemo.generated.h"
#include "ViveportApi.h"


UCLASS( ClassGroup=(Viveport), meta=(BlueprintSpawnableComponent) )
class VIVEPORTSDK_API UViveportApiDemo : public UActorComponent
{
    GENERATED_BODY()

 public:
    // Sets default values for this component's properties
    UViveportApiDemo();

    // Called when the game starts
    void BeginPlay() override;

    // Called every frame
    void TickComponent(
                        float DeltaTime,
                        ELevelTick TickType,
                        FActorComponentTickFunction* ThisTickFunction
                      ) override;

    /** The APP ID for auth verify */
    FString VIVEPORT_ID = "content's VIVEPORT ID";

    /** Public key for auth verify */
    FString VIVEPORT_KEY = "content's VIVEPORT KEY";

 private:
    // callback interface
    class MyLicenseChecker : public UViveportApi::LicenseChecker
    {
    public:
        void OnSuccess(
                        long long issue_time,
                        long long expiration_time,
                        int latest_version,
                        bool update_required
                      ) override;
        void OnFailure(
                        int errorCode,
                        const FString& errorMessage
                      ) override;
    };

    MyLicenseChecker myLicenseChecker;
};

ViveportApiDemo.cpp

#include "ViveportSDKPrivatePCH.h"
#include "ViveportApiDemo.h"
 
UViveportApiDemo::UViveportApiDemo()
{
    bWantsBeginPlay = true;
    PrimaryComponentTick.bCanEverTick = true;
}
 
// Called when the game starts
void UViveportApiDemo::BeginPlay()
{
    Super::BeginPlay();
    FString fstring = UViveportApi::Version();
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
 
    UViveportApi::GetLicense(&myLicenseChecker, VIVEPORT_ID, VIVEPORT_KEY);
}
 
// Called every frame
void UViveportApiDemo::TickComponent(float DeltaTime, ELevelTick TickType,
                                     FActorComponentTickFunction* ThisTickFunction)
{
    Super::TickComponent( DeltaTime, TickType, ThisTickFunction );
}
 
void UViveportApiDemo::MyLicenseChecker::OnSuccess(long long issue_time, long long expiration_time,
                                                   int latest_version, bool update_required)
{
    char result[256] = { '\0' };
    sprintf_s(result, "Verify OK!\n issue_time=%lld,\n expiration_time=%lld,\n latest_version=%d,\n
              update_required=%d", issue_time, expiration_time, latest_version, update_required);
    FString fstring(result);
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}
 
void UViveportApiDemo::MyLicenseChecker::OnFailure(int error_code, const FString& error_message)
{
    char result[256] = { '\0' };
    sprintf_s(result, "Verify failed!\n error_code=%d,\n error_message=%s", error_code,
              TCHAR_TO_UTF8(*error_message));
    FString fstring(result);
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
    // DRM fail, close the content.
}