From bdb640a1269c7d6a7da65eefa16d053555c4de50 Mon Sep 17 00:00:00 2001 From: Doug Date: Wed, 4 Jun 2025 14:05:01 +0100 Subject: [PATCH] ffi: Expose a check for LiveKit RTC support. --- bindings/matrix-sdk-ffi/CHANGELOG.md | 1 + bindings/matrix-sdk-ffi/src/client.rs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bindings/matrix-sdk-ffi/CHANGELOG.md b/bindings/matrix-sdk-ffi/CHANGELOG.md index 754624e36..facd2db9f 100644 --- a/bindings/matrix-sdk-ffi/CHANGELOG.md +++ b/bindings/matrix-sdk-ffi/CHANGELOG.md @@ -39,6 +39,7 @@ Breaking changes: - `RoomInfo` replaces its field `is_tombstoned: bool` with `tombstone: Option`, containing the data needed to implement the room migration UI, a message and the replacement room id. ([#5027](https://github.com/matrix-org/matrix-rust-sdk/pull/5027)) +- `Client::reset_server_capabilities` has been renamed to `Client::reset_server_info`. Additions: diff --git a/bindings/matrix-sdk-ffi/src/client.rs b/bindings/matrix-sdk-ffi/src/client.rs index 4b78c55c0..98304c487 100644 --- a/bindings/matrix-sdk-ffi/src/client.rs +++ b/bindings/matrix-sdk-ffi/src/client.rs @@ -19,7 +19,10 @@ use matrix_sdk::{ }, ruma::{ api::client::{ - discovery::get_authorization_server_metadata::msc2965::Prompt as RumaOidcPrompt, + discovery::{ + discover_homeserver::RtcFocusInfo, + get_authorization_server_metadata::msc2965::Prompt as RumaOidcPrompt, + }, push::{EmailPusherData, PusherIds, PusherInit, PusherKind as RumaPusherKind}, room::{create_room, Visibility}, session::get_login_types, @@ -1489,6 +1492,16 @@ impl Client { Ok(self.inner.server_versions().await?.contains(&ruma::api::MatrixVersion::V1_13)) } + /// Checks if the server supports the LiveKit RTC focus for placing calls. + pub async fn is_livekit_rtc_supported(&self) -> Result { + Ok(self + .inner + .rtc_foci() + .await? + .iter() + .any(|focus| matches!(focus, RtcFocusInfo::LiveKit(_)))) + } + /// Subscribe to changes in the media preview configuration. pub async fn subscribe_to_media_preview_config( &self,