1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2024-11-09 16:35:12 +00:00
arikawa/voice/voicegateway/events.go

68 lines
2 KiB
Go
Raw Normal View History

package voicegateway
import (
"strconv"
2020-10-28 22:39:59 +00:00
"github.com/diamondburned/arikawa/v2/discord"
)
2020-04-20 01:21:10 +00:00
// OPCode 2
// https://discord.com/developers/docs/topics/voice-connections#establishing-a-voice-websocket-connection-example-voice-ready-payload
2020-04-20 01:21:10 +00:00
type ReadyEvent struct {
SSRC uint32 `json:"ssrc"`
IP string `json:"ip"`
Port int `json:"port"`
Modes []string `json:"modes"`
Experiments []string `json:"experiments"`
// From Discord's API Docs:
//
// `heartbeat_interval` here is an erroneous field and should be ignored.
// The correct `heartbeat_interval` value comes from the Hello payload.
// HeartbeatInterval discord.Milliseconds `json:"heartbeat_interval"`
}
func (r ReadyEvent) Addr() string {
return r.IP + ":" + strconv.Itoa(r.Port)
}
2020-04-20 01:21:10 +00:00
// OPCode 4
// https://discord.com/developers/docs/topics/voice-connections#establishing-a-voice-udp-connection-example-session-description-payload
2020-04-20 01:21:10 +00:00
type SessionDescriptionEvent struct {
Mode string `json:"mode"`
SecretKey [32]byte `json:"secret_key"`
}
// OPCode 5
type SpeakingEvent SpeakingData
// OPCode 6
// https://discord.com/developers/docs/topics/voice-connections#heartbeating-example-heartbeat-ack-payload
2020-04-20 01:21:10 +00:00
type HeartbeatACKEvent uint64
// OPCode 8
// https://discord.com/developers/docs/topics/voice-connections#heartbeating-example-hello-payload-since-v3
2020-04-20 01:21:10 +00:00
type HelloEvent struct {
HeartbeatInterval discord.Milliseconds `json:"heartbeat_interval"`
2020-04-20 01:21:10 +00:00
}
// OPCode 9
// https://discord.com/developers/docs/topics/voice-connections#resuming-voice-connection-example-resumed-payload
2020-04-20 01:21:10 +00:00
type ResumedEvent struct{}
// OPCode 12
// (undocumented)
type ClientConnectEvent struct {
UserID discord.UserID `json:"user_id"`
AudioSSRC uint32 `json:"audio_ssrc"`
VideoSSRC uint32 `json:"video_ssrc"`
}
// OPCode 13
// Undocumented, existence mentioned in below issue
// https://github.com/discord/discord-api-docs/issues/510
type ClientDisconnectEvent struct {
UserID discord.UserID `json:"user_id"`
}