feat: Introduce explicit start, stop, and status commands, including minimum recording duration.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user