Files
Vision/VisionAsist/Models/Core.cs
2026-03-19 13:58:29 +02:00

66 lines
1.9 KiB
C#

using System;
using System.IO;
using System.Reflection;
using VisionAsist.SDK;
using System.Collections.Generic;
using VisionAsist.SDK;
using System.Linq;
namespace VisionAsist.Models;
public class Core
{
public static Dictionary<string, IModule> _loadedModules = new();
public static TrigerCore triger = new();
public static string TextAsist;
static string Plugin = Path.Combine(AppContext.BaseDirectory, "Modules");
static Core()
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
Console.InputEncoding = System.Text.Encoding.UTF8;
string[] folderNames = new DirectoryInfo(Plugin)
.GetDirectories()
.Select(d => d.Name)
.ToArray();
foreach (string folderName in folderNames)
{
string mpn = Path.Combine(Plugin, folderName, "Module.dll");
if (File.Exists(mpn))
{
Assembly assembly = Assembly.LoadFrom(mpn);
var type = assembly.GetTypes().FirstOrDefault(t =>
typeof(IModule).IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract);
if (type != null)
{
var module = (IModule)Activator.CreateInstance(type)!;
Core._loadedModules.Add(module.Name, module);
}
}
}
}
public static void StartListing()
{
// Подписываемся на событие новых слов
triger.OnRecognized += word =>
{
Console.WriteLine(word); // печатаем сразу, как распознано
TextAsist = triger.RecognizedText;
};
// Запускаем запись
triger.StartRecording();
}
static public async void StopListing ()
{
triger.StopRecording();
}
}