fix: DeviceVolumeMessenger only sends rawValue when device implements it

This commit is contained in:
Andrew Welker
2025-12-16 15:41:33 -06:00
parent a7b88ec38d
commit c5b0872a4c

View File

@@ -130,34 +130,33 @@ namespace PepperDash.Essentials.AppServer.Messengers
feedback.MuteFeedback.OutputChange += (sender, args) => feedback.MuteFeedback.OutputChange += (sender, args) =>
{ {
PostStatusMessage(JToken.FromObject( var message = new VolumeStateMessage
new
{ {
volume = new Volume = new Volume
{ {
muted = args.BoolValue Muted = args.BoolValue
} }
}) };
);
PostStatusMessage(JToken.FromObject(message));
}; };
feedback.VolumeLevelFeedback.OutputChange += (sender, args) => feedback.VolumeLevelFeedback.OutputChange += (sender, args) =>
{ {
var rawValue = ""; var message = new VolumeStateMessage
if (feedback is IBasicVolumeWithFeedbackAdvanced volumeAdvanced)
{ {
rawValue = volumeAdvanced.RawVolumeLevel.ToString(); Volume = new Volume
}
var message = new
{ {
volume = new Level = args.IntValue,
{
level = args.IntValue,
rawValue
} }
}; };
if (device is IBasicVolumeWithFeedbackAdvanced volumeAdvanced)
{
message.Volume.RawValue = volumeAdvanced.RawVolumeLevel.ToString();
message.Volume.Units = volumeAdvanced.Units;
}
PostStatusMessage(JToken.FromObject(message)); PostStatusMessage(JToken.FromObject(message));
}; };
} }