Example #1
0
        protected override bool ProcessEventInternal(string cmd, string com, int idx, int val)
        {
            if (!"MOTORFADER".Equals(com, StringComparison.InvariantCultureIgnoreCase))
            {
                return(false);
            }

            bool ret = true;

            switch (cmd?.ToUpperInvariant())
            {
            default: ret = false;
                break;

            case "UPDATED":
                if (_value != (ushort)val)
                {
                    _value = (ushort)val;
                    ValueChanged?.Invoke(this, new FaderChangedEventArgs(_value));
                }
                break;

            case "TOUCHED":
                if (!Touched)
                {
                    Touched = true;
                    TouchedChanged?.Invoke(this, new ButtonChangedEventArgs(Touched));
                }
                break;

            case "RELEASED":
                if (Touched)
                {
                    Touched = false;
                    TouchedChanged?.Invoke(this, new ButtonChangedEventArgs(Touched));
                }
                break;
            }

            return(ret);
        }
Example #2
0
        protected override bool ProcessEventInternal(string cmd, string com, int idx, int val)
        {
            if ("ENCODER".Equals(com, StringComparison.InvariantCultureIgnoreCase))
            {
                bool ret = true;
                switch (cmd?.ToUpperInvariant())
                {
                default: ret = false;
                    break;

                case "TURNED_RIGHT":
                    TurnedRight?.Invoke(this, EventArgs.Empty);
                    break;

                case "TURNED_LEFT":
                    TurnedLeft?.Invoke(this, EventArgs.Empty);
                    break;
                }
                return(ret);
            }

            if ("BUTTON".Equals(com, StringComparison.InvariantCultureIgnoreCase))
            {
                var  old = idx == TouchIndex ? Touched : Pressed;
                bool ret = true;
                switch (cmd?.ToUpperInvariant())
                {
                default:
                    ret = false;
                    break;

                case "PRESSED":
                    if (idx == TouchIndex)
                    {
                        Touched = true;
                    }
                    else
                    {
                        Pressed = true;
                    }
                    break;

                case "RELEASED":
                    if (idx == TouchIndex)
                    {
                        Touched = false;
                    }
                    else
                    {
                        Pressed = false;
                    }
                    break;
                }

                if (ret)
                {
                    if (idx == TouchIndex)
                    {
                        if (old != Touched)
                        {
                            TouchedChanged?.Invoke(this, new ButtonChangedEventArgs(Touched));
                        }
                    }
                    else if (old != Pressed)
                    {
                        PressedChanged?.Invoke(this, new ButtonChangedEventArgs(Pressed));
                    }
                }

                return(ret);
            }

            return(false);
        }
 protected override void Saved()
 {
     touched = false;
     TouchedChanged?.BeginInvoke(null, null);
 }
        //public void SaveIfTouched()
        //{
        //    if (!touched)
        //        return;
        //    Save();
        //}

        public void Touch()
        {
            touched = true;
            TouchedChanged?.BeginInvoke(null, null);
        }