1
0

feat: Introduce explicit start, stop, and status commands, including minimum recording duration.

This commit is contained in:
2026-02-28 18:06:15 +01:00
parent 8ec0629e1a
commit a55e599c4f
13 changed files with 234 additions and 283 deletions

View File

@@ -140,6 +140,28 @@ public static class DaemonService
else
await orchestrator.ProcessStartRecordingAsync();
}
else if (cmd == 5) // STATUS
{
bool json = pipeToStdout; // buffer[1] == 1 is json
bool isRecording = stateTracker.IsRecording();
string stateStr = isRecording ? "Recording" : "Idle";
if (json)
{
var start = stateTracker.GetRecordingStartTime();
double durationMs = 0;
if (isRecording && start.HasValue)
{
durationMs = (DateTime.UtcNow - start.Value).TotalMilliseconds;
}
var jsonStr = $"{{\"state\": \"{stateStr}\", \"duration\": {Math.Round(durationMs)}}}";
await client.SendAsync(System.Text.Encoding.UTF8.GetBytes(jsonStr), SocketFlags.None);
}
else
{
await client.SendAsync(System.Text.Encoding.UTF8.GetBytes(stateStr), SocketFlags.None);
}
}
}
}
catch (Exception ex)