JD2022-TU1/main/extern/UplaySDK/include/Uplay/UplayEvent.h

223 lines
8 KiB
C

/**
* @file UplayEvent.h
* @brief The Uplay PC Events API
*/
#ifndef UPLAY_EVENT_H
#define UPLAY_EVENT_H
#include "Uplay/UplayTypes.h"
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef UPLAY_API
#ifdef _WIN32
#if defined EXPORTING_DLL
#define UPLAY_API __declspec(dllexport)
#elif defined IMPORTING_DLL
#define UPLAY_API __declspec(dllimport)
#else
#define UPLAY_API
#endif
#endif // _Win32
#ifdef __APPLE__
#define UPLAY_API __attribute__((visibility("default")))
#define __cdecl
#endif // __APPLE__
#endif // UPLAY_API
#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus
/**
* @defgroup events Events
* @brief Event definitions
*
* @{
*/
/************************************************************************************//**
* @enum UPLAY_EventType
* @brief Values specifing the event type
*/
enum UPLAY_EventType
{
// Friend Events
/** The friends list has been updated */
UPLAY_Event_FriendsFriendListUpdated = 10000,
/** The state of a friend has been updated */
UPLAY_Event_FriendsFriendUpdated = 10001,
/** A game invite has been accepted */
UPLAY_Event_FriendsGameInviteAccepted = 10002,
/** A custom friends menu item has been selected */
UPLAY_Event_FriendsMenuItemSelected = 10003,
// Party Events
/** The party member list has changed */
UPLAY_Event_PartyMemberListChanged = 20000,
/** The user data of a party member has been updated */
UPLAY_Event_PartyMemberUserDataUpdated = 20001,
/** The party leader has changed */
UPLAY_Event_PartyLeaderChanged = 20002,
/** A game invite has been received */
UPLAY_Event_PartyGameInviteReceived = 20003,
/** A game invite has been accepted */
UPLAY_Event_PartyGameInviteAccepted = 20004,
/** A custom party menu item has been selected */
UPLAY_Event_PartyMemberMenuItemSelected = 20005,
/** The state of a party member has been updated */
UPLAY_Event_PartyMemberUpdated = 20006,
/** A party invite has been received */
UPLAY_Event_PartyInviteReceived = 20007,
/** A user has joined the party */
UPLAY_Event_PartyMemberJoined = 20008,
/** A user has left the party */
UPLAY_Event_PartyMemberLeft = 20009,
// Overlay Events
/** The overlay has been activated */
UPLAY_Event_OverlayActivated = 30000,
/** The overlay has been hidden */
UPLAY_Event_OverlayHidden = 30001,
// Win Events
/** A reward has been redeemed. */
UPLAY_Event_RewardRedeemed = 40000,
/** Unit balance has been changed. */
UPLAY_Event_UnitBalanceChanged = 40001,
// User Events
/** Account sharing has been detected */
UPLAY_Event_UserAccountSharing = 50000,
/** The connection to the Uplay services has been lost */
UPLAY_Event_UserConnectionLost = 50001,
/** The connection to the Uplay services has been restored */
UPLAY_Event_UserConnectionRestored = 50002,
/** New ownership added */
UPLAY_Event_UserOwnershipAdded = 50003,
/** Consumable item quantity has been updated */
UPLAY_Event_UserConsumableUpdated = 50004,
/** Ownership has been removed */
UPLAY_Event_UserOwnershipRemoved = 50005,
// Installer Events
/** A chunk was installed */
UPLAY_Event_InstallerChunkInstalled = 60000,
/** A chunk install progress is updated */
UPLAY_Event_InstallerChunkProgress = 60001,
/** A progress (sent every second) */
UPLAY_Event_InstallerProgress = 60002,
// Chat Events
/** A chat messages */
UPLAY_Event_ChatMessageSent = 70000,
UPLAY_Event_ChatMessageSentDeliveryUpdated = 70001,
UPLAY_Event_ChatMessageReceived = 70002,
UPLAY_Event_ChatMessagesRead = 70003,
};
#pragma pack(push, 8)
/************************************************************************************//**
* @union UPLAY_EventPtr
* @brief Union for pointers to different types of events
*/
union UPLAY_EventPtr
{
/** Set when type is ::UPLAY_Event_FriendsFriendListUpdated */
struct UPLAY_FRIENDS_FriendListUpdated* friendsFriendListUpdated;
/** Set when type is ::UPLAY_Event_FriendsFriendUpdated */
struct UPLAY_FRIENDS_FriendUpdated* friendsFriendUpdated;
/** Set when type is ::UPLAY_Event_FriendsGameInviteAccepted */
struct UPLAY_FRIENDS_GameInviteAccepted* friendsGameInviteAccepted;
/** Set when type is ::UPLAY_Event_FriendsMenuItemSelected */
struct UPLAY_FRIENDS_FriendMenuItemSelected* friendsMenuItemSelected;
/** Set when type is ::UPLAY_Event_PartyMemberListChanged */
struct UPLAY_PARTY_MemberListChanged* partyMemberListChanged;
/** Set when type is ::UPLAY_Event_PartyMemberUserDataUpdated */
struct UPLAY_PARTY_UserDataChanged* partyMemberUserDataChanged;
/** Set when type is ::UPLAY_Event_PartyLeaderChanged */
struct UPLAY_PARTY_GameInviteReceived* partyGameInviteReceived;
/** Set when type is ::UPLAY_Event_PartyGameInviteReceived */
struct UPLAY_PARTY_GameInviteAccepted* partyGameInviteAccepted;
/** Set when type is ::UPLAY_Event_PartyGameInviteAccepted */
struct UPLAY_PARTY_PartyMemberMenuItemSelected* partyMemberMenuItemSelected;
/** Set when type is ::UPLAY_Event_PartyMemberMenuItemSelected */
struct UPLAY_PARTY_LeaderChanged* partyLeaderChanged;
/** Set when type is ::UPLAY_Event_PartyMemberUpdated */
struct UPLAY_PARTY_MemberUpdated* partyMemberUpdated;
/** Set when type is ::UPLAY_Event_PartyInviteReceived */
struct UPLAY_PARTY_InviteReceived* partyInviteReceived;
/** Set when type is ::UPLAY_Event_PartyMemberJoined */
struct UPLAY_PARTY_MemberJoined* partyMemberJoined;
/** Set when type is ::UPLAY_Event_PartyMemberLeft */
struct UPLAY_PARTY_MemberLeft* partyMemberLeft;
/** Set when type is ::UPLAY_Event_OverlayActivated */
struct UPLAY_OVERLAY_Activated* overlayActivated;
/** Set when type is ::UPLAY_Event_OverlayHidden */
struct UPLAY_OVERLAY_Hidden* overlayHidden;
/** Set when type is ::UPLAY_Event_RewardRedeemed */
struct UPLAY_WIN_RewardReedemed* winRewardRedeemed;
/** Set when type is ::UPLAY_Event_UnitBalanceChanged */
struct UPLAY_WIN_UnitBalanceChanged* winUnitBalanceChanged;
/** Set when type is ::UPLAY_Event_UserAccountSharing */
struct UPLAY_USER_AccountSharing* userAccountSharing;
/** Set when type is ::UPLAY_Event_UserConnectionLost */
struct UPLAY_USER_ConnectionLost* userConnectionLost;
/** Set when type is ::UPLAY_Event_UserConnectionRestored */
struct UPLAY_USER_ConnectionRestored* userConnectionRestored;
/** Set when type is ::UPLAY_Event_UserOwnershipAdded */
struct UPLAY_USER_OwnershipAdded* userOwnershipAdded;
/** Set when type is ::UPLAY_Event_UserConsumableUpdated */
struct UPLAY_USER_ConsumableUpdated* userConsumableUpdated;
/** Set when type is ::UPLAY_Event_UserOwnershipRemoved */
struct UPLAY_USER_OwnershipRemoved* userOwnershipRemoved;
/** Set when type is ::UPLAY_Event_InstallerChunkInstalled */
struct UPLAY_INSTALLER_ChunkInstalled* installerChunkInstalled;
/** Set when type is ::UPLAY_Event_InstallerChunkProgress */
struct UPLAY_INSTALLER_ChunkProgress* installerChunkProgress;
/** Set when type is ::UPLAY_Event_InstallerProgress */
struct UPLAY_INSTALLER_Progress* installerProgress;
/** Set when type is ::UPLAY_Event_ChatMessageSent */
struct UPLAY_CHAT_MessageSent* chatMessageSent;
/** Set when type is ::UPLAY_Event_ChatMessageSetDeliveryUpdated */
struct UPLAY_CHAT_MessageSentDeliveryUpdated* chatMessageSentDeliveryUpdated;
/** Set when type is ::UPLAY_Event_ChatMessageReceived */
struct UPLAY_CHAT_MessageReceived* chatMessageReceived;
/** Set when type is ::UPLAY_CHAT_MessagesRead */
struct UPLAY_CHAT_MessagesRead* chatMessagesRead;
};
/************************************************************************************//**
* @struct UPLAY_Event
* @brief Struct containing information about an event
*/
struct UPLAY_Event
{
/** The type of event that has occurred. See enum ::UPLAY_EventType for valid values. */
UPLAY_uint32 type;
/** Pointer to the event struct */
union UPLAY_EventPtr event;
};
#pragma pack(pop)
/** @} */
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // UPLAY_EVENT_H