diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8a1a4b2..5f37570 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -94,7 +94,17 @@ jobs: run: vcpkg install liblo:x64-windows - name: Install NSIS - run: choco install nsis -y + run: | + $ErrorActionPreference = "Stop" + for ($i = 1; $i -le 3; $i++) { + choco install nsis -y --no-progress + if (Test-Path "C:\Program Files (x86)\NSIS\makensis.exe") { break } + Write-Host "NSIS not found after attempt $i; retrying..." + Start-Sleep -Seconds 15 + } + if (-not (Test-Path "C:\Program Files (x86)\NSIS\makensis.exe")) { + throw "NSIS install failed: makensis.exe not found" + } - name: Set up MSVC uses: ilammy/msvc-dev-cmd@v1 diff --git a/tests/test_allenheath_session.cpp b/tests/test_allenheath_session.cpp index 794d5da..f9a6e37 100644 --- a/tests/test_allenheath_session.cpp +++ b/tests/test_allenheath_session.cpp @@ -60,6 +60,17 @@ class StubMixRack : public QObject { while (!m_buffer.isEmpty()) { const quint8 lead = static_cast(m_buffer.at(0)); if (lead == 0xE0) { + // the seed is a fixed 8-byte frame; its port field can carry a + // 0xE7 byte, so it must be consumed by length, not by scanning + // for the E7 terminator (that would mis-frame ~1% of ports) + if (m_buffer.startsWith(QByteArray::fromHex("e000040103"))) { + if (m_buffer.size() < 8) { + return; + } + handleControl(m_buffer.left(8)); + m_buffer.remove(0, 8); + continue; + } const int end = m_buffer.indexOf('\xe7', 1); if (end < 0) { return;