From 41b2c27d6000bc3beb8270be9d9f2ad757519fb5 Mon Sep 17 00:00:00 2001
From: sawinglogz <3787776-sawinglogz@users.noreply.gitlab.com>
Date: Fri, 14 Jan 2022 11:34:37 -0500
Subject: [PATCH] Add support for HT12 heated tube new to DreamStation 2.

---
 oscar/SleepLib/loader_plugins/prs1_parser.cpp      | 1 +
 oscar/SleepLib/loader_plugins/prs1_parser_xpap.cpp | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/oscar/SleepLib/loader_plugins/prs1_parser.cpp b/oscar/SleepLib/loader_plugins/prs1_parser.cpp
index 3667d5d0..5d66fd77 100644
--- a/oscar/SleepLib/loader_plugins/prs1_parser.cpp
+++ b/oscar/SleepLib/loader_plugins/prs1_parser.cpp
@@ -916,6 +916,7 @@ void PRS1DataChunk::ParseTubingTypeV3(unsigned char type)
     case 1: diam = 15; break;
     case 2: diam = 15; break;  // 15HT, though the reports only say "15" for DreamStation models
     case 3: diam = 12; break;  // seen on DreamStation Go models
+    case 4: diam = 12; break;  // HT12, seen on DreamStation 2 models
     default:
         UNEXPECTED_VALUE(type, "known tubing type");
         return;
diff --git a/oscar/SleepLib/loader_plugins/prs1_parser_xpap.cpp b/oscar/SleepLib/loader_plugins/prs1_parser_xpap.cpp
index 4a9d43d8..56623419 100644
--- a/oscar/SleepLib/loader_plugins/prs1_parser_xpap.cpp
+++ b/oscar/SleepLib/loader_plugins/prs1_parser_xpap.cpp
@@ -2074,7 +2074,7 @@ bool PRS1DataChunk::ParseSettingsF0V6(const unsigned char* data, int size)
                 break;
             case 0x46:  // Tubing Type (alternate, seen instead of 0x3b on 700X110 v1.2 firmware and on DS2)
                 CHECK_VALUE(len, 1);
-                if (data[pos] > 3) UNEXPECTED_VALUE(data[pos], "0-3");  // 0 = 22mm, 1 = 15mm, 2 = 15HT, 3 = 12mm
+                if (data[pos] > 4) UNEXPECTED_VALUE(data[pos], "0-4");  // 0 = 22mm, 1 = 15mm, 2 = 15HT, 3 = 12mm, 4 = HT12
                 // TODO: Confirm that 4 is 12HT and update ParseTubingTypeV3.
                 this->ParseTubingTypeV3(data[pos]);
                 break;