Added Menu Class
This commit is contained in:
34
Flashcap-Demo/Menu.cs
Normal file
34
Flashcap-Demo/Menu.cs
Normal 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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)}");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user