use crate::Position3D;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum NoiseSuppressionAlgorithm {
SpectralSubtraction,
WienerFilter,
NeuralNetwork,
MMSE,
Hybrid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum EchoCancellationAlgorithm {
NLMS,
RLS,
PNLMS,
Kalman,
FrequencyDomain,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum VadAlgorithm {
Energy,
Spectral,
Model,
Neural,
Hybrid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum EqBandType {
LowShelf,
HighShelf,
Peaking,
LowPass,
HighPass,
Notch,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum EqualizationType {
Parametric,
Graphic,
Shelving,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum BandwidthExtensionAlgorithm {
SpectralReplication,
HarmonicExtension,
NeuralExtension,
ModelBased,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum NoiseColor {
White,
Pink,
Brown,
Blue,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum PersonalizationMethod {
Anthropometric,
MachineLearning,
UserFeedback,
Hybrid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum RoomShape {
Rectangular,
LShaped,
Circular,
Irregular,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum OpeningType {
Door,
Window,
Archway,
Vent,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum FurnitureType {
Table,
Chair,
Sofa,
Bookshelf,
Desk,
Bed,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum MovementType {
Free,
Walking,
Seated,
Standing,
Teleport,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AcousticMatchingAlgorithm {
Direct,
Convolution,
MachineLearning,
Hybrid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum SharedSpaceType {
Lobby,
MeetingRoom,
BreakoutRoom,
SocialSpace,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AttenuationModel {
InverseDistance,
InverseSquare,
Linear,
Exponential,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum QualityLevel {
Low,
Medium,
High,
Ultra,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum LatencyPriority {
Low,
Medium,
High,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum AudioCodec {
Opus,
AAC,
MP3,
PCM,
G722,
G711,
Custom(String),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum CodecFallbackBehavior {
NextPreferred,
MostCompatible,
LowestLatency,
Fail,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum SpatialQualityLevel {
Basic,
Enhanced,
Full3D,
UltraHiFi,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum TrackingSource {
VRHeadset,
Webcam,
IMU,
MobileGyroscope,
External,
None,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum PredictionAlgorithm {
Linear,
Kalman,
Neural,
Adaptive,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum IndicatorStyle {
Minimal,
Standard,
Rich,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum ConnectionType {
P2P,
ServerMediated,
TurnRelay,
StunAssisted,
Auto,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DscpMarking {
BestEffort,
ExpeditedForwarding,
AssuredForwarding,
Voice,
Custom(u8),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum CongestionControlAlgorithm {
TcpFriendly,
GCC,
WebRTC,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum StunProtocol {
UDP,
TCP,
TLS,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum TurnProtocol {
UDP,
TCP,
TLS,
DTLS,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum IceGatheringPolicy {
All,
Relay,
NoHost,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum IceTransportPolicy {
All,
Relay,
NoUDP,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum RedundancyType {
ActivePassive,
ActiveActive,
LoadBalancing,
PathDiversity,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum ChannelConfiguration {
Mono,
Stereo,
Binaural,
MultiChannel(u8),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum HrtfQualityLevel {
Basic,
Standard,
High,
Ultra,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum RoomQualityLevel {
Simple,
Standard,
Advanced,
UltraRealistic,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DistancePrecisionLevel {
Low,
Medium,
High,
Ultra,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum QualityAdaptationAlgorithm {
BandwidthBased,
LatencyBased,
MachineLearning,
Hybrid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AdaptationSpeed {
Slow,
Medium,
Fast,
Instant,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum PerformanceMetric {
AudioLatency,
ProcessingLatency,
NetworkLatency,
PacketLoss,
Jitter,
CpuUsage,
MemoryUsage,
AudioQuality,
SpatialAccuracy,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AnonymizationMethod {
VoiceConversion,
PitchShifting,
SpectralMasking,
Statistical,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AnonymizationStrength {
Light,
Medium,
Strong,
Maximum,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum ConsentWithdrawalMechanism {
Immediate,
EndOfSession,
ManualRequest,
AutomaticExpiry,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum UserState {
Active,
Muted,
Away,
Busy,
Disconnected,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum SessionStatus {
Initializing,
Active,
Paused,
Reconnecting,
Terminated,
Error,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ProcessingStatus {
Raw,
Decoded,
SpatiallyProcessed,
ReadyForPlayback,
Error,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum EncryptionAlgorithm {
AES256,
ChaCha20Poly1305,
DTLSSRTP,
Custom,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum KeyExchangeMethod {
DiffieHellman,
ECDH,
RSA,
PreSharedKey,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AuthenticationMethod {
UsernamePassword,
Token,
Certificate,
OAuth,
SAML,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum AccessControlMode {
AllowAll,
Whitelist,
Blacklist,
Geographic,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum SessionPrivacy {
Public,
Private,
PasswordProtected,
AuthenticatedOnly,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct Orientation {
pub yaw: f32,
pub pitch: f32,
pub roll: f32,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct Velocity {
pub x: f32,
pub y: f32,
pub z: f32,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct BoundingBox {
pub min: Position3D,
pub max: Position3D,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MovementConstraints {
pub bounds: Option<BoundingBox>,
pub max_speed: f32,
pub allowed_movements: Vec<MovementType>,
}