public void OnInitialize(CommunicationService com, int interval) { OnRelease(); m_communication = com; m_interval = interval; m_timer = new Stopwatch(); m_timer.Start(); m_listener = new LeapListener(this); m_controller = new Controller(); m_controller.SetPolicy(m_controller.PolicyFlags | Controller.PolicyFlag.POLICY_IMAGES | Controller.PolicyFlag.POLICY_BACKGROUND_FRAMES); m_controller.AddListener(m_listener); }
public void OnRelease() { if (m_controller != null) { m_controller.RemoveListener(m_listener); m_controller.Dispose(); m_controller = null; } m_listener = null; m_communication = null; if (m_timer != null) { m_timer.Stop(); m_timer = null; } }
static void Main(string[] args) { var argMode = ArgMode.None; var imageSource = ImageSource.LeapMotion; var receiverAddress = "localhost"; var receiverPort = 8081; var token = ""; var interval = 100; foreach (var arg in args) { if (argMode == ArgMode.None) { if (arg == "-is" || arg == "--image-source") argMode = ArgMode.ImageSource; else if (arg == "-ra" || arg == "--receiver-address") argMode = ArgMode.ReceiverAddress; else if (arg == "-rp" || arg == "--receiver-port") argMode = ArgMode.ReceiverPort; else if (arg == "-t" || arg == "--token") argMode = ArgMode.Token; else if (arg == "-i" || arg == "--interval") argMode = ArgMode.Interval; } else if (argMode == ArgMode.ImageSource) { if (arg == "webcam") imageSource = ImageSource.WebCam; else if (arg == "leap") imageSource = ImageSource.LeapMotion; argMode = ArgMode.None; } else if (argMode == ArgMode.ReceiverAddress) { receiverAddress = arg; argMode = ArgMode.None; } else if (argMode == ArgMode.ReceiverPort) { int v = receiverPort; if (int.TryParse(arg, out v)) receiverPort = v; argMode = ArgMode.None; } else if (argMode == ArgMode.Token) { token = arg; argMode = ArgMode.None; } else if (argMode == ArgMode.Interval) { int v = interval; if (int.TryParse(arg, out v)) interval = v; argMode = ArgMode.None; } } ImagesService imagesService = null; if (imageSource == ImageSource.LeapMotion) imagesService = new LeapImagesService(); if (imagesService != null) { var communication = new CommunicationService(); Console.WriteLine("* Connectiong to server.."); if (communication.Connect(receiverAddress, receiverPort, token)) { Console.WriteLine("* Connected to server!"); imagesService.OnInitialize(communication, interval); while (true) { var line = Console.ReadLine(); if (line == "exit") break; } imagesService.OnRelease(); } else Console.WriteLine("* Cannot connect to server!"); communication.Disconnect(); Thread.Sleep(1000); } }