mirror of
https://github.com/halleysfifthinc/AVCLAN-Mockingboard.git
synced 2026-08-06 17:03:17 +00:00
Delay starting status timer until state has been normalized
This commit is contained in:
+7
-3
@@ -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.flags2 = 0xc0;
|
||||
AVCLAN_generateStatus(out, true, dev_STATUS);
|
||||
AVCLAN_startPlaying();
|
||||
respond = r_NormalizeState;
|
||||
respond = r_StartPlaying;
|
||||
}
|
||||
break;
|
||||
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;
|
||||
break;
|
||||
case r_StartPlaying:
|
||||
AVCLAN_normalizeState();
|
||||
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;
|
||||
case r_StatusReport:
|
||||
AVCLAN_generateStatus(out, true, dev_STATUS);
|
||||
|
||||
+3
-3
@@ -176,9 +176,9 @@ typedef enum : uint8_t {
|
||||
r_Handled, // No follow-up needed
|
||||
r_StatusReport = 0x02, // Needs follow-up status report
|
||||
r_NormalizeState, // cd_status needs normalized and resent
|
||||
r_StartPlaying, // started playing; send current status and then
|
||||
// normalize
|
||||
r_TrackChange, // Time needs reset
|
||||
r_StartPlaying, // ~equivalent to normalizeState, but cycles to BeganPlaying
|
||||
r_BeganPlaying,
|
||||
r_TrackChange, // Time needs reset
|
||||
r_Ejection,
|
||||
r_Report_Load,
|
||||
} response_t;
|
||||
|
||||
Reference in New Issue
Block a user