223 lines
8 KiB
C
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
|
|
|