Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bindings/matrix-sdk-ffi/src/timeline/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ impl Timeline {
self: Arc<Self>,
params: UploadParameters,
audio_info: AudioInfo,
waveform: Vec<u16>,
waveform: Vec<f32>,
) -> Result<Arc<SendAttachmentJoinHandle>, RoomError> {
let mut info =
BaseAudioInfo::try_from(&audio_info).map_err(|_| RoomError::InvalidAttachmentData)?;
Expand Down
4 changes: 3 additions & 1 deletion crates/matrix-sdk/src/attachment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@ pub struct BaseAudioInfo {
/// The file size of the audio clip in bytes.
pub size: Option<UInt>,
/// The waveform of the audio clip.
pub waveform: Option<Vec<u16>>,
///
/// Must only includes values between 0 and 1.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: include

pub waveform: Option<Vec<f32>>,
}

/// Base metadata about a file.
Expand Down
10 changes: 7 additions & 3 deletions crates/matrix-sdk/src/room/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ use ruma::{
message::{
AudioInfo, AudioMessageEventContent, FileInfo, FileMessageEventContent,
FormattedBody, ImageMessageEventContent, MessageType, RoomMessageEventContent,
UnstableAudioDetailsContentBlock, UnstableVoiceContentBlock, VideoInfo,
VideoMessageEventContent,
UnstableAmplitude, UnstableAudioDetailsContentBlock, UnstableVoiceContentBlock,
VideoInfo, VideoMessageEventContent,
},
name::RoomNameEventContent,
pinned_events::RoomPinnedEventsEventContent,
Expand Down Expand Up @@ -326,7 +326,11 @@ macro_rules! make_media_type {

if let Some(AttachmentInfo::Audio(audio_info) | AttachmentInfo::Voice(audio_info)) = &$info &&
let Some(duration) = audio_info.duration && let Some(waveform_vec) = &audio_info.waveform {
let waveform = waveform_vec.iter().map(|v| (*v).into()).collect();
let waveform = waveform_vec
.iter()
.map(|v| ((*v).clamp(0.0, 1.0) * UnstableAmplitude::MAX as f32) as u16)
.map(Into::into)
.collect();
content.audio =
Some(UnstableAudioDetailsContentBlock::new(duration, waveform));
}
Expand Down
Loading