#pragma once #include #include #include namespace djm::device { struct AnalyticsEvent { enum class Type { AcousticImagingReady, SdCardFormatted, ExceptionThrown, ImageSaved, VideoSaved, ImagingFrequencyChanged, }; Type type; /** sender-side timestamp */ std::chrono::system_clock::time_point timestamp; /** set if type == ExceptionThrown */ std::optional exceptionWhat; /** set if type == ImagingFrequencyChanged */ std::optional newFrequency; /** Meant for debugging only: Format this event as a human readable text */ std::string fmtDebug() const; }; } // namespace djm::device