private static bool connect() { //Auto-discovery, or get IP by input HGJConsole.Regions["status"].WriteContent("Finding reciever..."); //var discovery = ISCPDeviceDiscovery.DiscoverDevice("172.16.40.255", 60128); ISCPDeviceDiscovery.DiscoveryResult discovery = ISCPDeviceDiscovery.DiscoverDevice(60128); string deviceip = discovery.IP; if (string.IsNullOrEmpty(deviceip)) { HGJConsole.Regions["status"].WriteContent("Finding reciever... failed."); HGJConsole.Regions["input1"].WriteContent("Please input IP of reciever: "); deviceip = HGJConsole.Regions["input1"].GetLine(2); HGJConsole.Regions["device"].Visible = true; discovery.IP = deviceip; discovery.MAC = "N/A"; discovery.Model = "N/A"; discovery.Port = 60128; discovery.Region = "N/A"; HGJConsole.Regions["device"].WriteContent(discovery.ToString()); } else { HGJConsole.Regions["status"].WriteContent("Finding reciever... Success."); HGJConsole.Regions["device"].Visible = true; HGJConsole.Regions["device"].WriteContent(discovery.ToString()); } //Check if host is alive var p = new Ping(); PingReply rep = p.Send(deviceip, 3000); while (rep != null && rep.Status != IPStatus.Success) { HGJConsole.Regions["status"].WriteContent(string.Format( "Cannot connect to Onkyo reciever ({0}). Sleeping 30sec", rep.Status)); Thread.Sleep(30000); p.Send(deviceip, 3000); } //Setup sockets to reciever HGJConsole.Regions["status"].WriteContent("Connecting."); ISCPSocket.DeviceIp = discovery.IP; ISCPSocket.DevicePort = discovery.Port; ISCPSocket.OnPacketRecieved += ISCPSocket_OnPacketRecieved; try { ISCPSocket.StartListener(); HGJConsole.Regions["status"].WriteContent("Connected!"); HGJConsole.Regions["recv"].Visible = true; HGJConsole.Regions["input1"].WriteContent("Input:\r\n> "); } catch (Exception x) { HGJConsole.Regions["status"].WriteContent("Error connecting (" + x.Message + ")"); return(false); } return(true); }
private static void inputMenu() { ISCPSocket.SendPacket(Input.Status); Thread.Sleep(250); if (!HGJConsole.Regions["inputselect"].Visible) { HGJConsole.Regions["inputselect"].Visible = true; } writeInputMenu(); ConsoleKeyInfo cki = default(ConsoleKeyInfo); while (cki.Key != ConsoleKey.Escape) { cki = HGJConsole.Regions["inputselect"].GetChar(14); switch (cki.Key) { case ConsoleKey.V: ISCPSocket.SendPacket(Input.Video1); break; case ConsoleKey.S: ISCPSocket.SendPacket(Input.Video2); break; case ConsoleKey.G: ISCPSocket.SendPacket(Input.Video3); break; case ConsoleKey.A: ISCPSocket.SendPacket(Input.Video4); break; case ConsoleKey.B: ISCPSocket.SendPacket(Input.Video5); break; case ConsoleKey.P: ISCPSocket.SendPacket(Input.Video6); break; case ConsoleKey.D: ISCPSocket.SendPacket(Input.DVD); break; case ConsoleKey.T: ISCPSocket.SendPacket(Input.Tape1); break; case ConsoleKey.H: ISCPSocket.SendPacket(Input.Phono); break; case ConsoleKey.C: ISCPSocket.SendPacket(Input.CD); break; case ConsoleKey.F: ISCPSocket.SendPacket(Input.FM); break; case ConsoleKey.L: ISCPSocket.SendPacket(Input.DLNA); break; case ConsoleKey.N: ISCPSocket.SendPacket(Input.Network); break; } writeInputMenu(); } HGJConsole.Regions["inputselect"].Visible = false; HGJConsole.Draw(true); }
private static void Main(string[] args) { //Setup console-regions HGJConsole.Reset(); HGJConsole.BackgroundColor = ConsoleColor.Blue; HGJConsole.Regions.Add("input1", new ConsoleRegion(new ConsolePoint(1, 1), 4, 35, "Input", true)); HGJConsole.Regions.Add("recv", new ConsoleRegion(new ConsolePoint(1, 6), 4, 35, "Recieved", false)); HGJConsole.Regions.Add("status", new ConsoleRegion(new ConsolePoint(1, 11), 3, 35, "Status", true)); HGJConsole.Regions.Add("menu", new ConsoleRegion(new ConsolePoint(40, 1), 13, 35, "Menu", false)); HGJConsole.Regions.Add("device", new ConsoleRegion(new ConsolePoint(1, 15), 3, 74, "Device-info", false)); HGJConsole.Regions.Add("inputselect", new ConsoleRegion(new ConsolePoint(7, 2), 16, 60, "Input-select", false)); HGJConsole.Draw(true); //Connect while (!connect()) { Thread.Sleep(5000); } //Write menu to console-region writeMenu(); //Loop input characters... bool shouldstop = false; while (!shouldstop) { ConsoleKeyInfo cki = HGJConsole.Regions["input1"].GetChar(2); if (cki.Modifiers == ConsoleModifiers.Shift) { switch (cki.Key) { case ConsoleKey.Add: case ConsoleKey.OemPlus: case ConsoleKey.Subtract: case ConsoleKey.OemMinus: ISCPSocket.SendPacket(MasterVolume.Status); break; case ConsoleKey.V: ISCPSocket.SendPacket(MasterVolume.Status); break; case ConsoleKey.P: ISCPSocket.SendPacket(Power.Status); break; case ConsoleKey.M: ISCPSocket.SendPacket(Muting.Status); break; case ConsoleKey.A: ISCPSocket.SendPacket(Audio.Status); break; } } else { switch (cki.Key) { case ConsoleKey.Add: case ConsoleKey.OemPlus: ISCPSocket.SendPacket(MasterVolume.Up); break; case ConsoleKey.Subtract: case ConsoleKey.OemMinus: ISCPSocket.SendPacket(MasterVolume.Down); break; case ConsoleKey.I: inputMenu(); break; case ConsoleKey.P: ISCPSocket.SendPacket(Power.Status, true); ISCPSocket.SendPacket(_powerStatus ? Power.Off : Power.On); break; case ConsoleKey.M: ISCPSocket.SendPacket(Muting.Toggle); break; case ConsoleKey.H: ISCPSocket.SendPacket(OSD.Home); break; case ConsoleKey.UpArrow: ISCPSocket.SendPacket(OSD.Up); break; case ConsoleKey.DownArrow: ISCPSocket.SendPacket(OSD.Down); break; case ConsoleKey.RightArrow: ISCPSocket.SendPacket(OSD.Right); break; case ConsoleKey.LeftArrow: ISCPSocket.SendPacket(OSD.Left); break; case ConsoleKey.X: ISCPSocket.SendPacket(OSD.Exit); break; case ConsoleKey.Enter: ISCPSocket.SendPacket(OSD.Enter); break; case ConsoleKey.Q: shouldstop = true; break; } } } HGJConsole.Regions["status"].WriteContent("... Press any key to exit ..."); Console.ReadKey(); ISCPSocket.Dispose(); }