Files
meeting-assistant/MeetingAssistant/PlatformCapabilityReport.cs

53 lines
2.0 KiB
C#

using MeetingAssistant.Calendar;
using MeetingAssistant.MeetingNotes;
using MeetingAssistant.Screenshots;
using MeetingAssistant.Workflow;
namespace MeetingAssistant;
public sealed record PlatformCapabilityReport(
string Host,
string MeetingMetadataProvider,
string CalendarMeetingProvider,
string MeetingStartPromptProvider,
string ScreenshotProvider,
string WorkflowEditorProvider,
bool WorkflowEditorAvailable,
bool CalendarRecordingPromptsEnabled,
bool SpeakerIdentificationEnabled,
bool ScreenshotOcrEnabled,
bool FunAsrBackendEnabled,
bool FunAsrDiarizationEnabled,
bool WhisperLocalDiarizationEnabled)
{
public static PlatformCapabilityReport Create(
HostOperatingSystem host,
MeetingAssistantOptions options,
IMeetingMetadataProvider meetingMetadataProvider,
ICalendarMeetingProvider calendarMeetingProvider,
IMeetingStartPromptService meetingStartPromptProvider,
IActiveWindowScreenshotCapture screenshotProvider,
IWorkflowRulesEditorWindowService workflowEditorProvider)
{
return new PlatformCapabilityReport(
host.Kind switch
{
HostOperatingSystemKind.Windows => "Windows",
HostOperatingSystemKind.MacOS => "macOS",
_ => "Unsupported"
},
meetingMetadataProvider.GetType().Name,
calendarMeetingProvider.GetType().Name,
meetingStartPromptProvider.GetType().Name,
screenshotProvider.GetType().Name,
workflowEditorProvider.GetType().Name,
workflowEditorProvider is not NoopWorkflowRulesEditorWindowService,
options.CalendarRecordingPrompts.Enabled,
options.SpeakerIdentification.Enabled,
options.Screenshots.Ocr.Enabled,
options.FunAsr.Backend.Enabled,
options.FunAsr.Diarization.Enabled,
options.WhisperLocal.Diarization.Enabled);
}
}