PICO Unreal Platform SDK
Pico_Sport.h
1/*******************************************************************************
2Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
3
4NOTICE:All information contained herein is, and remains the property of
5PICO Technology Co., Ltd. The intellectual and technical concepts
6contained herein are proprietary to PICO Technology Co., Ltd. and may be
7covered by patents, patents in process, and are protected by trade secret or
8copyright law. Dissemination of this information or reproduction of this
9material is strictly forbidden unless prior written permission is obtained from
10PICO Technology Co., Ltd.
11*******************************************************************************/
12// This plugin incorporates portions of the Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc.In the United States of America and elsewhere.
13// Unreal® Engine, Copyright 1998 – 2022, Epic Games, Inc.All rights reserved.
14
15#pragma once
16
17#include "CoreMinimal.h"
18#include "UObject/NoExportTypes.h"
19#include "PPF_Platform.h"
20#include "OnlineSubsystemPicoNames.h"
21#include "OnlineSubsystemPico.h"
22#include "Pico_Sport.generated.h"
23
29
30DECLARE_LOG_CATEGORY_EXTERN(PicoSport, Log, All);
31
32
33DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetDailySummary, bool, bIsError, const FString&, ErrorMessage, UPico_SportDailySummaryArray*, SportDailySummaryArray);
34DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetSummary, bool, bIsError, const FString&, ErrorMessage, UPico_SportSummary*, SportSummary);
35DECLARE_DYNAMIC_DELEGATE_ThreeParams(FGetSportUserInfo, bool, bIsError, const FString&, ErrorMessage, UPico_SportUserInfo*, SportUserInfo);
36
48class ONLINESUBSYSTEMPICO_API FPicoSportInterface
49{
50private:
51
52 FOnlineSubsystemPico& PicoSubsystem;
53
54public:
55 FPicoSportInterface(FOnlineSubsystemPico& InSubsystem);
57
58 FGetDailySummary GetDailySummaryDelegate;
59 FGetSummary GetSummaryDelegate;
60 FGetSportUserInfo GetSportUserInfoDelegate;
61
62
76 bool GetDailySummary(int64 BeginTime, int64 EndTime, FGetDailySummary InGetDailySummaryDelegate);
77
90 bool GetSummary(int64 BeginTime, int64 EndTime, FGetSummary InGetSummaryDelegate);
91
102 bool GetSportUserInfo(FGetSportUserInfo InGetSportUserInfoDelegate);
103
104
105};
106
121UCLASS()
122class ONLINESUBSYSTEMPICO_API UOnlinePicoSportFunction : public UBlueprintFunctionLibrary
123{
124 GENERATED_BODY()
125
126public:
127
142 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
143 static bool GetDailySummary(UObject* WorldContextObject, int64 BeginTime, int64 EndTime, FGetDailySummary InGetDailySummaryDelegate);
144
158 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
159 static bool GetSummary(UObject* WorldContextObject, int64 BeginTime, int64 EndTime, FGetSummary InGetSummaryDelegate);
160
172 UFUNCTION(BlueprintCallable, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
173 static bool GetSportUserInfo(UObject* WorldContextObject, FGetSportUserInfo InGetSportUserInfoDelegate);
174
182 UFUNCTION(BlueprintPure, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
183 static int64 ConvertDateTimeToInt64(FDateTime InDateTime);
184
192 UFUNCTION(BlueprintPure, meta = (WorldContext = "WorldContextObject"), Category = "OnlinePico|Sport")
193 static FDateTime ConvertInt64ToDateTime(int64 InValue);
194};
195 // end of BP_Sport // end of BlueprintFunction
198
199UCLASS(BlueprintType)
200class ONLINESUBSYSTEMPICO_API UPico_SportDailySummary : public UObject
201{
202 GENERATED_BODY()
203public:
204 void InitParams(ppfSportDailySummary* ppfSportDailySummaryHandle);
205
206private:
207 int64 ID = -1;
208 int64 Date = -1;
209 int32 DurationInSeconds = -1;
210 int32 PlanDurationInMinutes = -1;
211 float Calorie = 0;
212 float PlanCalorie = 0;
213
214public:
215
216 // Count ID
217 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
218 int64 GetID();
219
220 // Date
221 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
222 int64 GetDate();
223
224 // Daily exercise duration (in seconds)
225 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
226 int32 GetDurationInSeconds();
227
228 // Planned daily exercise duration (in minutes)
229 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
230 int32 GetPlanDurationInMinutes();
231
232 // Calorie
233 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
234 float GetCalorie();
235
236 // Plan calorie
237 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary")
238 float GetPlanCalorie();
239};
240
241UCLASS(BlueprintType)
242class ONLINESUBSYSTEMPICO_API UPico_SportDailySummaryArray : public UObject
243{
244 GENERATED_BODY()
245public:
246 void InitParams(ppfSportDailySummaryArray* ppfSportDailySummaryArrayHandle);
247
248private:
249 UPROPERTY()
250 TArray<UPico_SportDailySummary*> SportDailySummaryArray;
251 int32 Size;
252
253public:
254
255 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary Array")
256 int32 GetSize();
257
258 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Daily Summary Array")
259 UPico_SportDailySummary* GetElement(int32 Index);
260};
261
262UCLASS(BlueprintType)
263class ONLINESUBSYSTEMPICO_API UPico_SportSummary : public UObject
264{
265 GENERATED_BODY()
266public:
267 void InitParams(ppfSportSummary* ppfSportSummaryHandle);
268
269private:
270 int64 DurationInSeconds = -1;
271 float Calorie = 0;
272 int64 StartTime = -1;
273 int64 EndTime = -1;
274
275public:
276
277 // Daily exercise duration (in seconds)
278 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
279 int64 GetDurationInSeconds();
280
281 // Calorie
282 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
283 float GetCalorie();
284
285 // Start time
286 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
287 int64 GetStartTime();
288
289 // End time
290 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|Sport Summary")
291 int64 GetEndTime();
292};
293
294UCLASS(BlueprintType)
295class ONLINESUBSYSTEMPICO_API UPico_SportUserInfo : public UObject
296{
297 GENERATED_BODY()
298public:
299 void InitParams(ppfSportUserInfo* ppfSportUserInfoHandle);
300
301private:
303 int64 Birthday = -1;
304 int32 Stature = -1;
305 int32 Weight = -1;
306 int32 SportLevel = -1;
307 int32 DailyDurationInMinutes = -1;
308 int32 DaysPerWeek = -1;
309 ESportTarget SportTarget = ESportTarget::None;
310
311public:
312
313 // Gender
314 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
315 EUserGender GetGender();
316
317 // Birthday
318 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
319 int64 GetBirthday();
320
321 // Stature(cm)
322 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
323 int32 GetStature();
324
325 // Weight(kg)
326 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
327 int32 GetWeight();
328
329 // 1-low;2-medium;3-high
330 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
331 int32 GetSportLevel();
332
333 // Planned daily exercise duration (in minutes)
334 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
335 int32 GetDailyDurationInMinutes();
336
337 // Planned days for exercise per week
338 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
339 int32 GetDaysPerWeek();
340
341 // Exercise target: "lose weight" or "stay healthy"
342 UFUNCTION(BlueprintPure, Category = "Pico Platform|Sport|User Info")
343 ESportTarget GetSportTarget();
344};
PicoSportInterface class.
Definition: Pico_Sport.h:49
bool GetSportUserInfo(FGetSportUserInfo InGetSportUserInfoDelegate)
Gets a user's basic information and exercise plan.
bool GetDailySummary(int64 BeginTime, int64 EndTime, FGetDailySummary InGetDailySummaryDelegate)
Gets a summary of the user's daily exercise data for a specified period within the recent 3 months....
bool GetSummary(int64 BeginTime, int64 EndTime, FGetSummary InGetSummaryDelegate)
Gets a summary of the user's exercise data for a specified duration within today. The duration should...
OnlinePicoSport Blueprint Function class.
Definition: Pico_Sport.h:123
EUserGender
User's gender.
Definition: OnlineSubsystemPicoNames.h:48
ESportTarget
User's exercise goals.
Definition: OnlineSubsystemPicoNames.h:564