Esempio n. 1
0
        private static libmyo.HandlerResult HandleEvent(IntPtr userData, IntPtr evt)
        {
            GCHandle handle = (GCHandle)userData;
            Hub      self   = (Hub)handle.Target;

            var type      = libmyo.event_get_type(evt);
            var timestamp = TIMESTAMP_EPOCH.AddMilliseconds(libmyo.event_get_timestamp(evt) / 1000);
            var myoHandle = libmyo.event_get_myo(evt);

            switch (type)
            {
            case libmyo.EventType.Paired:
                var myo = new Myo(self, myoHandle);
                self._myos.Add(myoHandle, myo);
                if (self.Paired != null)
                {
                    self.Paired(self, new MyoEventArgs(myo, DateTime.Now));
                }
                break;

            default:
                Debug.Assert(self._myos[myoHandle] != null);
                self._myos[myoHandle].HandleEvent(type, timestamp, evt);
                break;
            }

            return(libmyo.HandlerResult.Continue);
        }