Namespace Serenity.Feedback.Domain.Services
Classes
FeedbackPulseExpander
Pure expansion of a pulsing vibration — an authored frequency and duty cycle — into the concrete FeedbackPatternStep sequence a pattern player walks. Engine-free and directly unit-testable, mirroring FeedbackScaler's role as the single place a shaping rule lives.
FeedbackScaler
Pure scaling policy applied to every impulse before it reaches a channel: it honours the global "enabled" switch and the global intensity multiplier. Keeping this logic here (engine-free) makes it directly unit-testable and the single place where the "vibration off" / accessibility scaling rules live.