feat(voice): add iOS VAD runtime support
This commit is contained in:
@@ -9,8 +9,8 @@ import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart' hide protected;
|
||||
part 'api.freezed.dart';
|
||||
|
||||
// These functions are ignored because they are not marked as `pub`: `log_file_path`, `log_sink`, `map_join_error_code`, `map_join_sync_state`, `open_log_file`, `permission_events`, `publish_permission_state`, `runtime`, `session`, `transmit_mode_from_u8`
|
||||
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `eq`, `eq`, `eq`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`
|
||||
// These functions are ignored because they are not marked as `pub`: `install_panic_diagnostic_hook`, `log_file_path`, `log_sink`, `map_join_error_code`, `map_join_sync_state`, `open_log_file`, `permission_events`, `publish_permission_state`, `runtime`, `session`, `task_join_error`, `transmit_mode_from_u8`
|
||||
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `assert_fields_are_eq`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `clone`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `eq`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `fmt`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`, `from`
|
||||
// These functions are ignored (category: IgnoreBecauseExplicitAttribute): `from_kotlin_str`, `to_permission_gate`
|
||||
|
||||
/// Return the platform-conventional log-file path as a string, or
|
||||
@@ -43,7 +43,12 @@ Future<void> disconnect() => RustLib.instance.api.crateApiDisconnect();
|
||||
Future<bool> isConnected() => RustLib.instance.api.crateApiIsConnected();
|
||||
|
||||
/// Handle iOS AVAudioSession route changes (SDD-100).
|
||||
void handleRouteChange() => RustLib.instance.api.crateApiHandleRouteChange();
|
||||
void handleRouteChange({required BridgeAudioRoute route}) =>
|
||||
RustLib.instance.api.crateApiHandleRouteChange(route: route);
|
||||
|
||||
/// Handle iOS AVAudioSession media-services reset.
|
||||
void handleMediaServicesReset() =>
|
||||
RustLib.instance.api.crateApiHandleMediaServicesReset();
|
||||
|
||||
/// Handle iOS AVAudioSession interruption begin (SDD-101).
|
||||
void handleInterruptionBegan() =>
|
||||
@@ -221,6 +226,330 @@ Stream<BridgeEvent> eventsStream() =>
|
||||
Future<BridgeAudioStats> audioStats() =>
|
||||
RustLib.instance.api.crateApiAudioStats();
|
||||
|
||||
/// Apply the P1 audio-processing config.
|
||||
Future<void> setAudioProcessingConfig({
|
||||
required BridgeAudioProcessingConfig config,
|
||||
}) async {
|
||||
_lastAppliedAudioConfig = config;
|
||||
return RustLib.instance.api.crateApiSetAudioProcessingConfig(config: config);
|
||||
}
|
||||
|
||||
/// Read P1 audio-processing diagnostics.
|
||||
Future<BridgeAudioProcessingStats> audioProcessingStats() =>
|
||||
RustLib.instance.api.crateApiAudioProcessingStats();
|
||||
|
||||
/// Read the current audio-processing config.
|
||||
///
|
||||
/// Derives the config from [audioProcessingStats] for the route/backend
|
||||
/// fields, and returns the last value applied via [setAudioProcessingConfig]
|
||||
/// for timing/debug fields. Falls back to P1 spec defaults on first call.
|
||||
Future<BridgeAudioProcessingConfig> getAudioProcessingConfig() async {
|
||||
BridgeAudioProcessingStats? stats;
|
||||
try {
|
||||
stats = await audioProcessingStats();
|
||||
} catch (_) {}
|
||||
|
||||
final last = _lastAppliedAudioConfig;
|
||||
return BridgeAudioProcessingConfig(
|
||||
route: stats?.audioRoute ?? last?.route ?? BridgeAudioRoute.unknown,
|
||||
iosMode:
|
||||
stats?.iosVoiceProcessingMode ??
|
||||
last?.iosMode ??
|
||||
BridgeIosVoiceProcessingMode.platformVoiceProcessing,
|
||||
processingBackend:
|
||||
stats?.processingBackend ??
|
||||
last?.processingBackend ??
|
||||
BridgeAudioBackend.platformVoiceProcessing,
|
||||
vadBackend:
|
||||
stats?.vadBackend ?? last?.vadBackend ?? BridgeVadBackend.sileroOnnx,
|
||||
aec: last?.aec ?? BridgeEffectOwner.platform,
|
||||
ns: last?.ns ?? BridgeEffectOwner.platform,
|
||||
agc: last?.agc ?? BridgeEffectOwner.platform,
|
||||
hpfEnabled: last?.hpfEnabled ?? true,
|
||||
limiterEnabled: last?.limiterEnabled ?? true,
|
||||
vadHangoverMs: last?.vadHangoverMs ?? 500,
|
||||
vadPreRollMs: last?.vadPreRollMs ?? 160,
|
||||
vadMinTxMs: last?.vadMinTxMs ?? 200,
|
||||
debugWavDumpEnabled: last?.debugWavDumpEnabled ?? false,
|
||||
);
|
||||
}
|
||||
|
||||
/// Last config applied via [setAudioProcessingConfig]. Used by
|
||||
/// [getAudioProcessingConfig] to preserve timing/debug values across calls.
|
||||
BridgeAudioProcessingConfig? _lastAppliedAudioConfig;
|
||||
|
||||
/// Configure the VAD model path.
|
||||
Future<void> setVadModelPath({required String path}) =>
|
||||
RustLib.instance.api.crateApiSetVadModelPath(path: path);
|
||||
|
||||
/// Enable or disable audio debug WAV dumping.
|
||||
Future<void> enableAudioDebugWavDump({required bool enabled}) =>
|
||||
RustLib.instance.api.crateApiEnableAudioDebugWavDump(enabled: enabled);
|
||||
|
||||
/// Select the iOS voice-processing mode.
|
||||
Future<void> setIosVoiceProcessingMode({
|
||||
required BridgeIosVoiceProcessingMode mode,
|
||||
}) => RustLib.instance.api.crateApiSetIosVoiceProcessingMode(mode: mode);
|
||||
|
||||
/// Bridge processing backend.
|
||||
enum BridgeAudioBackend {
|
||||
/// Platform voice processing.
|
||||
platformVoiceProcessing,
|
||||
|
||||
/// Sonora backend.
|
||||
sonora,
|
||||
|
||||
/// WebRTC APM backend.
|
||||
webrtcApm,
|
||||
|
||||
/// No-op backend.
|
||||
noop,
|
||||
}
|
||||
|
||||
/// P1 audio-processing configuration DTO.
|
||||
class BridgeAudioProcessingConfig {
|
||||
/// Route class.
|
||||
final BridgeAudioRoute route;
|
||||
|
||||
/// iOS voice-processing mode.
|
||||
final BridgeIosVoiceProcessingMode iosMode;
|
||||
|
||||
/// Processing backend.
|
||||
final BridgeAudioBackend processingBackend;
|
||||
|
||||
/// VAD backend.
|
||||
final BridgeVadBackend vadBackend;
|
||||
|
||||
/// AEC owner.
|
||||
final BridgeEffectOwner aec;
|
||||
|
||||
/// Noise suppression owner.
|
||||
final BridgeEffectOwner ns;
|
||||
|
||||
/// AGC owner.
|
||||
final BridgeEffectOwner agc;
|
||||
|
||||
/// High-pass filter enabled.
|
||||
final bool hpfEnabled;
|
||||
|
||||
/// Limiter enabled.
|
||||
final bool limiterEnabled;
|
||||
|
||||
/// VAD hangover in ms.
|
||||
final int vadHangoverMs;
|
||||
|
||||
/// VAD pre-roll in ms.
|
||||
final int vadPreRollMs;
|
||||
|
||||
/// Minimum transmit duration in ms.
|
||||
final int vadMinTxMs;
|
||||
|
||||
/// Debug WAV dump enabled.
|
||||
final bool debugWavDumpEnabled;
|
||||
|
||||
const BridgeAudioProcessingConfig({
|
||||
required this.route,
|
||||
required this.iosMode,
|
||||
required this.processingBackend,
|
||||
required this.vadBackend,
|
||||
required this.aec,
|
||||
required this.ns,
|
||||
required this.agc,
|
||||
required this.hpfEnabled,
|
||||
required this.limiterEnabled,
|
||||
required this.vadHangoverMs,
|
||||
required this.vadPreRollMs,
|
||||
required this.vadMinTxMs,
|
||||
required this.debugWavDumpEnabled,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
route.hashCode ^
|
||||
iosMode.hashCode ^
|
||||
processingBackend.hashCode ^
|
||||
vadBackend.hashCode ^
|
||||
aec.hashCode ^
|
||||
ns.hashCode ^
|
||||
agc.hashCode ^
|
||||
hpfEnabled.hashCode ^
|
||||
limiterEnabled.hashCode ^
|
||||
vadHangoverMs.hashCode ^
|
||||
vadPreRollMs.hashCode ^
|
||||
vadMinTxMs.hashCode ^
|
||||
debugWavDumpEnabled.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is BridgeAudioProcessingConfig &&
|
||||
runtimeType == other.runtimeType &&
|
||||
route == other.route &&
|
||||
iosMode == other.iosMode &&
|
||||
processingBackend == other.processingBackend &&
|
||||
vadBackend == other.vadBackend &&
|
||||
aec == other.aec &&
|
||||
ns == other.ns &&
|
||||
agc == other.agc &&
|
||||
hpfEnabled == other.hpfEnabled &&
|
||||
limiterEnabled == other.limiterEnabled &&
|
||||
vadHangoverMs == other.vadHangoverMs &&
|
||||
vadPreRollMs == other.vadPreRollMs &&
|
||||
vadMinTxMs == other.vadMinTxMs &&
|
||||
debugWavDumpEnabled == other.debugWavDumpEnabled;
|
||||
}
|
||||
|
||||
/// P1 audio-processing stats DTO.
|
||||
class BridgeAudioProcessingStats {
|
||||
/// Input dBFS.
|
||||
final double inputDbfs;
|
||||
|
||||
/// Render dBFS.
|
||||
final double renderDbfs;
|
||||
|
||||
/// Processed capture dBFS.
|
||||
final double processedDbfs;
|
||||
|
||||
/// Latest VAD probability.
|
||||
final double vadProbability;
|
||||
|
||||
/// VAD active.
|
||||
final bool vadActive;
|
||||
|
||||
/// Currently transmitting.
|
||||
final bool transmitting;
|
||||
|
||||
/// VAD backend.
|
||||
final BridgeVadBackend vadBackend;
|
||||
|
||||
/// Fallback VAD active.
|
||||
final bool vadFallbackActive;
|
||||
|
||||
/// Processing backend.
|
||||
final BridgeAudioBackend processingBackend;
|
||||
|
||||
/// iOS voice-processing mode.
|
||||
final BridgeIosVoiceProcessingMode iosVoiceProcessingMode;
|
||||
|
||||
/// Audio route.
|
||||
final BridgeAudioRoute audioRoute;
|
||||
|
||||
/// Actual sample rate.
|
||||
final int actualSampleRateHz;
|
||||
|
||||
/// Actual IO buffer frames.
|
||||
final int actualIoBufferFrames;
|
||||
|
||||
/// Input overruns.
|
||||
final BigInt inputOverruns;
|
||||
|
||||
/// Output underruns.
|
||||
final BigInt outputUnderruns;
|
||||
|
||||
/// Callback xruns.
|
||||
final BigInt callbackXruns;
|
||||
|
||||
/// Clipped samples.
|
||||
final BigInt clippedSamples;
|
||||
|
||||
/// Sonora enabled.
|
||||
final bool sonoraEnabled;
|
||||
|
||||
/// Platform voice processing enabled.
|
||||
final bool platformVoiceProcessingEnabled;
|
||||
|
||||
const BridgeAudioProcessingStats({
|
||||
required this.inputDbfs,
|
||||
required this.renderDbfs,
|
||||
required this.processedDbfs,
|
||||
required this.vadProbability,
|
||||
required this.vadActive,
|
||||
required this.transmitting,
|
||||
required this.vadBackend,
|
||||
required this.vadFallbackActive,
|
||||
required this.processingBackend,
|
||||
required this.iosVoiceProcessingMode,
|
||||
required this.audioRoute,
|
||||
required this.actualSampleRateHz,
|
||||
required this.actualIoBufferFrames,
|
||||
required this.inputOverruns,
|
||||
required this.outputUnderruns,
|
||||
required this.callbackXruns,
|
||||
required this.clippedSamples,
|
||||
required this.sonoraEnabled,
|
||||
required this.platformVoiceProcessingEnabled,
|
||||
});
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
inputDbfs.hashCode ^
|
||||
renderDbfs.hashCode ^
|
||||
processedDbfs.hashCode ^
|
||||
vadProbability.hashCode ^
|
||||
vadActive.hashCode ^
|
||||
transmitting.hashCode ^
|
||||
vadBackend.hashCode ^
|
||||
vadFallbackActive.hashCode ^
|
||||
processingBackend.hashCode ^
|
||||
iosVoiceProcessingMode.hashCode ^
|
||||
audioRoute.hashCode ^
|
||||
actualSampleRateHz.hashCode ^
|
||||
actualIoBufferFrames.hashCode ^
|
||||
inputOverruns.hashCode ^
|
||||
outputUnderruns.hashCode ^
|
||||
callbackXruns.hashCode ^
|
||||
clippedSamples.hashCode ^
|
||||
sonoraEnabled.hashCode ^
|
||||
platformVoiceProcessingEnabled.hashCode;
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is BridgeAudioProcessingStats &&
|
||||
runtimeType == other.runtimeType &&
|
||||
inputDbfs == other.inputDbfs &&
|
||||
renderDbfs == other.renderDbfs &&
|
||||
processedDbfs == other.processedDbfs &&
|
||||
vadProbability == other.vadProbability &&
|
||||
vadActive == other.vadActive &&
|
||||
transmitting == other.transmitting &&
|
||||
vadBackend == other.vadBackend &&
|
||||
vadFallbackActive == other.vadFallbackActive &&
|
||||
processingBackend == other.processingBackend &&
|
||||
iosVoiceProcessingMode == other.iosVoiceProcessingMode &&
|
||||
audioRoute == other.audioRoute &&
|
||||
actualSampleRateHz == other.actualSampleRateHz &&
|
||||
actualIoBufferFrames == other.actualIoBufferFrames &&
|
||||
inputOverruns == other.inputOverruns &&
|
||||
outputUnderruns == other.outputUnderruns &&
|
||||
callbackXruns == other.callbackXruns &&
|
||||
clippedSamples == other.clippedSamples &&
|
||||
sonoraEnabled == other.sonoraEnabled &&
|
||||
platformVoiceProcessingEnabled ==
|
||||
other.platformVoiceProcessingEnabled;
|
||||
}
|
||||
|
||||
/// Bridge route class for P1 audio-processing policy.
|
||||
enum BridgeAudioRoute {
|
||||
/// Built-in speakerphone.
|
||||
speaker,
|
||||
|
||||
/// Built-in receiver/earpiece.
|
||||
earpiece,
|
||||
|
||||
/// Wired or USB headset.
|
||||
wiredHeadset,
|
||||
|
||||
/// Bluetooth HFP duplex route.
|
||||
bluetoothHfp,
|
||||
|
||||
/// Bluetooth A2DP output-only route.
|
||||
bluetoothA2Dp,
|
||||
|
||||
/// Unknown route.
|
||||
unknown,
|
||||
}
|
||||
|
||||
/// Statistics from the audio engine.
|
||||
class BridgeAudioStats {
|
||||
/// Number of Opus frames sent since audio started.
|
||||
@@ -402,6 +731,24 @@ class BridgeClient {
|
||||
isServerQuery == other.isServerQuery;
|
||||
}
|
||||
|
||||
/// Bridge effect owner for AEC/NS/AGC.
|
||||
enum BridgeEffectOwner {
|
||||
/// Platform-owned effect.
|
||||
platform,
|
||||
|
||||
/// Sonora-owned effect.
|
||||
sonora,
|
||||
|
||||
/// WebRTC APM-owned effect.
|
||||
webrtcApm,
|
||||
|
||||
/// Conservative route-managed setting.
|
||||
conservative,
|
||||
|
||||
/// Disabled.
|
||||
off,
|
||||
}
|
||||
|
||||
@freezed
|
||||
sealed class BridgeEvent with _$BridgeEvent {
|
||||
const BridgeEvent._();
|
||||
@@ -536,6 +883,15 @@ sealed class BridgeEvent with _$BridgeEvent {
|
||||
}) = BridgeEvent_PermissionState;
|
||||
}
|
||||
|
||||
/// Bridge iOS voice-processing mode.
|
||||
enum BridgeIosVoiceProcessingMode {
|
||||
/// Shipping VPIO path.
|
||||
platformVoiceProcessing,
|
||||
|
||||
/// Experimental Sonora path.
|
||||
sonoraExperimental,
|
||||
}
|
||||
|
||||
/// Coarse OS-reported network state. Mirrors
|
||||
/// [`chanora_core::NetworkState`] across the bridge.
|
||||
enum BridgeNetworkState {
|
||||
@@ -635,25 +991,69 @@ enum BridgeTransmitMode {
|
||||
voiceActivity,
|
||||
}
|
||||
|
||||
/// Bridge VAD backend.
|
||||
enum BridgeVadBackend {
|
||||
/// Silero ONNX VAD.
|
||||
sileroOnnx,
|
||||
|
||||
/// TEN VAD.
|
||||
tenVad,
|
||||
|
||||
/// WebRTC fallback VAD.
|
||||
webrtcVad,
|
||||
|
||||
/// Debug energy VAD.
|
||||
energyDebug,
|
||||
|
||||
/// VAD disabled.
|
||||
disabled,
|
||||
}
|
||||
|
||||
/// Bridge mirror of stable join error/status codes.
|
||||
enum BridgeVoiceJoinErrorCode {
|
||||
/// Duplicate same-target join intent was coalesced.
|
||||
duplicateSameTargetCoalesced,
|
||||
|
||||
/// A different target was requested while one is already pending.
|
||||
joinAlreadyPendingDifferentTarget,
|
||||
|
||||
/// Join denied by server policy/permission.
|
||||
joinDenied,
|
||||
|
||||
/// Join failed due to protocol-level error.
|
||||
joinProtocolFailure,
|
||||
|
||||
/// Join failed due to transport/network error.
|
||||
joinNetworkFailure,
|
||||
|
||||
/// Join timed out awaiting confirmation.
|
||||
joinTimeout,
|
||||
|
||||
/// Pending join was superseded by user leave.
|
||||
joinSupersededByLeave,
|
||||
|
||||
/// Stale join outcome was ignored.
|
||||
joinStaleOutcomeIgnored,
|
||||
|
||||
/// Authoritative membership reconciled to different channel.
|
||||
joinReconciledDifferentChannel,
|
||||
|
||||
/// Join command was rejected before send acceptance.
|
||||
joinCommandRejectedBeforeSend,
|
||||
|
||||
/// Join intent rejected while reducer synchronizing.
|
||||
joinCannotStartWhileSynchronizing,
|
||||
}
|
||||
|
||||
/// Bridge mirror of core join projection sync state.
|
||||
enum BridgeVoiceJoinSyncState {
|
||||
/// Reducer is ready to accept channel actions.
|
||||
ready,
|
||||
|
||||
/// Reducer is waiting on initial snapshot reconciliation.
|
||||
synchronizingInitialSnapshot,
|
||||
|
||||
/// Reducer is waiting on reconnect snapshot reconciliation.
|
||||
synchronizingReconnect,
|
||||
}
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
|
||||
String get codegenVersion => '2.12.0';
|
||||
|
||||
@override
|
||||
int get rustContentHash => 1322894465;
|
||||
int get rustContentHash => -1835973251;
|
||||
|
||||
static const kDefaultExternalLibraryLoaderConfig =
|
||||
ExternalLibraryLoaderConfig(
|
||||
@@ -81,6 +81,8 @@ class RustLib extends BaseEntrypoint<RustLibApi, RustLibApiImpl, RustLibWire> {
|
||||
abstract class RustLibApi extends BaseApi {
|
||||
Future<PlatformInt64> crateApiAddBookmark({required BridgeBookmark b});
|
||||
|
||||
Future<BridgeAudioProcessingStats> crateApiAudioProcessingStats();
|
||||
|
||||
Future<BridgeAudioStats> crateApiAudioStats();
|
||||
|
||||
Future<void> crateApiBridgeInit();
|
||||
@@ -95,6 +97,8 @@ abstract class RustLibApi extends BaseApi {
|
||||
|
||||
Future<void> crateApiDisconnect();
|
||||
|
||||
Future<void> crateApiEnableAudioDebugWavDump({required bool enabled});
|
||||
|
||||
Stream<BridgeEvent> crateApiEventsStream();
|
||||
|
||||
String crateApiExportDiagnostics();
|
||||
@@ -109,7 +113,9 @@ abstract class RustLibApi extends BaseApi {
|
||||
|
||||
void crateApiHandleInterruptionEnded({required bool shouldResume});
|
||||
|
||||
void crateApiHandleRouteChange();
|
||||
void crateApiHandleMediaServicesReset();
|
||||
|
||||
void crateApiHandleRouteChange({required BridgeAudioRoute route});
|
||||
|
||||
Future<void> crateApiInitStorage({required String dir});
|
||||
|
||||
@@ -126,10 +132,18 @@ abstract class RustLibApi extends BaseApi {
|
||||
|
||||
Future<(String, String, String)> crateApiPttDescriptor();
|
||||
|
||||
Future<void> crateApiSetAudioProcessingConfig({
|
||||
required BridgeAudioProcessingConfig config,
|
||||
});
|
||||
|
||||
Future<void> crateApiSetHardMute({required bool muted});
|
||||
|
||||
Future<void> crateApiSetInputMuted({required bool muted});
|
||||
|
||||
Future<void> crateApiSetIosVoiceProcessingMode({
|
||||
required BridgeIosVoiceProcessingMode mode,
|
||||
});
|
||||
|
||||
void crateApiSetNetworkState({required BridgeNetworkState state});
|
||||
|
||||
Future<void> crateApiSetOutputGain({required double gain});
|
||||
@@ -147,6 +161,8 @@ abstract class RustLibApi extends BaseApi {
|
||||
|
||||
Future<void> crateApiSetTransmitMode({required BridgeTransmitMode mode});
|
||||
|
||||
Future<void> crateApiSetVadModelPath({required String path});
|
||||
|
||||
Future<BridgeSnapshot> crateApiSnapshot();
|
||||
|
||||
Future<void> crateApiUpdateBookmark({required BridgeBookmark b});
|
||||
@@ -196,7 +212,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
const TaskConstMeta(debugName: "add_bookmark", argNames: ["b"]);
|
||||
|
||||
@override
|
||||
Future<BridgeAudioStats> crateApiAudioStats() {
|
||||
Future<BridgeAudioProcessingStats> crateApiAudioProcessingStats() {
|
||||
return handler.executeNormal(
|
||||
NormalTask(
|
||||
callFfi: (port_) {
|
||||
@@ -208,6 +224,33 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_bridge_audio_processing_stats,
|
||||
decodeErrorData: sse_decode_bridge_error,
|
||||
),
|
||||
constMeta: kCrateApiAudioProcessingStatsConstMeta,
|
||||
argValues: [],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiAudioProcessingStatsConstMeta =>
|
||||
const TaskConstMeta(debugName: "audio_processing_stats", argNames: []);
|
||||
|
||||
@override
|
||||
Future<BridgeAudioStats> crateApiAudioStats() {
|
||||
return handler.executeNormal(
|
||||
NormalTask(
|
||||
callFfi: (port_) {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 3,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_bridge_audio_stats,
|
||||
decodeErrorData: sse_decode_bridge_error,
|
||||
@@ -231,7 +274,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 3,
|
||||
funcId: 4,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -265,7 +308,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 4,
|
||||
funcId: 5,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -295,7 +338,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 5,
|
||||
funcId: 6,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -322,7 +365,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 6,
|
||||
funcId: 7,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -340,6 +383,37 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
TaskConstMeta get kCrateApiDisconnectConstMeta =>
|
||||
const TaskConstMeta(debugName: "disconnect", argNames: []);
|
||||
|
||||
@override
|
||||
Future<void> crateApiEnableAudioDebugWavDump({required bool enabled}) {
|
||||
return handler.executeNormal(
|
||||
NormalTask(
|
||||
callFfi: (port_) {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_bool(enabled, serializer);
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 8,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
decodeErrorData: sse_decode_bridge_error,
|
||||
),
|
||||
constMeta: kCrateApiEnableAudioDebugWavDumpConstMeta,
|
||||
argValues: [enabled],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiEnableAudioDebugWavDumpConstMeta =>
|
||||
const TaskConstMeta(
|
||||
debugName: "enable_audio_debug_wav_dump",
|
||||
argNames: ["enabled"],
|
||||
);
|
||||
|
||||
@override
|
||||
Stream<BridgeEvent> crateApiEventsStream() {
|
||||
final sink = RustStreamSink<BridgeEvent>();
|
||||
@@ -352,7 +426,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 7,
|
||||
funcId: 9,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -378,7 +452,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
SyncTask(
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 8)!;
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 10)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_String,
|
||||
@@ -403,7 +477,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 9,
|
||||
funcId: 11,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -430,7 +504,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 10,
|
||||
funcId: 12,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -457,7 +531,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 11,
|
||||
funcId: 13,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -481,7 +555,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
SyncTask(
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 12)!;
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 14)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
@@ -504,7 +578,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_bool(shouldResume, serializer);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 13)!;
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 15)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
@@ -524,26 +598,54 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
);
|
||||
|
||||
@override
|
||||
void crateApiHandleRouteChange() {
|
||||
void crateApiHandleMediaServicesReset() {
|
||||
return handler.executeSync(
|
||||
SyncTask(
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 14)!;
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 16)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
decodeErrorData: null,
|
||||
),
|
||||
constMeta: kCrateApiHandleRouteChangeConstMeta,
|
||||
constMeta: kCrateApiHandleMediaServicesResetConstMeta,
|
||||
argValues: [],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiHandleRouteChangeConstMeta =>
|
||||
const TaskConstMeta(debugName: "handle_route_change", argNames: []);
|
||||
TaskConstMeta get kCrateApiHandleMediaServicesResetConstMeta =>
|
||||
const TaskConstMeta(
|
||||
debugName: "handle_media_services_reset",
|
||||
argNames: [],
|
||||
);
|
||||
|
||||
@override
|
||||
void crateApiHandleRouteChange({required BridgeAudioRoute route}) {
|
||||
return handler.executeSync(
|
||||
SyncTask(
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_bridge_audio_route(route, serializer);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 17)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
decodeErrorData: null,
|
||||
),
|
||||
constMeta: kCrateApiHandleRouteChangeConstMeta,
|
||||
argValues: [route],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiHandleRouteChangeConstMeta => const TaskConstMeta(
|
||||
debugName: "handle_route_change",
|
||||
argNames: ["route"],
|
||||
);
|
||||
|
||||
@override
|
||||
Future<void> crateApiInitStorage({required String dir}) {
|
||||
@@ -555,7 +657,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 15,
|
||||
funcId: 18,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -582,7 +684,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 16,
|
||||
funcId: 19,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -609,7 +711,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 17,
|
||||
funcId: 20,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -633,7 +735,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
SyncTask(
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 18)!;
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 21)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_String,
|
||||
@@ -663,7 +765,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 19,
|
||||
funcId: 22,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -692,7 +794,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 20,
|
||||
funcId: 23,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -710,6 +812,42 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
TaskConstMeta get kCrateApiPttDescriptorConstMeta =>
|
||||
const TaskConstMeta(debugName: "ptt_descriptor", argNames: []);
|
||||
|
||||
@override
|
||||
Future<void> crateApiSetAudioProcessingConfig({
|
||||
required BridgeAudioProcessingConfig config,
|
||||
}) {
|
||||
return handler.executeNormal(
|
||||
NormalTask(
|
||||
callFfi: (port_) {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_box_autoadd_bridge_audio_processing_config(
|
||||
config,
|
||||
serializer,
|
||||
);
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 24,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
decodeErrorData: sse_decode_bridge_error,
|
||||
),
|
||||
constMeta: kCrateApiSetAudioProcessingConfigConstMeta,
|
||||
argValues: [config],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiSetAudioProcessingConfigConstMeta =>
|
||||
const TaskConstMeta(
|
||||
debugName: "set_audio_processing_config",
|
||||
argNames: ["config"],
|
||||
);
|
||||
|
||||
@override
|
||||
Future<void> crateApiSetHardMute({required bool muted}) {
|
||||
return handler.executeNormal(
|
||||
@@ -720,7 +858,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 21,
|
||||
funcId: 25,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -748,7 +886,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 22,
|
||||
funcId: 26,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -766,6 +904,39 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
TaskConstMeta get kCrateApiSetInputMutedConstMeta =>
|
||||
const TaskConstMeta(debugName: "set_input_muted", argNames: ["muted"]);
|
||||
|
||||
@override
|
||||
Future<void> crateApiSetIosVoiceProcessingMode({
|
||||
required BridgeIosVoiceProcessingMode mode,
|
||||
}) {
|
||||
return handler.executeNormal(
|
||||
NormalTask(
|
||||
callFfi: (port_) {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_bridge_ios_voice_processing_mode(mode, serializer);
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 27,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
decodeErrorData: sse_decode_bridge_error,
|
||||
),
|
||||
constMeta: kCrateApiSetIosVoiceProcessingModeConstMeta,
|
||||
argValues: [mode],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiSetIosVoiceProcessingModeConstMeta =>
|
||||
const TaskConstMeta(
|
||||
debugName: "set_ios_voice_processing_mode",
|
||||
argNames: ["mode"],
|
||||
);
|
||||
|
||||
@override
|
||||
void crateApiSetNetworkState({required BridgeNetworkState state}) {
|
||||
return handler.executeSync(
|
||||
@@ -773,7 +944,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
callFfi: () {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_bridge_network_state(state, serializer);
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 23)!;
|
||||
return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 28)!;
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
@@ -799,7 +970,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 24,
|
||||
funcId: 29,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -827,7 +998,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 25,
|
||||
funcId: 30,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -855,7 +1026,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 26,
|
||||
funcId: 31,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -887,7 +1058,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 27,
|
||||
funcId: 32,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -917,7 +1088,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 28,
|
||||
funcId: 33,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -945,7 +1116,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 29,
|
||||
funcId: 34,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -963,6 +1134,34 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
TaskConstMeta get kCrateApiSetTransmitModeConstMeta =>
|
||||
const TaskConstMeta(debugName: "set_transmit_mode", argNames: ["mode"]);
|
||||
|
||||
@override
|
||||
Future<void> crateApiSetVadModelPath({required String path}) {
|
||||
return handler.executeNormal(
|
||||
NormalTask(
|
||||
callFfi: (port_) {
|
||||
final serializer = SseSerializer(generalizedFrbRustBinding);
|
||||
sse_encode_String(path, serializer);
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 35,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
codec: SseCodec(
|
||||
decodeSuccessData: sse_decode_unit,
|
||||
decodeErrorData: sse_decode_bridge_error,
|
||||
),
|
||||
constMeta: kCrateApiSetVadModelPathConstMeta,
|
||||
argValues: [path],
|
||||
apiImpl: this,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
TaskConstMeta get kCrateApiSetVadModelPathConstMeta =>
|
||||
const TaskConstMeta(debugName: "set_vad_model_path", argNames: ["path"]);
|
||||
|
||||
@override
|
||||
Future<BridgeSnapshot> crateApiSnapshot() {
|
||||
return handler.executeNormal(
|
||||
@@ -972,7 +1171,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 30,
|
||||
funcId: 36,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -1000,7 +1199,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 31,
|
||||
funcId: 37,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -1032,7 +1231,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 32,
|
||||
funcId: 38,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -1061,7 +1260,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
pdeCallFfi(
|
||||
generalizedFrbRustBinding,
|
||||
serializer,
|
||||
funcId: 33,
|
||||
funcId: 39,
|
||||
port: port_,
|
||||
);
|
||||
},
|
||||
@@ -1105,6 +1304,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
return raw as bool;
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig
|
||||
dco_decode_box_autoadd_bridge_audio_processing_config(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
return dco_decode_bridge_audio_processing_config(raw);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeBookmark dco_decode_box_autoadd_bridge_bookmark(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
@@ -1125,6 +1331,76 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
return dco_decode_u_64(raw);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioBackend dco_decode_bridge_audio_backend(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
return BridgeAudioBackend.values[raw as int];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig dco_decode_bridge_audio_processing_config(
|
||||
dynamic raw,
|
||||
) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
final arr = raw as List<dynamic>;
|
||||
if (arr.length != 13)
|
||||
throw Exception('unexpected arr length: expect 13 but see ${arr.length}');
|
||||
return BridgeAudioProcessingConfig(
|
||||
route: dco_decode_bridge_audio_route(arr[0]),
|
||||
iosMode: dco_decode_bridge_ios_voice_processing_mode(arr[1]),
|
||||
processingBackend: dco_decode_bridge_audio_backend(arr[2]),
|
||||
vadBackend: dco_decode_bridge_vad_backend(arr[3]),
|
||||
aec: dco_decode_bridge_effect_owner(arr[4]),
|
||||
ns: dco_decode_bridge_effect_owner(arr[5]),
|
||||
agc: dco_decode_bridge_effect_owner(arr[6]),
|
||||
hpfEnabled: dco_decode_bool(arr[7]),
|
||||
limiterEnabled: dco_decode_bool(arr[8]),
|
||||
vadHangoverMs: dco_decode_u_32(arr[9]),
|
||||
vadPreRollMs: dco_decode_u_32(arr[10]),
|
||||
vadMinTxMs: dco_decode_u_32(arr[11]),
|
||||
debugWavDumpEnabled: dco_decode_bool(arr[12]),
|
||||
);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingStats dco_decode_bridge_audio_processing_stats(
|
||||
dynamic raw,
|
||||
) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
final arr = raw as List<dynamic>;
|
||||
if (arr.length != 19)
|
||||
throw Exception('unexpected arr length: expect 19 but see ${arr.length}');
|
||||
return BridgeAudioProcessingStats(
|
||||
inputDbfs: dco_decode_f_32(arr[0]),
|
||||
renderDbfs: dco_decode_f_32(arr[1]),
|
||||
processedDbfs: dco_decode_f_32(arr[2]),
|
||||
vadProbability: dco_decode_f_32(arr[3]),
|
||||
vadActive: dco_decode_bool(arr[4]),
|
||||
transmitting: dco_decode_bool(arr[5]),
|
||||
vadBackend: dco_decode_bridge_vad_backend(arr[6]),
|
||||
vadFallbackActive: dco_decode_bool(arr[7]),
|
||||
processingBackend: dco_decode_bridge_audio_backend(arr[8]),
|
||||
iosVoiceProcessingMode: dco_decode_bridge_ios_voice_processing_mode(
|
||||
arr[9],
|
||||
),
|
||||
audioRoute: dco_decode_bridge_audio_route(arr[10]),
|
||||
actualSampleRateHz: dco_decode_u_32(arr[11]),
|
||||
actualIoBufferFrames: dco_decode_u_32(arr[12]),
|
||||
inputOverruns: dco_decode_u_64(arr[13]),
|
||||
outputUnderruns: dco_decode_u_64(arr[14]),
|
||||
callbackXruns: dco_decode_u_64(arr[15]),
|
||||
clippedSamples: dco_decode_u_64(arr[16]),
|
||||
sonoraEnabled: dco_decode_bool(arr[17]),
|
||||
platformVoiceProcessingEnabled: dco_decode_bool(arr[18]),
|
||||
);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioRoute dco_decode_bridge_audio_route(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
return BridgeAudioRoute.values[raw as int];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioStats dco_decode_bridge_audio_stats(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
@@ -1185,6 +1461,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeEffectOwner dco_decode_bridge_effect_owner(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
return BridgeEffectOwner.values[raw as int];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeError dco_decode_bridge_error(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
@@ -1273,6 +1555,14 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
}
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeIosVoiceProcessingMode dco_decode_bridge_ios_voice_processing_mode(
|
||||
dynamic raw,
|
||||
) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
return BridgeIosVoiceProcessingMode.values[raw as int];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeNetworkState dco_decode_bridge_network_state(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
@@ -1308,6 +1598,12 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
return BridgeTransmitMode.values[raw as int];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeVadBackend dco_decode_bridge_vad_backend(dynamic raw) {
|
||||
// Codec=Dco (DartCObject based), see doc to use other codecs
|
||||
return BridgeVadBackend.values[raw as int];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeVoiceJoinErrorCode dco_decode_bridge_voice_join_error_code(
|
||||
dynamic raw,
|
||||
@@ -1463,6 +1759,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
return deserializer.buffer.getUint8() != 0;
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig
|
||||
sse_decode_box_autoadd_bridge_audio_processing_config(
|
||||
SseDeserializer deserializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
return (sse_decode_bridge_audio_processing_config(deserializer));
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeBookmark sse_decode_box_autoadd_bridge_bookmark(
|
||||
SseDeserializer deserializer,
|
||||
@@ -1485,6 +1790,105 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
return (sse_decode_u_64(deserializer));
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioBackend sse_decode_bridge_audio_backend(
|
||||
SseDeserializer deserializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var inner = sse_decode_i_32(deserializer);
|
||||
return BridgeAudioBackend.values[inner];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig sse_decode_bridge_audio_processing_config(
|
||||
SseDeserializer deserializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var var_route = sse_decode_bridge_audio_route(deserializer);
|
||||
var var_iosMode = sse_decode_bridge_ios_voice_processing_mode(deserializer);
|
||||
var var_processingBackend = sse_decode_bridge_audio_backend(deserializer);
|
||||
var var_vadBackend = sse_decode_bridge_vad_backend(deserializer);
|
||||
var var_aec = sse_decode_bridge_effect_owner(deserializer);
|
||||
var var_ns = sse_decode_bridge_effect_owner(deserializer);
|
||||
var var_agc = sse_decode_bridge_effect_owner(deserializer);
|
||||
var var_hpfEnabled = sse_decode_bool(deserializer);
|
||||
var var_limiterEnabled = sse_decode_bool(deserializer);
|
||||
var var_vadHangoverMs = sse_decode_u_32(deserializer);
|
||||
var var_vadPreRollMs = sse_decode_u_32(deserializer);
|
||||
var var_vadMinTxMs = sse_decode_u_32(deserializer);
|
||||
var var_debugWavDumpEnabled = sse_decode_bool(deserializer);
|
||||
return BridgeAudioProcessingConfig(
|
||||
route: var_route,
|
||||
iosMode: var_iosMode,
|
||||
processingBackend: var_processingBackend,
|
||||
vadBackend: var_vadBackend,
|
||||
aec: var_aec,
|
||||
ns: var_ns,
|
||||
agc: var_agc,
|
||||
hpfEnabled: var_hpfEnabled,
|
||||
limiterEnabled: var_limiterEnabled,
|
||||
vadHangoverMs: var_vadHangoverMs,
|
||||
vadPreRollMs: var_vadPreRollMs,
|
||||
vadMinTxMs: var_vadMinTxMs,
|
||||
debugWavDumpEnabled: var_debugWavDumpEnabled,
|
||||
);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingStats sse_decode_bridge_audio_processing_stats(
|
||||
SseDeserializer deserializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var var_inputDbfs = sse_decode_f_32(deserializer);
|
||||
var var_renderDbfs = sse_decode_f_32(deserializer);
|
||||
var var_processedDbfs = sse_decode_f_32(deserializer);
|
||||
var var_vadProbability = sse_decode_f_32(deserializer);
|
||||
var var_vadActive = sse_decode_bool(deserializer);
|
||||
var var_transmitting = sse_decode_bool(deserializer);
|
||||
var var_vadBackend = sse_decode_bridge_vad_backend(deserializer);
|
||||
var var_vadFallbackActive = sse_decode_bool(deserializer);
|
||||
var var_processingBackend = sse_decode_bridge_audio_backend(deserializer);
|
||||
var var_iosVoiceProcessingMode =
|
||||
sse_decode_bridge_ios_voice_processing_mode(deserializer);
|
||||
var var_audioRoute = sse_decode_bridge_audio_route(deserializer);
|
||||
var var_actualSampleRateHz = sse_decode_u_32(deserializer);
|
||||
var var_actualIoBufferFrames = sse_decode_u_32(deserializer);
|
||||
var var_inputOverruns = sse_decode_u_64(deserializer);
|
||||
var var_outputUnderruns = sse_decode_u_64(deserializer);
|
||||
var var_callbackXruns = sse_decode_u_64(deserializer);
|
||||
var var_clippedSamples = sse_decode_u_64(deserializer);
|
||||
var var_sonoraEnabled = sse_decode_bool(deserializer);
|
||||
var var_platformVoiceProcessingEnabled = sse_decode_bool(deserializer);
|
||||
return BridgeAudioProcessingStats(
|
||||
inputDbfs: var_inputDbfs,
|
||||
renderDbfs: var_renderDbfs,
|
||||
processedDbfs: var_processedDbfs,
|
||||
vadProbability: var_vadProbability,
|
||||
vadActive: var_vadActive,
|
||||
transmitting: var_transmitting,
|
||||
vadBackend: var_vadBackend,
|
||||
vadFallbackActive: var_vadFallbackActive,
|
||||
processingBackend: var_processingBackend,
|
||||
iosVoiceProcessingMode: var_iosVoiceProcessingMode,
|
||||
audioRoute: var_audioRoute,
|
||||
actualSampleRateHz: var_actualSampleRateHz,
|
||||
actualIoBufferFrames: var_actualIoBufferFrames,
|
||||
inputOverruns: var_inputOverruns,
|
||||
outputUnderruns: var_outputUnderruns,
|
||||
callbackXruns: var_callbackXruns,
|
||||
clippedSamples: var_clippedSamples,
|
||||
sonoraEnabled: var_sonoraEnabled,
|
||||
platformVoiceProcessingEnabled: var_platformVoiceProcessingEnabled,
|
||||
);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioRoute sse_decode_bridge_audio_route(SseDeserializer deserializer) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var inner = sse_decode_i_32(deserializer);
|
||||
return BridgeAudioRoute.values[inner];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeAudioStats sse_decode_bridge_audio_stats(SseDeserializer deserializer) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
@@ -1553,6 +1957,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
);
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeEffectOwner sse_decode_bridge_effect_owner(
|
||||
SseDeserializer deserializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var inner = sse_decode_i_32(deserializer);
|
||||
return BridgeEffectOwner.values[inner];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeError sse_decode_bridge_error(SseDeserializer deserializer) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
@@ -1678,6 +2091,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
}
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeIosVoiceProcessingMode sse_decode_bridge_ios_voice_processing_mode(
|
||||
SseDeserializer deserializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var inner = sse_decode_i_32(deserializer);
|
||||
return BridgeIosVoiceProcessingMode.values[inner];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeNetworkState sse_decode_bridge_network_state(
|
||||
SseDeserializer deserializer,
|
||||
@@ -1726,6 +2148,13 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
return BridgeTransmitMode.values[inner];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeVadBackend sse_decode_bridge_vad_backend(SseDeserializer deserializer) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
var inner = sse_decode_i_32(deserializer);
|
||||
return BridgeVadBackend.values[inner];
|
||||
}
|
||||
|
||||
@protected
|
||||
BridgeVoiceJoinErrorCode sse_decode_bridge_voice_join_error_code(
|
||||
SseDeserializer deserializer,
|
||||
@@ -1929,6 +2358,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
serializer.buffer.putUint8(self ? 1 : 0);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_bridge_audio_processing_config(
|
||||
BridgeAudioProcessingConfig self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_bridge_audio_processing_config(self, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_bridge_bookmark(
|
||||
BridgeBookmark self,
|
||||
@@ -1953,6 +2391,75 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
sse_encode_u_64(self, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_backend(
|
||||
BridgeAudioBackend self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_i_32(self.index, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_processing_config(
|
||||
BridgeAudioProcessingConfig self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_bridge_audio_route(self.route, serializer);
|
||||
sse_encode_bridge_ios_voice_processing_mode(self.iosMode, serializer);
|
||||
sse_encode_bridge_audio_backend(self.processingBackend, serializer);
|
||||
sse_encode_bridge_vad_backend(self.vadBackend, serializer);
|
||||
sse_encode_bridge_effect_owner(self.aec, serializer);
|
||||
sse_encode_bridge_effect_owner(self.ns, serializer);
|
||||
sse_encode_bridge_effect_owner(self.agc, serializer);
|
||||
sse_encode_bool(self.hpfEnabled, serializer);
|
||||
sse_encode_bool(self.limiterEnabled, serializer);
|
||||
sse_encode_u_32(self.vadHangoverMs, serializer);
|
||||
sse_encode_u_32(self.vadPreRollMs, serializer);
|
||||
sse_encode_u_32(self.vadMinTxMs, serializer);
|
||||
sse_encode_bool(self.debugWavDumpEnabled, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_processing_stats(
|
||||
BridgeAudioProcessingStats self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_f_32(self.inputDbfs, serializer);
|
||||
sse_encode_f_32(self.renderDbfs, serializer);
|
||||
sse_encode_f_32(self.processedDbfs, serializer);
|
||||
sse_encode_f_32(self.vadProbability, serializer);
|
||||
sse_encode_bool(self.vadActive, serializer);
|
||||
sse_encode_bool(self.transmitting, serializer);
|
||||
sse_encode_bridge_vad_backend(self.vadBackend, serializer);
|
||||
sse_encode_bool(self.vadFallbackActive, serializer);
|
||||
sse_encode_bridge_audio_backend(self.processingBackend, serializer);
|
||||
sse_encode_bridge_ios_voice_processing_mode(
|
||||
self.iosVoiceProcessingMode,
|
||||
serializer,
|
||||
);
|
||||
sse_encode_bridge_audio_route(self.audioRoute, serializer);
|
||||
sse_encode_u_32(self.actualSampleRateHz, serializer);
|
||||
sse_encode_u_32(self.actualIoBufferFrames, serializer);
|
||||
sse_encode_u_64(self.inputOverruns, serializer);
|
||||
sse_encode_u_64(self.outputUnderruns, serializer);
|
||||
sse_encode_u_64(self.callbackXruns, serializer);
|
||||
sse_encode_u_64(self.clippedSamples, serializer);
|
||||
sse_encode_bool(self.sonoraEnabled, serializer);
|
||||
sse_encode_bool(self.platformVoiceProcessingEnabled, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_route(
|
||||
BridgeAudioRoute self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_i_32(self.index, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_stats(
|
||||
BridgeAudioStats self,
|
||||
@@ -1984,6 +2491,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
sse_encode_u_64(self.parent, serializer);
|
||||
sse_encode_String(self.name, serializer);
|
||||
sse_encode_i_64(self.order, serializer);
|
||||
sse_encode_bool(self.hasPassword, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
@@ -1992,9 +2500,21 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
sse_encode_u_64(self.id, serializer);
|
||||
sse_encode_u_64(self.channel, serializer);
|
||||
sse_encode_String(self.name, serializer);
|
||||
sse_encode_bool(self.inputMuted, serializer);
|
||||
sse_encode_bool(self.outputMuted, serializer);
|
||||
sse_encode_bool(self.isSpeaking, serializer);
|
||||
sse_encode_bool(self.isServerQuery, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_effect_owner(
|
||||
BridgeEffectOwner self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_i_32(self.index, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_error(BridgeError self, SseSerializer serializer) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
@@ -2106,6 +2626,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
}
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_ios_voice_processing_mode(
|
||||
BridgeIosVoiceProcessingMode self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_i_32(self.index, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_network_state(
|
||||
BridgeNetworkState self,
|
||||
@@ -2148,6 +2677,15 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi {
|
||||
sse_encode_i_32(self.index, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_vad_backend(
|
||||
BridgeVadBackend self,
|
||||
SseSerializer serializer,
|
||||
) {
|
||||
// Codec=Sse (Serialization based), see doc to use other codecs
|
||||
sse_encode_i_32(self.index, serializer);
|
||||
}
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_voice_join_error_code(
|
||||
BridgeVoiceJoinErrorCode self,
|
||||
|
||||
@@ -33,6 +33,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
bool dco_decode_bool(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig
|
||||
dco_decode_box_autoadd_bridge_audio_processing_config(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeBookmark dco_decode_box_autoadd_bridge_bookmark(dynamic raw);
|
||||
|
||||
@@ -44,6 +48,22 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BigInt dco_decode_box_autoadd_u_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioBackend dco_decode_bridge_audio_backend(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig dco_decode_bridge_audio_processing_config(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingStats dco_decode_bridge_audio_processing_stats(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioRoute dco_decode_bridge_audio_route(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioStats dco_decode_bridge_audio_stats(dynamic raw);
|
||||
|
||||
@@ -56,12 +76,20 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BridgeClient dco_decode_bridge_client(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeEffectOwner dco_decode_bridge_effect_owner(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeError dco_decode_bridge_error(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeEvent dco_decode_bridge_event(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeIosVoiceProcessingMode dco_decode_bridge_ios_voice_processing_mode(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeNetworkState dco_decode_bridge_network_state(dynamic raw);
|
||||
|
||||
@@ -74,6 +102,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BridgeTransmitMode dco_decode_bridge_transmit_mode(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeVadBackend dco_decode_bridge_vad_backend(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeVoiceJoinErrorCode dco_decode_bridge_voice_join_error_code(dynamic raw);
|
||||
|
||||
@@ -143,6 +174,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
bool sse_decode_bool(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig
|
||||
sse_decode_box_autoadd_bridge_audio_processing_config(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeBookmark sse_decode_box_autoadd_bridge_bookmark(
|
||||
SseDeserializer deserializer,
|
||||
@@ -156,6 +193,24 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BigInt sse_decode_box_autoadd_u_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeAudioBackend sse_decode_bridge_audio_backend(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig sse_decode_bridge_audio_processing_config(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingStats sse_decode_bridge_audio_processing_stats(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioRoute sse_decode_bridge_audio_route(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeAudioStats sse_decode_bridge_audio_stats(SseDeserializer deserializer);
|
||||
|
||||
@@ -168,12 +223,22 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BridgeClient sse_decode_bridge_client(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeEffectOwner sse_decode_bridge_effect_owner(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeError sse_decode_bridge_error(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeEvent sse_decode_bridge_event(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeIosVoiceProcessingMode sse_decode_bridge_ios_voice_processing_mode(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeNetworkState sse_decode_bridge_network_state(
|
||||
SseDeserializer deserializer,
|
||||
@@ -192,6 +257,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeVadBackend sse_decode_bridge_vad_backend(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeVoiceJoinErrorCode sse_decode_bridge_voice_join_error_code(
|
||||
SseDeserializer deserializer,
|
||||
@@ -283,6 +351,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
void sse_encode_bool(bool self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_bridge_audio_processing_config(
|
||||
BridgeAudioProcessingConfig self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_bridge_bookmark(
|
||||
BridgeBookmark self,
|
||||
@@ -298,6 +372,30 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
void sse_encode_box_autoadd_u_64(BigInt self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_backend(
|
||||
BridgeAudioBackend self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_processing_config(
|
||||
BridgeAudioProcessingConfig self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_processing_stats(
|
||||
BridgeAudioProcessingStats self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_route(
|
||||
BridgeAudioRoute self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_stats(
|
||||
BridgeAudioStats self,
|
||||
@@ -316,12 +414,24 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
void sse_encode_bridge_client(BridgeClient self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_effect_owner(
|
||||
BridgeEffectOwner self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_error(BridgeError self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_event(BridgeEvent self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_ios_voice_processing_mode(
|
||||
BridgeIosVoiceProcessingMode self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_network_state(
|
||||
BridgeNetworkState self,
|
||||
@@ -346,6 +456,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_vad_backend(
|
||||
BridgeVadBackend self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_voice_join_error_code(
|
||||
BridgeVoiceJoinErrorCode self,
|
||||
|
||||
@@ -35,6 +35,10 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
bool dco_decode_bool(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig
|
||||
dco_decode_box_autoadd_bridge_audio_processing_config(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeBookmark dco_decode_box_autoadd_bridge_bookmark(dynamic raw);
|
||||
|
||||
@@ -46,6 +50,22 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BigInt dco_decode_box_autoadd_u_64(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioBackend dco_decode_bridge_audio_backend(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig dco_decode_bridge_audio_processing_config(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingStats dco_decode_bridge_audio_processing_stats(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioRoute dco_decode_bridge_audio_route(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeAudioStats dco_decode_bridge_audio_stats(dynamic raw);
|
||||
|
||||
@@ -58,12 +78,20 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BridgeClient dco_decode_bridge_client(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeEffectOwner dco_decode_bridge_effect_owner(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeError dco_decode_bridge_error(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeEvent dco_decode_bridge_event(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeIosVoiceProcessingMode dco_decode_bridge_ios_voice_processing_mode(
|
||||
dynamic raw,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeNetworkState dco_decode_bridge_network_state(dynamic raw);
|
||||
|
||||
@@ -76,6 +104,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BridgeTransmitMode dco_decode_bridge_transmit_mode(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeVadBackend dco_decode_bridge_vad_backend(dynamic raw);
|
||||
|
||||
@protected
|
||||
BridgeVoiceJoinErrorCode dco_decode_bridge_voice_join_error_code(dynamic raw);
|
||||
|
||||
@@ -145,6 +176,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
bool sse_decode_bool(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig
|
||||
sse_decode_box_autoadd_bridge_audio_processing_config(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeBookmark sse_decode_box_autoadd_bridge_bookmark(
|
||||
SseDeserializer deserializer,
|
||||
@@ -158,6 +195,24 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BigInt sse_decode_box_autoadd_u_64(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeAudioBackend sse_decode_bridge_audio_backend(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingConfig sse_decode_bridge_audio_processing_config(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioProcessingStats sse_decode_bridge_audio_processing_stats(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeAudioRoute sse_decode_bridge_audio_route(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeAudioStats sse_decode_bridge_audio_stats(SseDeserializer deserializer);
|
||||
|
||||
@@ -170,12 +225,22 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
BridgeClient sse_decode_bridge_client(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeEffectOwner sse_decode_bridge_effect_owner(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeError sse_decode_bridge_error(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeEvent sse_decode_bridge_event(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeIosVoiceProcessingMode sse_decode_bridge_ios_voice_processing_mode(
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeNetworkState sse_decode_bridge_network_state(
|
||||
SseDeserializer deserializer,
|
||||
@@ -194,6 +259,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
SseDeserializer deserializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
BridgeVadBackend sse_decode_bridge_vad_backend(SseDeserializer deserializer);
|
||||
|
||||
@protected
|
||||
BridgeVoiceJoinErrorCode sse_decode_bridge_voice_join_error_code(
|
||||
SseDeserializer deserializer,
|
||||
@@ -285,6 +353,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
void sse_encode_bool(bool self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_bridge_audio_processing_config(
|
||||
BridgeAudioProcessingConfig self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_box_autoadd_bridge_bookmark(
|
||||
BridgeBookmark self,
|
||||
@@ -300,6 +374,30 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
void sse_encode_box_autoadd_u_64(BigInt self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_backend(
|
||||
BridgeAudioBackend self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_processing_config(
|
||||
BridgeAudioProcessingConfig self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_processing_stats(
|
||||
BridgeAudioProcessingStats self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_route(
|
||||
BridgeAudioRoute self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_audio_stats(
|
||||
BridgeAudioStats self,
|
||||
@@ -318,12 +416,24 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
@protected
|
||||
void sse_encode_bridge_client(BridgeClient self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_effect_owner(
|
||||
BridgeEffectOwner self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_error(BridgeError self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_event(BridgeEvent self, SseSerializer serializer);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_ios_voice_processing_mode(
|
||||
BridgeIosVoiceProcessingMode self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_network_state(
|
||||
BridgeNetworkState self,
|
||||
@@ -348,6 +458,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_vad_backend(
|
||||
BridgeVadBackend self,
|
||||
SseSerializer serializer,
|
||||
);
|
||||
|
||||
@protected
|
||||
void sse_encode_bridge_voice_join_error_code(
|
||||
BridgeVoiceJoinErrorCode self,
|
||||
|
||||
Reference in New Issue
Block a user