playStopPreview method
Future<void>
playStopPreview(
{ - bool stop = false,
})
Implementation
Future<void> playStopPreview({bool stop = false}) async {
// Ensure engine is ready before any play/stop
await _sineEngine.init();
if (isPlaying.value || stop) {
await _sineEngine.stop();
isPlaying.value = false;
NeomStopwatch().pause(ref: chamberPreset.id);
if(_waveTicker?.isActive ?? false) _waveTicker?.stop();
// Stop incienso tracking
_stopPhaseRunner();
_stopTimelinePlayback();
inciensoTracker.stop();
_prevBreathPhase = 0.0;
} else {
_syncParams();
await _sineEngine.start();
isPlaying.value = true;
NeomStopwatch().start(ref: chamberPreset.id);
if(!(_waveTicker?.isActive ?? false)) _waveTicker?.start();
// Start incienso tracking
_sessionStartedAt = DateTime.now();
inciensoTracker.start();
inciensoRecorder.startRecording();
}
update([AppPageIdConstants.generator, 'miniNeomPlayer']);
}