Update SDK to 25.10.21 (#4642)

* update sdk

* fix normalized waveform

* added a comment on normalization

* running on MacOS-26

* Revert "running on MacOS-26"

This reverts commit 1c8ececf0b84200193eaa2ab205094215b168060.
This commit is contained in:
Mauro
2025-10-22 11:27:26 +02:00
committed by GitHub
parent c55c5a677b
commit 17c2dc96d0
12 changed files with 96 additions and 21 deletions
@@ -241,7 +241,7 @@ class MockTimelineController: TimelineControllerProtocol {
func sendVoiceMessage(url: URL,
audioInfo: MatrixRustSDK.AudioInfo,
waveform: [UInt16],
waveform: [Float],
requestHandle: @MainActor (SendAttachmentJoinHandleProtocol) -> Void) async -> Result<Void, TimelineControllerError> {
if let timelineProxy {
return await timelineProxy.sendVoiceMessage(url: url,
@@ -356,7 +356,7 @@ class TimelineController: TimelineControllerProtocol {
func sendVoiceMessage(url: URL,
audioInfo: MatrixRustSDK.AudioInfo,
waveform: [UInt16],
waveform: [Float],
requestHandle: @MainActor (SendAttachmentJoinHandleProtocol) -> Void) async -> Result<Void, TimelineControllerError> {
await activeTimeline.sendVoiceMessage(url: url,
audioInfo: audioInfo,
@@ -130,7 +130,7 @@ protocol TimelineControllerProtocol {
func sendVoiceMessage(url: URL,
audioInfo: AudioInfo,
waveform: [UInt16],
waveform: [Float],
requestHandle: @MainActor (SendAttachmentJoinHandleProtocol) -> Void) async -> Result<Void, TimelineControllerError>
// MARK: - Poll
@@ -359,7 +359,7 @@ final class TimelineProxy: TimelineProxyProtocol {
func sendVoiceMessage(url: URL,
audioInfo: AudioInfo,
waveform: [UInt16],
waveform: [Float],
requestHandle: @MainActor (SendAttachmentJoinHandleProtocol) -> Void) async -> Result<Void, TimelineProxyError> {
MXLog.info("Sending voice message")
@@ -109,7 +109,7 @@ protocol TimelineProxyProtocol {
func sendVoiceMessage(url: URL,
audioInfo: AudioInfo,
waveform: [UInt16],
waveform: [Float],
requestHandle: @MainActor (SendAttachmentJoinHandleProtocol) -> Void) async -> Result<Void, TimelineProxyError>
func sendReadReceipt(for eventID: String, type: ReceiptType) async -> Result<Void, TimelineProxyError>
@@ -127,17 +127,17 @@ class VoiceMessageRecorder: VoiceMessageRecorderProtocol {
await previewAudioPlayerState?.updateState(progress: progress)
}
func buildRecordingWaveform() async -> Result<[UInt16], VoiceMessageRecorderError> {
func buildRecordingWaveform() async -> Result<[Float], VoiceMessageRecorderError> {
guard let url = audioRecorder.audioFileURL else {
return .failure(.missingRecordingFile)
}
// build the waveform
var waveformData: [UInt16] = []
var waveformData: [Float] = []
let analyzer = WaveformAnalyzer()
do {
let samples = try await analyzer.samples(fromAudioAt: url, count: 100)
// linearly normalized to [0, 1] (1 -> -50 dB)
waveformData = samples.map { UInt16(max(0, (1 - $0) * 1024)) }
waveformData = samples.map { max(0, 1 - $0) }
} catch {
MXLog.error("Waveform analysis failed. \(error)")
return .failure(.waveformAnalysisError)