faster socket, clean up on plugin

This commit is contained in:
Michal Courson
2026-02-26 17:38:50 -05:00
parent ad07bf7fe6
commit 8c83819a17
16 changed files with 74 additions and 513 deletions

View File

@ -49,7 +49,7 @@ namespace ClipTrimDotNet
}
else
{
this.settings = payload.Settings.ToObject<PluginSettings>();
this.settings = payload.Settings.ToObject<PluginSettings>()!;
}
GlobalSettingsManager.Instance.RequestGlobalSettings();
Connection.OnSendToPlugin += Connection_OnSendToPlugin;
@ -62,57 +62,33 @@ namespace ClipTrimDotNet
await Connection.SetTitleAsync(settings.ProfileName + " B");
}
private async void Connection_OnSendToPlugin(object sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.SendToPlugin> e)
private async void Connection_OnSendToPlugin(object? sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.SendToPlugin> e)
{
//Logger.Instance.LogMessage(TracingLevel.INFO, "get profiles");
if (e.Event.Payload["event"].ToString() == "getProfiles")
if (e.Event.Payload["event"] is null) return;
if (e.Event.Payload["event"]!.ToString() == "getProfiles")
{
//string basePath = "C:\\Users\\mickl\\Music\\clips";
//var files = Directory.GetDirectories(basePath, "*", SearchOption.TopDirectoryOnly).Select(x => Path.GetFileNameWithoutExtension(x)).Where(x => x != "original");
var files = ClipTrimClient.Instance.GetCollectionNames();
var items = files.Select(x => new DataSourceItem { label = x, value = x});
var obj = new JObject();
obj["event"] = "getProfiles";
obj["items"] = JArray.FromObject(items);
//Logger.Instance.LogMessage(TracingLevel.INFO, "get profiles return " + JsonConvert.SerializeObject(obj));
var obj = new JObject
{
["event"] = "getProfiles",
["items"] = JArray.FromObject(items)
};
await Connection.SendToPropertyInspectorAsync(obj);
}
//if (e.Event.Payload["event"].ToString() == "getOutputDevices")
//{
// List<WaveOutCapabilities> devices = new List<WaveOutCapabilities>();
// for (int n = -1; n < WaveOut.DeviceCount; n++)
// {
// var caps = WaveOut.GetCapabilities(n);
// devices.Add(caps);
// }
// var items = devices.Select(x => new DataSourceItem { label = x.ProductName, value = x.ProductName });
// var obj = new JObject();
// obj["event"] = "getOutputDevices";
// obj["items"] = JArray.FromObject(items);
// //Logger.Instance.LogMessage(TracingLevel.INFO, "get devices return " + JsonConvert.SerializeObject(obj));
// await Connection.SendToPropertyInspectorAsync(obj);
//}
}
private void Connection_OnTitleParametersDidChange(object sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.TitleParametersDidChange> e)
{
}
public override void Dispose()
{
Connection.OnTitleParametersDidChange -= Connection_OnTitleParametersDidChange;
//Logger.Instance.LogMessage(TracingLevel.INFO, $"Destructor called");
}
public override async void KeyPressed(KeyPayload payload)
{
//Logger.Instance.LogMessage(TracingLevel.INFO, "KeyPressed");
//Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(settings));
//Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(GlobalSettings.Instance));
ClipTrimClient.Instance.SetSelectedCollectionByName(settings.ProfileName);
GlobalSettings.Instance.SetCurrentProfile(settings.ProfileName);
//Logger.Instance.LogMessage(TracingLevel.INFO, JsonConvert.SerializeObject(GlobalSettings.Instance));
GlobalSettings.Instance.SetCurrentProfile(settings.ProfileName??"");
await Connection.SetGlobalSettingsAsync(JObject.FromObject(GlobalSettings.Instance));
await Connection.SwitchProfileAsync("ClipTrim");
@ -132,25 +108,18 @@ namespace ClipTrimDotNet
{
Tools.AutoPopulateSettings(settings, payload.Settings);
SaveSettings();
//tTitle();
//CheckFile();
}
public override void ReceivedGlobalSettings(ReceivedGlobalSettingsPayload payload)
{
//Logger.Instance.LogMessage(TracingLevel.INFO, "ReceivedGlobalSettings");
if (payload.Settings == null || payload.Settings.Count == 0)
{
var inst = GlobalSettings.Instance;
//GlobalSettingsManager.Instance.SetGlobalSettings(JObject.FromObject(inst));
}
else
{
GlobalSettings.Instance = payload.Settings.ToObject<GlobalSettings>();
}
//CheckFile();
}
#region Private Methods