From 4510f40729ef5263e6d99d0946a2e1c8590a8e22 Mon Sep 17 00:00:00 2001
From: Jon Beniston <jon@beniston.com>
Date: Tue, 24 Dec 2024 12:49:10 +0000
Subject: [PATCH] ChannelWebAPIUtils::patchDeviceSetting: Add support for sinks
 and MIMO.

---
 sdrbase/channel/channelwebapiutils.cpp | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sdrbase/channel/channelwebapiutils.cpp b/sdrbase/channel/channelwebapiutils.cpp
index 6a26b9018..e5e09ee0a 100644
--- a/sdrbase/channel/channelwebapiutils.cpp
+++ b/sdrbase/channel/channelwebapiutils.cpp
@@ -1319,9 +1319,15 @@ bool ChannelWebAPIUtils::patchDeviceSetting(unsigned int deviceIndex, const QStr
             SWGSDRangel::SWGErrorResponse errorResponse2;
             delete jsonObj;
 
-            DeviceSampleSource *source = deviceSet->m_deviceAPI->getSampleSource();
-
-            httpRC = source->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
+            if (DeviceSampleSource *source = deviceSet->m_deviceAPI->getSampleSource()) {
+                httpRC = source->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
+            } else if (DeviceSampleSink *sink = deviceSet->m_deviceAPI->getSampleSink()) {
+                httpRC = sink->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
+            } else if (DeviceSampleMIMO *mimo = deviceSet->m_deviceAPI->getSampleMIMO()) {
+                httpRC = mimo->webapiSettingsPutPatch(false, deviceSettingsKeys, deviceSettingsResponse, *errorResponse2.getMessage());
+            } else {
+                httpRC = 404;
+            }
 
             if (httpRC/100 == 2)
             {