public static bool IsMatch(this OSCMessage message, OSCMatchPattern pattern) { var messageTypes = message.GetTypes(); if (messageTypes.Length != pattern.Types.Length) { return(false); } for (var i = 0; i < messageTypes.Length; i++) { if (pattern.Types[i] == OSCValueType.True || pattern.Types[i] == OSCValueType.False) { if (messageTypes[i] != OSCValueType.True && messageTypes[i] != OSCValueType.False) { return(false); } } else if ((pattern.Types[i] != messageTypes[i])) { return(false); } } return(true); }
public static bool IsMatch(this OSCMessage message, OSCMatchPattern pattern) { var messageValues = message.Values; var messageValuesCount = messageValues.Count; if (messageValuesCount != pattern.Types.Length) { return(false); } for (var i = 0; i < messageValuesCount; i++) { if (pattern.Types[i] == OSCValueType.True || pattern.Types[i] == OSCValueType.False) { if (messageValues[i].Type != OSCValueType.True && messageValues[i].Type != OSCValueType.False) { return(false); } } else if (pattern.Types[i] != messageValues[i].Type) { return(false); } } return(true); }