Skip to content

Commit

Permalink
Sennheiser setter/metering improvements:
Browse files Browse the repository at this point in the history
 - Fixed name setter
 - Fixed trim setter
 - RSSI and AF meters now output in ~ 0-1 range
 - Setting an enum by string value is now supported
  • Loading branch information
space928 committed Jul 4, 2024
1 parent 9bbc219 commit 6eabfa8
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
10 changes: 5 additions & 5 deletions WirelessMicSuiteServer/SennheiserSSC/SennheiserSSCWirelessMic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ public string? Name
{
if (value != null)
{
var str = value.AsSpan();
var str = value.ToUpper().AsSpan();
if (str.Length > 8)
str = str[..8];
receiver.Send($$$$$"""{"rx{{{{{receiverNo}}}}}":{"name":{{{{{str}}}}}}}""");
receiver.Send($$$$$"""{"rx{{{{{receiverNo}}}}}":{"name":"{{{{{str}}}}}"}}""");
}
}
}
Expand All @@ -75,7 +75,7 @@ public int? Sensitivity
set
{
if (value != null)
receiver.Send($$$$$"""{"rx{{{{{receiverNo}}}}}":{"sync_settings":{"gain":{{{{{Math.Clamp((int)value, -12, 6)}}}}}}}}""");
receiver.Send($$$$$"""{"rx{{{{{receiverNo}}}}}":{"sync_settings":{"trim":{{{{{Math.Clamp((int)value, -12, 6)}}}}}}}}""");
}
}
public int? OutputGain
Expand Down Expand Up @@ -424,7 +424,7 @@ internal void ParseMeterMessage(Memory<char> msg, JsonElement json)
{
case "rssi":
//rssi: float (dBm)
meter.rssiA = meter.rssiB = prop.Value.GetSingle();
meter.rssiA = meter.rssiB = (prop.Value.GetSingle()+120)/80f;
break;
case "rsqi":
//rsqi: int(%)(RF signal quality indicator)
Expand All @@ -446,7 +446,7 @@ internal void ParseMeterMessage(Memory<char> msg, JsonElement json)
break;
case "af":
//af: float (dBfs)
meter.audioLevel = prop.Value.GetSingle();
meter.audioLevel = (prop.Value.GetSingle()+50)/50f;
break;
default:
Log($"Unknown JSON property encountered '{prop.Name}' in '{msg}'!", LogSeverity.Warning);
Expand Down
6 changes: 5 additions & 1 deletion WirelessMicSuiteServer/WebAPI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -443,10 +443,14 @@ private static bool IsSimple(Type type)
return strConstructor.Invoke([valueStr]);
}

object? value;
var simpleType = targetType;
if (targetType.IsEnum)
{
if (Enum.TryParse(targetType, valueStr, out value))
return value;
simpleType = targetType.GetEnumUnderlyingType();
object? value;
}

try
{
Expand Down

0 comments on commit 6eabfa8

Please sign in to comment.