#pragma once #include "types.h" namespace discord { class ActivityManager final { public: ~ActivityManager() = default; Result RegisterCommand(char const* command); Result RegisterSteam(std::uint32_t steamId); void UpdateActivity(Activity const& activity, std::function callback); void ClearActivity(std::function callback); void SendRequestReply(UserId userId, ActivityJoinRequestReply reply, std::function callback); void SendInvite(UserId userId, ActivityActionType type, char const* content, std::function callback); void AcceptInvite(UserId userId, std::function callback); Event OnActivityJoin; Event OnActivitySpectate; Event OnActivityJoinRequest; Event OnActivityInvite; private: friend class Core; ActivityManager() = default; ActivityManager(ActivityManager const& rhs) = delete; ActivityManager& operator=(ActivityManager const& rhs) = delete; ActivityManager(ActivityManager&& rhs) = delete; ActivityManager& operator=(ActivityManager&& rhs) = delete; IDiscordActivityManager* internal_; static IDiscordActivityEvents events_; }; } // namespace discord