summaryrefslogtreecommitdiff
path: root/src/discord/discord.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/discord/discord.hpp')
-rw-r--r--src/discord/discord.hpp44
1 files changed, 25 insertions, 19 deletions
diff --git a/src/discord/discord.hpp b/src/discord/discord.hpp
index 6b2853b..4e898dc 100644
--- a/src/discord/discord.hpp
+++ b/src/discord/discord.hpp
@@ -200,9 +200,7 @@ public:
[[nodiscard]] bool IsVoiceConnected() const noexcept;
[[nodiscard]] bool IsVoiceConnecting() const noexcept;
[[nodiscard]] Snowflake GetVoiceChannelID() const noexcept;
- [[nodiscard]] std::unordered_set<Snowflake> GetUsersInVoiceChannel(Snowflake channel_id);
[[nodiscard]] std::optional<uint32_t> GetSSRCOfUser(Snowflake id) const;
- [[nodiscard]] std::optional<std::pair<Snowflake, VoiceStateFlags>> GetVoiceState(Snowflake user_id) const;
DiscordVoiceClient &GetVoiceClient();
@@ -210,6 +208,9 @@ public:
void SetVoiceDeafened(bool is_deaf);
#endif
+ [[nodiscard]] std::optional<std::pair<Snowflake, VoiceStateFlags>> GetVoiceState(Snowflake user_id) const;
+ [[nodiscard]] std::unordered_set<Snowflake> GetUsersInVoiceChannel(Snowflake channel_id);
+
void SetReferringChannel(Snowflake id);
void SetBuildNumber(uint32_t build_number);
@@ -299,12 +300,13 @@ private:
void HandleGatewayInvalidSession(const GatewayMessage &msg);
#ifdef WITH_VOICE
- void HandleGatewayVoiceStateUpdate(const GatewayMessage &msg);
void HandleGatewayVoiceServerUpdate(const GatewayMessage &msg);
void HandleGatewayCallCreate(const GatewayMessage &msg);
+#endif
+
+ void HandleGatewayVoiceStateUpdate(const GatewayMessage &msg);
void CheckVoiceState(const VoiceState &data);
-#endif
void HeartbeatThread();
void SendIdentify();
@@ -375,19 +377,20 @@ private:
bool m_deaf_requested = false;
Snowflake m_voice_channel_id;
- // todo sql i guess
- std::unordered_map<Snowflake, std::pair<Snowflake, VoiceStateFlags>> m_voice_states;
- std::unordered_map<Snowflake, std::unordered_set<Snowflake>> m_voice_state_channel_users;
void SendVoiceStateUpdate();
- void SetVoiceState(Snowflake user_id, const VoiceState &state);
- void ClearVoiceState(Snowflake user_id);
-
void OnVoiceConnected();
void OnVoiceDisconnected();
#endif
+ void SetVoiceState(Snowflake user_id, const VoiceState &state);
+ void ClearVoiceState(Snowflake user_id);
+
+ // todo sql i guess
+ std::unordered_map<Snowflake, std::pair<Snowflake, VoiceStateFlags>> m_voice_states;
+ std::unordered_map<Snowflake, std::unordered_set<Snowflake>> m_voice_state_channel_users;
+
mutable std::mutex m_msg_mutex;
Glib::Dispatcher m_msg_dispatch;
std::queue<std::string> m_msg_queue;
@@ -465,15 +468,16 @@ public:
using type_signal_voice_connected = sigc::signal<void()>;
using type_signal_voice_disconnected = sigc::signal<void()>;
using type_signal_voice_speaking = sigc::signal<void(VoiceSpeakingData)>;
- using type_signal_voice_user_disconnect = sigc::signal<void(Snowflake, Snowflake)>;
- using type_signal_voice_user_connect = sigc::signal<void(Snowflake, Snowflake)>;
using type_signal_voice_requested_connect = sigc::signal<void(Snowflake)>;
using type_signal_voice_requested_disconnect = sigc::signal<void()>;
using type_signal_voice_client_state_update = sigc::signal<void(DiscordVoiceClient::State)>;
using type_signal_voice_channel_changed = sigc::signal<void(Snowflake)>;
- using type_signal_voice_state_set = sigc::signal<void(Snowflake, Snowflake, VoiceStateFlags)>;
#endif
+ using type_signal_voice_user_disconnect = sigc::signal<void(Snowflake, Snowflake)>;
+ using type_signal_voice_user_connect = sigc::signal<void(Snowflake, Snowflake)>;
+ using type_signal_voice_state_set = sigc::signal<void(Snowflake, Snowflake, VoiceStateFlags)>;
+
type_signal_gateway_ready signal_gateway_ready();
type_signal_gateway_ready_supplemental signal_gateway_ready_supplemental();
type_signal_message_create signal_message_create();
@@ -533,15 +537,16 @@ public:
type_signal_voice_connected signal_voice_connected();
type_signal_voice_disconnected signal_voice_disconnected();
type_signal_voice_speaking signal_voice_speaking();
- type_signal_voice_user_disconnect signal_voice_user_disconnect();
- type_signal_voice_user_connect signal_voice_user_connect();
type_signal_voice_requested_connect signal_voice_requested_connect();
type_signal_voice_requested_disconnect signal_voice_requested_disconnect();
type_signal_voice_client_state_update signal_voice_client_state_update();
type_signal_voice_channel_changed signal_voice_channel_changed();
- type_signal_voice_state_set signal_voice_state_set();
#endif
+ type_signal_voice_user_disconnect signal_voice_user_disconnect();
+ type_signal_voice_user_connect signal_voice_user_connect();
+ type_signal_voice_state_set signal_voice_state_set();
+
protected:
type_signal_gateway_ready m_signal_gateway_ready;
type_signal_gateway_ready_supplemental m_signal_gateway_ready_supplemental;
@@ -602,12 +607,13 @@ protected:
type_signal_voice_connected m_signal_voice_connected;
type_signal_voice_disconnected m_signal_voice_disconnected;
type_signal_voice_speaking m_signal_voice_speaking;
- type_signal_voice_user_disconnect m_signal_voice_user_disconnect;
- type_signal_voice_user_connect m_signal_voice_user_connect;
type_signal_voice_requested_connect m_signal_voice_requested_connect;
type_signal_voice_requested_disconnect m_signal_voice_requested_disconnect;
type_signal_voice_client_state_update m_signal_voice_client_state_update;
type_signal_voice_channel_changed m_signal_voice_channel_changed;
- type_signal_voice_state_set m_signal_voice_state_set;
#endif
+
+ type_signal_voice_user_disconnect m_signal_voice_user_disconnect;
+ type_signal_voice_user_connect m_signal_voice_user_connect;
+ type_signal_voice_state_set m_signal_voice_state_set;
};