forked from Manuel/meeting-assistant
53 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|