Ejemplo n.º 1
0
        private static void usbMuxMode(ref AMDeviceNotificationCallbackInfo callback_info, uint cookie)
        {
            IntPtr devHandle = callback_info.dev;

            if (devHandle == IntPtr.Zero)
            {
                return;
            }

            AMDevice dev = new AMDevice(devHandle);

            if (AMDeviceGetInterfaceType(devHandle) != DEVICE_INTERFACE_USB)
            {
                return;
            }

            if (callback_info.msg == DEVICE_CONNECTED)
            {
                dev.WriteLine("Device Connected");
                Program.OnDeviceAttached(dev);
            }
            if (callback_info.msg == DEVICE_DISCONNECTED)
            {
                dev.WriteLine("Device Disconnected");
            }
        }
Ejemplo n.º 2
0
        static void NotifyCallback(ref AMDeviceNotificationCallbackInfo info)
        {
            switch (info.msg)
            {
            case NotificationMessage.Connected:
                Debug.WriteLine("连接");
                Debug.WriteLine(info.Device);
                OnConnected(new DeviceEventArgs()
                {
                    Device = info.Device
                });
                break;

            case NotificationMessage.Disconnected:
                Debug.WriteLine("断开");
                Debug.WriteLine(info.Device);
                OnDisconnected(new DeviceEventArgs()
                {
                    Device = info.Device
                });
                break;

            case NotificationMessage.Unknown:
                Debug.WriteLine("断开");
                break;

            default:
                throw new NotSupportedException();
            }
        }
Ejemplo n.º 3
0
 static void usbMuxMode(ref AMDeviceNotificationCallbackInfo callback_info)
 {
     if (callback_info.msg == 1)
     {
         Console.WriteLine("Device connected in Usb Multiplexing mode");
         DoMyCode();
     }
     else if (callback_info.msg == 2)
         Console.WriteLine("Device disconnected when in Usb Multiplexing mode");
     else
         Console.WriteLine("Device in unknown usbmux mode");
     IntPtr devHandle = callback_info.dev;
 }
Ejemplo n.º 4
0
 static void usbMuxMode(ref AMDeviceNotificationCallbackInfo callback_info)
 {
     if (callback_info.msg == 1)
     {
         Console.WriteLine("Device connected in Usb Multiplexing mode");
         DoMyCode();
     }
     else if (callback_info.msg == 2)
     {
         Console.WriteLine("Device disconnected when in Usb Multiplexing mode");
     }
     else
     {
         Console.WriteLine("Device in unknown usbmux mode");
     }
     IntPtr devHandle = callback_info.dev;
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 正常链接回调
        /// </summary>
        /// <param name="callback">The callback.</param>
        private void NotificationCallback(ref AMDeviceNotificationCallbackInfo callback)
        {
            try
            {
                switch (callback.Msg)
                {
                case ConnectNotificationMessage.Connected:
                    var device = FindConnectedDevice(callback.DevicePtr);
                    if (device == null)
                    {
                        device = new iOSDevice(callback.DevicePtr);
                        currentConnectedDevice.Add(device);
                    }

                    CommonConnectEvent?.Invoke(this, new DeviceCommonConnectEventArgs(device, ConnectNotificationMessage.Connected));

                    break;

                case ConnectNotificationMessage.Disconnected:
                    var disConnectDevice = FindConnectedDevice(callback.DevicePtr);
                    if (disConnectDevice != null)
                    {
                        currentConnectedDevice.Remove(disConnectDevice);
                    }

                    CommonConnectEvent?.Invoke(this, new DeviceCommonConnectEventArgs(disConnectDevice, ConnectNotificationMessage.Disconnected));

                    break;

                case ConnectNotificationMessage.Unknown:
                    break;
                }
            }
            catch (Exception ex)
            {
                ListenErrorEvent?.Invoke(this, new ListenErrorEventHandlerEventArgs(ex.Message, ListenErrorEventType.Connect));
            }
        }
Ejemplo n.º 6
0
        private static void usbMuxMode(ref AMDeviceNotificationCallbackInfo callback_info, uint cookie)
        {
            IntPtr devHandle = callback_info.dev;

            if ( devHandle == IntPtr.Zero )
            {
                return;
            }

            AMDevice dev = new AMDevice(devHandle);

            if ( AMDeviceGetInterfaceType(devHandle) != DEVICE_INTERFACE_USB )
            {
                return;
            }

            if ( callback_info.msg == DEVICE_CONNECTED )
            {
                dev.WriteLine("Device Connected");
                Program.OnDeviceAttached(dev);
            }
            if ( callback_info.msg == DEVICE_DISCONNECTED )
            {
                dev.WriteLine("Device Disconnected");
            }
        }