示例#1
0
        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);
        }
示例#2
0
        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);
        }