From 729fe2c0a4baf68ada4bfc3994d69a2342544aaf Mon Sep 17 00:00:00 2001 From: tikaiz Date: Wed, 7 Jan 2026 10:33:53 +0100 Subject: [PATCH] Added Menu Class --- Flashcap-Demo/Menu.cs | 34 ++++++++++++++++++++++++++++++++++ Flashcap-Demo/Program.cs | 33 ++++++++++----------------------- 2 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 Flashcap-Demo/Menu.cs diff --git a/Flashcap-Demo/Menu.cs b/Flashcap-Demo/Menu.cs new file mode 100644 index 0000000..415593d --- /dev/null +++ b/Flashcap-Demo/Menu.cs @@ -0,0 +1,34 @@ +using FlashCap; + +namespace Flashcap_Demo; + +public class Menu +{ + public required List DeviceDescriptors { get; init; } + + public CaptureDeviceDescriptor ShowDeviceMenu() + { + var deviceIndex = -1; + while (deviceIndex == -1) + { + PrintDevices(); + var input = Console.ReadLine(); + int.TryParse(input, out var result); + if (result<1 || result>DeviceDescriptors.Count) + { + continue; + } + deviceIndex = result-1; + } + return DeviceDescriptors[deviceIndex]; + } + private void PrintDevices() + { + Console.WriteLine("Choose your Device:"); + for (var index = 0; index < DeviceDescriptors.Count; index++) + { + var descriptor = DeviceDescriptors[index]; + Console.WriteLine($"\t({index+1}): {descriptor.Name}"); + } + } +} diff --git a/Flashcap-Demo/Program.cs b/Flashcap-Demo/Program.cs index 11b3f27..01a3b48 100644 --- a/Flashcap-Demo/Program.cs +++ b/Flashcap-Demo/Program.cs @@ -8,29 +8,16 @@ internal static class Program public static void Main(string[] args) { var device = new CaptureDevices(); - var deviceDescriptors = device.GetDescriptors().Where(x=>x.Characteristics.Length > 0).ToList(); - var deviceIndex = -1; - while (deviceIndex == -1) + var deviceDescriptors = device.GetDescriptors() + .Where(x=>x.Characteristics.Length > 0) + .ToList(); + var menu = new Menu { - PrintDevices(deviceDescriptors); - var input = Console.ReadLine(); - int.TryParse(input, out var result); - if (result<1 || result>deviceDescriptors.Count) - { - continue; - } - deviceIndex = result-1; - } - var captureDescriptor = deviceDescriptors[deviceIndex]; - Console.WriteLine($"Characteristics:\n\t{string.Join("\n\t",captureDescriptor.Characteristics)}"); - } - private static void PrintDevices(List descriptors) - { - Console.WriteLine("Choose your Device:"); - for (var index = 0; index < descriptors.Count; index++) - { - var descriptor = descriptors[index]; - Console.WriteLine($"\t({index+1}): {descriptor.Name}"); - } + DeviceDescriptors = deviceDescriptors, + }; + var captureDeviceDescriptor = menu.ShowDeviceMenu(); + Console.WriteLine($"Characteristics:\n\t" + + $"{string.Join("\n\t",captureDeviceDescriptor.Characteristics)}"); } + } \ No newline at end of file