mirror of
https://github.com/halleysfifthinc/AVCLAN-Mockingboard.git
synced 2026-08-07 01:13:18 +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.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);
|
||||||
|
|||||||
+2
-2
@@ -176,8 +176,8 @@ 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,
|
||||||
|
|||||||
Reference in New Issue
Block a user