summaryrefslogtreecommitdiff
path: root/src/discord/voiceclient.hpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-09-05 02:21:37 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-09-05 02:21:37 -0400
commite93b8715f9e42d25c0930becc22561f23a25a709 (patch)
treeb1371f3006f11a073de050d60a540e713389252a /src/discord/voiceclient.hpp
parentb7fffb8691c6010864d88b273f346419eb5a5d2b (diff)
downloadabaddon-portaudio-e93b8715f9e42d25c0930becc22561f23a25a709.tar.gz
abaddon-portaudio-e93b8715f9e42d25c0930becc22561f23a25a709.zip
basic voice capture + transmission
Diffstat (limited to 'src/discord/voiceclient.hpp')
-rw-r--r--src/discord/voiceclient.hpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/discord/voiceclient.hpp b/src/discord/voiceclient.hpp
index 4b988d5..67919e5 100644
--- a/src/discord/voiceclient.hpp
+++ b/src/discord/voiceclient.hpp
@@ -110,6 +110,20 @@ struct VoiceSessionDescriptionData {
friend void from_json(const nlohmann::json &j, VoiceSessionDescriptionData &m);
};
+struct VoiceSpeakingMessage {
+ enum {
+ Microphone = 1 << 0,
+ Soundshare = 1 << 1,
+ Priority = 1 << 2,
+ };
+
+ int Speaking;
+ int Delay;
+ uint32_t SSRC;
+
+ friend void to_json(nlohmann::json &j, const VoiceSpeakingMessage &m);
+};
+
class UDPSocket {
public:
UDPSocket();
@@ -119,6 +133,7 @@ public:
void Run();
void SetSecretKey(std::array<uint8_t, 32> key);
void SetSSRC(uint32_t ssrc);
+ void SendEncrypted(const uint8_t *data, size_t len);
void SendEncrypted(const std::vector<uint8_t> &data);
void Send(const uint8_t *data, size_t len);
std::vector<uint8_t> Receive();
@@ -205,5 +220,9 @@ private:
int m_heartbeat_msec;
Waiter m_heartbeat_waiter;
std::thread m_heartbeat_thread;
+
+ std::array<uint8_t, 1275> m_opus_buffer;
+
+ std::atomic<bool> m_connected = false;
};
#endif