Add Characteristic Menu
This commit is contained in:
@@ -4,7 +4,9 @@ namespace Flashcap_Demo;
|
||||
|
||||
public class Menu
|
||||
{
|
||||
public required List<CaptureDeviceDescriptor> DeviceDescriptors { get; init; }
|
||||
public required List<CaptureDeviceDescriptor> DeviceDescriptors { get; set; }
|
||||
public CaptureDeviceDescriptor? ChosenDevice { get; set; }
|
||||
public VideoCharacteristics? ChosenCharacteristic { get; set; }
|
||||
|
||||
public CaptureDeviceDescriptor ShowDeviceMenu()
|
||||
{
|
||||
@@ -20,7 +22,40 @@ public class Menu
|
||||
}
|
||||
deviceIndex = result-1;
|
||||
}
|
||||
return DeviceDescriptors[deviceIndex];
|
||||
ChosenDevice = DeviceDescriptors[deviceIndex];
|
||||
return ChosenDevice;
|
||||
}
|
||||
public VideoCharacteristics ShowCharacteristicMenu(CaptureDeviceDescriptor? deviceDescriptor = null)
|
||||
{
|
||||
if (ChosenDevice == null && deviceDescriptor == null)
|
||||
{
|
||||
throw new ArgumentException("You must choose a device");
|
||||
}
|
||||
ChosenDevice ??= deviceDescriptor;
|
||||
var index = -1;
|
||||
while (index == -1)
|
||||
{
|
||||
PrintCharacteristics();
|
||||
var input = Console.ReadLine();
|
||||
int.TryParse(input, out var result);
|
||||
if (result<1 || result>ChosenDevice!.Characteristics.Length)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
index = result-1;
|
||||
}
|
||||
ChosenCharacteristic = ChosenDevice!.Characteristics[index];
|
||||
return ChosenCharacteristic;
|
||||
}
|
||||
private void PrintCharacteristics()
|
||||
{
|
||||
Console.WriteLine("Choose your Resolution/Framerate:");
|
||||
|
||||
for (var index = ChosenDevice!.Characteristics.Length-1; index >=0; index--)
|
||||
{
|
||||
var characteristic = ChosenDevice.Characteristics[index];
|
||||
Console.WriteLine($"\t({index + 1}): {characteristic}");
|
||||
}
|
||||
}
|
||||
private void PrintDevices()
|
||||
{
|
||||
|
||||
@@ -16,8 +16,7 @@ internal static class Program
|
||||
DeviceDescriptors = deviceDescriptors,
|
||||
};
|
||||
var captureDeviceDescriptor = menu.ShowDeviceMenu();
|
||||
Console.WriteLine($"Characteristics:\n\t" +
|
||||
$"{string.Join("\n\t",captureDeviceDescriptor.Characteristics)}");
|
||||
var characteristic = menu.ShowCharacteristicMenu();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user