Delay starting status timer until state has been normalized

This commit is contained in:
Allen Hill
2026-06-18 19:40:31 -07:00
parent 0464261b6e
commit 59b8bd0a54
2 changed files with 10 additions and 6 deletions
+7 -3
View File
@@ -1067,8 +1067,7 @@ response_t AVCLAN_handleframe(const AVCLAN_frame_t *in, AVCLAN_frame_t *out) {
cd_status.state = cd_SEEKING | cd_SEEKING_TRACK; cd_status.state = cd_SEEKING | cd_SEEKING_TRACK;
cd_status.flags2 = 0xc0; cd_status.flags2 = 0xc0;
AVCLAN_generateStatus(out, true, dev_STATUS); AVCLAN_generateStatus(out, true, dev_STATUS);
AVCLAN_startPlaying(); respond = r_StartPlaying;
respond = r_NormalizeState;
} }
break; break;
case PACK3(dev_COMM_v1, dev_COMM_CTRL, Ping_Req): case PACK3(dev_COMM_v1, dev_COMM_CTRL, Ping_Req):
@@ -1327,8 +1326,13 @@ RFrame_t *AVCLAN_statemachine(RFrame_t *resp) {
resp->r = r_Handled; resp->r = r_Handled;
break; break;
case r_StartPlaying: case r_StartPlaying:
AVCLAN_normalizeState();
AVCLAN_generateStatus(out, true, dev_STATUS); AVCLAN_generateStatus(out, true, dev_STATUS);
resp->r = r_NormalizeState; resp->r = r_BeganPlaying;
break;
case r_BeganPlaying:
AVCLAN_startPlaying(); // only start PIT after normalizing state
resp->r = r_Nothing;
break; break;
case r_StatusReport: case r_StatusReport:
AVCLAN_generateStatus(out, true, dev_STATUS); AVCLAN_generateStatus(out, true, dev_STATUS);
+3 -3
View File
@@ -176,9 +176,9 @@ typedef enum : uint8_t {
r_Handled, // No follow-up needed r_Handled, // No follow-up needed
r_StatusReport = 0x02, // Needs follow-up status report r_StatusReport = 0x02, // Needs follow-up status report
r_NormalizeState, // cd_status needs normalized and resent r_NormalizeState, // cd_status needs normalized and resent
r_StartPlaying, // started playing; send current status and then r_StartPlaying, // ~equivalent to normalizeState, but cycles to BeganPlaying
// normalize r_BeganPlaying,
r_TrackChange, // Time needs reset r_TrackChange, // Time needs reset
r_Ejection, r_Ejection,
r_Report_Load, r_Report_Load,
} response_t; } response_t;