Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/application/discord/voice_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/application/discord/voice_manager.h')
-rw-r--r--source/application/discord/voice_manager.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/source/application/discord/voice_manager.h b/source/application/discord/voice_manager.h
new file mode 100644
index 0000000..95b20e9
--- /dev/null
+++ b/source/application/discord/voice_manager.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "types.h"
+
+namespace discord {
+
+class VoiceManager final {
+public:
+ ~VoiceManager() = default;
+
+ Result GetInputMode(InputMode* inputMode);
+ void SetInputMode(InputMode inputMode, std::function<void(Result)> callback);
+ Result IsSelfMute(bool* mute);
+ Result SetSelfMute(bool mute);
+ Result IsSelfDeaf(bool* deaf);
+ Result SetSelfDeaf(bool deaf);
+ Result IsLocalMute(Snowflake userId, bool* mute);
+ Result SetLocalMute(Snowflake userId, bool mute);
+ Result GetLocalVolume(Snowflake userId, std::uint8_t* volume);
+ Result SetLocalVolume(Snowflake userId, std::uint8_t volume);
+
+ Event<> OnSettingsUpdate;
+
+private:
+ friend class Core;
+
+ VoiceManager() = default;
+ VoiceManager(VoiceManager const& rhs) = delete;
+ VoiceManager& operator=(VoiceManager const& rhs) = delete;
+ VoiceManager(VoiceManager&& rhs) = delete;
+ VoiceManager& operator=(VoiceManager&& rhs) = delete;
+
+ IDiscordVoiceManager* internal_;
+ static IDiscordVoiceEvents events_;
+};
+
+} // namespace discord