static async Task Main(string[] args) { Console.Title = "Roku Control Console"; Console.Write("Enter your Roku device's IP address: "); string input = Console.ReadLine(); // TODO: validate IP address if (!string.IsNullOrWhiteSpace(input)) { RokuConfig.SetUrl(input); var info = await RokuClient.GetRokuInformation(new Uri(RokuConfig.baseUrl + "query/device-info")); Console.WriteLine(info); Console.WriteLine("Enter your input (x to quit)"); await GetInput(); } }
private static void SendRokuCommand(ConsoleKey key) { var path = ""; switch (key) { case ConsoleKey.UpArrow: path = "keypress/Up"; break; case ConsoleKey.DownArrow: path = "keypress/Down"; break; case ConsoleKey.LeftArrow: path = "keypress/Left"; break; case ConsoleKey.RightArrow: path = "keypress/Right"; break; case ConsoleKey.Enter: path = "keypress/Select"; break; case ConsoleKey.Spacebar: path = "keypress/Play"; break; case ConsoleKey.Backspace: path = "keypress/Back"; break; case ConsoleKey.OemPeriod: path = "keypress/VolumeUp"; break; case ConsoleKey.OemComma: path = "keypress/VolumeDown"; break; case ConsoleKey.M: path = "keypress/VolumeMute"; break; case ConsoleKey.H: path = "keypress/Home"; break; case ConsoleKey.I: path = "keypress/Info"; break; } Uri url = new Uri(RokuConfig.baseUrl + path); var t = Task.Run(() => RokuClient.PostCommand(url, "")); t.Wait(); Console.WriteLine(t.Result); }