Gateway: Allow connection info to be retrieved (#49)
This is a simple addition to allow current connection state to be retrieved *after* establishment, even when using the voice driver. This has been tested using `cargo make ready`, as it is fairly simple functionality.
This commit is contained in:
@@ -230,6 +230,16 @@ impl Call {
|
||||
self.update().await.map(|_| rx.into_recv_async())
|
||||
}
|
||||
|
||||
/// Returns the current voice connection details for this Call,
|
||||
/// if available.
|
||||
#[instrument(skip(self))]
|
||||
pub fn current_connection(&self) -> Option<&ConnectionInfo> {
|
||||
match &self.connection {
|
||||
Some((_, progress, _)) => progress.get_connection_info(),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Leaves the current voice channel, disconnecting from it.
|
||||
///
|
||||
/// This does _not_ forget settings, like whether to be self-deafened or
|
||||
|
||||
@@ -16,6 +16,14 @@ impl ConnectionProgress {
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) fn get_connection_info(&self) -> Option<&ConnectionInfo> {
|
||||
use ConnectionProgress::*;
|
||||
match self {
|
||||
Complete(c) => Some(&c),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn apply_state_update(&mut self, session_id: String) -> bool {
|
||||
use ConnectionProgress::*;
|
||||
match self {
|
||||
|
||||
Reference in New Issue
Block a user