Added Menu Class

This commit is contained in:
2026-01-07 10:33:53 +01:00
parent aa75b77ad3
commit 729fe2c0a4
2 changed files with 44 additions and 23 deletions

34
Flashcap-Demo/Menu.cs Normal file
View File

@@ -0,0 +1,34 @@
using FlashCap;
namespace Flashcap_Demo;
public class Menu
{
public required List<CaptureDeviceDescriptor> 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}");
}
}
}

View File

@@ -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<CaptureDeviceDescriptor> 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)}");
}
}