From cf1cf187b921b6ad5d3c92418945bc90e61e82ec Mon Sep 17 00:00:00 2001 From: Mark Watkins <jedimark@users.sourceforge.net> Date: Wed, 20 Aug 2014 14:11:01 +1000 Subject: [PATCH] More CMS50F durations stuffs --- sleepyhead/SleepLib/loader_plugins/cms50f37_loader.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sleepyhead/SleepLib/loader_plugins/cms50f37_loader.cpp b/sleepyhead/SleepLib/loader_plugins/cms50f37_loader.cpp index 18205b36..9114e315 100644 --- a/sleepyhead/SleepLib/loader_plugins/cms50f37_loader.cpp +++ b/sleepyhead/SleepLib/loader_plugins/cms50f37_loader.cpp @@ -383,13 +383,11 @@ void CMS50F37Loader::processBytes(QByteArray bytes) // COMMAND_GET_SESSION_DURATION case 0x08: // 8,80,80,80,a4,81,80,80 // 00, 00, 24, 01, 00, 00 - for (int i = 2, msb = buffer.at(idx+1); i < len; i++, msb>>= 1) { - buffer[idx+i] = (buffer[idx+i] & 0x7f) | (msb & 0x01 ? 0x80 : 0); - } - // duration - duration = buffer.at(idx+4) | (buffer.at(idx+5) << 8) - | (buffer.at(idx+6) << 16); + duration = ((buffer.at(idx+1) & 0x4) << 5); + duration |= buffer.at(idx+4); + duration |= (buffer.at(idx+5) | ((buffer.at(idx+1) & 0x8) << 4)) << 8; + duration |= (buffer.at(idx+6) | ((buffer.at(idx+1) & 0x16) << 4)) << 16; break; // COMMAND_GET_SESSION_COUNT