85 lines
2.3 KiB
C#
85 lines
2.3 KiB
C#
using BarRaider.SdTools;
|
|
using BarRaider.SdTools.Wrappers;
|
|
using ClipTrimDotNet.Client;
|
|
using System.Text.Json.Serialization;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Dynamic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ClipTrimDotNet
|
|
{
|
|
[PluginActionId("com.michal-courson.cliptrim.player")]
|
|
public class Player : KeypadBase
|
|
{
|
|
|
|
private ClipMetadata? metadata;
|
|
private KeyCoordinates coordinates;
|
|
|
|
public Player(SDConnection connection, InitialPayload payload) : base(connection, payload)
|
|
{
|
|
this.coordinates = payload.Coordinates;
|
|
GlobalSettingsManager.Instance.RequestGlobalSettings();
|
|
CheckFile();
|
|
}
|
|
|
|
public void Instance_OnReceivedGlobalSettings(object sender, ReceivedGlobalSettingsPayload e)
|
|
{
|
|
Tools.AutoPopulateSettings(GlobalSettings.Instance, e.Settings);
|
|
}
|
|
|
|
public int GetIndex()
|
|
{
|
|
return Math.Max((coordinates.Row - 1) * 5 + coordinates.Column, 0);
|
|
}
|
|
|
|
private async void CheckFile()
|
|
{
|
|
metadata = ClipTrimClient.Instance.GetClipByPagedIndex(GetIndex());
|
|
await Connection.SetTitleAsync($"{metadata?.Name ?? ""}");
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
}
|
|
|
|
public override void KeyPressed(KeyPayload payload)
|
|
{
|
|
ClipTrimClient.Instance.PlayClip(metadata);
|
|
}
|
|
|
|
|
|
public override void OnTick() {
|
|
CheckFile();
|
|
}
|
|
|
|
|
|
public override void ReceivedGlobalSettings(ReceivedGlobalSettingsPayload payload) {
|
|
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>();
|
|
}
|
|
}
|
|
|
|
public override void KeyReleased(KeyPayload payload)
|
|
{
|
|
|
|
}
|
|
|
|
public override void ReceivedSettings(ReceivedSettingsPayload payload)
|
|
{
|
|
|
|
}
|
|
|
|
}
|
|
} |