namespace Toak.Core; public static class StateTracker { private static readonly string StateFilePath = Path.Combine(Path.GetTempPath(), "toak_state.pid"); public static bool IsRecording() { return File.Exists(StateFilePath); } public static void SetRecording(int ffmpegPid) { File.WriteAllText(StateFilePath, ffmpegPid.ToString()); } public static int? GetRecordingPid() { if (File.Exists(StateFilePath)) { var content = File.ReadAllText(StateFilePath).Trim(); if (int.TryParse(content, out var pid)) { return pid; } } return null; } public static void ClearRecording() { if (File.Exists(StateFilePath)) { File.Delete(StateFilePath); } } }