Events: Remove deprecated events. (#115)
This removes the `ClientConnect`, `DriverConnectFailed`, `DriverReconnectFailed` and `SsrcKnown` events. Tested using `cargo make ready`.
This commit is contained in:
@@ -7,7 +7,6 @@ use super::{
|
|||||||
};
|
};
|
||||||
use crate::{
|
use crate::{
|
||||||
constants::*,
|
constants::*,
|
||||||
events::CoreContext,
|
|
||||||
model::{
|
model::{
|
||||||
payload::{Identify, Resume, SelectProtocol},
|
payload::{Identify, Resume, SelectProtocol},
|
||||||
Event as GatewayEvent,
|
Event as GatewayEvent,
|
||||||
@@ -211,10 +210,6 @@ impl Connection {
|
|||||||
.mixer
|
.mixer
|
||||||
.send(MixerMessage::SetConn(mix_conn, ready.ssrc))?;
|
.send(MixerMessage::SetConn(mix_conn, ready.ssrc))?;
|
||||||
|
|
||||||
let _ = interconnect
|
|
||||||
.events
|
|
||||||
.send(EventMessage::FireCoreEvent(CoreContext::SsrcKnown(ssrc)));
|
|
||||||
|
|
||||||
spawn(ws_task::runner(
|
spawn(ws_task::runner(
|
||||||
interconnect.clone(),
|
interconnect.clone(),
|
||||||
ws_msg_rx,
|
ws_msg_rx,
|
||||||
|
|||||||
@@ -330,10 +330,6 @@ impl ConnectionRetryData {
|
|||||||
// See above.
|
// See above.
|
||||||
let _ = tx.send(Err(why));
|
let _ = tx.send(Err(why));
|
||||||
|
|
||||||
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
|
||||||
CoreContext::DriverConnectFailed,
|
|
||||||
));
|
|
||||||
|
|
||||||
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
||||||
CoreContext::DriverDisconnect(InternalDisconnect {
|
CoreContext::DriverDisconnect(InternalDisconnect {
|
||||||
kind: DisconnectKind::Connect,
|
kind: DisconnectKind::Connect,
|
||||||
@@ -343,10 +339,6 @@ impl ConnectionRetryData {
|
|||||||
));
|
));
|
||||||
},
|
},
|
||||||
ConnectionFlavour::Reconnect => {
|
ConnectionFlavour::Reconnect => {
|
||||||
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
|
||||||
CoreContext::DriverReconnectFailed,
|
|
||||||
));
|
|
||||||
|
|
||||||
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
||||||
CoreContext::DriverDisconnect(InternalDisconnect {
|
CoreContext::DriverDisconnect(InternalDisconnect {
|
||||||
kind: DisconnectKind::Reconnect,
|
kind: DisconnectKind::Reconnect,
|
||||||
|
|||||||
@@ -200,9 +200,7 @@ impl AuxNetwork {
|
|||||||
));
|
));
|
||||||
},
|
},
|
||||||
GatewayEvent::ClientConnect(ev) => {
|
GatewayEvent::ClientConnect(ev) => {
|
||||||
let _ = interconnect
|
debug!("Received discontinued ClientConnect: {:?}", ev);
|
||||||
.events
|
|
||||||
.send(EventMessage::FireCoreEvent(CoreContext::ClientConnect(ev)));
|
|
||||||
},
|
},
|
||||||
GatewayEvent::ClientDisconnect(ev) => {
|
GatewayEvent::ClientDisconnect(ev) => {
|
||||||
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
let _ = interconnect.events.send(EventMessage::FireCoreEvent(
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ pub(crate) mod internal_data;
|
|||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
model::payload::{ClientConnect, ClientDisconnect, Speaking},
|
model::payload::{ClientDisconnect, Speaking},
|
||||||
tracks::{TrackHandle, TrackState},
|
tracks::{TrackHandle, TrackState},
|
||||||
};
|
};
|
||||||
pub use data as context_data;
|
pub use data as context_data;
|
||||||
@@ -38,66 +38,14 @@ pub enum EventContext<'a> {
|
|||||||
VoicePacket(VoiceData<'a>),
|
VoicePacket(VoiceData<'a>),
|
||||||
/// Telemetry/statistics packet, received from another stream.
|
/// Telemetry/statistics packet, received from another stream.
|
||||||
RtcpPacket(RtcpData<'a>),
|
RtcpPacket(RtcpData<'a>),
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.2",
|
|
||||||
note = "ClientConnect events are no longer sent by Discord. Please use SpeakingStateUpdate or Discord gateway events."
|
|
||||||
)]
|
|
||||||
/// Formerly fired whenever a client connects to a call for the first time, allowing SSRC/UserID
|
|
||||||
/// matching. This event no longer fires.
|
|
||||||
///
|
|
||||||
/// To detect when a user connects, you must correlate gateway (e.g., VoiceStateUpdate) events
|
|
||||||
/// from the main part of your bot.
|
|
||||||
///
|
|
||||||
/// To obtain a user's SSRC, you must use [`SpeakingStateUpdate`] events.
|
|
||||||
///
|
|
||||||
/// [`SpeakingStateUpdate`]: Self::SpeakingStateUpdate
|
|
||||||
ClientConnect(ClientConnect),
|
|
||||||
/// Fired whenever a client disconnects.
|
/// Fired whenever a client disconnects.
|
||||||
ClientDisconnect(ClientDisconnect),
|
ClientDisconnect(ClientDisconnect),
|
||||||
/// Fires when this driver successfully connects to a voice channel.
|
/// Fires when this driver successfully connects to a voice channel.
|
||||||
DriverConnect(ConnectData<'a>),
|
DriverConnect(ConnectData<'a>),
|
||||||
/// Fires when this driver successfully reconnects after a network error.
|
/// Fires when this driver successfully reconnects after a network error.
|
||||||
DriverReconnect(ConnectData<'a>),
|
DriverReconnect(ConnectData<'a>),
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.0",
|
|
||||||
note = "Please use the DriverDisconnect event instead."
|
|
||||||
)]
|
|
||||||
/// Fires when this driver fails to connect to a voice channel.
|
|
||||||
///
|
|
||||||
/// Users will need to manually reconnect on receipt of this error.
|
|
||||||
/// **This event is deprecated in favour of [`DriverDisconnect`].**
|
|
||||||
///
|
|
||||||
/// [`DriverDisconnect`]: Self::DriverDisconnect
|
|
||||||
// TODO: remove in 0.3.x
|
|
||||||
DriverConnectFailed,
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.0",
|
|
||||||
note = "Please use the DriverDisconnect event instead."
|
|
||||||
)]
|
|
||||||
/// Fires when this driver fails to reconnect to a voice channel after a network error.
|
|
||||||
///
|
|
||||||
/// Users will need to manually reconnect on receipt of this error.
|
|
||||||
/// **This event is deprecated in favour of [`DriverDisconnect`].**
|
|
||||||
///
|
|
||||||
/// [`DriverDisconnect`]: Self::DriverDisconnect
|
|
||||||
// TODO: remove in 0.3.x
|
|
||||||
DriverReconnectFailed,
|
|
||||||
/// Fires when this driver fails to connect to, or drops from, a voice channel.
|
/// Fires when this driver fails to connect to, or drops from, a voice channel.
|
||||||
DriverDisconnect(DisconnectData<'a>),
|
DriverDisconnect(DisconnectData<'a>),
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.0",
|
|
||||||
note = "Please use the DriverConnect/Reconnect events instead."
|
|
||||||
)]
|
|
||||||
/// Fires whenever the driver is assigned a new [RTP SSRC] by the voice server.
|
|
||||||
///
|
|
||||||
/// This typically fires alongside a [DriverConnect], or a full [DriverReconnect].
|
|
||||||
/// **This event is *deprecated* in favour of these alternatives**.
|
|
||||||
///
|
|
||||||
/// [RTP SSRC]: https://tools.ietf.org/html/rfc3550#section-3
|
|
||||||
/// [DriverConnect]: Self::DriverConnect
|
|
||||||
/// [DriverReconnect]: Self::DriverReconnect
|
|
||||||
// TODO: remove in 0.3.x
|
|
||||||
SsrcKnown(u32),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@@ -106,14 +54,10 @@ pub enum CoreContext {
|
|||||||
SpeakingUpdate(InternalSpeakingUpdate),
|
SpeakingUpdate(InternalSpeakingUpdate),
|
||||||
VoicePacket(InternalVoicePacket),
|
VoicePacket(InternalVoicePacket),
|
||||||
RtcpPacket(InternalRtcpPacket),
|
RtcpPacket(InternalRtcpPacket),
|
||||||
ClientConnect(ClientConnect),
|
|
||||||
ClientDisconnect(ClientDisconnect),
|
ClientDisconnect(ClientDisconnect),
|
||||||
DriverConnect(InternalConnect),
|
DriverConnect(InternalConnect),
|
||||||
DriverReconnect(InternalConnect),
|
DriverReconnect(InternalConnect),
|
||||||
DriverDisconnect(InternalDisconnect),
|
DriverDisconnect(InternalDisconnect),
|
||||||
DriverConnectFailed,
|
|
||||||
DriverReconnectFailed,
|
|
||||||
SsrcKnown(u32),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> CoreContext {
|
impl<'a> CoreContext {
|
||||||
@@ -125,18 +69,10 @@ impl<'a> CoreContext {
|
|||||||
SpeakingUpdate(evt) => EventContext::SpeakingUpdate(SpeakingUpdateData::from(evt)),
|
SpeakingUpdate(evt) => EventContext::SpeakingUpdate(SpeakingUpdateData::from(evt)),
|
||||||
VoicePacket(evt) => EventContext::VoicePacket(VoiceData::from(evt)),
|
VoicePacket(evt) => EventContext::VoicePacket(VoiceData::from(evt)),
|
||||||
RtcpPacket(evt) => EventContext::RtcpPacket(RtcpData::from(evt)),
|
RtcpPacket(evt) => EventContext::RtcpPacket(RtcpData::from(evt)),
|
||||||
#[allow(deprecated)]
|
|
||||||
ClientConnect(evt) => EventContext::ClientConnect(*evt),
|
|
||||||
ClientDisconnect(evt) => EventContext::ClientDisconnect(*evt),
|
ClientDisconnect(evt) => EventContext::ClientDisconnect(*evt),
|
||||||
DriverConnect(evt) => EventContext::DriverConnect(ConnectData::from(evt)),
|
DriverConnect(evt) => EventContext::DriverConnect(ConnectData::from(evt)),
|
||||||
DriverReconnect(evt) => EventContext::DriverReconnect(ConnectData::from(evt)),
|
DriverReconnect(evt) => EventContext::DriverReconnect(ConnectData::from(evt)),
|
||||||
DriverDisconnect(evt) => EventContext::DriverDisconnect(DisconnectData::from(evt)),
|
DriverDisconnect(evt) => EventContext::DriverDisconnect(DisconnectData::from(evt)),
|
||||||
#[allow(deprecated)]
|
|
||||||
DriverConnectFailed => EventContext::DriverConnectFailed,
|
|
||||||
#[allow(deprecated)]
|
|
||||||
DriverReconnectFailed => EventContext::DriverReconnectFailed,
|
|
||||||
#[allow(deprecated)]
|
|
||||||
SsrcKnown(s) => EventContext::SsrcKnown(*s),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,18 +88,10 @@ impl EventContext<'_> {
|
|||||||
SpeakingUpdate(_) => Some(CoreEvent::SpeakingUpdate),
|
SpeakingUpdate(_) => Some(CoreEvent::SpeakingUpdate),
|
||||||
VoicePacket(_) => Some(CoreEvent::VoicePacket),
|
VoicePacket(_) => Some(CoreEvent::VoicePacket),
|
||||||
RtcpPacket(_) => Some(CoreEvent::RtcpPacket),
|
RtcpPacket(_) => Some(CoreEvent::RtcpPacket),
|
||||||
#[allow(deprecated)]
|
|
||||||
ClientConnect(_) => Some(CoreEvent::ClientConnect),
|
|
||||||
ClientDisconnect(_) => Some(CoreEvent::ClientDisconnect),
|
ClientDisconnect(_) => Some(CoreEvent::ClientDisconnect),
|
||||||
DriverConnect(_) => Some(CoreEvent::DriverConnect),
|
DriverConnect(_) => Some(CoreEvent::DriverConnect),
|
||||||
DriverReconnect(_) => Some(CoreEvent::DriverReconnect),
|
DriverReconnect(_) => Some(CoreEvent::DriverReconnect),
|
||||||
DriverDisconnect(_) => Some(CoreEvent::DriverDisconnect),
|
DriverDisconnect(_) => Some(CoreEvent::DriverDisconnect),
|
||||||
#[allow(deprecated)]
|
|
||||||
DriverConnectFailed => Some(CoreEvent::DriverConnectFailed),
|
|
||||||
#[allow(deprecated)]
|
|
||||||
DriverReconnectFailed => Some(CoreEvent::DriverReconnectFailed),
|
|
||||||
#[allow(deprecated)]
|
|
||||||
SsrcKnown(_) => Some(CoreEvent::SsrcKnown),
|
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,29 @@
|
|||||||
/// Core events persist while the `action` in [`EventData`]
|
/// Core events persist while the `action` in [`EventData`]
|
||||||
/// returns `None`.
|
/// returns `None`.
|
||||||
///
|
///
|
||||||
|
/// ## Events from other users
|
||||||
|
/// Songbird can observe when a user *speaks for the first time* ([`SpeakingStateUpdate`]),
|
||||||
|
/// when a client leaves the session ([`ClientDisconnect`]), voice packets ([`VoicePacket`]), and
|
||||||
|
/// telemetry data ([`RtcpPacket`]). The format of voice packets is described by [`VoiceData`].
|
||||||
|
///
|
||||||
|
/// To detect when a user connects, you must correlate gateway (e.g., VoiceStateUpdate) events
|
||||||
|
/// from the main part of your bot.
|
||||||
|
///
|
||||||
|
/// To obtain a user's SSRC, you must use [`SpeakingStateUpdate`] events.
|
||||||
|
///
|
||||||
/// [`EventData`]: super::EventData
|
/// [`EventData`]: super::EventData
|
||||||
|
/// [`VoiceData`]: super::context::data::VoiceData
|
||||||
|
/// [`SpeakingStateUpdate`]: Self::SpeakingStateUpdate
|
||||||
|
/// [`ClientDisconnect`]: Self::ClientDisconnect
|
||||||
|
/// [`VoicePacket`]: Self::VoicePacket
|
||||||
|
/// [`RtcpPacket`]: Self::RtcpPacket
|
||||||
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
|
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
|
||||||
#[non_exhaustive]
|
#[non_exhaustive]
|
||||||
pub enum CoreEvent {
|
pub enum CoreEvent {
|
||||||
|
/// Speaking state update, typically describing how another voice
|
||||||
|
/// user is transmitting audio data. Clients must send at least one such
|
||||||
|
/// packet to allow SSRC/UserID matching.
|
||||||
|
///
|
||||||
/// Fired on receipt of a speaking state update from another host.
|
/// Fired on receipt of a speaking state update from another host.
|
||||||
///
|
///
|
||||||
/// Note: this will fire when a user starts speaking for the first time,
|
/// Note: this will fire when a user starts speaking for the first time,
|
||||||
@@ -25,52 +44,12 @@ pub enum CoreEvent {
|
|||||||
/// Fires on receipt of an RTCP packet, containing various call stats
|
/// Fires on receipt of an RTCP packet, containing various call stats
|
||||||
/// such as latency reports.
|
/// such as latency reports.
|
||||||
RtcpPacket,
|
RtcpPacket,
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.2",
|
|
||||||
note = "ClientConnect events are no longer sent by Discord. Please use SpeakingStateUpdate or Discord gateway events."
|
|
||||||
)]
|
|
||||||
/// Formerly fired whenever a client connects to a call for the first time, allowing SSRC/UserID
|
|
||||||
/// matching. This event no longer fires.
|
|
||||||
///
|
|
||||||
/// To detect when a user connects, you must correlate gateway (e.g., VoiceStateUpdate) events
|
|
||||||
/// from the main part of your bot.
|
|
||||||
///
|
|
||||||
/// To obtain a user's SSRC, you must use [`SpeakingStateUpdate`] events.
|
|
||||||
///
|
|
||||||
/// [`SpeakingStateUpdate`]: Self::SpeakingStateUpdate
|
|
||||||
ClientConnect,
|
|
||||||
/// Fires whenever a user disconnects from the same stream as the bot.
|
/// Fires whenever a user disconnects from the same stream as the bot.
|
||||||
ClientDisconnect,
|
ClientDisconnect,
|
||||||
/// Fires when this driver successfully connects to a voice channel.
|
/// Fires when this driver successfully connects to a voice channel.
|
||||||
DriverConnect,
|
DriverConnect,
|
||||||
/// Fires when this driver successfully reconnects after a network error.
|
/// Fires when this driver successfully reconnects after a network error.
|
||||||
DriverReconnect,
|
DriverReconnect,
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.0",
|
|
||||||
note = "Please use the DriverDisconnect event instead."
|
|
||||||
)]
|
|
||||||
/// Fires when this driver fails to connect to a voice channel.
|
|
||||||
DriverConnectFailed,
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.0",
|
|
||||||
note = "Please use the DriverDisconnect event instead."
|
|
||||||
)]
|
|
||||||
/// Fires when this driver fails to reconnect to a voice channel after a network error.
|
|
||||||
///
|
|
||||||
/// Users will need to manually reconnect on receipt of this error.
|
|
||||||
DriverReconnectFailed,
|
|
||||||
/// Fires when this driver fails to connect to, or drops from, a voice channel.
|
/// Fires when this driver fails to connect to, or drops from, a voice channel.
|
||||||
DriverDisconnect,
|
DriverDisconnect,
|
||||||
/// Fires whenever the driver is assigned a new [RTP SSRC] by the voice server.
|
|
||||||
///
|
|
||||||
/// This typically fires alongside a [DriverConnect], or a full [DriverReconnect].
|
|
||||||
///
|
|
||||||
/// [RTP SSRC]: https://tools.ietf.org/html/rfc3550#section-3
|
|
||||||
/// [DriverConnect]: Self::DriverConnect
|
|
||||||
/// [DriverReconnect]: Self::DriverReconnect
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.2.0",
|
|
||||||
note = "Please use the DriverConnect/Reconnect events instead."
|
|
||||||
)]
|
|
||||||
SsrcKnown,
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user