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)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
var device = new CaptureDevices();
|
var device = new CaptureDevices();
|
||||||
var deviceDescriptors = device.GetDescriptors().Where(x=>x.Characteristics.Length > 0).ToList();
|
var deviceDescriptors = device.GetDescriptors()
|
||||||
var deviceIndex = -1;
|
.Where(x=>x.Characteristics.Length > 0)
|
||||||
while (deviceIndex == -1)
|
.ToList();
|
||||||
|
var menu = new Menu
|
||||||
{
|
{
|
||||||
PrintDevices(deviceDescriptors);
|
DeviceDescriptors = deviceDescriptors,
|
||||||
var input = Console.ReadLine();
|
};
|
||||||
int.TryParse(input, out var result);
|
var captureDeviceDescriptor = menu.ShowDeviceMenu();
|
||||||
if (result<1 || result>deviceDescriptors.Count)
|
Console.WriteLine($"Characteristics:\n\t" +
|
||||||
{
|
$"{string.Join("\n\t",captureDeviceDescriptor.Characteristics)}");
|
||||||
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}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user