From b853f96fa54db3f55dff1ff37c0a982578ff84f9 Mon Sep 17 00:00:00 2001 From: Sui / SuicideMachine Date: Tue, 17 Dec 2024 22:50:08 +0100 Subject: [PATCH] Rework to use channel points / c;lean code / websockets (#12) * Getting somewhere * Something there * We continue... * Creating a reward from a form * Decent progress - lots of work to do * Some work, but this needs to be fixed now * Do a sound copy instead of casting it from form entries. Correct initializer assigning values. * Remove at corrected * I think this is mostly useable now * So we don't throw a message box each time * Bug found: Reconnecting to server won't make sounds play * Right, so create data format is different than response - now cooldowns should work fine * Fixed sorting, reimplemented delay command * Build --- BasicTwitchSoundPlayer.csproj | 3 +- IRC/IRCBot.cs | 94 +-- IRC/IrcClient.cs | 8 - IRC/KrakenConnections.cs | 259 +++++-- MainForm.cs | 28 +- Mathf.cs | 8 +- Properties/AssemblyInfo.cs | 4 +- README.md | 2 +- Release/BasicTwitchSoundPlayer.exe | Bin 421376 -> 421376 bytes Release/BasicTwitchSoundPlayer.pdb | Bin 292352 -> 294400 bytes SettingsForms/EditForm/VoiceModAddForm.cs | 2 - SettingsForms/VoiceModIntegrationForm.cs | 2 +- SharedSettings.cs | 26 +- SoundBase.cs | 96 ++- SoundDatabaseEditor/DB_Editor.Designer.cs | 12 +- SoundDatabaseEditor/DB_Editor.cs | 434 +++++------ SoundDatabaseEditor/DB_Editor.resx | 140 ++-- .../AddEditNewEntryDialog.Designer.cs | 724 +++++++++++------- .../EditDialogues/AddEditNewEntryDialog.cs | 64 +- .../SoundPlaybackSettingsDialog.Designer.cs | 56 +- .../SoundPlaybackSettingsDialog.cs | 45 -- SoundEntry.cs | 91 +++ SoundStorageXML.cs | 83 +- Structs/SoundEntry.cs | 53 -- Structs/TwitchRightsEnum.cs | 6 - TwitchSocket.cs | 80 ++ VoiceModHandling.cs | 204 ++--- 27 files changed, 1382 insertions(+), 1142 deletions(-) create mode 100644 SoundEntry.cs delete mode 100644 Structs/SoundEntry.cs create mode 100644 TwitchSocket.cs diff --git a/BasicTwitchSoundPlayer.csproj b/BasicTwitchSoundPlayer.csproj index 24d4bde..323d6e4 100644 --- a/BasicTwitchSoundPlayer.csproj +++ b/BasicTwitchSoundPlayer.csproj @@ -215,10 +215,11 @@ SoundPlaybackSettingsDialog.cs + + - MainForm.cs diff --git a/IRC/IRCBot.cs b/IRC/IRCBot.cs index a2b3fac..345249c 100644 --- a/IRC/IRCBot.cs +++ b/IRC/IRCBot.cs @@ -16,13 +16,13 @@ public class IRCBot private string channelToJoin; private char PrefixChar; - private SoundBase SndDB { get; set; } + private SoundDB SndDB { get; set; } - public IRCBot(SoundBase soundDb, char PrefixChar) + public IRCBot(SoundDB soundDb, char PrefixChar) { var privateSettings = PrivateSettings.GetInstance(); - irc = new OldIRCClient(MainForm.Instance, privateSettings.TwitchServer, privateSettings.TwitchUsername, privateSettings.TwitchPassword, privateSettings.TwitchChannelToJoin, privateSettings.SoundRewardID); + irc = new OldIRCClient(MainForm.Instance, privateSettings.TwitchServer, privateSettings.TwitchUsername, privateSettings.TwitchPassword, privateSettings.TwitchChannelToJoin); channelToJoin = privateSettings.TwitchChannelToJoin; parent = MainForm.Instance; this.PrefixChar = PrefixChar; @@ -94,7 +94,8 @@ private void InitBot(string channel) irc.meebyIrc.WriteLine("CAP REQ :twitch.tv/tags twitch.tv/commands twitch.tv/membership"); irc.meebyIrc.RfcJoin("#" + channel); - VoiceModHandling.GetInstance().SetIrcReference(this); + MainForm.TwitchSocket.SetIrcReference(this); + VoiceModHandling.GetInstance().ConnectToVoiceMod(); } private void MeebyIrc_OnRawMessage(object sender, IrcEventArgs e) @@ -107,20 +108,9 @@ private void MeebyIrc_OnRawMessage(object sender, IrcEventArgs e) if (e.Data.Tags.ContainsKey("custom-reward-id")) { var settings = PrivateSettings.GetInstance(); - var rewardID = e.Data.Tags["custom-reward-id"]; + //var rewardID = e.Data.Tags["custom-reward-id"]; msg.userID = e.Data.Tags["user-id"]; - - if (rewardID == settings.SoundRewardID) - { - msg.msgType = MessageType.SoundReward; - msg.RewardID = rewardID; - } - else - { - msg.msgType = MessageType.Normal; - msg.RewardID = ""; - } - + msg.RewardID = ""; } msg.user = e.Data.Nick; msg.message = e.Data.Message; @@ -165,59 +155,47 @@ private bool RunBot(ReadMessage formattedMessage) { FormattedMessage = formattedMessage; - var settings = PrivateSettings.GetInstance(); - - switch (FormattedMessage.msgType) + if (!formattedMessage.message.StartsWith(PrefixChar.ToString()) || irc.ignorelist.Contains(formattedMessage.user)) { - case MessageType.SoundReward: - { - parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.SoundCommand); - string text = formattedMessage.message.ToLower(); - if (text.StartsWith(PrefixChar.ToString())) - text = text.Remove(0, 1); - - TwitchRightsEnum privilage = formattedMessage.rights; - - - if (SndDB.PlaySoundIfExists(formattedMessage.user, text, privilage, true)) - irc.UpdateRedemptionStatus(formattedMessage, KrakenConnections.RedemptionStates.FULFILLED); - else - irc.UpdateRedemptionStatus(formattedMessage, KrakenConnections.RedemptionStates.CANCELED); + parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.Generic); + //literally nothing else happens in your code if this is false + return true; + } + else + { + string text = formattedMessage.message.Remove(0, 1).ToLower(); - return true; - } - default: - if (!formattedMessage.message.StartsWith(PrefixChar.ToString()) || irc.ignorelist.Contains(formattedMessage.user)) + //Mod Commands + if (formattedMessage.rights >= TwitchRightsEnum.Mod || irc.moderators.Contains(formattedMessage.user)) + { + if (text == "stopallsounds") { - parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.Generic); - //literally nothing else happens in your code if this is false + parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); + SndDB.StopAllSounds(); return true; } - else - { - TwitchRightsEnum privilage = formattedMessage.rights; - string text = formattedMessage.message.Remove(0, 1).ToLower(); - //Mod Commands - if (formattedMessage.rights >= TwitchRightsEnum.Mod || irc.moderators.Contains(formattedMessage.user)) + if (text.ToLower().StartsWith("delay ")) + { + var split = text.Split(' '); + text = split[split.Length - 1]; + if (int.TryParse(text, out int delayValue)) { - if (text == "stopallsounds") - { - parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); - SndDB.StopAllSounds(); - return true; - } + if (delayValue < 0) + delayValue = 0; + this.SndDB.SetDelay(delayValue); } + parent.ThreadSafeAddPreviewText(formattedMessage.user + ": " + formattedMessage.message, LineType.ModCommand); return true; } + } + + return true; } } - internal void UpdateVolume() - { - SndDB.ChangeVolume(PrivateSettings.GetInstance().Volume); - } + internal void UpdateVolume() => SndDB.ChangeVolume(PrivateSettings.GetInstance().Volume); #region EventHandlers private void MeebyIrc_OnJoin(object sender, Meebey.SmartIrc4net.JoinEventArgs e) @@ -273,8 +251,8 @@ private void MeebyIrc_OnError(object sender, Meebey.SmartIrc4net.ErrorEventArgs private void MeebyIrc_OnReadLine(object sender, Meebey.SmartIrc4net.ReadLineEventArgs e) { -/* if (PrivateSettings.GetInstance().Debug_mode) - parent.ThreadSafeAddPreviewText($"Raw message: {e.Line}", LineType.IrcCommand);*/ + /* if (PrivateSettings.GetInstance().Debug_mode) + parent.ThreadSafeAddPreviewText($"Raw message: {e.Line}", LineType.IrcCommand);*/ } private void MeebyIrc_OnPart(object sender, PartEventArgs e) diff --git a/IRC/IrcClient.cs b/IRC/IrcClient.cs index 1656460..f54af2e 100644 --- a/IRC/IrcClient.cs +++ b/IRC/IrcClient.cs @@ -15,7 +15,6 @@ public struct ReadMessage public string userID; public string message; public Structs.TwitchRightsEnum rights; - public Structs.MessageType msgType; public string RewardID; } @@ -284,13 +283,6 @@ public void SaveIgnoredList() { File.WriteAllLines(@ignoredfile, ignorelist); } - - internal async void UpdateRedemptionStatus(ReadMessage formattedMessage, KrakenConnections.RedemptionStates redemptionStateToSet) - { - var rewards = await krakenConnection.GetUnredeemedRewardsForUser(parent, formattedMessage.RewardID, formattedMessage.userID); - parent.ThreadSafeAddPreviewText($"{(redemptionStateToSet == KrakenConnections.RedemptionStates.FULFILLED ? "Accepting" : "Denying")} requests for {formattedMessage.user}", LineType.IrcCommand); - krakenConnection.UpdateRedemptionStatus(formattedMessage.RewardID, rewards.Select(x => x.id).ToArray(), redemptionStateToSet); - } #endregion } } diff --git a/IRC/KrakenConnections.cs b/IRC/KrakenConnections.cs index f5fb291..d5662b7 100644 --- a/IRC/KrakenConnections.cs +++ b/IRC/KrakenConnections.cs @@ -1,4 +1,6 @@ -using Newtonsoft.Json; +using BasicTwitchSoundPlayer.SoundDatabaseEditor; +using BasicTwitchSoundPlayer.SoundStorage; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; @@ -8,6 +10,7 @@ using System.Net; using System.Threading.Tasks; using System.Windows.Forms; +using TwitchLib.PubSub.Models.Responses.Messages.Redemption; namespace BasicTwitchSoundPlayer.IRC { @@ -25,11 +28,27 @@ public enum RedemptionStates CANCELED } + public class ChannelPointRedeemRequest + { + public string userId; + public string rewardId; + public string redemptionId; + public RedemptionStates state; + + public ChannelPointRedeemRequest(string userId, string rewardId, string redemptionId, RedemptionStates state) + { + this.userId = userId; + this.rewardId = rewardId; + this.redemptionId = redemptionId; + this.state = state; + } + } + [Serializable] public class ChannelReward { [Serializable] - public class Glocal_Cooldown_Setting + public class Global_Cooldown_Setting { public bool is_enabled; public int global_cooldown_seconds; @@ -43,7 +62,7 @@ public class Glocal_Cooldown_Setting public bool is_user_input_required = false; public bool is_paused = false; public bool should_redemptions_skip_request_queue = false; - public Glocal_Cooldown_Setting global_cooldown_setting; + public Global_Cooldown_Setting global_cooldown_setting; public static bool Differs(ChannelReward l, ChannelReward r) { @@ -60,6 +79,37 @@ public static bool Differs(ChannelReward l, ChannelReward r) } } + //Because Twitch API is a bit of a mess + [Serializable] + public class ChannelRewardRequest + { + public string id = ""; + public bool is_enabled = false; + public int cost = 0; + public string title = ""; + public string prompt = ""; + public bool is_user_input_required = false; + public bool is_paused = false; + public bool should_redemptions_skip_request_queue = false; + public bool is_global_cooldown_enabled = false; + public int global_cooldown_seconds = 0; + + public static bool Differs(ChannelRewardRequest l, ChannelReward r) + { + return l.id != r.id + || l.is_enabled != r.is_enabled + || l.cost != r.cost + || l.title != r.title + || l.prompt != r.prompt + || l.is_user_input_required != r.is_user_input_required + || l.is_paused != r.is_paused + || l.should_redemptions_skip_request_queue != r.should_redemptions_skip_request_queue + || l.is_global_cooldown_enabled != r.global_cooldown_setting.is_enabled + || l.global_cooldown_seconds != r.global_cooldown_setting.global_cooldown_seconds; + } + } + + private string HELIXURI { get; set; } private string TwitchAuthy { get; set; } private string Channel { get; set; } @@ -296,48 +346,7 @@ public async void UpdateRedemptionStatus(string RewardTypeID, string[] RewardReq } } - public async Task CreateRewardAsync(RewardType rewardType) - { - { - int endTimer = 5; - while ((BroadcasterID == null || BroadcasterID == "") && endTimer >= 0) - { - await Task.Delay(1000); - endTimer--; - } - } - - if ((BroadcasterID == null || BroadcasterID == "")) - return null; - - if (rewardType == RewardType.Sound) - { - var content = new Dictionary() - { - {"title", "Play a sound"}, - {"cost", "230" }, - {"is_enabled", "true" }, - {"prompt", "Plays a sound from available list. Make sure, you meet chat role requirements before using the command." }, - {"is_user_input_required", "true" }, - {"should_redemptions_skip_request_queue", "false" } - }; - - var response = await PostNewUpdateAsync("channel_points/custom_rewards", "?broadcaster_id=" + BroadcasterID, ConvertDictionaryToJsonString(content), true); - if (response != "") - { - JObject jReader = JObject.Parse(response); - var dataNode = jReader["data"].First; - if (dataNode["id"] != null) - { - var newReward = dataNode.ToObject(); - return newReward; - } - } - } - return null; - } - - public async Task CreateOrUpdateRewardVoiceModAsync(VoiceModConfig.VoiceModReward reward) + public async Task CreateOrUpdateReward(VoiceModConfig.VoiceModReward reward) { if (CachedRewards == null) return null; @@ -369,7 +378,7 @@ public async Task CreateOrUpdateRewardVoiceModAsync(VoiceModConfi is_user_input_required = false, should_redemptions_skip_request_queue = false, - global_cooldown_setting = new ChannelReward.Glocal_Cooldown_Setting() + global_cooldown_setting = new ChannelReward.Global_Cooldown_Setting() { is_enabled = true, global_cooldown_seconds = reward.RewardCooldown * 60, @@ -428,6 +437,127 @@ public async Task CreateOrUpdateRewardVoiceModAsync(VoiceModConfi return null; } + internal async Task CreateOrUpdateReward(SoundEntry soundEntry) + { + + if (CachedRewards == null) + return null; + + { + int endTimer = 5; + while ((BroadcasterID == null || BroadcasterID == "") && endTimer >= 0) + { + await Task.Delay(1000); + endTimer--; + } + } + + if ((BroadcasterID == null || BroadcasterID == "")) + return null; + + ChannelReward currentReward = CachedRewards.Find(x => x.id == soundEntry.RewardID); ; + + if (currentReward != null) + { + ChannelRewardRequest newReward; + if (soundEntry.Cooldown > 0) + { + newReward = new ChannelRewardRequest() + { + title = soundEntry.RewardName, + prompt = soundEntry.Description, + id = soundEntry.RewardID, + is_enabled = true, + is_paused = false, + cost = soundEntry.AmountOfPoints, + is_user_input_required = false, + should_redemptions_skip_request_queue = false, + is_global_cooldown_enabled = true, + global_cooldown_seconds = soundEntry.Cooldown + }; + } + else + { + newReward = new ChannelRewardRequest() + { + title = soundEntry.RewardName, + prompt = soundEntry.Description, + id = soundEntry.RewardID, + is_enabled = true, + is_paused = false, + cost = soundEntry.AmountOfPoints, + is_user_input_required = false, + should_redemptions_skip_request_queue = false, + is_global_cooldown_enabled = false + }; + } + + ChannelReward result = null; + if (ChannelRewardRequest.Differs(newReward, currentReward)) + { + var json = JsonConvert.SerializeObject(newReward); + + var response = await PatchNewUpdateAsync("channel_points/custom_rewards", "?broadcaster_id=" + BroadcasterID, json, true); + if (response != "") + { + JObject jReader = JObject.Parse(response); + var dataNode = jReader["data"].First; + if (dataNode["id"] != null) + result = dataNode.ToObject(); + } + return result; + } + return result; + } + else + { + string jObject; + if (soundEntry.Cooldown > 0) + { + jObject = new JObject() + { + ["title"] = soundEntry.RewardName, + ["cost"] = soundEntry.AmountOfPoints, + ["is_enabled"] = true.ToString().ToLower(), + ["prompt"] = soundEntry.Description, + ["is_user_input_required"] = "false", + ["should_redemptions_skip_request_queue"] = "false", + ["is_global_cooldown_enabled"] = "true", + ["global_cooldown_seconds"] = soundEntry.Cooldown.ToString(), + }.ToString(); + } + else + { + jObject = new JObject() + { + ["title"] = soundEntry.RewardName, + ["cost"] = soundEntry.AmountOfPoints, + ["is_enabled"] = true.ToString().ToLower(), + ["prompt"] = soundEntry.Description, + ["is_user_input_required"] = "false", + ["should_redemptions_skip_request_queue"] = "false", + ["is_global_cooldown_enabled"] = "false" + }.ToString(); + } + + var response = await PostNewUpdateAsync("channel_points/custom_rewards", "?broadcaster_id=" + BroadcasterID, jObject, true); + if (response != "") + { + JObject jReader = JObject.Parse(response); + var dataNode = jReader["data"].First; + if (dataNode["id"] != null) + { + var newReward = dataNode.ToObject(); + return newReward; + } + } + } + return null; + } + + + + private async Task GetNewUpdateAsync(string scope, string parameters = "", bool RequireBearerToken = false, bool returnErrorCode = false) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(HELIXURI + scope + parameters); @@ -528,7 +658,7 @@ private async Task PatchNewUpdateAsync(string scope, string parameters, catch (Exception e) { Debug.WriteLine(e); - MessageBox.Show(e.Message); + MainForm.Instance.ThreadSafeAddPreviewText($"Error with patch request: {e.Message}", LineType.IrcCommand); return ""; } } @@ -561,12 +691,6 @@ public async Task> GetRewardsList() } } - var rewards = VoiceModConfig.GetInstance().Rewards; - foreach (var reward in rewards) - { - reward.IsSetup = false; - } - if (BroadcasterID == null || BroadcasterID == "") { MainForm.Instance.ThreadSafeAddPreviewText("[ERROR] No broadcaster ID to verify VoiceMod Rewards!", LineType.IrcCommand); @@ -588,15 +712,38 @@ public async Task> GetRewardsList() foreach (var customReward in dataNode) { ChannelReward parseNode = customReward.ToObject(); + list.Add(parseNode); + } + } + + foreach (VoiceModConfig.VoiceModReward voiceModReward in VoiceModConfig.GetInstance().Rewards) + { + if (!list.Any(x => x.id == voiceModReward.RewardID)) + { + voiceModReward.RewardID = ""; + voiceModReward.IsSetup = false; + } + } - VoiceModConfig.VoiceModReward find = rewards.Find(x => x.RewardID == parseNode.id); - if (find != null) + if (DB_Editor.Instance != null) + { + foreach (SoundEntry soundReward in DB_Editor.Instance.SoundsCopy) + { + if (!list.Any(x => x.id == soundReward.RewardID)) { - list.Add(parseNode); + soundReward.RewardID = ""; } } } + if (SoundDatabaseEditor.EditDialogues.AddEditNewEntryDialog.Instance != null) + { + if (!list.Any(x => x.id == SoundDatabaseEditor.EditDialogues.AddEditNewEntryDialog.Instance.TB_RewardID.Text)) + { + SoundDatabaseEditor.EditDialogues.AddEditNewEntryDialog.Instance.TB_RewardID.Text = ""; + } + } + CachedRewards = list; return list; diff --git a/MainForm.cs b/MainForm.cs index 51724ce..d30eb84 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -1,9 +1,10 @@ -using System; -using System.Collections.Generic; +using BasicTwitchSoundPlayer.IRC; +using System; +using System.Diagnostics; using System.Drawing; -using System.IO; using System.Threading; using System.Windows.Forms; +using static BasicTwitchSoundPlayer.IRC.KrakenConnections; namespace BasicTwitchSoundPlayer { @@ -24,10 +25,11 @@ public partial class MainForm : Form public delegate void SetPreviewTextDelegate(string text, LineType type); //used to safely handle the IRC output from bot class public delegate void SetVolumeSlider(int value); //used to safely change the slider position - public IRC.IRCBot TwitchBot { get; private set; } + public IRCBot TwitchBot { get; private set; } private char PrefixCharacter = '-'; Thread TwitchBotThread; - SoundBase soundDb; + SoundDB soundDb; + public static TwitchSocket TwitchSocket { get; private set; } WebSocketsListener webSockets; public MainForm() @@ -40,12 +42,13 @@ private void Form1_Load(object sender, EventArgs e) { var settings = PrivateSettings.GetInstance(); webSockets = new WebSocketsListener(); + TwitchSocket = new TwitchSocket(); UpdateColors(); connectOnStartupToolStripMenuItem.Checked = settings.Autostart; int valrr = Convert.ToInt32(100 * settings.Volume); trackBar_Volume.Value = valrr; L_Volume.Text = trackBar_Volume.Value.ToString() + "%"; - soundDb = new SoundBase(); + soundDb = new SoundDB(); if (settings.Autostart) { @@ -61,6 +64,7 @@ private void StartBot() TwitchBot = new IRC.IRCBot(soundDb, PrefixCharacter); TwitchBotThread = new Thread(new ThreadStart(TwitchBot.Run)); TwitchBotThread.Start(); + TwitchSocket.OnChannelPointsRedeem += OnRedeemUpdatedReceived; } #region ThreadSafeFunctions @@ -137,6 +141,13 @@ private void PerformShutdownTasks() System.Environment.Exit(0); } + + private void OnRedeemUpdatedReceived(ChannelPointRedeemRequest redeem) + { +#if DEBUG + //Debug.WriteLine($"Received reward status {rewardId}, redeeem ID {redeemID} - {status}"); +#endif + } #endregion #region EventHandlers @@ -246,6 +257,9 @@ private void StopBot() } TwitchBotThread = null; + + if (TwitchSocket != null) + TwitchSocket.OnChannelPointsRedeem -= OnRedeemUpdatedReceived; } private void ColorSettingsToolStripMenuItem_Click(object sender, EventArgs e) @@ -353,7 +367,7 @@ private void DatabaseEditorToolStripMenuItem_Click(object sender, EventArgs e) DialogResult res = scf.ShowDialog(); if (res == DialogResult.OK) { - soundDb.SoundList = scf.Sounds; + soundDb.SoundList = scf.SoundsCopy; soundDb.Save(); } } diff --git a/Mathf.cs b/Mathf.cs index 741f8f0..2ff8eba 100644 --- a/Mathf.cs +++ b/Mathf.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace BasicTwitchSoundPlayer +namespace BasicTwitchSoundPlayer { public static class Mathf { diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 4fcee3b..5228146 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.2.0.0")] -[assembly: AssemblyFileVersion("2.2.0.0")] +[assembly: AssemblyVersion("2.3.0.0")] +[assembly: AssemblyFileVersion("2.3.0.0")] diff --git a/README.md b/README.md index 5aaa345..6ac7178 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Basic Sound player for Twitch written in C# is a lightweight sound player which Credits ------- - * [SuicideMachine](http://twitch.tv/suicidemachine) + * [SuicideMachine](http://twitch.tv/suimachine) External libraries used ------- diff --git a/Release/BasicTwitchSoundPlayer.exe b/Release/BasicTwitchSoundPlayer.exe index b7db10e50bd4b3a5d15a8a186bb24812efe8bda9..0d0d6ee4a619838735bf97a7494b145745513cf9 100644 GIT binary patch delta 118125 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 delta 118139 zcmce937i~7_5Y-2ws&`Sb8I%5+08XWV3*G9Zh(X%;S3-*$f4Z#DR+mSa84#25Rm&? z0R=>iil`hSqWnBT`Jt#NisAuAyl=&WpLm7;_xoN|clFFf`F;NX&wumD^sDz?y?XVk z>Q&Y2>h85K4zGQ2_@=A!zgcql&DYNNc6;XL4;?n`<*#<-4$R^2rLNqJPu;x9VE;XS zt{>^gzS5POcl%Zkbd66QIc0Ni?*}F?o3du}&7SEZb8c_^_i|miFC8!?_mP99QmtJ3W_8iKkA1Yd=+Hys_aEit z4>t$L5yS(XW)B0RYgD2;cM_EFpv0^QN~|2ZekODpDQWq|nYoek3efF3{!A1`XN~o3 zC=m`9LBzU|vevS1=9H21V5GU%#r(C5gq1NsVa3|M#umXCQq6oWSEy}U?}i0OJWau9 zf`wvJa(+1=BzHE(j1T+Fq!W)DuDg)5WwNq5P{C|rQQ7S%}5^=Yy(7} z*Fen+-Ql(@pfQ_S1ru%uME^`rED(jP(lTJe<>afM&vItuVk>+cY9X)hhiG7b98#%7 zcsCNY4W8G4;*iU#)UTeB^8+-y?|A{3{0;s!z|^;g-1-jqX-*ej{)Rgu&6@hTz0h5J zHcw-agq=VbU*w&&!7l+{e;E?cp>21{qpK9IgI&CJ!Oq|ut%-f06*K3fdQzKRKvk>} zyaI@DSN!DV_sH^*3WU2&{;m+j%-2fc)L2YXHP8yYYhrS0)=XnXw|+CHGg z8!NCynNcra2xu7$1To)Ra7EXL`PkZOz7cPOKLnooU(|YKGZ^#Ny&HqlT26E1wSUB| z9Rx$MQwPC_Njp*P_uA0t71H40wJ1+Ua-kHy0k)II3D1NorrV%=zZAewbZo&K*5hum zZ;VbP?VmJLxF@&_64oo$I4q7pZ83^b+m`-pM|4Yn76lxQ&yrzsba*IL5}l3iu^-+9 zFLxoB(fY;%TqS%mVJ%<$s(7F&IkcbrIW4En+2#j~AqVx^Ximu$ z=rve(V+d9XeoW=5*@s;2J}-7U&@6Q#4LXW(%pl@0kR822Kn&8NH%q*Uj)Ht{YzlC& zSiKiDDjHL*fH`ua^N0*=Kl}q!3eXIG2#@Vs>>mNgiiRgm(0>N3Sa{F``$~d^(@d~` zO|bBG3HEOZ7Va*={v*M{gIR1G{wqPRNYUYI33fLJI|a2=)zC^-M3_&o7&-~IE5V{; z`#KndMF49jnKq(Fj|(BkrWYItL)Ny}UhS2FgP6on6|~GuC_C2&Q;T7X^>0D^NQs@R zI3n|L_%t!Ty3%bRQ$5>P94vgi!G6PHW2lA+$e_P&(ZFKnFxcmS?emP}tr9e*K+F(Y z-qHk%L52PTPg&@$V^S<~$Qy*=#WZLHABOrDF_)2>D-3w6L4byDmxNDBQa5!tq_OkO zg;V+%u9)VHMM{0kZUrJA!dDf`;gKx+DEvH2{}5o%7K3B(Gaf2Ow{WbA#d}~F7sKQ5 z(?7Ot4+nB_)dO5c8BJ0HodA+SruM;LFZOVnE>3)Y{Xoz8SRGB7+B@#|a)=jS>@FYC z*R6$yrvS0bQLnxBT5Sp@a4)ytn$_-Mn`LxMYem2@T5vOhI-#D2HJ9n2VT2rB zgYpeX`39sQ1p{THS>}dy$wGLzvUhzIQsMatD!LHsqVR$wU6~mIgCfXZeF7u8`gx3j zT>T>EyEq}0*sO*vx}Gx71x*@j3|PpoH<)F$pxG*AqY2?s$yJ1y$|+$pVU2D~wIVSV zO)3+v7AjJ;5CKcfdX@>OfVML#tP#2F4dswMNtX!KhcOl_o4b0DC3+|=n(4|ZmD%;! zsXdWHruLHIiL~}gTPtO-%gIO|x?V;qrYm+m+0n2AtqU(r__F3;&ghG&8YQl|t6xN0 zREAs&kZ;&%lIGENU{Rd=i*u9G+1sUb_VslmLtcYDeci~g*I++iH!{a-u#;QGC?fg+ z)woQpMnq+#GD~%Mt7tDwm|9nc81}F%3n_&uI z?RTa2f2wUo6OP`Lie|clXkoiO70on6qeLV6ZK4?M5Pc?<#&kwntd$kME-$Gp(-5~w zBJN5NM{7nCWYc;xoe`(fgzcq*B*yCr>?bPReh+xp~-K4(hB9M~YDvP-u0h3OAznUoa0ma58h2UUe_Za%Ri(@+(& zQbtv(6D=ZJtcE0_gE-;aFBQi$#ErLzqth&hS4k5Q4zC6{w2-^w`ZWN9*vYr(X7vgMt>yR zWg?#GDvE=dkp!4G^ z@N>|v^*f+la3@tP2Y2zJ{b0oQgWz362HNcG4cfp4!HGf}-JjB0~0vtrZ)MV3OFE@* z+d^N~Lf<|^kNsdrL12|&1nw;92b1)QOa?#LP10DX82&d%`XfntPf25aW9WNJ`lCsD zU!-ftRptbb0JUk<)szCSK5Zxm|)o309^Dhx1zB55L?*`d+jTbvRl;E-8a!Q}B5B z0B{KU#1#D&f~DYOUaEUwdguN@<0?C$tQqVR`vX(-gGW)f@kP%TlMTejf$)dxpTMQB zJA4e6RU~$Y{{^tdjfDxN<#RhgRy^Pc`y^PxPvIx{G=4@~rPeqE`eM^1`jW#p`mPdv8481+%nd?V zivY%98os8y2*)708HA=L1qYgvu+ zs1ZZuXcPG}jP)m&6P*xyozD~8N5C%-+)LygfSloB_-Ued6g=sv*aK-#{gmygO|&fc zR=fmgMqhTFH54@$n@!Y&0e);-DL#A>(u-pQ2=D(lpuX;Lznhx@ABd-bnE3hnX)|*h zO1-?HfbLX$(d7FgVA%>!u2?WD&O>0SIJQWMe)uI&xo`0q`eQkY%7<%#^UFuT(pvn} zU|jOFSmVYix!i2X$xnEtnnNxhSsdHil_G-2=R2slC^}ormm$%QMtwQh|lFMQ6R=U?<^U;g=Q%i&0V+(s#(}8X=RO3)mnRy&FA3)S$uzR3eSwb<; z*Cli`SQwC<6Kn_1h1k0(-fP5(d~m!O#c+@54|WZ7ai8fA8fzo@EtF#FEVUc(rKaJx zfiKr2;GxpP=YiQ}HUb_c4nf(-oS>yW1qeFMEb{2u6t8JC*}Gi&4E z$rq}#qNc=A)5Y_jAhB1QBgG59Hd#=SD` zFM16rQW*qPhRJCQx7_|`l8so#iiG;}L=sUVQBgDjQM`sHPhPZevynAu5HI)za^R+f z=sJOR6>(Gbnh#%^d}87Jn1-qy7Mz6)A!0YaI<#LB3kP^KM9LaL03eRB2mydN%_0N< z;&h7;;J7tMAw5y7Ukll52@9h3yiRM)_ynN5`ma!4^CW_LTQ`^v_U3U!l!CVc_5#d; zzNiAnTBtG5h*6&_(b)x8fi^y+mXm5Q`neK_z(XIa|Avx}r=W)XZt$@Q@$0_@I{ck1 z@+^Lmcnqy#_~AOf4@AF=pWsp?$5Bn{7JU!>wH%g#QugqVU>SoW5^A4ssp~gK z^9b%1;JSl9flc$psNdDhAKZ%H^|@M(5lE18?|g4=^Sv=>=Hh1Z^?ojgQZWAiOdbA$ zpQ0aq7qY@v0K>6Yx&w^gG4w+z<|UANfPa%Kwd`5`qI@n{%?MchU;MR5k`+zU^8J$MA)Wdpm zv9U!Bt?;cL(+cBfc%|lvsEXcUItWcNzKN08)0k`CsijaQJsxALK z5PsY`){4=mkwtAZbztgp-n8=?C&4Nq4z&~qriQrVR2-bP>_J*|TIeCAqeb$FDF>&I zL|?X26ftdp>-aPS1aMnp6TJho2L{7I5TGt{6t~|K3y<~v1JlO4 z2jXdV;VE5gA<8$k^&zr#;CPKAP~ymhH(Cq3LANb;8L}mg?w70s-Qx0-VLLxc(rSs) zKq=Y)7WH@W2Vq7(+N|H?vHopmBIxi2%LC=*b0KJ;9MDM1r%QumyXkWHteo3ZrGVGd zQ)7pz#hoEmEnRiUaVyY$UudSfU)f3ZxzTY}bz7ISEn;wZV0e5lKf0U)qyux*6>KsvEae7>a~B8adWNM)mbt-=Fq&dE%*K2*m-`RBb(SwY@noSN zN$f}b++Da1!FKt|_LbwqK4h*`4KNz?BN<1xu|A0BVMYt4;WE+f>;AG(hpCJGJ;4lI z`qmeF#{C}CS-LAL{e1L3=3K^VFne$lb?UAx1Lfl#Df2*is)aIn)x^Ab7#hyZl}cEQ z4nR_&P@l;ny9;L(&I%FBFLnnwVgOaj;cQ%chIq=L*fT#YYYJnO$YEUSIA>6t+B+Pg z%M^R^eyNlXaohl>Z06&4s5iuUgW~#G>1{~Vs$#0urF&q%E2w~}yDP+b1Z<=?ncQu0 zEuI4%z2Gv`k^6}J_>6q&C71Iiv`z}+$G@&_h<(lLnp3fCVIRb<@%2xsoKatg{Ebhj zMJ?1%`@I*%oOsO?A@kdXQe}c6PK6Ygy(Jlz`QVq(VEJK!pohxO%!|ibj{7afOcN*m zFU=(Ncjum#!P;d8YgekYTSCXR$N$Dq@ygz?2p5{Fplc88hm2LkR}|9Xb@Jzdk;F&_ z+yL`y+~V?b2Z1n82#{R9wgR@EWW{V+|Au@56ZqH-Az< z`TBQZh8QWi#BCvb-B1`KPYrvvS8?@251srh?M<%W_fQ6!0*_94}F?jC8m)Qlk6?ik&_eQ5h6+t8 z-7aE=9Y8FO%|S!$2nf;Df1>!j&ZdR#{`GS~*$I@1A86EVFp0X&s`aE3=#1Rv+wlkp zM^Zj_HUa$MW)%AbxB0w=J42AV9HKb(wSPiY%z_*IJ8;p>>@MWA=ywvm0+?`D7yS;R zcOx1ul1B@*<5f{X)9>Quqo(71+;qH;X~$DE?-8)$F=aa5T*N>>4b3-!5U+6tG~E6p zNXpJW@~7oi&ee^xS{q%;ufG9>H_55|(PD6gy^xF`7}3$bL=*)f=@XdlOVZ(<5TFHI z28v1v_X5&@djr%p4s=)dMCd;>w#SizP2reoNH79XUw0~djmUrbAa7X@Gl{P-A z*Xl3xxm+}7I#k&gnPuM_?8ic9No9Cm3_h}0dvMK}sKmsA=ndd~c7Pt{XyC*B!COB7 zKWj-BCY+c?$C4A%a-CCMgPy>2@J2A!4y)e_g9QfyUNsYf)}B52)2+v+%$yw9W-!L; zYi!)};iM6#xPaMs&{_Z>F0=>%fVjva1h@dlkv_r0#*p)|$vKZGQ&*ni0N zeqJBc^bKc}w<^z9IA5~3@L;HU2abO-%jAr0%W(yRyuZiqzN7g`bQmS{;D`dy^+UiM zOhpwY_O=4bM~L@8c(pJ#*gIe{3>5BIH&8%46%h=}x#UN^y-?!Fo(2W4^Lj;liG2Du zoU!D}+Ec6m2J`slT9Y)~H9lK~U_6PUH`ZTcN?$*L6nBH@Nj_P5%}pJ8|?{WjMw5S^x!E|{odeH zu*zUzW+C`EfbpJgM0t(`r#ZUz&GobN=o(`z*f4eJ61cktg>=QeYi>zhPW8)*`ySv& z5=9-=pzbG8Y=2L96#Qaw0*mRRam|Ov;CJfSfiv^Lv4B!dcIx(_)Wc9J_zkKy;;*?F zJtevy^#T5)#2<$Y!S6uy*EB!_`Vpdufw<#AowyIqF2A8vPMjSK6Q2NzIcm2!cg!{F z?(U6vI%2I9@(~oW_7WENB|;P){hH8fK&blMExU4Xak){{G#{P_amBp1rb)Kzc@yoo z&>)F9@1QZ~K5(o7M`>zIjo^Mg-Qkcq_#hM?1xK8b(GSd8V1koSgqUVa*igg=KSQ=r zzo)wnw}x>1`st%H{SC8A5IevmVqs8Jqj|a9RafPvW1vovO2#YKimFmes-(4)qNSEB zvUaX{7^2X;0!fVE%XtZ&L1|(EFNYfgxy{ABk|YgT9IL=%vmr4pTtzH4!Pvii9l63& z0FHt@Q(ES`It^*dOg^}5ZhR`}Gp6K2UMF78vx{*Kg6H530(fx|cp9kVr{fk>k_tWt z=}tPtV!T)kz6Nal+xWp;xIfHRUW(K5iB5iaI=I3!@MEwsRmB~uZz78-d?pakg7Xm^ zc5YFN5}URuVMU3g@GQ+P`B@qKcPml!$LDyyC@;psfs5|&Z0Zv{4i##bc}9NlB$8_W za&V3?9EkeptrJYgxiJbBryyLoS+-?cO~o91j6jAt;!tce9Cw8{bI&YJY!jXf?2^wY z4~`!Xxuwz?<0usW2kPH~X6|X!M1=2{QQDn8TdIZY6RaNPP)kPx|P$8 z)q-+(ONfGppD6mLL^RM4E3r5t-cEEb_C zs?z~6p`q4hgz1 zZ13#xFw&|uEXJw_dfDS)q}T&mY)Y#b;ZnE?c4yb+fvW}^Hay>8vIoMndq*2E51CVK zn*V}?ySf=mFSnFVuCh6tMi|TU&!b1{@*HstV^S~P;6F|LML>lY3!d8eQE3KBycJeh z^)fnrcu7JE8f0Caq{Ak_QnZ5n*pET5REOAdw7LU!D7rtz#tHLq^w|`hVCO{7rdT$% z?Ksi{H_~r}1`*JOy))@I#M@>dJY22DwA(5+_W8n3bo6%?i5Up_nJ$|?LU?0+B%!g7 z+_P)u2q9_GN|kZ<7#z{)e^_xCJ%`PiNf}YB8f6{6d*;k!LhEpzGNCcwV26Ba5{}Zu zB(Y>t0>^CGjxh(%0X*d5tqsZJo?cXQM+*iL^O3`vPb9)G*^w?oEQU+s8B7wZ3(%7* zqpppl1Y;uVE&FSji?B79c%7st?3yvxf276#E~A=-t~9Zi2vj`%YGM`#PbZt0k$7t^ z!dY|O!0{jLmfDLf)?OmA)n3M2q*cFx>8Db4%|*05GB0YIWB7#U%yIiUG0|xQyceS# zorucLm9i^NMQ8_=46CW>a_O*4m&3I(;0eRQJe4?@O9f2>m5c_2t57eO(c&hl|K(}@ z$%eDf87+vjr|$_zx1?GyZM7f_Exz2M1)IZaLAbJyt3uo$F1jmKL3mmWL7erb!v9#R zg3{CwgrUNhT2zpM#mEqPuEKE13M0m6NBU@X#L5h6Y49kRgOiifLepNzxjX5d#1EUN zKL}U94~sj;i?#UZskF8+*=&y!v1rW92t}PZKtY>wT|+mBiGH1y z%yjh*>_2kZ<|clg8S;_`(JkBQn6}ML7`FaOi>>Lbtd|hSWt^(4LhNA2ByP-!^%p9) z5n@VHTO)fqvL%n=xjahRfcQD44G33nz!Z~d17f3nS*r`s|IrVKux&s%nPgfP8zK%a zv1QZ~Z4aVTMcdm6SN6>`0#VVqS~N?(n)|=j0VmZoEg%`zrY)c}?d^oo0{`980%8r* z4G3o)4>8dVi3V|lh*k|$ggPF{a964U)3y%~h6Z2AYJk~q<43r&YqcOoh!}e>bYoaU z7J9HIPI^C&Myqa(AN7ZqaqLF-LJOYK2KdQDA(a1FTfQF27CH8KHD`GXb2hUuT{U3X zUmZb0U~3vCJ$GH>X0(t)f6p!Eo-ceWl!<;$U7kbk@e951a$t&Hcm)Z6qGneDlBDeF zB$Cx<=o=C`bH)9osbiaW_jb(OtJ`Jrt?MlxF}1fF@vP@;_@OqlU_uYPZGfp8ce=KK zg41)d-CX_yC=B>v8s}{gF(NvLR}n0QSL1?BWGp(1PS=o776LBUYU(;(BB3)Qjx@fp8nsuv-!qj!ZhzRz9mAZovW%@y1T;l(vrN*8dm8T)o_;S0GC zbo|A+VRM%v+7m+XNJVszT!*5gcwNhUb1cg#hUGTH@>RJGM;nCoHn2u-oRwR-hL8lx z*4_?Ck~f^O77=$wa~tpEmElRz={R4r(h(jCYbNk`C1clabg|v}1v}JgkfHY-zJHc}J4qTwbJ8>y5 z#Q}<>ihg(pa0o=*iHoOok+we_a$!frh2BH|8{VZ7-i1p`HSPv#63DOD*VZ^tS8f*!fBxY?YnZx8rr5+??gVT=oL>QW zCOOdZ06zddn`|t@@a~l19s%zo0~JFLr_lOJX2xO-InE~d!4&+Efaegq4j{^xlHM!m z4^q(kQjYfvC{d()Q;_|`sPbU}MZ*08qH7nM99mw3RWczUR>^==-hfmvHZXNDAPY4h z#Vcq+N0ezJ03si25W8Bv24INkmJ2$e>EeuKCyO%&Pen@Q*o2fE0#zvuwd1K*X-+$y zN|uHlyxs3nW;O&xj2nWwllz~!CcGdj+z9=-eJ^CgObM++cq*YWU;jq(k@j*2T5JoP z(N3&>WeOHSYw_c53R#?uYtgoLu}yf$EViY+*)%M6ZL-*wrb%d0mAC^@+l_rcX*bEF zcn*YQdriDGH{tB|niw~j!?ayz6UI85@z)Qb*V|`7iLU-Ps$7}tR+?yAX(~3ytZxaI z!w*A%*AV=Ccau#_bPcCR-D5LdSzejyNRB0&D>`~dc0RS$W4$YTWLEP;MITD#GhIbw zE@vMez8FoQe%|h0$$}N@_c7N=EHF0j4d7_7EvfKTl2?W+Te5yXtz?FmV6{2ufs$r& z@b4ksKDbM~tq0-Z%4Wt+aZ-vK1|g4qa+k1dh}f4}B5Mh)!>}MtTCxh4nCZc!SbN0O z-?k=U+nR#USeuyW@zmN(S1Os-Y!GJ~Q~1A@HYP1n4j+)dLfC7-0b>9EV1ltGQqG4G z{G3W=|44H5VyXz!!y!)NnCYqdnJMT3O{bU1tYxcAc65OsunRoQphWo5BrEVQ3ZCdk z1Whm9@_GeMC-U$wClmYdFZrUsq*^gu#X_{@;a}#BO0zL0E@RWj4I-*o<+i-6K=}41 zAMRP9VoXE3@7j(V;=Tyb)F3(`5hv*m(uD0DsWhe`?RyyiCMK@p)&Xya0b%RV2q%G> zJF-42p>+t!3QY$JXV_$*BzT;$;e4AoG!kq#AUs@s5~gvT3bAg8m1*nL2q(dVmIv8M zQ_nWv=^1f@cpEdMj&?8*wu3?N3tTOTi9Sw)s%vAqvS)TM5N8L2@IOg@S=dXZSxhbt-Ek{ZkfkXQfVH=Qe(ts_|AJXKYPi28y zZK7=ij%wQI58=wnjN>56js74V7b^Q@<8NfLu0k?6(I2H@MSzh<7(?hg$$-?LuWlY- zRX_grUOoEh=z9W(TptSBWUXt?#0U z?Ua@f%`|fjvSeu5;P*pDGKwXS;<@BaraR*8ASOIq{YA?lCRRd#u^B%^*cp#-GUGj# zy_b~GI?Q;a=?IV94nnjI4^n+QzzJjhtBV&Q%yauGG108FrI@Z_?#N{axkxdiPO>aa z+e(ZQ;?N%Y0%26>EBWp?Fy8_4flEAU>vp_Pe^dKZj zSV;gN92fvqJ3?AQWd;-$K z&!Md7V`v61`Ye7i;vNSEXTW*J<4V+cTL>=|gC~FuKaZcju{U*xUjTsE(|=LIlYo0d ztniEBQ}{UyN8`STtH+0A{oqRg#~1n&73FsF@SS?a@{!?}dBGDBC!ujC-oL&m&$pk9 z#EbrfDWepAdGe@J7R1{@msFGD*b-kfLEM1F8`;=nX`o7jxzq4k1nMIOSU*c%`C6QK z$~}Z)Ltsg$N{^)U<#ygjkEGnD#)>tV;x#^rdRzEY30z~4#p5xe+%hPNBU)cYxlLGD z&U(YHxXx~(b#Yy-=l~r>;+L8a!!F5(DoH*VRq{PK1zTHWRD3Xt88t@o5vafz39s20 zi3G>??PkwqkmMX#wTbYt4K^T@2vDLCkEGzo1U#3#kEK}D6Yn!sX4c=UOKgK(zyws- zpG@%M<0<$k!3GO8AqW;~K#I>qBgkf>5t7BOGO+ZzhC|yrzG`)v zW#~Z6i>w?hhgd5XOIz`{lakM27Ej)WoJVKLUlbm z%L=zclg}<7SeI&(ELFEZ5gmO$U5YSWIW)UUCe9jE_+KSI93qCe($>b}1?-lS@Ni|s6-ksE zfML3Fe0DiXoH0(^kPNq^)?sI|@(B-T7QDo`(K@Cp2V}()XKgS1A4{aerDoTe;(zR$ z!yM15i_B8+HTI7{N0oSH84|<6*NHC$&+0{2p5H_<=FYQo973J5E;H%0?4po;yc8}| z0uz}PB35Rf22Pf00s!$Diy$z$*O{M=WiGzT%jLGgByaB!4)WCc0q9T3+kUq~Lf$SM zybK7dw>RPvE={n1am&Hw@a}9<6z_E3HntBy+eZiyMx^+!T!_1?vh|PIM`hi zYz~#N3h$m^J;laSk3AA}!C~Gj!TQ9?`CjACQ-S+Hf6Sob3gF=DsAv(j1?&;0r-~ zDnt0MgfTz~|BWz8#B0Fu<2Am9T6h7Z%O@c)4=Cb~M7&9S-M56J8{F>uuoe3X*$yL{ z*8nCi@KJS0eNOWHE0sz_csLoO-@=9^K8TJR_NUCjbEO8pc5ZIvkbzgs%dH$1ST{*` zpyn7w*d#5x6yV0*kxl2NFUdYyS>!}~QQxqCEQs=s?7p#u-Of9*jeSm_a%!Fv0h+zi z^Xmt?&&O_KN`LxLz1$3T--mrJ--ivJ8IyO1^I}%D{eu!>5wT0Sf{I{7w|`IqxI+2J zJ@Tj`e3(3{G>Yrkw$`FkU^V-33AHiCXBHC&U9Bj-p2IM0pWTPy7CU-K#9%zu-F{s{0J?hu(Zp6tC@@Rf%U+W+_qpr4q$S zR;Kfx(!@O~O?)CBp(_UB2rB{qDVzAf;JYkJ9AEG~g5vFh?-LXc7ra1_Zf)6AY~b*; z;EP0vZ`T(wigLjZh*ho7q{TqAQeM?Zu&NK%U`8K4<5mn*6JbzI9wJsX!Jg1+@-R10 zs>5bl#HO11%IA`2wPcR&b}twZ&Q$q0An@ybSnWv!eZfI07|eTrt2^w z;I1skGb!`$1QfgeJ_Rua*=!gt2xqYOnHUE9nE~0)49IR~K=!ThJai&F|I8j`&}?l3 zvb7D!Dj1M@8;}YbkP0ej4scKv8=EI=;|ZeT)hL#s3G>WD5}QwmW)FW2_-trJXxE9p z99c;`!NGr(W!jrG4xY9s+gsEQo^@r22L2CLAi-`s31_#R#JI5-rfn>Sa1zIFxpSS+ zI)o)it4=Gx|5a<4yxiR@Np}Ci>e^U7VY{;teC7rkG49TW>B^SboegnwO&nkNzc4RO zww1J?ElR9u?ivuT!aZb9^%Lvv)0l28jyQYDTll|&b&A=w+$+CZ$x?Qq|at=%p|l94Ju_V##*F0 zwWU2tnQyGlD%fbEjLr1flA!@ZbaFgmecuot6If%E_COllpoKhjmy`jvs)R-@$ zXCmptE$>ZFXdS9dT9q%qs{Rfu9k&aUVq0GP&Mne_oZd{J$6{H&xT8toAlg=gaCRUP zTWWLQow2hvK0Q+qYb^vQE!YyAUA)s;d4HI@lWtscTKqUWPx3vB(x3(3xuYgoU5wDV=G=g)4xcts}~aNuqNDcGK{Eb ztNDr7VA@VzgcDDGUG~OMLd$q^mXEjxYucHKufIat;5%xatvJIwt;Q`2$JQL0QcCvY9YD-d3)Ol>Fpk%W2e_#XmauJjp# zmak>}MnqYPQ^v1_P;8gQeN4I1fxt~oxzgL7gIk=ELqGuC96$Oovn*)O!R=3}1O89M z&u{1dGv#!^|AqXO{+0}!|Ne(LI+^gV%woHxV~YHU?vj@j>nG`~>{g1f-L(n6`Z(8Ht59X0iempG zIyyA<=uEd9As3#?CdLm-hEthgImCDk`aoMAVOyTytM7KpGu%ztYUhpjhuxoj^`g>Ta{v%8d;g4m8kc?Gqa1#T_`bY9TV>E(7 zOjmZ#DkQks#sHGxg;XK>bbI?;;h#u(gsbmhbDh#+1X7|u&rhF?Cjyb$%v0%t8!%-u zVQ;$<#$DGUVyNz2d`=+NE`+UJ1YbR)MFnD`c=H9xOio1QE!k=lXE%?MVLS3`vvXRq z#Syl}3BI~_OL4?T$ET$+UD-Fz7DuGrxJia{(&AnM%^F!@H8No}GS<6E!?ItJ5?z}X z$#jd2V_|}KyhM63IjoThcQEpgfVOHVtZEQeH5Rt0K}z&rsTxdMHIf4yf}C#DV8W_F zxPuy;$gS}STjLA9y7`o>C5VlFk*dISWe?ciJ-|Vv-TFv|S5o71bzp0)u-2Ne)*8{n zjPXf{rdE>P#k8%p-PQgW`@aIFH8nmtY^@1*s5KWOw$_Agtp#7jJ%x-4#75hsDlm-| ze)icI$!au^47)Rf_HeFoY;lBbae}X6cFzlO1i$t7pY+O58D=Vy4 zCahLQr_7W|N_0+ICey7}7M$I|GhvMk7zfze{Ro$8w%UYkwF&=Q|0)@)m$x*7WV_nAfmEcrgI8Y#STfy(N#@4Cs)B%8^Tr_ z!B@uI!ib9IGV2B6=9tzNh`A29I7M3LD>=r}!nm}yEugTr0AXnXyi;ctWt}gwh>i|S z3uL<0{DO-sX6P|x%}=<4`TqvAtuSF*VZm4ScgrU#x->1H>B=El;|eaelbhtYIju1E z21$h#)(R8W3h(6>NObgQS|HP{6&768)Rzg=H8-6 z1v4y{Uc+saEsL-%OYqf)T3jEo?!yC2SI*29r&2CSq(=v*rEzmMCpNKJCTwv+kQWKL zwIkMj8j0!3s%&w@S?4bN&9pe~`D|k<%*Mn4MkdsWeW;~|q(mP~4a#(Dg9@(CG$<3c zJqdScPwp_S8h~RYv{R9wYFyo-1}V`GQ#F`wRYPz^qXrXJ4ZDT(5{m{wE=8N zgu=nUM!bzg5TCt~Kuoj^s}ie2Cc*~MM2y`NKc2k;a%keDEgU>=YbUp6iJ#-#o8tbHxah*PB23$dF;s#pwsJwA+2N_`VZn6%+S2CK=^E$iTaN4ya0R8S3Syuueu1`#H^)Au}1nG;5nw76HdDMFVU4_=D8L> z7{Cd!gEbNw)mWV!0~s2k?$@-+)bW8}NNPpN13dfxA3#W6GH40FzYP4a4Zjj^%}aQ= zx|DTx)_la;SB`P_&9ogxggaU|HudINgdCpOcWkKnbsUNAW~wG!>CLzzqM|>i{Z?2` z$_7(ZL@F+ty(#^#c3cweR6!UWcScLcrIqZ&Nw|7l9-pvq4M42>pa#>3qh&%m#MzEP zICh^qRiX|b!q8%RixzAXs|Dfe*IKn8)_qok=~gX>(^VMOACkd&R)cA43&PN1T2>2m z!R#?~bU2(;yo;BX@sN4i@fk?d`|ruo^H|TGZ-chTKJ|DcTSps5hQIm1G-30&;@1G$ z)98c^`s)t**%sKae3RVoqqchf$V&NEDuuV5EP8zlY@~2vwJb6(-zyU7{wADQpKsz+B@SQ> z;@5q4@j@67&hc?LV~nwREz~PA)KUxec87`{GP{NRL5J)$Dhc(!f%l?sXQ&8<8MS^T z)K@apO%kf+9oWoK+7FMyDb+YY@jOI-3=%vU?o_ze zogkARD2R*o--2zlT=XZ((P9XU-ZDz5TNK%-GTms?qx#y5qCV917AHI5k2uXiwuxsor zqyC?u-$?jp{0{mf;a_kKU%^lPe+c~*Kcm5``0Wn=hTp+%<@h^^i!eU>2mArNsO`+~ zAHWRw{FY5|pu0p|_%Fg;`0xh4NHMhJCR1L_P9a}km@2=6g`Q{+Xc%q)e*D6o^`1HE@d`;hT9G7br%B$!}VXcFSkIKEF2DC4OKW7#kgLq4FqXKWI+9VkiUr0F2h8*TM;5f$4+{$U$U4_ye17CXAYk-i(TIm-qar9{puN?tYJ{vnA#y!T$v~=IeInEf^_y#e;5|XlWZFC0u=)-RC^F7ZV*_ zfQiN2XJEQ=cxAwqDL5N}mJByBgD&-%w!N5bSp5O!|6CO@qRjXuDY`c;M_4bXI+@KD z(Ku

Pwy{)1sJmi$YJ`yrrkIza$YdCMw5f>q}hpa;k^$oR+Px;A~`6GR&Ar>dUlM zf-saAO_a!EBEk-Z{nOf=aHThUuZ1`_>@Ga>vvD}hXDlHZ##1HO)lsvZ+?FIRT1Fld zp(LV;okq)h|A@B7P6!W$1<{)0q;hOq!x0@FM6nw86t+vUuM#BA-jx9yCo*;Ie2@4R z!qE9}S7+j)C>73h2bGDox48&gl?m%A+-q>?>g#Fo_BbX`)~0S*#6{PnWij2METZlG zJIQhfvuIyu+LleHVB45*rMHTpko0-1|MZ?3@$UT&;X5eX&cxXpn!^9Sv^=^PTLxkD zqodp^5$E3E5T0d~*u7oeAkrSokql3z1<+gB0tlmk6>b5y z-t_5~GKr3yBTvG%L$+Fin{K}zBRLLB3*_95%KTT0V4~+-|89wCS6_QAm%F=;v*5+h z7q^h1uBar`?t~hxObtQqYTWL0q-c9Ciix4HClQbo?uhRt73;Q*N3B+7R`}G?>@~JvS)YR+mDgPP(M!-e4HZpf zsd4l_8S*wDW18BU(-gkkTnzif^ahQKS#w?}e%hdy5`7Uc^8KfpKEFJMn8hwsv_Y=0 zpTh9)64a!&++g{^?A*C{2UrPDRoAD1gjbLvW(tCoeyn;xhRC;Ir|T;NBA+SeV;nSAwJUzY(LTj=Zf55~Y=fz~mf!CSm^Pt#8GV3BY>%_Z#=_xYtI zV|WDu+bdiE{1)>y;fMGhs%ew3N-$Ugd!zNyPxHCu7;@~V+BXZ~Cg9Lk7b!bpIe}iW z5ZHykrlz1 z4C~|_AL)x(cUL)n?YT|f+>Y|FUh=Q|9{iI%o+WYU*N4_yJsZg$aAj_-<@7 zIq~q2XrnE0iQ27OOjbV~wZwN)_lHj^FFoERjr8yF{gV8?bK2x28drFLaMI4o8c^cMww_MVkbh<7d?X zUaa3F$#5N^T<9NuJxI7v&ne9#Cb#+i$$Q6w&J_?@c?VFwy_f6WL`%J!lfm! zaB(9UCpQi;79DdC8ZS4&vQ2CJ3D@1w8g;0Kk5_ulZ$M8!-~1*nUVwORaeS8NZ@@>v zZN(NN_h`*;kYoHVoNZ$e~IMS^^3O5Vj28COg!eg7DbcMyE=W~a`0=siav-KM%!IbJF`tZ$+t<)*> zNLR%7fn@;CEQEPfW@3gV(qr_LkL=ekYNS48$rH8XM5;Wq>rWIlfe@&l67ZQ}gTIUT z#X66iLl}z9#oTx_e99X#3hKxS@s`43xD|f-mgT@xM~A>r!BA-8okJ`4XF~W_JsCuz*9i|crW-!~wY$=1dSI2B+ ziHz5g=)2i6decvb%P0=FfpVz&w$$-28(w=2AJm<)p|k)dl%R0=#c1CxTcgSt9FxyK zx;Wkg*0t|>{4NYOGv_tGC)e4{@5ptvqJy$|&tpDEH-_6N1NDQTH0A(tP%GXpmU{zG zeQKL-r`Bbys~_$Sx@e78^SlweMdP=8ezRQt6A1eg7QfZa2K3cBKEJE3KCfT93f*{* zRNu^XGHZ!92yurcnZWo`%T1x)UQT6yB9)70H-D_P)O0YE)Drija(lCu@EPJBz6D0O zhi~&zXg-gN*AUkxu3}gd@E7nB>Ig&i7lzPa#&8+cl5BnhA`mTG4vcvXCSnN^&*#;~ z^G`)z;tcQSUYM?*jD5DsSDzdWeC9K;h=$m}IQ@```s2={1;lTQouS~K$E`B+!vtpF$`EZS}aza7Thic>6}b9@l6J%Yx3&b!xT-L z)T{46kV_@6!HSviJ!@k?*2aKT+kjNifKOjp=R#$SC-DHVRI@kk69~@wN^`OB>nI|HJsKRlZxMh5C zqNm-F)3$aSK-kutus!m&qSMntWSCQSqXClT&G3C@r_OY>2O8kGwT4Y&DV}&6ZAkNI z*oWy#HC!u#-Dr$+L(*Ry0(*4QzlgU+AdFkdZY7Cw zZ;mi+ZzT~Qb70F? zG4_9RYK%T9sk3BKBhf!4_lk(OwjkW{I!L12_f{}%Zxj(0Te#iUeruM*s>hz;ehHzW z`L({(&-P2gRt>_#CAUS0aRX;eSMS4gk`+!g)@G^n=rnd!?RKoSErD?LVdT#o{v$TJ zAnn{tS8CyoGQmieH)5D&W3@!vj?O-ooaYo5x{(G{*vM4R1K!B8ib+74lQbMeKXITQB=G$>ON0Pq`lE78Jtg>Gi^&Hj8b=LDV5z& z9^}o`m)PiIX~|4ij!LSlPJ~E%3so{amDZPOTQXskyrQLKc68gf3AejNVxt#RErbh; zfn1z@n-cN%_ONV0!kuI}L3k+KIe~3y#Lua|7v0Ns`@}}x65GbIAD01AJ(aN<=fJ`? zT>qI4Mz^y9KL_nvzXJm;xRZXto>IQB6@C;KQ0T45xatXnAA`FoqFUva z;|Pv+Dfu!+_B(oz zm}_H;=DN{^%}pa+kLZ0RSi8;Fc14zaj`s-tfge zCSUntDMs%s;AOH+^p%2FZtlv9d|<^34o7{w#(u!0H%!yDu{UP1_BXEfI&71uBG9|U@x|6^eyBf zo$sn<%+U+>2R;oL2K$gr8s7`{q!`_9u)Vzi)lr0rN9_hI4_ot^jYm=0u3P~pOi{Ce zXE$k$NX3Za7Mr_Ms=f~vD%-fv9w`V7fR!Vs&>!IG%qGg{H)szPETW>t<^ckpNrpEH zh?_RWCVP`P4th|EJ(zyQpbtsW?6(H{<`jg5fUPsAwXc95Ajt7yUb@OwHrZf4M5I_R z6Ix=u49FT7@IaPtUYW|_U_co+=W)oJI1~lhc!CJE3;LGOlhAb8!~&C$frDr1$?9l# zmT#RjnX(}xV%(4s(>7!vA~&+qNoZUnwnTSGtD>QD)xV@#_tCwB$i4$)qM^uS*t~#9K=d9A}ZZOuUys~-YOX3;>bd#sb`)^#Cqu9V0*)wu`bN_NpeM$BU9dzoDf zjZno%%a%;6yHH}fwPZ1$*|!M4vrbalT9l88k_nWI0hlRS#>p)l1r3gLa|Y7Ea?rP9 zIsV(RbOr5L9e=VYXgGrDA=;T`fVT0{ZM5^s2yWx0Gs*Hw{pnb;Xx5oNrX4HOahqUz zo_1b3AqQ)FFDq)7y|JD_Bg#EG%Cz*z>ND)*&Pt3F8)jgulq#pVV}L04Q+!NUUt!li z!IeUEg>PMw`b#Ek@9d6&?P^0XgmHN5&2AyYx$l1wo*lD?oCG(^^ghYJrHPrv*hRDe z%>PVOadU@ndv$hsL`QF2iafFb5jMOzf0|nj@>B**Au4n&<^-?7-ezk+xccEX`9w$0 z#Od3qh^TCpt%cxbngS%pDbz^kVoqt*3n(~q#FJ=ySgNvP=9rdCDhmbsdOf2>QglID zU8XBrWTS$Dv*)wgWfem?kJaGlv6UxWEw)vjXgS+z_mxCcPRmwaaP|#OlH<0t@*IqE zt~pzIqHX16EuX2sORY>N3H{F)fVAkdsR5X7HGtsk%bePUL6%y8KEYamaOLc5-y%+r ze410Z!gO-B`hv6XP?8+$)9TZ|ptEEep17p$xgWjKm8rW+)wXBNW&Dv8`CBJlU4(Cw zZF|AlLyDbbY0c^3Y|RN{=w?P0aqeN%SeO=OYc4o@lw5LDshswDI!jvuVU)1BJ8p?{ zgX+Swf3^VPG;VzSBXrr!o34qC_D*fYbR|yq=Q2wXXG1W;e_U3oooPwK zdHde{Wz`l@xFveBpXf1Kky(&`L zp9p!$R`w+WDo5jvgrPDT!%We8Vo~iiIK$Y+Al!P)mN+*;EMA{XKWOy<$ z8`g9i-|HufNO8%Ty}m3!WtJ@KH?cZz`Ab3kEd90pNb4_AusQMBvyJU>s5XXrW@oPp zRo$QKDotTdj&@H@*lg$ND$R4rbQ%WaAPOhm$5u{{hGNgHn{)xNb3DQ#2uxo1owvwy z!^ffn@Xv15&w+woKKwf_!I28TO897n|4A5m$ipLX!SM?7%v*4x!aUj*oUAa=S+q;RZ0c6Z|waZ*e6)3CbN#;QR6qUS-3TQ=Lr+0FJ*u#vOR zmS!;fY?8d-B>Xx%?9`@SfX1~uY%1ghr&)yAVWYuhhkZO(?Aa|gH`w2?8*B`i4o5yt zpiJFgqqXfO_WTrtY8Hzw08qBtrwI4~?sD0By0wj)s|1!ExG1YT@KCU_1EHFS~=mo++Rx!48HmtH{>=^c2l*X_#R)Y`a-qv%zL{4anLU zQ2LYXuN%^L6qG*b?z$<*?z%-L_n>iydmBR3JtGTDw%rb%r6=2N;_YgjaCX;CjJxY* z+U~kfkoMomwwsK}UHq19H)*=<-U7bEUBr@N-7mGb?=%t9vBsGjHYYM-u(5|ZN`q6*hXY1p1m^Jms>n%4EE9FP7Vpyn1qL`(^x}iDNn4sF=yIt%n5hem~&rF zTHC%HD+c1N#i+a8OzB>Vm}qj_WHrS!UMQA%f{i#kT?@anQefJy6bNJf!FWk_#xi5m zGSy>H%}h9eSocLGOt)^ziL<&3zw<#^rftcDQ8GqfQZgs}liB~O544ud25|!sOt+Ry zoZUGJzY~a1+FIE=5k|=vjhT{V_#zs>_LsRtH^CMSEd7$%?mAd;@NK;GR_(kpRkZQa zho!v9bF1P++L-CuQfB*vs(6_;UOK#XUU5ThymW)Yi~i@-jxMoX1f63$R;KSZ!E~7p zuN_G&BipZuL5v`Mvn3H4BbXVXQkdTOs1y_u>lAvCg{FbeH5EwUXf{)IxU|>@~x3Kh)Kg*w_tk5YZvL zK{Q@`uS;hp^z5#RX4kX26Nc_hw-Dmo=!Wp5(G9&5C`h|Sk{nKWgWcGcKv<(2C%J_X z?M644ZjEjT&OT<#g!l%IKaL1n0AUSpWC|eKeGrZ5*64=d>?5?2!HI5gcxiOw1XuBh z^N-!-wuCpB#gfu3F5MO>Zghj`*3G@(>PjcP7pamIzPF%ZiD!YZbsaiBj1v@spfWDraY2mqt{y9a%JR z%5(=ciMDeD=OC*lVW^pjSP*B!2x5O>Y6#KqgYa(P+Rkrfg~9 zG-!Yrum%kTK+xbqiy$!h`(Nx4U*-icLeVP(@UsX51ei~88~AP16w`;^RrYe*VV}FN zKK!tl+de$DDNlM#lk4mzZWSZFTG7E=+(kF3U`w#;1BR5bpUT*acV6+3ULoe=A|pl! z9`mCR;&B6go(f?q*a!S71W#b(_IDK7Uzok-0dmbZasCmR3(W)NI=i`_TvsbwFkfXd zrHb*B9;`O3UH)KJs`?#K~}t^G(zZK%ohn;M&#PTduR4Z;Dzm9r$RSQ4c+3M?ye3X9}CXO26 z+SSC-4O~$MPI>^C-NYjzxUSZGLAns_!0*L)LCbm3ZP;-M~F zyPDg|6@}nT2@tcJP!!kInlIQ)%V5fuQOK=DMc#}>>wvsNtytVIVmbaoa$cqgH7~HZucLHQ?1DWb!%-ait>3HNyU-ZW}{Nb31&#!*t7wq^w4ZnO5 zliyqefq0W2(alQncAnolV|35U-=FL)b7@J$T*;>8frC4@RDD*Ob6 zEBHtXK9qn`7PhJ=(yt$bBEw_xIrVjJyN(oUkx zliO%-Px76T(qdW#+Dsu)%*fvGB&l@I3sC%3HC6{W$ZmNnf%}nsx-+II*-& zL@61fwhjf>+h}RytZJjBjdOk*Ep40&5?XA#O4>RXCPYh18|R`nTG}`lx6#tZxulI| z8V8G}u+c`ety2tFx6#tZX|~bc#b#IobjW_4wdmcXttIVJhbE(WgP*qQWeyQtGx|E$ zNpEdI9=I&GGB5rsyc{GsBBg zX;1TN)_-i)%v{N!Bp%SbTF8#N&C6X3^=)1$7_8fFfMJ{PRdANU zjetkj4^54(fC9bp0!%SefZG5*oE{Gp^6#&I%?<5MhZnq1L~*WqW} zn^QA5)^GW*A;U>WpGu6hX&ahmh@K|H1`Nm+NpbYE&RGR5S$_uxHJvx?D)FBS{bO3_ z&_;5`8`1Y)Zq{sf~ z8nm8raqzpUVFcv4f0IAckJ#LW@Fs9db5E4o@i&8LRJ}rklRJ@%^&f{;o_ji1FrAPq zxZE!I7RVVjl5cI748ePvOtSKu1UuKMaFM!B6=3r7|Fdlk)19IOz#i)3#g57e?*wlA zx0>*Rbu3VR=jbJRbt;c|zYln6hVU+mp4K(3P``w@4>CjjT|hRm3c~7{zu{)^-3rE7 zJAD{D^%0=L(FBj36#q6`5#Eiw)99jt`@ol<=7(5@V_vF20<9ChAI;^5`ygx55jZ_T z3GphygH$2-xcq(;zh z8s{Qqf+^oVdGOyi zk6Dyv2<`(_UI>lHVRCqF1bIN!8A-A&e;X(|=OnMkuD)w1{2Jsy_N^Vt{!B~R3{o7AqP0m`NomqGSmK(d+e_f2>1O9v_KhuY z+Ya`<4Q)`K9Qo&rnE6yUZ3l>E?LM@z+AT*|@_*G7M|-jyXln|t5&Uv&T1~o3@QF-Q zyw<@So9>ut3NJdA2x+R<-z*s2Bc+OTATH3+gH#!(2aTh_GDy>4s-bPLM_Bl4Nym`R z@Inus6#F5ValG3P7Na_~Jm*2|<8;y^FnRoj!>|;gDRzel{&~TN zk;n6b`*8`LX2W~I1BAb#@PmZEq3}b5zpk+GKL;441YhEHXXJbqKqcV2t^C?;RWwPi za8%`#qo+>^K7zcsJj|BH^`jK^2!5FT%SH^WCgLcC_^q5DkqELjo25{EyaHuxkV}Kg2p9WJA(XP+n zIx0&dhreL?6{zJ4;iq+6WHX$K0^oWEyzsLSgM)GS9bfLI!pDi4*@mjQn6B^%aCNbm z&jTp>icl6m`~q;JU9mO)&YcP!Y?t?M#nn#oRJCrs(j-(O&xoQxX!Qn`RN7?$Oex%6 zpEBhl9D4K+M%6!aD??|&zoCnG3jQMn5wiBZ>dW8{UL#mp5aiKvcuaJPUJy06*}4Hr z{0K2g`O~*jd0e=ecX8okA%ACrC5(6hqU7dPQ(l10u6Z4m7hpGMUQ^`-9$}UV{sLi^ z2pExheXkX3iU6qAQ~)5b;8KJDK-{kg+&>Tqm~(V|u*)?bf&e(`hjHoi$M^8dJA4O) zjU8WoviJY+_8#C>6N;H6iA?`#F zMZF>x5DO-@EB1l~L=B2478J`>u7JVL6|Y8AR22VrtvyK&BKO|^`@iRhC-0tj*3>m? z%AP%YA1He#8nfzUfEU}=yKv1OV#Ia}spVLPyB3Q)yRqU?U?j#0B%XPI@3oB@7I=*n zd^r(=*<2YhIu_D-mG=)_HR#Cp8s6y5x=|Cp$IZGTh}2vSp8?f>{P9PSXBDqbt8jDf ztlEtdg+umR%khOVZMeAH#fMKC(Pq6pR>^+pd-)i@^YRr|aDv~-Z z;X1tC7NBY`oCo8h@c!-zOT(gCpFQvn3!+Z;4!pZzy!Q!l0_D=S zTOdN)VnL3!9pHz5`{&cD-bV~C+7L6Z-H5Hlc7(nEcxgQGsbP;>!dx{KXr_}s0yv-} zCv+TRa+E95WuA!bh4z)3>nO+KpW)rD`ayhl&*upI0#fy>__*OyJ<5w|J;*Z;o;t=Z zjv-&|bGC<&xKU1*&jFDa=DYYGD0J;PD3PlMBc>fc3}a%j4ypPLkU6`{+;)SFa!0x? zi!Bt3WnCCPckNcbu6Pm{={E2KD=>^_#4uP8rQ0 z;ii@nOG$kpK^D;N9e5Xo+A!Uvl1#2on-TDRc_HeAmh;)FjzTr9Gh(tli>Zo-bvmcu zO|L*MT%qFWs)~ae}HVPX~Ra?#*u$kx^ibw-8cwm7_6Ob@Ti|Wh!Y&*Cq!n)V#JE00{oh8@EBW?bU?1pGrd9uh%eMF< z`L-<&tPaARIL(p1_dL==-)q7JeXkBB#?X2Im+E7vUhA3jB;vlbAL%3(M6nZ(vz_Rb z@*`UKb}N|N-Pi6wIz|m+RSl0CJSIokBkh)no0g4po`%m}`yyXgya0^EnspczSpd9u2?YM$nSrRE!ik~4bMXAM5(Tb0pLZ*&OE z_$REarCL5`;1JTWhD0QcUq=`Jz$fs9sTSf80{`Rn;t;5HEdF5h{8>lU*9vM2d}@X5 zh~EaA06F#~FdgnhaiD}UI#!!-He%eC)~X74%;U`&v4gNkQ)iejO?27} z4_5yVxm9mGr5z3?S#y#k99=7wmYQH{l6Ei?xP49$|5bB%plY6pl2CWu9IO-F9HWdH z+?qh8?{JO#qlOviw?E@*Sf5YjS-|SI6-Lc_67+p(fBvYZJy6IoxGUOeAnpaQvPPSJ z014W3A1-K9)9IfYH*6oWw?4IC{Yabj({G)6I}Utp{D=1br{u_ZQa3bpKeW0b=f~af z0AH=IsG=M8;1LyY?eat%fnShYS0g!eeXq zvv-&dcm^hs+JhUu^I}Rk2tgp9JwBG0Qs`ySPxf4+Mo8NdD#{t@wAN5oAGa#ttZn9q zRt2!Hhn}2y05^-M01MD3SMW7x5hWFHT8k(gYqpfdxmVRAUu!tQlA(1tiNkPWW#y_p z)Si_KpC9L}=1Ep8h;kV#_!=~tNLDTxP57hhSy(r7Mm~o%p!|+weJ~mJ^4DT#6q;j2 zVSe}Fi^ZZem*r)tR17ESZ5NupZOPj{ycQbqZAJadW_=dc^rvPu+n2pkRz18%TdlD| zT4xYiXW&HsaBr+LHrHo}?}^wb7_ht&v|szgu#XFy^xWoB)at=Q{ybQslX|!pibkVr zGerB+c=+tN^it`hTHG!Te6pc$2Q|q25NQVuiZ;3dmBK9)I?yK&VFPx6Ozu^;vq|#& z!<()$&gIJri$fW%+Rym1;!|LxlGoWX501x=r-O$YEBF#*@f-z-@E~U%^n1DZl8Quk z2aWOVzIsfto`|}rd;$6OFv3~t3gj%#<2n6v_++GDbK)}@>iM4Yc~px3;b(6-xS+L; z8+fmH|69Bn3vLpRZ^eVLV3l}$CmxIvG5bQJrbWCMEw5Qd&G+KP*t^82IVy~?_fVte z2Vso8^NgAwajoGKB`A*NhO>8~7R+w+nxIUk87cwTq5n{l2~_zSl$d^ zRr~~>jNvv}nO7a->4TRxSnyQkp|53B+sx`wFsXKtQS%F;SVQeBOHW44ukhlZV$?%0 zhGr&4&2ji!s(hDIF%}O-3C&tU z^^6(|PatS5=jIB?kmZW@9;oNA9cyvJZ_iwk^c9l%>%PkOr<@}X!MJOOG5!w5D?#bBW+FOt@>okPlYiwm1*x5Z^#5`XP1)G#;( zKkRmP$)8rsc3I1oTZ{b>yT_>E3xAc|IpCo57~zLeIo!)tPvenmJ;2hF?Em|)VI5e7 zGFSbJL-DN}rs38lr`4G5S`@#vF>&kGmmBjMnNL~3w{Cnr5d(pBPcLoh4jkbmUB2L* z`XN47;0H8Z^)qbqKf+aIe#60VZ`a;Mvf>S&NBW0U%&M370BjQm#C7r>fS%giU%;*J zW?w|Ie{MSKw)Wr1rCar$Kgp4#=?r`eS(O#w!#@S!mW%R6dIR5an7;vnll%9dLbFW- z%YTEsTJE^y=G)35qu?Y@)AGFtzPb|ka)3s@PYa5*AD+QA(>BmvcBz218xV4u#t!iZ zR-V$$3xfa9*msFB{SS>D>f;}zMZv$~&e_8k`sc=$whr@!1-12v5MP+IwfA7x zXfGzyaGs5%G||@3B*Ta=JkSE|AME&-Qg`6{4fZ&dYVwF<3mipA84MkSL6{cEV2FJ~ z9t^Qd$*a*ZxWm9E7Y}S6_+(!Ar-AKH_Yxc#_Yxs|S%GGjdx?JB6R*^aAo+T~)mY=K(dX0pPg9Di+J*e)^ym&3q<&5W0wK|_k@(dViS zMUk~4vFz;6inL~Z7Vxr@uR%kKDAHvODNdiB0<@Jm+pWyB#uPC#x6d79W+6Vewz5vJ zvUqFBCZ&<)#8OSnE1J!#-5YjgnbJvjwlFe6`GW6k*(6|hX1n3>u0o|49&Vl3@WOF{ z;f;4y{{c-`hYsbDxEkuRp6SO1E^F2wYuifW8%aFfqlKcu z2#BD;NL)gl{=O-$z#?RdpLBaA36MbrRPI>zmp*zFG(P9Y$avH|hfE(=6c49KN22K?kv>R*r{# zp+7iD9!i$rW5TM|4_{O@$7f;#lt~q~=|XDbTfO1SZutrD+63)8#He9sl|oQ!`sce* zu{-N-)GDL1wj)C6GU9F&&t@|ZybPThH7ww}QNCJ+XUd+w6w+x~-hnH)6=HLvtlaqH zhLYDS!0|n2?%Zzf z#Zr7xt4Y?_5m5C=cFg-iM=vm`onBKW!dWjIhQaa;;&N~kF z1k>YLBMCmIE{9o#yV{$XV;eqaZ8Bf2w*jESd{*H&WMR~>Ac_w)vLomQjUyr{YZr>M zLe+gPOdRa~PZI~rt>tjgZ=BV3fv-`+SjAfvQSQtzEcNo?jKy6#-b4o*1eX1;gON}^ zgu!>ir_IlAZ4iO&W!5=ilMR_7UZMJ5jLs**f)TVGrElqjkH=!~Q zbe9gn0*u-#_!>0IiK0AWYuMey&&bL8Lv9Xq=`x1}m97caxY&t?jp%pqOGZnk4t z1Dzsu2RxPm7mk5tp`IV&F9Cnw<1Z3_{Ez){>qTebdN!^y44W*$Ki;*S3(so&CBdx+ z=1$PKEf8WQ&YSHRcIiCn9jOqZcXY!Ay<<9h$G;KpwDvN~6{tZS|Fnr-Xv&btY4NRN z8egrK+HmVQnET4TVgW4RTSvYIbrp`M?;KB?acFfTtYGl~wBaSL>f>++-wBx*UPDf@ zPTqSD8VRkUIcmGN7Y(EJ5H1=XB%vF#fJbY-1{tRm&GDDU>9tNpdJkYX-Xv{{ys~LC zzAQ7C$$`o!SCv?#J999WGh&f^N!H#S%w_ z`rI%@w>9`;RP~~*y$4ft5iy{KvOS6xq+zhI4`V}=0kz%R9SGm>L_p=6U7-eBphK(0 zIK}SH7mEo%1dGYU1&?QT!CH*P`RFyZIq<=6LkMO7Yk3>QYS8Et%5t=K?y@YLpw2?D z>P%F=ZSbi>Yq+Y-yWrPRzZ517jTghL6!2zP^)X2CUYJpnjre#mth&RQ@Q~NR{QmY; zm~2C8Bj72UOV0M0%UA0iM%ZTo8$mZQ0v51+=3*5RYy}(<26_Z~$0h@BS?W=W*RKN} z5I!D7u#U4Q>3YqCk5wkJe^ZfO@^Z|6ZO5{(lW3g1hy$!{IZ;jJqC>H$lmAnjJilE5&82^0am2Lo6+TlZ)# zwg*v2wAFB;58T{GvsuK;0CkGk9f;Xr&%{kyIuv3H#I~A;o%&%wStRDs10tA5FI;$~ zH^OLL>h*??QG?yZ)}lST3|m0h{jpbd0y!9tImYA3!Vd|`+DVtY#9&72=86{1VZq3u4n3a?x+G!aNM#jQ&_kVT_C&dY zR&l{*H4q{g1qPZwnHBm1j0gLmr zwOL7^)0-7nn$2n`U#%B-VOAsB&58wVR(uUID~|VPv%<3HbY>-`IK5d}rEt^^LkhYS zFe@xATFr_DY*u^?GAk*?|3$Nsazxj1X{}1FiEDjBVcAc9#9 z#|4ww2>Abp2`k20EVs{B2hKwT%l2c#G6SC2p7@RAGc&P$#_JKdzl5C`X3YpB@3}?p zaJ?S?6z=8hb!}y@H?8-4N-(lz^{|rv7ICWk4d=~54iuP$?uXCc!+8xxa(S2-V$CG3 zYMv%r-<>|~G>PYl#fZ)GB$w^ZZXMm$Tsb?a|phs{{x*g9dE|4Z34G|PLcEg@tD&8ys z`)^x?90S`mrF^lzqk!$2QEc!1*HQPSy~d(*W$wlGX43hvl)9jdjL-|LkJ)ee={sa*%=W zQv@;ozqXGdQjGs@A5pkZmhByDJ)EPfRf__ctqWqQ=w+j@1r+>7RR8+L%L!66~U{~GhSQ5Z(cqWfZnNeP3-=D&fx{2_?BV{pgy@Q2YUBV|gVHA@f#0WM87u=&yb;(O+ zE_t!cSb^yFnl&h`cEUjHRhRNTdNL})8__Aa>Wyel$?%x9)A?$>ZGoX}9C!Xb(h*pI zp^YymVsLwGEmJuf5=uovUY&2vH2C>*T-6hxc{D%;F4Y$SbTKexSPL>eRY{q(%;e&_ zFU9VKrF^dZ2`3VCF77JIXGvgutMU!WtBN%aRm%}ysfU!m^&FKP@oo2RJwMg9O?|?v zTDPeuCm{K@;|_Q>>#UmrpNtG!pxcJ0`l%dqCtk))y_BfO#n?hw2=`e_sw)?rvluF( zWrv7v#BiB<_F3f3RHNM4Ly(V&gCD5J2kn>ouQr%puei#6blbH zv02A&R?}<*D8nCy5b}d}v*Gq84UT`o1MN?7_`4E+zvHhf{tEEN354S>1b;9WLVWq8 z57BSES%&2Vz0-5|1Sd`H#rU=09X*zoM$s#0v-Eh6TZ){N+>6l=d`ECO&~(!ELgx2m z@s~aBM-npyKNp|+p7-@}($F59v~RY%0Mgv0rA~SR88~TM&!wdyl-+YsQ8>*nDd-nM z5A_;^blh1S^78_BK_qQ2m^lr_^1hZAOS8xRlpjf#ESNbhl3pkVnzTQkNjMYwX$Yft z5Tjo(b{M-|kUDA8R8H>D6!zH(M4~0nOn1`OfV&`;9vS^pzLU~(Ipbqxj05^JCM&?u|+d7Xh>)d(jP31 z(rD)}e;e*DNTZ9VTwI((hs;^`PO3l|!^xjs&@Y_+Ig+uw zlrdrQ$Ud<&e@fAeG9;dRmi*2qPIXrDKu{+EB2dFyC+0aO~0AbVrj_OC9@-`RFc?*Y+`9k&XU=&^tg=; z>Zkdf%^tC#Jww_36H@z{(vfnMVKv{wXiC_Gt!b*0ilK>E3d~(H+l-~jlF(T|CoK@u z`1>d}jp@T*%j-o`r?|^{QN~op3c>z@=L_B?(iP$!DL7H^!g3CO(QtQJBn=A8oEAd2 z^ki+-h_xNoaM4PY~i26@}1Oc4%=-p>^YJK=CIFO6^vKa?RHs6W=68K+j6hYPDlsJsTyT@?c zk38(&Bi;Cpt{f{9{*g2RUHVp8hC1nIv)`hS5E?z62aSiivJO^MGF}0*a*}5pV;?B0 zFFhRC1Z(dC1*TBUyzRYH=q+@`6v`aTwlc)cD*a>u<9XqcK*(!?x0Mz2i=~f87tL@|91_Z)4?FZ7kwF)XU`$M5Y|43g zQY?KjW6A6^GP`mo98`G=dPg?;NC;hr-VsR;if&fU;u`OldfU-JPpcO&dEi9@(WN&B z_8&=eVBwLpNbs;kh?>bhd4eB{0w3(gJ_$$&dI~%_oJC2>3f)1B&`vHeO9{V zVyVUtf}?oMFzJcT9OxrmB;XGs6CQ?L!Ek&2VJNaZ5_k-)@a6u#r?YALctor zqmVjjQf1TBUUaSa+%9-!DaZOCgz-x0t^>0z!JwODl!i{6GFkUe% z92*#4j0e0fs)y{=(ah`=MtC$p^Rffx_)2n62Lz9x+=9UP^T`XwL7&XyplOs#bzoJ4 zE!KlnQUooS&8$216!y(zW_kF^1k0Y4cti0-l+!eFST=%|%0gn>tN`*GOEoBN1a%xA z7;hHi3wbpXbVVNyI+^N)jgfL!(k2P&IxBQiF)gGQ`tYjZq znpk>1it?Pu=1)&7EvB1jk7%aLOpCoOAs_CSKlyyxNbd-{LfFIfiLeU_s;8ZgpG*8! z*i>P56%E}-P@yn0Rb>e6QgB(p`E-UV685OD$!dzQ*QXD4qZVqBu)8am)v7BL*Xj4P zq3(HVm1+=K-*T2+1=ffx9!?oNf#_DX4Q(Ak$-|CLD+b#oAukOaomOewYN}TiD{AO; z7B;HSh4ql2jp_@QGPsbjG$|>2=&{h;)Qj=OFqmx3cF0p zI!U}+P=sRIrn(rm(ID^^!~vqeR$nVFQf` z!r~;uB4eVkyQK+78CC+Fc-QsCt?gO6HkHbHL>=iweco07CjQkY1D0aIEuaNOakiowS zT7b>jKLNwK9*=G{y0bd`ff`H?WgH{;crv?vL;q+Cb49)_W>Ve$WLu1)Zld1W1TM<= zepgIS+Ev=<>PfejGscZzTolI0{^qHINp&w&Ho7L&eLtMBWD@IRcPXpdvS-VBEt9mJ z6N)T9$&Ua&*_&~%y$B)ini~UmPba${bTHmn$x_E$#y7=%H%m=&yI34DB_hU0Y13W6 zF5_G=v6MQl(G^QJw5X!$m;^)%&e+PP$;Q2AXXnn4TG_m2XP@jzsqnF~zsJEo1!V#F zNS3;|t`IJYIWV2O%Jb6YJ`l7Dl;PxP8-}Bg5}Tx=Lb2iCLRiUJ30XR@3S<@HYd06m z>a>?n;OvhjbC%I5jB8_@NckbNBVXPV@>(Z$KO*i2#Qk_Q`*e+EOcnQ7k^UCXK9dFC z_Gcrx;9>}UFmNbXV=hV)D*FpgI)v#!QxOO6dpuLhN}|H+EaP**BZrQzP<$ z{S(=QL!udb#23QHDwb*WOMulA&IbP5jGc{3@R$|m=N_M&!1$ctsS30@o0X_#&!44m z2eXPeA(ykcJcA2rRp71gcCB<9$@;MLcVL*w#InW_sqD6tY?-9h`>nziN=x4?BSBXw z;s;W=GX!VJys%cLs8fp@Y_?W$Yo%}~F5CY*K_v|?L~9w_i)aVUDBQk}HNdpX?45_lZ^ zO~yp0V6lvqAIn&Iy^O7wNW-~ChmNTd7fS+ikczOqT<=7 zR>Ig5uR^g7=7yjU9YCa!%D`v45e2HXZ~RN?7q>kfiq_+F(1^yETLN|4W$Gb;BK=kFh3rQm{sFLJ0fx6}-sJ?yE!0 zk0qPWfY(Q|1!SkrZu1#Z!L?j?4r6PLtzv!FR;(%q*D2B2S~K)@=V3^HbRGq=J}^Kz zPA;@n8PwkOvx$25QoqNvmU?EFh}c&54eprONp&{~UIlbg5gNrwBRg1tB zc4f7P*ha@Hn$XsAa69thQ)@5zQ!Ebeq;c61e+qwcNXufZ21N>HTgFq6oRvggHrJ+h z24h|!*Q2T{8(^-z3`zTJ^MDnODqsia65z=hEZ6B^(QRLfrdcZu)M`D!g}xFYO{-!yCKvleV&GU4B9#KZGNsui~0y{znDteviI zW1q)5=tg0?h~r@+(~9R#4A~5}BUw&UuXd-0I6&XFBGUU=1062J7(Px@Hj$(JAyzW-KkA+>QSy!aeg@VCGBc6k zjiBAygyH!e{oUzj9dy$SMd^6-U?sDtaF~%!A8Pg<;$={BrX~9nS!7WUVLRz)P7LKx ziI#m?j?sh8@53S2Q(SSXKbKYrGuP1#g=ZVsVivmEy|+t-zZdP$?6WSpV6SPGU6SGN zP48$nq$C&YBh8j2W%%>xQ_XHj$^|>3S=3KCa<9+ShNleF)tkY(1&2ef&e{0b#4% zSI!s+_Jn3P%oqZ;U9*eQTBv|_YIb>A4A`5RmCk9QLV91b*>hsR4r(?s%RJLRl)ljP ztgIEbq4ce0H!Rpp!|0f1w=Zyj5f1ywSeE*+yNKMHJ)K&NQ~f^8?i;t3&ZKzFwvLMc zOVR9;%(XO}GBo=!Gr|Pzt?9Cqwb-dYL$j+>BEX6?s~x%)Z+MK+?53d+U}tOg+PD^M z;LX(RlW{R%^EF#HXET1MMH+{ZtLW(ZqNzfV?p*l?FHZl)5*wzq|3=H^{n3|>#;h{71kx0w5@1#7{IG&{N= zg2tGHPkM7u_e*ou;>pC>n!Ph80&JFMM@rB3kE8jT{ajiGR%J0M=yLW)<2Uf3rxbldQsv`xV)gc5hHID3<0DJ|g5 zeUy9j92ORoTCBR5*##C8J+-oxnk^IA4enb<@AEIEyES_?`(v;NGv9wYJ0wP@xs|HafLuc6iSJ5S!^}_<=8oEuh7v~O(yOz`xD`F93 zYbiprOA&7!jnr%`*bP*o*;=rhXo_aXMwG;DpyxE3WiN;=14ch0Ie8mK^+rKd)ER@iFyur3SY z8tEm?&gx>G5Bi2h#h&k^BW>*bxI5{*1)OL-?dos$-*r;$@1bTbI}5t_JN2)$LRN!q zrUx~1Vd41zp8Q&}NND>Znz7Jg{l_gf;~t{7H635PIPQ_Qh@BDfG4h_vK`mW8L0Q5q zU2LIc%dKP%Pr!p0`bOAlH_vKY=ts?XQrki&G+Tmc`$=+M!tqwSufVizK1mT4mD)c= z=LxH)^+@z7ir^>Zy7o_IxQta_s=n>7bOY%G~($ks^DY2^;sY$bCNqL@^=vB>bNV2P! zXs>25^Yc7AX`f~p^X+OUeWF=5;=N4fzcf7)5nraGnzhW!^X#JIn%NL>7ui=?1$`wV z&+`g-HTyEcu3n)S&3;FsuTm$?Vv_CZRZ7#WHZ;$(n{qU}KGd#uQ$JJFw>sx}UZWwJ zec9QrUZatktr(W)d7Vl$yK$IZy-rg#E9sx-d4tL|JGZ}Gy+I2#n;58xdy}d)s|?hG zt+1Fh_8yA3!kYi+4s^UdH0BDfA*K%8bi7R?ue2E7bi7Tp#$sP)dHs8>dl!V{QQ%#= zU(2|UyiZ#-I|p6+1KO$C8DRUU@oG-RvV@PQ>1sXyao^rgeV$<9YWMY6K<=kOn%#~C z=>{IEd~W&8TTpu zyoIY&PXos)`iv5uv>1=8pHVI|zW-w-enCZAcrC{6ujppY_ClrqBF{4%(NfzH3J9}0 z&^J`~GRs!GkIz_3-_Vtsxn@Ryt<&t`khS!0+NjyKkO;6lg_*0|u0GeseM|QXUFA;h zvk`2I6;#aRJDRbJv#6(*JZve`4X;}4BVq4p){JreJIdQ_$@cfXC+>S%@tVb+K->R7 zJzlq1M^x}9y3JxHCH9T-|4jLBSiZjRD!#3l$&xUCB_Au;&sF9k5j>JBQD$y)%qyub*#iR-G z^}J8GX!YcT@*`Dihy9|zY4_teke+_o5V4u{sTK4FjO%eKNwYM_64d>|EX^dUH?)j3 z(@E|BuD$l1)MuJ;?K`P&H2WBu>8yU#?3)bS|8-U;G~J7ttBZ2BSjil8M}T$EY$7z1 zr2LxAg=Ugel4gBS`(zc+Y$R%*ta@tp4YZb`253e_4zQt`eIMRJIR7+CQ+tOPN>yiR z_T;>^)KyK_Z0EcPu(=k4O1H&zJ4tJ4Z7St4FreQ4-qPVpm|lh|Im*n^T9&#%nALr= zO?8%15Z1fD@vNn6HC?k`F>hz9xthgSuB9Axo@VKl5nxL-8#ZVy<*HiE#t*_dI<;CD z1~#PGLtU#`CDQDnHfZ+unVTFvm3fEImF^d2?uhHD?$bj1gjeHwsYkUecEY=0TP+!C zpGUpbev8qwp_?3iRFc7!SWS0&KaT68=4y7O_b}Kqnr#{TeOy1q+ngLSXOnnM%f2dm$N)zbiPAbyA{vx}Z+w6{(H%uw~f0`)LhOUmEsFsK0`4U))Z7R7oeunx~vr&-E zQtl2`hF{~3uS{iYHmPWRe1)2<**PfaTxDujU9u^DzPb|(`PWlJ*1hoy)ZJR>ne%Y` zLiMU<&yIX5{ydzkw6f@2{CxZ(wM?@gajftHb(O{3i!g0ppsv@f4%7Ap>Q>DfFl}F` z?$T@vrtJ&WgUm4hx%**?)M z91c{2@!*7m9>fMpohs3+IP742o%&6)S9>3fuUFUM84+i3?p#HespG;{Q;jfw62z%Y zLA=Y zflAvMkEB<$h2)X6oqaWTGhNvxGmp)61W_JJ*R%{+bv)a{d zvi+FUu2w}-?Dcf>_;2H{QNcS1*QyIdw%Wbe9G&O6RxQ)?iqUqAR`r^_g2nV&wMMf~ zlI&`&x?ZyqU!LbWb&F<|KD)Y3-KAMka-L_MdO))oScI=rTQo~VyzA9=&HDOGySiSz ztf>#T88@gmHS2=gj2qO47K1_IxP|H-&z0Qeo{M7NsB$&C6t^zz?75TJ9AQHwWIZKT z9E)#HWzgt6)3aX9)5&~Pm>0xu!5zVRb-tF}EV5R%HxMkFE+LodkS^44y=rA!C0;AL zL_)S!q6C#N*Q;6`F%0TnudWofo;IcZ5x-t-*KE%$N5Tg6p=LeGLlZWtA2j=^z?X2V z3Qu6otf#UGce`#^MVie{^CxUlOWIg+LW8{nnK^%4!b4(SHW{q<(<7SgQhftn|6^^eXJAso6K$+}U{1o*C&hcFP1ZNyz`TS)q8@{CW30v*v70pg{NHbp1>{S2K zA-RjbtiIQbyXed6xMti%cPU#U*YOJvchOzSo7gu0DSAbnX9-nK_8RqyIw%Yq)2PKO z>I-3bs)t&^wrIxEgx6J`#n25`B)p+k2|J`#&cmT4bzT?F@R0Il zXM?TKjAierE0f!0@2H!F?WCFAuSj@TeGbO=f6}+#Q{M#%-xFc0?0vN)g_E%&zJHSJ zA194$|4tzGudld||ojS|^Pd_)V!ZvP~kDKc{J)ThF%WDcE_%pvuy$X3#3+LmxgDJ-&hvGuvJBjJ;iLVl_|S~kge zE#cEPnaSh&XDUq#|EcySeAXsp+2?AomR$ioeXgbmvrO*`wV-FaF1}F9G-F+SsrL77 zmwl;@XvVUyRAL`3Ghwq|sVq%dcvwaBZ;yCbC27X8f2qJ3?XrKV{+hAuYjw?_cG=hJ zHqBUeMC}~XE<2*$(`@BDQ{gp$6+_#F->7Revvtsu7*sPAZwc1IqE zVW~m)WdGTHYRKSN|Iuygr2k`}|HCjXHZJJtQpPKVkeXa}gQAA=Z{;jJhrO)Y{Qrbz zP<#BJWw|kn3;p(3uEyBTT#Y${A|mYc?R56PC6)cBq_e*j(yF)Rexx_X|I^nvSas9M#_ro-6E^z2ANyoWHs_VGJ2=+q+z(XfkodgUe`(z$WZYWB8KcbP>hBlTOSatob^3MegO7yg8o*KrqdiJRT%ik(QuwkAqLsF(Q3*6)sX)(7ZdIJe@ngBNB+OJ z35@^2tDcb{;e5|dR^Jg1C$LXMcJn((4Z2GB{m$xWS?lN(6T1J|zqJWYvHw=V=_34J z_W$eg|I{W3_8B5-$59?=>yJ#r`OkaM>JB;!^B%s0Aq^2+jiXX~3oQ-tNin=P1%&;# z6NNLatW0w@i-WT~o%=dWMFu@6tE1C}3HJX8g*ND?N={#Ej>d8}f4$~4 z4af0`4*2U%`=|%qhQEE(iz@N0p-MFXe*^J11b+qiE5_d_{Ef!n82pXJ-#Gk@$6pEl zO7VxoJeBG!{GE+I5AhwJ59q+pC9pdg7=q6XIIt@`K(J7-Sg=%Zs$jVwK4wrFgHIW8 z_~nB2f@^?^8i5J8Rb}^Mf;j)cWQ}6nD!4&WC|;fL)_v)0pA zYUtkp>>Rq8ezCLvR*DIIh;~!LInMxFLq12!@$NhvtB`Db>LqM5c^uvCd+8S{>+Jwe z>b)6h-a6|aYe7(B-TX<`|6Md;z&Smkrf!fuGqG3^|ndK&v* z`{=HI>FN;uQK68T7yIe^hz~dJqvvz;)L#1oGhz__F{JEsTs0p1zr`rsFjeZfc+$L~-|U0(PqYJ9x=Tc`~uRO#TzmC}kn708c)&-eWiUezFp zcy&budWx!@^nu!kqz|aQj*76);cuIEL>-3vd$>19m|G_uSHDP@7WgZCmeDrNZ79=O z5f*NwD_e1l;j@L$PK5ibp~*lt9G{cRo34I2BVfeCooggJKbqDDcx%^uV;>Dd;r0=S z-$yMYhZ#L3{66yb9R;7?yHxY%M5C1g%5;&bR%dHk2&|@|p2p)N1?=$YGHl7N16^FRLC|J~i?RTcfj! zxVPqCgOGflwA{`ogEu>u=B+n5X=Fb`>iU>-$ijzg@fh{C*yh4#KgApUy6=R~h{A37 z;ELt5J7*t!p7QbwbxpHAw-p%4E}vH_jAQPk^f9jrXDC8%5zhB zt1+X){f=bUc_SWmq`USeKjrA@`pCPM(p^!r7}>qUI67#%V~5d{^Ma!gg@~YZV`1s5 zjyy5v+bCedo^KO-_DOlujXQkX)ZLPCy0I*$#qpqauj}A+wjc=ywHU9ac7>a3(_$Q- zkq`Hkb2d|<(UP_nKGnrTormbqNFRpk0hObiKFp9M&Ym)7PIbAXra1S~@tpb2-Rg>Y z<`U-?$)Mgjyz*LSp#+);AH45x8ypsaPo-Tvc$>4>#^d}%=_8fSZ)UbosVya!&&YGP z+%8sf*#6YegU;1VNTbDw&UetuBo;TX<;VF zqI1xSu8Rl9!~G++i7Q>_&q+eiAA9E@P*PfsYaiLm2g8SrZn~2@RbHlXFt~I7DciQu=jkb!goj|VNMkxFp zSEJOX(G`tj1dXnvNTSh}ivxC>T|B!tx;En|_D0+B?w`5V*al2H=GrWAH%r`&(Bkj- z?I(Wz^_Xo>h~eJq8c^KmddxMVVu9^3*N-8IM!j>zplh9v+01{;3U${@W@`l33Gz(E z(`%2s7~+|Y-E)gsA3Ra*cE#d>)f(G<-QwN*v|@)AC%Ju&jB!cs7K*_81N*4w0>+l1 zc<$vIH7Wu)5V)7>CUC4?~R& z?sd-P6SlkGli_H;7}`4MY@d6F?Or_5Q*PGW4qM--kKOB3%)-yz%FSBb?b-mHt+TBe zyhiPYsoFfdZQOPD(KIR6$c&DjeN?!>j3Le@#j{uH4PzOf2X`H8Vz2EYxOclQhk5c! zaF}N+eJ3+vjLd}jG84`|hiAp1`HWKpM+1HCI|o5q?%xWZQ1Na@>1h1c!;*?Ao{g>< z8M8gg%?-ED_P0JQ{QUzSp$^%2?bg#h?VR&G^|qK%G4SDqWwAT2;%ZMRl33^2Cq>+6 zyK3^yo~fvJ1mf}-Q0^W*XA`8m=ilS0bPvyY0GK%UG0%nW!og2_D(#Na=RC{ZrJdK} ztjTSzot}Dk@5!%0`t_iwhMh^RtlOB(*#m*ya0>JQ*>6um*U?tNj#G=6eK> zofn@TyS)FVq<-}_`=~&uvY$1Jb+Er{HV#OO0!3+F#RF|L7TVtedHv&6Z0BCZwOMDo zBz&7nR4KVPg(fPt^F%d2|DMpU;?q@px{6Ph_+*Js7JSTmLi5BcPrULZP`z{AtUlg+ zbz;G{M!uSaH+6YsaJIKdvK%Af$4K}w5il^4c=0n z#7kL!_wKNNj0}9nsLF@EQ$5Y|x4>s5vfp7hCF3&5n2>(FXPacXNqiPdj=y)n`G+0$ zcx1N2o{MaD*sG91yk`rNF4tM^9{HTNQoD1CcOuLlN%}w*MthGR2dS6a_k?`lUGCw7 zh|4|C^=IUXc)4f8av3H0q-ox)GO@sv~sFX3@b4DK(7Vmj-0d6@wt1DxG#po~bp2FE~_^0A6u^slG z3d6&AwZm(kxAG@Ce8ys|{AZ{mW#1YXdNR9rL&(3QFHBV26)Wv{{)-y8-^fCV+`I}} z?&f8aay&h$PZ+O&&kXy;emrMt*j}p>+WF+qUOOMv*=y&cHhb-SZe}Yj3n>fRN?&>y z2e=tyLg$9<#zN!#uyvl}Im^R#JCEnoA-=S9u@Sq)pt2Nakfpkm zkFsUSiI5_(p(5B;v~8~^C3j=QUQdr14H1Vtb%XQB-0SHz4+E;_sbmbUo@npA5!)rR zoswCe6lkYpS!$2R9I@QJH*{}Ao@A3J+2lz!VUSe+7A-`Hwph6zJCa#u*;ag-1$LDI6mbWM-zaF*idp) z63qa1rE*|^<^!|n+^BGJs|(=nuQ+7BnjD2kugV_nrf0-wJAB+Y2gPxBDvtZA;<#^% z^gT$!@lE!dI33eyz{P7k4O9-^$#gjE(FSg(7~=)gfsu6BF#%z|bG(Rz0xr%t%f;FB zaB((yF3zUEi?hjhoeL~*{Q+!{koO5bDB&MP_++}8R;1)mD4CO^awv*ccFduUbPX_- z9sp+27GQ6B7kGx?Fxm(AX!-_tmiSB;oFjNHc@lH*)z99*8Y)OElnjR9D9YrhGP(g+ zPPYOp=`LWM_%tw@QB6X2i{P-JM{%HZ!D7Km!Ft8Xtr2&lxHpS?w_vmQ92Pej9MWTO zI!WSAH9n=EQc{ht;gc#p=^`}?gbdU8DfLe+7D1)p8o|4aP(<4-?%jfi1#LF=_t>Pk zg2Tk8SlpF@YXmn7?iM^Oc*xF0JZ##JLgC6G<#n(-S=@z!!yKGJxwz+uyI$NY#oZ|G zyTrXi+=m3o`2b=mC#RVtm@HTzSSUD5u*`|`Psl*X9Kkxl2Ej(bCczzo&4PynKNTbw zr=SFFf=PnOf~kT9f`x*^1j_`=T{!;)a}ZK5xKgk|uuL`gIy?c~EVx_nu%IV` z{nG^tA~crh3*c2i5-zVVgGYVO2gsI%CA5-yXY3Ixjp>jWDF zn*^H$sSAfp5-bob6RZ<#5Nr}`7NjHzFIXU0CRiufz=-i*$PU3~!9#+S%#oE~vS6WL zxnR9uT?&V35Nr}`7Nk_kSg=5_Ot4O{L9j{CY?cdkl?a06g7t!pf(6}JS|(U0*dW*> z*eqDzox?N=Hg$iU+?{ub`;Z_7UZ+K!Re-}J3)TrXm~v?nY!;++DT-i$V3}Z@V1r^K(I`(POw3+ zNwC>+XLI;wLCTT1f(3$Qf^~uoIb#1!LUsr?3my`rT#l>+lLV6m3kAz^U#HhQmy5d& z?u0H4z;n7Z0k?H&26jl|cP?iqB?0eGDgZi?%YY@x07RM!_9|)bDlbnL-0NZjzu`AeS=1I>83PCc$Pw z8YmG23k1sq8}fMwY7%S~q(L%D3Kj^K3DyZV2sQ~e3*u|elC)rfV3}Z@V1r2#C@jV zaK-|`vXSg=5NsAqDrTQD!3M!*!K6{*FW4a1Jn9Bn|BPnA1iBm_)PI6rqr()Uu$QB9 z)fsrS`Zv6wQ)*md++;jpJZ9`Qel_l~eQn!n-)|q{D08fG-0j%u*yD(Fc6OFKFLB=K z+~NG(`GYgc6>#-&o#`6wn&evPy3zHtYq#qI*S}nm?wi~XxxaP)?(X2p^bGKr^F5b% ze)o7n=7dy*tO{8da&O3qkdV;W(3H@;(3;RILLUizHgs?3fzaap;N@fh>Ih>h#25o?t9xe zHuBuamm&?q$E@)m-%=s<@?y z#fqgAv7(}awL-xMwX{;P>R-eDzGv>{!N-1npFd>IoH;Xd=A1KU9y>dGFJ6o>Li87S z&4wrt*?4}}5ZrGVDkh=C41vdziwp5gpkZPWK9F4}euSg9i$oALYEkN^xTMgDo6;jM zKY4+`)tys-1u1_A?3epbz&DnB4R~&77hvgphE{-KWb{&wYE;6d@XynkGAM`P173!o z4`KLVDZ}sthR;})T)?|?82{Dmk$|5S6at>SaU9^j zkz8x!i2jwt)z^f=j z7(Q6aFg$@_L*5mD+B|M7p)}j1Gt^5S5BfU?jsRi<3!I#fw_8aMF!5VJm~$`sTwzHk!521R+b zG6?*F1+{=9-A#aH1p++v8I5;RAvf?S(5SHOdp0VVDZ z;ZR##0w{5wFaY>OKq)3gaM1`)cmi*!co;pP#21&iON5yu zQh>x&;>So_4T!7q&<$TK0!ln)Yb@~V03{}y65y495>LY#54;LciW{LDzJdXiVhMC3 zQ4J_X4W=y;AwY>IVom{G3n=mC>}kNmfD$h)E#>=PE1;niP0)>SgfbI&J9Hz_0Vpx6 zl>xsMP~xYwvw`0RDDj@SIl$KdO7R4=m0~0G#G|PJ@goiBDe{{ocaYrJd&PrwG0xZraW@c##h%ZqqV3?5hvDDjfJu)zJFbBLr!zzT#r zbSr=pH3OG`xT#OAz#V{aPFe}v2`Gh&+JL(OrRYbifoB3r(VuPsJ^)aPf#8mFb3iFB zpcwGMfKp^p2k>k_+KNE20RB4zjUBAz()Z}kxzF3F94Ky@W7qGe+($a z48j+XVkV#zm*I{SiOT_{m__#jF9Vd~3c4ToY(Oc>$pStH5Kc-D0iPE^1gE3*NL&L5 zr=v%JUk3=MqsM?(0>bHN1Mn(9I2~;S9t4Eb(I(*4fN(l`8h8j0PDh)8*8;-n=vm-l zKsX(30loqdK1Y$~kZ7jokZ7Upz*_+&-gWal@Rfj4tfC#j+W>LRlH$N`2bAJ*+6jCE zARLf(0pAEH#gnuf_$ELpo}%9Xe;QDVXXq8+n*k+$c={^vUGysV%}ewe61xGVco`29 zBK*8`AMic2ANVVP62A>S0Q^-zi6hm6z+VHDI9UB7@cn?e`$~s^9{`l%b$T24K|m?q zpu@ob2qyYwO8d-M_D`?y3W@dLvXfFIDufPbP- z0Y9WufPbdX0Y9SCfXC<`fXC?!;9uxVz!UTp;7R%#@Ecq;Bk?Vu#7iN+1O6SL6yH-9 z`+pZADb7&>83{m%Ltr8j1c)ga?{C4T2@tQXlsa%75bv>+F5oUeynIx8fO`QYPLjRA zQvs#$%T(ZLfOx5oOapEJN?}R^cn07Y5gF+y!91St7>`+QH1M&a5ctL73g8!ua^RPU zxxggs0sKnwB=9T6Q@|I9XMisd zzW}~a{15PjVk_`P;zi(##IJx)!xXj>U+ms1;&PANFF%zNwe{LA?M-dDqr>s6W2xSt zf24n=N4oT%Ip1}<-KFk*?l;{9DSK0nrkqNd?yd7SdGGYT;yvMY_~!Vo^VRu2^<}57 zO&#Sg_5ar2<#(p7Px~nCv$TJub){`j|8@FyW0�p_{)nkD4dVF4Ga^!+dmR&p&?4 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 XkL3L~IB}D4#-zAW@B9a?D|G!Y=w!j6 diff --git a/Release/BasicTwitchSoundPlayer.pdb b/Release/BasicTwitchSoundPlayer.pdb index e2361502dcfcf716834b2127d2f90ada2bc91678..7b4813a6a6f6a199325fc7e4dc60ca7b019f0afd 100644 GIT binary patch literal 294400 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 literal 292352 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 E17SGqe*gdg diff --git a/SettingsForms/EditForm/VoiceModAddForm.cs b/SettingsForms/EditForm/VoiceModAddForm.cs index f37d9ba..33da021 100644 --- a/SettingsForms/EditForm/VoiceModAddForm.cs +++ b/SettingsForms/EditForm/VoiceModAddForm.cs @@ -15,8 +15,6 @@ public partial class VoiceModAddForm : Form public int Duration { get; set; } = 30; public int Cooldown { get; set; } = 1; - - public VoiceModAddForm() { InitializeComponent(); diff --git a/SettingsForms/VoiceModIntegrationForm.cs b/SettingsForms/VoiceModIntegrationForm.cs index 4241565..24a54bd 100644 --- a/SettingsForms/VoiceModIntegrationForm.cs +++ b/SettingsForms/VoiceModIntegrationForm.cs @@ -334,7 +334,7 @@ private async void B_CreateMissingRewards_Click(object sender, EventArgs e) { if (apiConnection.CachedRewards == null) _ = await apiConnection.GetRewardsList(); - var resultReward = await apiConnection.CreateOrUpdateRewardVoiceModAsync(voice); + var resultReward = await apiConnection.CreateOrUpdateReward(voice); if (resultReward != null) { voice.RewardID = resultReward.id; diff --git a/SharedSettings.cs b/SharedSettings.cs index 4b41d81..22efec2 100644 --- a/SharedSettings.cs +++ b/SharedSettings.cs @@ -106,8 +106,6 @@ public static PrivateSettings GetInstance() public bool RunWebSocketsServer { get; set; } [XmlElement] public int WebSocketsServerPort { get; set; } - [XmlElement] - public string SoundRewardID { get; set; } #endregion public PrivateSettings() @@ -123,7 +121,6 @@ public PrivateSettings() TwitchUsername = ""; TwitchPassword = ""; TwitchChannelToJoin = ""; - SoundRewardID = ""; RunWebSocketsServer = false; WebSocketsServerPort = 8005; } @@ -198,6 +195,29 @@ public void Save() public string AdressPort { get; set; } public List Rewards { get; set; } = new List(); + private Dictionary IDToReward; + + public VoiceModReward GetReward(string rewardID) + { + if (IDToReward == null) + { + IDToReward = new Dictionary(); + foreach (var reward in Rewards) + { + if (string.IsNullOrEmpty(reward.RewardID)) + continue; + if (IDToReward.ContainsKey(reward.RewardID)) + continue; + + IDToReward.Add(reward.RewardID, reward); + } + } + + if (IDToReward.TryGetValue(rewardID, out var foundReward)) + return foundReward; + else + return null; + } public VoiceModConfig() { diff --git a/SoundBase.cs b/SoundBase.cs index 69687e1..eec9b7c 100644 --- a/SoundBase.cs +++ b/SoundBase.cs @@ -1,4 +1,5 @@ -using BasicTwitchSoundPlayer.SoundStorage; +using BasicTwitchSoundPlayer.IRC; +using BasicTwitchSoundPlayer.SoundStorage; using BasicTwitchSoundPlayer.Structs; using NAudio.Wave; using System; @@ -6,13 +7,15 @@ using System.Diagnostics; using System.IO; using System.Linq; +using static BasicTwitchSoundPlayer.IRC.KrakenConnections; namespace BasicTwitchSoundPlayer { - public class SoundBase + public class SoundDB { private readonly Random m_RNG; public List SoundList; + public Dictionary RewardsToSound = new Dictionary(); private List m_SoundPlayerStack; private Dictionary m_UserDB; private int m_Delay; @@ -20,7 +23,7 @@ public class SoundBase #region ConstructorRelated - public SoundBase() + public SoundDB() { m_UserDB = new Dictionary(); m_SoundPlayerStack = new List(); @@ -28,6 +31,27 @@ public SoundBase() this.m_Delay = PrivateSettings.GetInstance().Delay; this.m_SoundBaseFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "BasicTwitchSoundPlayer", "Sounds.xml"); SoundList = SoundStorageXML.LoadSoundBase(m_SoundBaseFile); + RebuildDictionary(); + if (MainForm.TwitchSocket != null) + MainForm.TwitchSocket.OnChannelPointsRedeem += PlaySoundIfExists; + } + + public void RebuildDictionary() + { + RewardsToSound.Clear(); + foreach (var entry in SoundList) + { + if (string.IsNullOrEmpty(entry.RewardID)) + continue; + + if (RewardsToSound.ContainsKey(entry.RewardID)) + { + MainForm.Instance.ThreadSafeAddPreviewText($"Sound entry {entry.RewardName} already present in dictionary!", LineType.SoundCommand); + continue; + } + + RewardsToSound.Add(entry.RewardID, entry); + } } #endregion @@ -54,10 +78,19 @@ internal void ChangeVolume(float volume) } #endregion - public bool PlaySoundIfExists(string user, string cmd, TwitchRightsEnum userLevel, bool IgnoreCooldowns = false) + public void SetDelay(int delay) { - if (user == null) - return false; + this.m_Delay = delay; + PrivateSettings.GetInstance().Delay = delay; + } + + public void PlaySoundIfExists(ChannelPointRedeemRequest redeem) + { + if (redeem.state != RedemptionStates.UNFULFILLED) + return; + + if (redeem.userId == null) + return; //Iterate through existing sound players for (int i = m_SoundPlayerStack.Count - 1; i >= 0; i--) @@ -71,55 +104,46 @@ public bool PlaySoundIfExists(string user, string cmd, TwitchRightsEnum userLeve } //Check if our db has a user and if not add him - if (!m_UserDB.ContainsKey(user)) + if (!m_UserDB.ContainsKey(redeem.userId)) { - m_UserDB.Add(user, DateTime.MinValue); + m_UserDB.Add(redeem.userId, DateTime.MinValue); } - - //check user cooldown - if (m_UserDB[user] + TimeSpan.FromSeconds(m_Delay) < DateTime.Now || IgnoreCooldowns) + if (RewardsToSound.TryGetValue(redeem.rewardId, out SoundEntry sound)) { - //iterate between all files in a sound list - for (int i = 0; i < SoundList.Count; i++) + //check user cooldown + if (m_UserDB[redeem.userId] + TimeSpan.FromSeconds(m_Delay) < DateTime.Now) { - //if sound is found - if (SoundList[i].GetRewardName() == cmd) - { - string filename = SoundList[i].GetFile(m_RNG); - for (int j = 0; j < m_SoundPlayerStack.Count; j++) - { - //Just so we don't play the same sounds at the same time - if (filename == m_SoundPlayerStack[j].fullFileName) - return false; - } - //Sound is found, is not played allocate a new player, start playing it, write down when user started playing a sound so he's under cooldown - - PrivateSettings programSettings = PrivateSettings.GetInstance(); - NSoundPlayer player = new NSoundPlayer(programSettings.OutputDevice, SoundList[i].GetFile(m_RNG), programSettings.Volume); - TimeSpan length = player.GetTimeLenght(); - m_SoundPlayerStack.Add(player); - m_UserDB[user] = DateTime.Now + length; + //Sound is found, is not played allocate a new player, start playing it, write down when user started playing a sound so he's under cooldown + PrivateSettings programSettings = PrivateSettings.GetInstance(); + NSoundPlayer player = new NSoundPlayer(programSettings.OutputDevice, sound.GetFile(m_RNG), programSettings.Volume * sound.Volume); + TimeSpan length = player.GetTimeLenght() + TimeSpan.FromSeconds(1); + m_SoundPlayerStack.Add(player); + m_UserDB[redeem.userId] = DateTime.Now + length; - return true; - } + MainForm.TwitchSocket.UpdateRedemptionStatus(redeem, KrakenConnections.RedemptionStates.FULFILLED); + } + else + { + MainForm.TwitchSocket.UpdateRedemptionStatus(redeem, KrakenConnections.RedemptionStates.CANCELED); } } - Debug.WriteLine("User " + user + " has to wait " + (DateTime.Now - (m_UserDB[user] + TimeSpan.FromSeconds(m_Delay))).TotalSeconds + " seconds."); - return false; } - internal void Close() + public void Close() { for (int i = 0; i < m_SoundPlayerStack.Count; i++) { m_SoundPlayerStack[i].Dispose(); } + if (MainForm.TwitchSocket != null) + MainForm.TwitchSocket.OnChannelPointsRedeem -= PlaySoundIfExists; } - internal void Save() + public void Save() { SoundStorageXML.SaveSoundBase(m_SoundBaseFile, SoundList); + RebuildDictionary(); } } diff --git a/SoundDatabaseEditor/DB_Editor.Designer.cs b/SoundDatabaseEditor/DB_Editor.Designer.cs index 001db18..f3d4056 100644 --- a/SoundDatabaseEditor/DB_Editor.Designer.cs +++ b/SoundDatabaseEditor/DB_Editor.Designer.cs @@ -85,10 +85,9 @@ private void InitializeComponent() this.iconList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("iconList.ImageStream"))); this.iconList.TransparentColor = System.Drawing.Color.Transparent; this.iconList.Images.SetKeyName(0, "sound_player_icon_bundled.ico"); - this.iconList.Images.SetKeyName(1, "audio-volume-high-4.ico"); - this.iconList.Images.SetKeyName(2, "star.ico"); - this.iconList.Images.SetKeyName(3, "note.ico"); - this.iconList.Images.SetKeyName(4, "accessories-date.ico"); + this.iconList.Images.SetKeyName(1, "star.ico"); + this.iconList.Images.SetKeyName(2, "note.ico"); + this.iconList.Images.SetKeyName(3, "audio-volume-high-4.ico"); // // tableLayoutPanel2 // @@ -176,7 +175,7 @@ private void InitializeComponent() // this.tableLayoutPanel5.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; this.tableLayoutPanel5.ColumnCount = 1; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 166F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 169F)); this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); this.tableLayoutPanel5.Controls.Add(this.B_SoundPlayBackSettings, 0, 0); this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Left; @@ -190,7 +189,7 @@ private void InitializeComponent() // B_SoundPlayBackSettings // this.B_SoundPlayBackSettings.Anchor = System.Windows.Forms.AnchorStyles.None; - this.B_SoundPlayBackSettings.Location = new System.Drawing.Point(7, 4); + this.B_SoundPlayBackSettings.Location = new System.Drawing.Point(8, 4); this.B_SoundPlayBackSettings.Name = "B_SoundPlayBackSettings"; this.B_SoundPlayBackSettings.Size = new System.Drawing.Size(154, 23); this.B_SoundPlayBackSettings.TabIndex = 6; @@ -245,6 +244,7 @@ private void InitializeComponent() this.MinimumSize = new System.Drawing.Size(726, 564); this.Name = "DB_Editor"; this.Text = "Sound Database Editor"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.DB_Editor_FormClosed); this.Load += new System.EventHandler(this.DB_Editor_Load); this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel2.ResumeLayout(false); diff --git a/SoundDatabaseEditor/DB_Editor.cs b/SoundDatabaseEditor/DB_Editor.cs index 51fd484..b0b4076 100644 --- a/SoundDatabaseEditor/DB_Editor.cs +++ b/SoundDatabaseEditor/DB_Editor.cs @@ -1,235 +1,237 @@ using BasicTwitchSoundPlayer.Extensions; -using BasicTwitchSoundPlayer.Structs; +using BasicTwitchSoundPlayer.SoundStorage; using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Windows.Forms; namespace BasicTwitchSoundPlayer.SoundDatabaseEditor { public partial class DB_Editor : Form - { - public const string NodeNameEntry = "Entry"; + { + public const string NodeNameEntry = "Entry"; public const string NodeDescription = "Description"; public const string NodeNameFiles = "Files"; - - public List Sounds; - char PrefixCharacter; - - public DB_Editor(List Sounds, char PrefixCharacter) - { - this.PrefixCharacter = PrefixCharacter; - this.Sounds = Sounds; - InitializeComponent(); - } - - private void DB_Editor_Load(object sender, EventArgs e) - { - foreach(var Sound in Sounds) - { - sndTreeView.Nodes.Add(Sound.ToTreeNode()); - } - } - - private TreeNode GetRootSoundNode(TreeNode Node) - { - while(Node.Parent != null) - { - Node = Node.Parent; - } - return Node; - } - - private void EditEntry() - { - if (sndTreeView.SelectedNode != null) - { - var SndNode = GetRootSoundNode(sndTreeView.SelectedNode); - int index = sndTreeView.SelectedNode.Index; - var dialForm = new EditDialogues.AddEditNewEntryDialog(SndNode.ToSoundEntry()); - DialogResult res = dialForm.ShowDialog(); - - if(res == DialogResult.OK) - { - sndTreeView.Nodes[index].Remove(); - sndTreeView.Nodes.Insert(index, dialForm.ReturnSound.ToTreeNode()); - } - } - } - - private void RemoveEntry() - { - if(sndTreeView.SelectedNode != null) - { - var SndNode = GetRootSoundNode(sndTreeView.SelectedNode); - sndTreeView.Nodes.Remove(SndNode); - } - } - - #region ButtonEvents - private void SndTreeView_DoubleClick(object sender, EventArgs e) - { - var SelectedNode = sndTreeView.SelectedNode; - if (SelectedNode != null) - { - var RootSndNode = GetRootSoundNode(SelectedNode); - sndTreeView.SelectedNode = RootSndNode; - EditEntry(); - } - } - - private void B_Save_Click(object sender, EventArgs e) - { - this.Sounds = TreeNodesToSoundsEntryList(sndTreeView); - this.DialogResult = DialogResult.OK; - this.Close(); - } - - private List TreeNodesToSoundsEntryList(TreeView tree) - { - this.Sounds = new List(); //Cause I can't be bothered to test whatever it's a hidden pointer and propages everywhere or not - for(int i=0; i SoundsCopy; + char PrefixCharacter; + + public DB_Editor(List Sounds, char PrefixCharacter) + { + this.PrefixCharacter = PrefixCharacter; + + this.SoundsCopy = new List(Sounds.Count); + foreach (SoundEntry SoundEntry in Sounds) + this.SoundsCopy.Add(SoundEntry.CreateCopy()); + + this.SoundsCopy = Sounds; + InitializeComponent(); + Instance = this; + } + + private void DB_Editor_FormClosed(object sender, FormClosedEventArgs e) + { + Instance = null; + } + + private void DB_Editor_Load(object sender, EventArgs e) + { + foreach (var Sound in SoundsCopy) + { + sndTreeView.Nodes.Add(Sound.ToTreeNode()); + } + } + + private TreeNode GetRootSoundNode(TreeNode Node) + { + while (Node.Parent != null) + { + Node = Node.Parent; + } + return Node; + } + + private void EditEntry() + { + if (sndTreeView.SelectedNode != null) + { + TreeNode SndNode = GetRootSoundNode(sndTreeView.SelectedNode); + int index = sndTreeView.SelectedNode.Index; + EditDialogues.AddEditNewEntryDialog dialForm = new EditDialogues.AddEditNewEntryDialog(SoundsCopy[index]); + DialogResult res = dialForm.ShowDialog(); + + if (res == DialogResult.OK) + { + sndTreeView.Nodes[index].Remove(); + SoundsCopy[index] = dialForm.ReturnSound; + sndTreeView.Nodes.Insert(index, dialForm.ReturnSound.ToTreeNode()); + } + } + } + + private void RemoveEntry() + { + if (sndTreeView.SelectedNode != null) + { + var id = sndTreeView.SelectedNode.Index; + SoundsCopy.RemoveAt(id); + sndTreeView.Nodes.RemoveAt(id); + } + } + + #region ButtonEvents + private void SndTreeView_DoubleClick(object sender, EventArgs e) + { + var SelectedNode = sndTreeView.SelectedNode; + if (SelectedNode != null) + { + var RootSndNode = GetRootSoundNode(SelectedNode); + sndTreeView.SelectedNode = RootSndNode; + EditEntry(); + } + } + + private void B_Save_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void B_AddEntry_Click(object sender, EventArgs e) + { + EditDialogues.AddEditNewEntryDialog newEntryDialog = new EditDialogues.AddEditNewEntryDialog(); + DialogResult res = newEntryDialog.ShowDialog(); + if (res == DialogResult.OK) + { + SoundsCopy.Add(newEntryDialog.ReturnSound); + sndTreeView.Nodes.Add(newEntryDialog.ReturnSound.ToTreeNode()); + } + } + + + private void B_Edit_Click(object sender, EventArgs e) + { + EditEntry(); + } + + private void B_RemoveEntry_Click(object sender, EventArgs e) + { + RemoveEntry(); + } + #endregion + + #region PressKeyEvents + private void SndTreeView_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Delete) + { + if (sndTreeView.SelectedNode != null) + { + var parent = GetRootSoundNode(sndTreeView.SelectedNode); + + sndTreeView.Nodes.Remove(parent); + } + } + else if (e.KeyCode == Keys.Enter) + { + if (sndTreeView.SelectedNode != null) + { + EditEntry(); + } + } + } + #endregion + + private void B_Sort_Click(object sender, EventArgs e) + { + SoundsCopy = SoundsCopy.OrderBy(x => x.RewardName).ToList(); + sndTreeView.Nodes.Clear(); + foreach (var Sound in SoundsCopy) + { + sndTreeView.Nodes.Add(Sound.ToTreeNode()); + } + } + + private void B_SoundPlayBackSettings_Click(object sender, EventArgs e) + { + using (EditDialogues.SoundPlaybackSettingsDialog spsDialog = new EditDialogues.SoundPlaybackSettingsDialog()) + { + var result = spsDialog.ShowDialog(); + if (result == DialogResult.OK) + { + var setings = PrivateSettings.GetInstance(); setings.OutputDevice = spsDialog.SelectedDevice; setings.SaveSettings(); - } - } - } - } - - #region Extensions - static class EditorExtensions - { - public static SoundEntry ToSoundEntry(this TreeNode node) - { - if (node.Name == DB_Editor.NodeNameEntry) - { - string Command = node.Text; - string[] Files = new string[node.Nodes[DB_Editor.NodeNameFiles].Nodes.Count]; - string Description = node.Nodes[DB_Editor.NodeDescription].Text; - - for (int i = 0; i < Files.Length; i++) - { - Files[i] = node.Nodes[DB_Editor.NodeNameFiles].Nodes[i].Text; - } - - return new SoundEntry(Command, Description, Files); - } - else - return new SoundEntry(); - } - - public static TreeNode ToTreeNode(this SoundEntry snd) - { - if (snd.GetIsProperEntry()) - { - var newNode = new TreeNode(snd.GetRewardName()) - { - Name = DB_Editor.NodeNameEntry, - ImageIndex = 0 - }; + } + } + } + } + + #region Extensions + static class EditorExtensions + { + public static TreeNode ToTreeNode(this SoundEntry snd) + { + if (snd.GetIsProperEntry()) + { + var newNode = new TreeNode(snd.RewardName) + { + Name = DB_Editor.NodeNameEntry, + ImageIndex = 0 + }; var Description = newNode.Nodes.Add(DB_Editor.NodeDescription); - Description.ImageIndex = 1; - Description.SelectedImageIndex = 1; - Description.StateImageIndex = 1; + Description.ImageIndex = 2; + Description.SelectedImageIndex = 2; + Description.StateImageIndex = 2; Description.Name = DB_Editor.NodeDescription; - Description.Text = snd.GetDescription(); + Description.Text = snd.Description; var FilesNode = newNode.Nodes.Add(DB_Editor.NodeNameFiles); - FilesNode.ImageIndex = 2; - FilesNode.SelectedImageIndex = 2; - FilesNode.StateImageIndex = 2; - FilesNode.Name = DB_Editor.NodeNameFiles; - foreach (var file in snd.GetAllFiles()) - { - if(file.RemoveWhitespaces() != String.Empty) - { - var fNode = FilesNode.Nodes.Add(file); - fNode.ImageIndex = 2; - fNode.SelectedImageIndex = 2; - fNode.StateImageIndex = 2; - } - } - - return newNode; - } - else - throw new Exception(snd.GetRewardName() + " is an incorrect entry!"); - } - } - #endregion + FilesNode.ImageIndex = 1; + FilesNode.SelectedImageIndex = 1; + FilesNode.StateImageIndex = 1; + FilesNode.Name = DB_Editor.NodeNameFiles; + + var VolumeNode = newNode.Nodes.Add(DB_Editor.NodeNameVolume); + VolumeNode.ImageIndex = 3; + VolumeNode.SelectedImageIndex = 3; + VolumeNode.StateImageIndex = 3; + VolumeNode.Name = DB_Editor.NodeNameVolume; + VolumeNode.Text = snd.Volume.ToString("0%"); + + var PointsNode = newNode.Nodes.Add(DB_Editor.NodeNamePoints); + PointsNode.ImageIndex = 3; + PointsNode.SelectedImageIndex = 3; + PointsNode.StateImageIndex = 3; + PointsNode.Name = DB_Editor.NodeNamePoints; + PointsNode.Text = snd.AmountOfPoints.ToString(); + + foreach (var file in snd.Files) + { + if (file.RemoveWhitespaces() != String.Empty) + { + var fNode = FilesNode.Nodes.Add(file); + fNode.ImageIndex = 1; + fNode.SelectedImageIndex = 1; + fNode.StateImageIndex = 1; + } + } + + return newNode; + } + else + throw new Exception(snd.RewardName + " is an incorrect entry!"); + } + } + #endregion } diff --git a/SoundDatabaseEditor/DB_Editor.resx b/SoundDatabaseEditor/DB_Editor.resx index 3a9b322..80f86ec 100644 --- a/SoundDatabaseEditor/DB_Editor.resx +++ b/SoundDatabaseEditor/DB_Editor.resx @@ -124,88 +124,70 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADW - EgAAAk1TRnQBSQFMAgEBBQEAAVABAAFQAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABIAMAAQEBAAEgBgABIP8AFwACBgEIAf8BdQF0AXUB/wFjAWIBYwH/AWQBYwFmAf8BawFpAWsB/wFv - AW4BbwH/AXMBcAFyAf8BeAF3AXgB/wF2AXQBdgH/AW4BawFtAf8BhQGBAYMB/wGbAZcBmQH/AZ8BnQGf - Af/PAAH/AecB5gHnAf8B8ALvAf8D6AH/AfUB9AHzAf8B7QHuAe0B/wPnDf8B4gHgAeEB/wH0AfAB8QX/ - zwAB/wHaAdsB2gH/A+gB/wPqAf8DQQH/A68B/wPdAf8DLAH/Az4B/wFyAXMBcQH/A+MB/wHYAdcB2AH/ - AeUB4gHjAf/PAAH/A94B/wPvAf8D9AH/AwAB/wOTBf8DIQH/AwAB/wOWAf8BxgLHAf8D/gH/AcABvQHA - Af/PAAH/A+YB/wP+Bf8DAgH/A50F/wPxAf8DGQH/A00J/wHDAcIBwwH/zwAB/wPxAf8D6gH/A+oB/wMO - Af8Dog3/AwgB/wN1Bf8B1gHUAdYB/88AAv8B/gL/AdgC2QH/AQYBBwEIAf8DAAH/Aq8BsAX/A0AF/wKM - AY0B/wMJBf8C6AHpAf/PAAH/Af4H/wHgAeMB7AH/AwAB/wGtAbEBvAX/AUgBTAFWAf8BBwEKARQB/wEB - AQUBDwH/AZsBoAGqBf8B8wH0Af4B/wMAAf/KAAECAf8B/gH7AfUJ/wHkAeMB2gH/AfQB8gHtCf8B1AHT - Ac4B/wHjAuIJ/wHyAfAB6wH/AgABCQH/yQABAwEVAf8BywGVAQwB/wHgAbABMwH/Ad0BtAFIAf8B3gGu - ATAB/wHMAZABAAH/AcMBhQEAAf8B1QGiASIB/wHaAaIBFAH/AdIBlAEAAf8B0QGdARYB/wHYAZsBAwH/ - AcQBkgEUAf8BBQEMASAB/8kAAQYBGgH/Ac0BlwEVAf8B6gHAAVUB/wHdAbsBZgH/AdkBsgFOAf8B2wG1 - AU4B/wHBAXsBAAH/AdYBqQE1Af8B2AGnATAB/wG5AXUBAAH/AdIBoQElAf8B4gGxATQB/wHFAZMBGQH/ - AQgBEAEnAf/IAAEGAQ0BIQH/Ad8BowERAf8B6gGkAQAB/wGIAWQBGwH/AbQBhQEOAf8B4gGfAQAB/wHX - AZUBAAH/AeMBqAETAf8B1wGYAQAB/wF2AVsBGwH/AdIBngEYAf8B6wGnAQAB/wHXAaIBGgH/ARMBGgEw - Af/MAAGgAXkBJQH/AZsBaQEAAf8BcwFpAU8B/wGNAXYBSgH/AZYBaAEAAf8BlwFsAQ4B/wGYAWsBDgH/ - AZIBZgEDAf8BcAFvAW4B/wGWAXQBLAH/AZoBagEAAf8BnQF5ASwB/9gAAZ0BoAGtAf8UAAGbAZ4BpwH/ - 5AAB7ALrAf8UAAL9AfwB/9UAAaYBAAH/AQABtQEAAf8BAAGkAQAB/wEAAagBAAH/AQABqAEAAf8BAAGo - AQAB/wEAAagBAAH/AQABsAEAAf8BAAGlAQAB/wEAAagBAAH/AQABrwEAAf8BAAF1AQAB/wEAASABAAH/ - AwAB/8kAAbEBAAH/AQABEwEAAf8BAAG+AQAB/wEAAagBAAH/AQABqAEAAf8BAAGoAQAB/wEAAcIBAAH/ - AQABCgEAAf8BAAHFAQAB/wEAAaQBAAH/AQABpAEAAf8BAAHGAQAB/wEAAb8BAAH/AQAB2QEAAf8BAAEC - AQAB/1AAASEBrAHeAf8BHwGpAdwB/wEdAaYB2wH/FAABCAGHAc8B/wEEAYEBzAH/TwAB/wEAAakBAAH/ - AQABowEAAf8BAAG3AQAB/wEAAckBAAH/AQABvQEAAf8BAAESAQAB/wEAAYwBAAH/AQABdgEAAf8BAAHU - AQAB/wEAAWMBLQH/AgABoQH/AgABnAH/AgABmQH/AQABdQEAAf8DQwF2TAABIwGvAd8B/wFIAcsB7wH/ - ATEBtwHlAf8BHQGnAdwB/wEcAaQB2gH/ARkBoQHZAf8BFQGaAdcB/wEiAaMB3QH/ATEBrgHlAf8BCQGI - Ac8B/xQAAUUBowHqAf8BPgGeAegB/wE2AZoB5wH/AS0BlQHmAf8BFgGMAeIB/wEYAYwB4gH/ARkBjQHk - Af8BEQGJAeMB/wEKAYMB4wH/AQIBgQHhAf8BAAF1AeAB/wEAAXEB3wH/CAADWAG9AQAB3AEAAf8BAAFG - AQAB/wEAAS4BAAH/AQABRAEAAf8BAAE7AQAB/wEAAa0BAAH/AQABqgEAAf8BAAHVAQAB/wIAAbMB/wEA - ARUBSgH/AQABOgEoAf8BAAFNAS4B/wEAATEBQgH/AwAB/x8AAf8wAAElAbIB4AH/AUUBygHuAf8BTAHO - AfEB/wFIAcgB7wH/ATgBugHoAf8BMQG1AeUB/wE+Ab0B6wH/ATwBugHrAf8BNgGzAegB/wEOAY8B0gH/ - FAABTQGnAesB/wG2AeYB+QH/AZUB0QHxAf8BQwGnAegB/wFSAa8B6wH/AXUBwgHuAf8BuwHuAfsB/wG6 - Ae4B+QH/AbcB7QH5Af8BswHtAfkB/wGyAe0B+QH/AQABdQHiAf8IAAM9AWcBAAEQAQAB/wEAAewBAAH/ - AQABRwEAAf8BAAFYAQAB/wEAAboBAAH/AQABqQEAAf8BAAG+AQAB/wIAAcoB/wMAAf8DPwFsA1ABnANR - AaIDUAGcHwAB/wMAAf8XAAH/GAABJwG1AeIB/wFBAcgB7AH/AUEBzAHxAf8BKQHDAe0B/wE6AcQB7gH/ - AT4BwwHtAf8BJAG2AeoB/wEeAbEB6AH/ATQBtAHnAf8BEwGXAdUB/xQAAVUBqwHrAf8BtAHjAfgB/wEq - AZ8B5gH/ATMBqwHpAf8BqAHpAfgB/wFGAboB6wH/AVIB1gHzAf8BSAHUAfMB/wFAAdIB8gH/AToB0QHy - Af8BtAHtAfkB/wEAAYEB4wH/CwAB/wEAASMBAAH/AQABgAEAAf8BAAHMAQAB/wEAAbMBAAH/AQABogEA - Af8BAAHIAQAB/wIAAc0B/wMAAf8MAAMzAVEDVgGzAxsBJhcAAf8DAAH/AwAB/xcAAf8cAAE8AcYB6gH/ - AU8B0gHyAf8BHwHCAe0B/wEbAb0B7AH/ARcBtwHqAf8BEwGzAekB/wEuAbkB6gH/ATIBswHmAf8BGAGf - AdgB/xQAAVUBrAHsAf8BTQGtAesB/wE/Aa8B6wH/AawB6QH5Af8BrQHqAfoB/wFOAbsB6wH/AVoB2QH0 - Af8BUgHWAfMB/wFIAdQB8wH/AUEB0gHzAf8BtwHtAfkB/wEJAYUB5AH/CQABgQEAAf8BAAFjAQAB/wEA - AZkBAAH/AQABpgEAAf8BAAGoAQAB/wEAAdUBAAH/AgABwQH/AQABFwEAAf8TAAX/A+AB/wMjAf8LAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8sAAEsAbwB5AH/AVEB1QHyAf8BPgHQAfIB/wEhAcQB7gH/AR0BwAHt - Af8BGgG7AesB/wEVAbYB6QH/ARkBtAHpAf8BPgG9AesB/wEbAaQB2gH/FAABVgGtAesB/wGDAcMB8AH/ - AdMB8wH8Af8B0QHzAfwB/wGyAe0B+gH/AVMBvAHtAf8BZAHaAfQB/wFaAdkB9AH/AVIB1gHzAf8BSQHU - AfMB/wG6Ae4B+wH/ARIBigHlAf8IAAPqBv8B9wL/AQABcwEAAf8BAAGnAQAB/wEAAQ8BUgH/AwAB/wM2 - AVgMAAMYASADAwEEAz4BagMAAf8DDgH/CwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DwAB/wcAAf8QAAEv + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACa + DgAAAk1TRnQBSQFMAgEBBAEAAXgBAAF4AQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8AIwABpgEAAf8BAAG1 + AQAB/wEAAaQBAAH/AQABqAEAAf8BAAGoAQAB/wEAAagBAAH/AQABqAEAAf8BAAGwAQAB/wEAAaUBAAH/ + AQABqAEAAf8BAAGvAQAB/wEAAXUBAAH/AQABIAEAAf8DAAH/yQABsQEAAf8BAAETAQAB/wEAAb4BAAH/ + AQABqAEAAf8BAAGoAQAB/wEAAagBAAH/AQABwgEAAf8BAAEKAQAB/wEAAcUBAAH/AQABpAEAAf8BAAGk + AQAB/wEAAcYBAAH/AQABvwEAAf8BAAHZAQAB/wEAAQIBAAH/EAABIQGsAd4B/wEfAakB3AH/AR0BpgHb + Af8UAAEIAYcBzwH/AQQBgQHMAf+PAAH/AQABqQEAAf8BAAGjAQAB/wEAAbcBAAH/AQAByQEAAf8BAAG9 + AQAB/wEAARIBAAH/AQABjAEAAf8BAAF2AQAB/wEAAdQBAAH/AQABYwEtAf8CAAGhAf8CAAGcAf8CAAGZ + Af8BAAF1AQAB/wNDAXYMAAEjAa8B3wH/AUgBywHvAf8BMQG3AeUB/wEdAacB3AH/ARwBpAHaAf8BGQGh + AdkB/wEVAZoB1wH/ASIBowHdAf8BMQGuAeUB/wEJAYgBzwH/FAABRQGjAeoB/wE+AZ4B6AH/ATYBmgHn + Af8BLQGVAeYB/wEWAYwB4gH/ARgBjAHiAf8BGQGNAeQB/wERAYkB4wH/AQoBgwHjAf8BAgGBAeEB/wEA + AXUB4AH/AQABcQHfAf9IAANYAb0BAAHcAQAB/wEAAUYBAAH/AQABLgEAAf8BAAFEAQAB/wEAATsBAAH/ + AQABrQEAAf8BAAGqAQAB/wEAAdUBAAH/AgABswH/AQABFQFKAf8BAAE6ASgB/wEAAU0BLgH/AQABMQFC + Af8DAAH/EAABJQGyAeAB/wFFAcoB7gH/AUwBzgHxAf8BSAHIAe8B/wE4AboB6AH/ATEBtQHlAf8BPgG9 + AesB/wE8AboB6wH/ATYBswHoAf8BDgGPAdIB/xQAAU0BpwHrAf8BtgHmAfkB/wGVAdEB8QH/AUMBpwHo + Af8BUgGvAesB/wF1AcIB7gH/AbsB7gH7Af8BugHuAfkB/wG3Ae0B+QH/AbMB7QH5Af8BsgHtAfkB/wEA + AXUB4gH/IwAB/yQAAz0BZwEAARABAAH/AQAB7AEAAf8BAAFHAQAB/wEAAVgBAAH/AQABugEAAf8BAAGp + AQAB/wEAAb4BAAH/AgABygH/AwAB/wM/AWwDUAGcA1EBogNQAZwUAAEnAbUB4gH/AUEByAHsAf8BQQHM + AfEB/wEpAcMB7QH/AToBxAHuAf8BPgHDAe0B/wEkAbYB6gH/AR4BsQHoAf8BNAG0AecB/wETAZcB1QH/ + FAABVQGrAesB/wG0AeMB+AH/ASoBnwHmAf8BMwGrAekB/wGoAekB+AH/AUYBugHrAf8BUgHWAfMB/wFI + AdQB8wH/AUAB0gHyAf8BOgHRAfIB/wG0Ae0B+QH/AQABgQHjAf8fAAH/AwAB/xcAAf8PAAH/AQABIwEA + Af8BAAGAAQAB/wEAAcwBAAH/AQABswEAAf8BAAGiAQAB/wEAAcgBAAH/AgABzQH/AwAB/wwAAzMBUQNW + AbMDGwEmFAABPAHGAeoB/wFPAdIB8gH/AR8BwgHtAf8BGwG9AewB/wEXAbcB6gH/ARMBswHpAf8BLgG5 + AeoB/wEyAbMB5gH/ARgBnwHYAf8UAAFVAawB7AH/AU0BrQHrAf8BPwGvAesB/wGsAekB+QH/Aa0B6gH6 + Af8BTgG7AesB/wFaAdkB9AH/AVIB1gHzAf8BSAHUAfMB/wFBAdIB8wH/AbcB7QH5Af8BCQGFAeQB/xsA + Af8DAAH/AwAB/xcAAf8NAAGBAQAB/wEAAWMBAAH/AQABmQEAAf8BAAGmAQAB/wEAAagBAAH/AQAB1QEA + Af8CAAHBAf8BAAEXAQAB/xMABf8D4AH/AyMB/wwAASwBvAHkAf8BUQHVAfIB/wE+AdAB8gH/ASEBxAHu + Af8BHQHAAe0B/wEaAbsB6wH/ARUBtgHpAf8BGQG0AekB/wE+Ab0B6wH/ARsBpAHaAf8UAAFWAa0B6wH/ + AYMBwwHwAf8B0wHzAfwB/wHRAfMB/AH/AbIB7QH6Af8BUwG8Ae0B/wFkAdoB9AH/AVoB2QH0Af8BUgHW + AfMB/wFJAdQB8wH/AboB7gH7Af8BEgGKAeUB/xMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/yAAA+oG/wH3 + Av8BAAFzAQAB/wEAAacBAAH/AQABDwFSAf8DAAH/AzYBWAwAAxgBIAMDAQQDPgFqAwAB/wMOAf8IAAEv AcEB5gH/AUIBzgHtAf8BVgHbAfUB/wEoAc0B8QH/ASQByAHvAf8BHwHDAe4B/wEcAb4B7AH/ARgBuAHq Af8BFAG0AekB/wFBAcAB7AH/AS8BsgHkAf8BHAGkAdsB/xAAAWkBtgHuAf8BngHRAfQB/wFwAcoB8AH/ AWoBxwHwAf8BZgHGAfAB/wFYAb4B7QH/AW4B3QH1Af8BZAHbAfQB/wFcAdkB9AH/AVMB1gHzAf8BvgHv - AfsB/wEbAY8B6AH/CAAD6gH/A/0F/wH3AcYB9wH/AQAB3AEAAf8CAAGaAf8DTQGSCAADUgGoA0wBkQO2 - Af8DTgGWGwAB/wMAAf8DAAH/AwAB/wMAAf8kAAEyAcYB6AH/AUQB0gHuAf8BWwHhAfYB/wE5AdYB9AH/ - ASoBzwHyAf8BJgHLAfAB/wEiAcYB7wH/AR4BwQHtAf8BGgG8AesB/wEXAbcB6gH/ARgBtAHpAf8BPwG+ - AewB/wEuAbIB5AH/ARwBpQHbAf8MAAFxAbkB8AH/AdsB9gH8Af8BnAHnAfgB/wGVAeUB+AH/AY8B4wH3 - Af8BhgHhAfcB/wF2Ad8B9QH/AW4B3QH1Af8BZQHbAfQB/wFcAdkB9AH/AcAB8AH7Af8BJAGUAekB/wgA - A4sF/wMqAf8BJwEYAScB/wEAAU4BIQH/AwAB/wwAAzYB/wMLAf8DAAX/A04BlhsAAf8DAAH/AwAB/xcA - Af8MAAE1AcoB6gH/AUUB1QHvAf8BUAHcAfIB/wFWAd4B9QH/AVgB3gH1Af8BVwHcAfYB/wFAAdQB8wH/ - ASUByQHvAf8BIQHEAe4B/wEtAcQB7QH/AUgByQHvAf8BRAHEAe4B/wE9Ab4B6wH/ATUBtwHnAf8BKwGw - AeIB/wEdAaYB2wH/CAABjAHFAfQB/wHdAfcB/QH/AaIB6AH4Af8BnQHnAfgB/wGVAeUB+AH/AY8B4wH3 - Af8BhwHhAfcB/wF3Ad8B9gH/AW8B3QH1Af8BZQHbAfQB/wHEAfAB+wH/AS8BmAHqAf8LAAH/A8gB/wMA - Af8DAAH/AQABBwFwAf8DAAH/Aw4BEgsAAf8DuAH/AwYBBwMAAf8D/QH/A04BlhsAAf8DAAH/FwAB/xQA - ATQByQHpAf8BMwHHAekB/wEyAcUB6AH/AUEBzgHtAf8BUwHZAfQB/wE/AdMB8gH/ATIBywHwAf8BTQHP - AfEB/wE2Ab8B6AH/ASYBtAHhAf8BJQGxAeAB/wEjAa4B3wH/EAABkwHIAfUB/wHhAfcB/QH/AaoB6gH5 - Af8BowHoAfkB/wGdAecB+AH/AZYB5QH4Af8BkAHjAfcB/wGIAeEB9wH/AYAB3wH2Af8BbwHdAfUB/wHI - AfEB+wH/ATgBngHrAf8MAANOAZYBBwEeAQcB/wEAAfUBAAH/AWsBQwGQBf8DdQH/A1UBsQQAA04BlAT/ - A0QBeAcAAf8D8gH/AwAB/xsAAf84AAEyAcUB6AH/AUEBzgHtAf8BVQHZAfQB/wFRAdYB8wH/ATsBxQHq - Af8BKgG5AeMB/xwAAZcBzAH2Af8B+QH9Av8B8AH7Af4B/wHwAfsB/gH/AfAB/AH+Af8B7gH7Af0B/wHv - AfsB/QH/Ae8B+wH9Af8B8AH7Af0B/wHwAfsB/QH/AfcB/QH+Af8BQgGjAe0B/xcAAf8DUAGfAzsJ/wNb - AcoDFAEbA9wB/wMAAf8EAAQCAwMB/wMAAf9YAAEyAcYB6AH/AU4B1gHyAf8BUQHWAfMB/wEuAb8B5QH/ - IAABsgHcAf0B/wH6Af4C/wH6Af4C/wH6Af4C/wH6Af4C/wH6Af4C/wH6Af0B/gH/AfoB/QL/AfoB/gL/ - AfoB/gL/AfoB/QL/AUsBqAHuAf8gAANaAcwDnQH/AyIBMQQAAyEB/wMHAf9sAAFAAc4B7QH/AUABzQHt - Af8BMAHCAecB/yAAAbYB3wH+Af8BogHSAfoB/wGcAdEB+QH/AZcBzQH4Af8BkgHKAfcB/wGMAcYB9gH/ - AYUBwgH1Af8BdgG/AfQB/wFuAboB9AH/AWYBtgHxAf8BXQGyAfAB/wFVAa0B8AH/JAADFQEcCwAB/wPW - Af8DDQERaAABNAHJAekB/wEzAccB6QH/hAADRgF+AwIB/wMKAQ3MAAFCAU0BPgcAAT4DAAEoAwABQAMA - ASADAAEBAQABAQYAAQEWAAP/AQAC/wYAAYABAwYAAYABAwYAAYABAwYAAYABAwYAAYABAwYAAYABAwYA - AYABAwYAAYABAQYAAYABAQYAAYABAQYAAYABAQYAAYABAQYAAcABAwYAAfcB3wYAAfcB3wcAAQMG/wEA - AQEC/wHjAecC/wIAAv8B4AEHAcABAwEAAQEB/QH/AeABBwHAAQMBAAEDAfkB9wHgAQcBwAEDAQABcQHx - AfcB8AEHAcABAwEAAfABwAH/AeABBwHAAQMBAAHgAcAB6wHAAQMBwAEDAQEBhwHgAf8BgAEBAcACAwGD - AfEB9wIAAcABAwEBAYEB+QH3AcABAwHAAQMBgAGIAf0B/wH4AR8BwAEDAeABCAL/AfwBPwHAAQMB/AFP - Av8B/gE/AcABAwH+AccC/wH+AX8D/wHHBv8L + AfsB/wEbAY8B6AH/EwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/DwAB/wcAAf8IAAPqAf8D/QX/AfcBxgH3 + Af8BAAHcAQAB/wIAAZoB/wNNAZIIAANSAagDTAGRA7YB/wNOAZYQAAEyAcYB6AH/AUQB0gHuAf8BWwHh + AfYB/wE5AdYB9AH/ASoBzwHyAf8BJgHLAfAB/wEiAcYB7wH/AR4BwQHtAf8BGgG8AesB/wEXAbcB6gH/ + ARgBtAHpAf8BPwG+AewB/wEuAbIB5AH/ARwBpQHbAf8MAAFxAbkB8AH/AdsB9gH8Af8BnAHnAfgB/wGV + AeUB+AH/AY8B4wH3Af8BhgHhAfcB/wF2Ad8B9QH/AW4B3QH1Af8BZQHbAfQB/wFcAdkB9AH/AcAB8AH7 + Af8BJAGUAekB/xcAAf8DAAH/AwAB/wMAAf8DAAH/IAADiwX/AyoB/wEnARgBJwH/AQABTgEhAf8DAAH/ + DAADNgH/AwsB/wMABf8DTgGWCAABNQHKAeoB/wFFAdUB7wH/AVAB3AHyAf8BVgHeAfUB/wFYAd4B9QH/ + AVcB3AH2Af8BQAHUAfMB/wElAckB7wH/ASEBxAHuAf8BLQHEAe0B/wFIAckB7wH/AUQBxAHuAf8BPQG+ + AesB/wE1AbcB5wH/ASsBsAHiAf8BHQGmAdsB/wgAAYwBxQH0Af8B3QH3Af0B/wGiAegB+AH/AZ0B5wH4 + Af8BlQHlAfgB/wGPAeMB9wH/AYcB4QH3Af8BdwHfAfYB/wFvAd0B9QH/AWUB2wH0Af8BxAHwAfsB/wEv + AZgB6gH/GwAB/wMAAf8DAAH/FwAB/w8AAf8DyAH/AwAB/wMAAf8BAAEHAXAB/wMAAf8DDgESCwAB/wO4 + Af8DBgEHAwAB/wP9Af8DTgGWDAABNAHJAekB/wEzAccB6QH/ATIBxQHoAf8BQQHOAe0B/wFTAdkB9AH/ + AT8B0wHyAf8BMgHLAfAB/wFNAc8B8QH/ATYBvwHoAf8BJgG0AeEB/wElAbEB4AH/ASMBrgHfAf8QAAGT + AcgB9QH/AeEB9wH9Af8BqgHqAfkB/wGjAegB+QH/AZ0B5wH4Af8BlgHlAfgB/wGQAeMB9wH/AYgB4QH3 + Af8BgAHfAfYB/wFvAd0B9QH/AcgB8QH7Af8BOAGeAesB/x8AAf8DAAH/FwAB/xAAA04BlgEHAR4BBwH/ + AQAB9QEAAf8BawFDAZAF/wN1Af8DVQGxBAADTgGUBP8DRAF4BwAB/wPyAf8DAAH/FAABMgHFAegB/wFB + Ac4B7QH/AVUB2QH0Af8BUQHWAfMB/wE7AcUB6gH/ASoBuQHjAf8cAAGXAcwB9gH/AfkB/QL/AfAB+wH+ + Af8B8AH7Af4B/wHwAfwB/gH/Ae4B+wH9Af8B7wH7Af0B/wHvAfsB/QH/AfAB+wH9Af8B8AH7Af0B/wH3 + Af0B/gH/AUIBowHtAf8jAAH/MwAB/wNQAZ8DOwn/A1sBygMUARsD3AH/AwAB/wQABAIDAwH/AwAB/xgA + ATIBxgHoAf8BTgHWAfIB/wFRAdYB8wH/AS4BvwHlAf8gAAGyAdwB/QH/AfoB/gL/AfoB/gL/AfoB/gL/ + AfoB/gL/AfoB/gL/AfoB/QH+Af8B+gH9Av8B+gH+Av8B+gH+Av8B+gH9Av8BSwGoAe4B/2AAA10BzAOd + Af8DIgExBAADIQH/AwcB/ywAAUABzgHtAf8BQAHNAe0B/wEwAcIB5wH/IAABtgHfAf4B/wGiAdIB+gH/ + AZwB0QH5Af8BlwHNAfgB/wGSAcoB9wH/AYwBxgH2Af8BhQHCAfUB/wF2Ab8B9AH/AW4BugH0Af8BZgG2 + AfEB/wFdAbIB8AH/AVUBrQHwAf9kAAMVARwLAAH/A9YB/wMNAREoAAE0AckB6QH/ATMBxwHpAf/EAANG + AX4DAgH/AwoBDcwAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/+CAAEDBv8BAAEB + AeMB5wT/AgAB4AEHAcABAwL/AQABAQHgAQcBwAEDAf0B/wEAAQMB4AEHAcABAwH5AfcBAAFxAfABBwHA + AQMB8QH3AQAB8AHgAQcBwAEDAcAB/wEAAeABwAEDAcABAwHAAesBAQGHAYABAQHAAQMB4AH/AQMBgwIA + AcABAwHxAfcBAQGBAcABAwHAAQMB+QH3AYABiAH4AR8BwAEDAf0B/wHgAQgB/AE/AcABAwL/AfwBTwH+ + AT8BwAEDAv8B/gHHAf4BfwX/AccG/ws= \ No newline at end of file diff --git a/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.Designer.cs b/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.Designer.cs index 7731090..8ea82a0 100644 --- a/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.Designer.cs +++ b/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.Designer.cs @@ -32,313 +32,436 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.TB_Command = new System.Windows.Forms.TextBox(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.label2 = new System.Windows.Forms.Label(); - this.ListB_Files = new System.Windows.Forms.ListBox(); - this.contextMenu_File = new System.Windows.Forms.ContextMenuStrip(this.components); - this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.removeFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); - this.label3 = new System.Windows.Forms.Label(); - this.CBox_RequiredRight = new System.Windows.Forms.ComboBox(); - this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_OK = new System.Windows.Forms.Button(); - this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); - this.label4 = new System.Windows.Forms.Label(); - this.RB_Description = new System.Windows.Forms.RichTextBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.contextMenu_File.SuspendLayout(); - this.tableLayoutPanel4.SuspendLayout(); - this.tableLayoutPanel5.SuspendLayout(); - this.tableLayoutPanel6.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 1; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 0, 4); - this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel6, 0, 3); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 5; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 33F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 120F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(459, 384); - this.tableLayoutPanel1.TabIndex = 0; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 64F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.TB_Command, 1, 0); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 1; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel2.Size = new System.Drawing.Size(453, 27); - this.tableLayoutPanel2.TabIndex = 0; - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(4, 7); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(57, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Command:"; - // - // TB_Command - // - this.TB_Command.Dock = System.Windows.Forms.DockStyle.Fill; - this.TB_Command.Location = new System.Drawing.Point(69, 4); - this.TB_Command.Name = "TB_Command"; - this.TB_Command.Size = new System.Drawing.Size(380, 20); - this.TB_Command.TabIndex = 1; - this.TB_Command.TextChanged += new System.EventHandler(this.TB_Command_TextChanged); - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; - this.tableLayoutPanel3.ColumnCount = 1; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); - this.tableLayoutPanel3.Controls.Add(this.ListB_Files, 0, 1); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 36); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 2; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(453, 154); - this.tableLayoutPanel3.TabIndex = 1; - // - // label2 - // - this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(4, 4); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(31, 13); - this.label2.TabIndex = 0; - this.label2.Text = "Files:"; - // - // ListB_Files - // - this.ListB_Files.AllowDrop = true; - this.ListB_Files.ContextMenuStrip = this.contextMenu_File; - this.ListB_Files.Dock = System.Windows.Forms.DockStyle.Fill; - this.ListB_Files.FormattingEnabled = true; - this.ListB_Files.Location = new System.Drawing.Point(4, 25); - this.ListB_Files.Name = "ListB_Files"; - this.ListB_Files.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; - this.ListB_Files.Size = new System.Drawing.Size(445, 125); - this.ListB_Files.TabIndex = 1; - this.ListB_Files.DragDrop += new System.Windows.Forms.DragEventHandler(this.ListB_Files_DragDrop); - this.ListB_Files.DragEnter += new System.Windows.Forms.DragEventHandler(this.ListB_Files_DragEnter); - // - // contextMenu_File - // - this.contextMenu_File.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.label3 = new System.Windows.Forms.Label(); + this.TB_RewardID = new System.Windows.Forms.TextBox(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.TB_RewardName = new System.Windows.Forms.TextBox(); + this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); + this.B_CreateReward = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_OK = new System.Windows.Forms.Button(); + this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); + this.label4 = new System.Windows.Forms.Label(); + this.RB_Description = new System.Windows.Forms.RichTextBox(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.label2 = new System.Windows.Forms.Label(); + this.ListB_Files = new System.Windows.Forms.ListBox(); + this.contextMenu_File = new System.Windows.Forms.ContextMenuStrip(this.components); + this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.removeFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tableLayoutPanel7 = new System.Windows.Forms.TableLayoutPanel(); + this.Num_Cooldown = new System.Windows.Forms.NumericUpDown(); + this.Num_Points = new System.Windows.Forms.NumericUpDown(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.Num_Volume = new System.Windows.Forms.NumericUpDown(); + this.label7 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel4.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.tableLayoutPanel5.SuspendLayout(); + this.tableLayoutPanel6.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.contextMenu_File.SuspendLayout(); + this.tableLayoutPanel7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Num_Cooldown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Num_Points)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Num_Volume)).BeginInit(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel5, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel6, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel7, 0, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 6; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 33F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 88F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(484, 384); + this.tableLayoutPanel1.TabIndex = 0; + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel4.ColumnCount = 2; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 74F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.Controls.Add(this.label3, 0, 0); + this.tableLayoutPanel4.Controls.Add(this.TB_RewardID, 1, 0); + this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 315); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 2; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(478, 30); + this.tableLayoutPanel4.TabIndex = 5; + // + // label3 + // + this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(4, 7); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(61, 13); + this.label3.TabIndex = 0; + this.label3.Text = "Reward ID:"; + // + // TB_RewardID + // + this.TB_RewardID.Dock = System.Windows.Forms.DockStyle.Fill; + this.TB_RewardID.Enabled = false; + this.TB_RewardID.Location = new System.Drawing.Point(79, 4); + this.TB_RewardID.Name = "TB_RewardID"; + this.TB_RewardID.Size = new System.Drawing.Size(395, 20); + this.TB_RewardID.TabIndex = 1; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 46F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.TB_RewardName, 1, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.Size = new System.Drawing.Size(478, 27); + this.tableLayoutPanel2.TabIndex = 0; + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(4, 7); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(38, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Name:"; + // + // TB_RewardName + // + this.TB_RewardName.Dock = System.Windows.Forms.DockStyle.Fill; + this.TB_RewardName.Location = new System.Drawing.Point(51, 4); + this.TB_RewardName.Name = "TB_RewardName"; + this.TB_RewardName.Size = new System.Drawing.Size(423, 20); + this.TB_RewardName.TabIndex = 1; + this.TB_RewardName.TextChanged += new System.EventHandler(this.TB_Command_TextChanged); + // + // tableLayoutPanel5 + // + this.tableLayoutPanel5.ColumnCount = 3; + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel5.Controls.Add(this.B_CreateReward, 0, 0); + this.tableLayoutPanel5.Controls.Add(this.B_Cancel, 2, 0); + this.tableLayoutPanel5.Controls.Add(this.B_OK, 1, 0); + this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel5.Location = new System.Drawing.Point(3, 351); + this.tableLayoutPanel5.Name = "tableLayoutPanel5"; + this.tableLayoutPanel5.RowCount = 1; + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel5.Size = new System.Drawing.Size(478, 30); + this.tableLayoutPanel5.TabIndex = 3; + // + // B_CreateReward + // + this.B_CreateReward.Dock = System.Windows.Forms.DockStyle.Left; + this.B_CreateReward.Location = new System.Drawing.Point(3, 3); + this.B_CreateReward.Name = "B_CreateReward"; + this.B_CreateReward.Size = new System.Drawing.Size(125, 24); + this.B_CreateReward.TabIndex = 2; + this.B_CreateReward.Text = "Create / update reward"; + this.B_CreateReward.UseVisualStyleBackColor = true; + this.B_CreateReward.Click += new System.EventHandler(this.B_CreateReward_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = System.Windows.Forms.AnchorStyles.None; + this.B_Cancel.Location = new System.Drawing.Point(390, 3); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 1; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_OK + // + this.B_OK.Anchor = System.Windows.Forms.AnchorStyles.None; + this.B_OK.Location = new System.Drawing.Point(290, 3); + this.B_OK.Name = "B_OK"; + this.B_OK.Size = new System.Drawing.Size(75, 23); + this.B_OK.TabIndex = 0; + this.B_OK.Text = "OK"; + this.B_OK.UseVisualStyleBackColor = true; + this.B_OK.Click += new System.EventHandler(this.B_OK_Click); + // + // tableLayoutPanel6 + // + this.tableLayoutPanel6.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel6.ColumnCount = 1; + this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel6.Controls.Add(this.label4, 0, 0); + this.tableLayoutPanel6.Controls.Add(this.RB_Description, 0, 1); + this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel6.Location = new System.Drawing.Point(3, 36); + this.tableLayoutPanel6.Name = "tableLayoutPanel6"; + this.tableLayoutPanel6.RowCount = 2; + this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 23F)); + this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel6.Size = new System.Drawing.Size(478, 82); + this.tableLayoutPanel6.TabIndex = 4; + // + // label4 + // + this.label4.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(4, 6); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(105, 13); + this.label4.TabIndex = 1; + this.label4.Text = "Description (Prompt):"; + // + // RB_Description + // + this.RB_Description.DetectUrls = false; + this.RB_Description.Dock = System.Windows.Forms.DockStyle.Fill; + this.RB_Description.Location = new System.Drawing.Point(4, 28); + this.RB_Description.Name = "RB_Description"; + this.RB_Description.Size = new System.Drawing.Size(470, 50); + this.RB_Description.TabIndex = 2; + this.RB_Description.Text = ""; + this.RB_Description.TextChanged += new System.EventHandler(this.RB_Description_TextChanged); + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel3.ColumnCount = 1; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.ListB_Files, 0, 1); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(3, 124); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 2; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(478, 153); + this.tableLayoutPanel3.TabIndex = 1; + // + // label2 + // + this.label2.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(4, 4); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(31, 13); + this.label2.TabIndex = 0; + this.label2.Text = "Files:"; + // + // ListB_Files + // + this.ListB_Files.AllowDrop = true; + this.ListB_Files.ContextMenuStrip = this.contextMenu_File; + this.ListB_Files.Dock = System.Windows.Forms.DockStyle.Fill; + this.ListB_Files.FormattingEnabled = true; + this.ListB_Files.Location = new System.Drawing.Point(4, 25); + this.ListB_Files.Name = "ListB_Files"; + this.ListB_Files.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended; + this.ListB_Files.Size = new System.Drawing.Size(471, 124); + this.ListB_Files.TabIndex = 1; + this.ListB_Files.DragDrop += new System.Windows.Forms.DragEventHandler(this.ListB_Files_DragDrop); + this.ListB_Files.DragEnter += new System.Windows.Forms.DragEventHandler(this.ListB_Files_DragEnter); + // + // contextMenu_File + // + this.contextMenu_File.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addFileToolStripMenuItem, this.removeFileToolStripMenuItem}); - this.contextMenu_File.Name = "contextMenu_File"; - this.contextMenu_File.Size = new System.Drawing.Size(150, 48); - // - // addFileToolStripMenuItem - // - this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem"; - this.addFileToolStripMenuItem.Size = new System.Drawing.Size(149, 22); - this.addFileToolStripMenuItem.Text = "Add file(s)"; - this.addFileToolStripMenuItem.Click += new System.EventHandler(this.AddFileToolStripMenuItem_Click); - // - // removeFileToolStripMenuItem - // - this.removeFileToolStripMenuItem.Name = "removeFileToolStripMenuItem"; - this.removeFileToolStripMenuItem.Size = new System.Drawing.Size(149, 22); - this.removeFileToolStripMenuItem.Text = "Remove file(s)"; - this.removeFileToolStripMenuItem.Click += new System.EventHandler(this.RemoveFileToolStripMenuItem_Click); - // - // tableLayoutPanel4 - // - this.tableLayoutPanel4.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; - this.tableLayoutPanel4.ColumnCount = 2; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 77F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.Controls.Add(this.label3, 0, 0); - this.tableLayoutPanel4.Controls.Add(this.CBox_RequiredRight, 1, 0); - this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 196); - this.tableLayoutPanel4.Name = "tableLayoutPanel4"; - this.tableLayoutPanel4.RowCount = 1; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(453, 29); - this.tableLayoutPanel4.TabIndex = 2; - // - // label3 - // - this.label3.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(4, 8); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(70, 13); - this.label3.TabIndex = 0; - this.label3.Text = "Requirement:"; - // - // CBox_RequiredRight - // - this.CBox_RequiredRight.Dock = System.Windows.Forms.DockStyle.Fill; - this.CBox_RequiredRight.FormattingEnabled = true; - this.CBox_RequiredRight.Location = new System.Drawing.Point(82, 4); - this.CBox_RequiredRight.Name = "CBox_RequiredRight"; - this.CBox_RequiredRight.Size = new System.Drawing.Size(367, 21); - this.CBox_RequiredRight.TabIndex = 1; - // - // tableLayoutPanel5 - // - this.tableLayoutPanel5.ColumnCount = 2; - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Controls.Add(this.B_Cancel, 1, 0); - this.tableLayoutPanel5.Controls.Add(this.B_OK, 0, 0); - this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Right; - this.tableLayoutPanel5.Location = new System.Drawing.Point(256, 351); - this.tableLayoutPanel5.Name = "tableLayoutPanel5"; - this.tableLayoutPanel5.RowCount = 1; - this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel5.Size = new System.Drawing.Size(200, 30); - this.tableLayoutPanel5.TabIndex = 3; - // - // B_Cancel - // - this.B_Cancel.Anchor = System.Windows.Forms.AnchorStyles.None; - this.B_Cancel.Location = new System.Drawing.Point(112, 3); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 1; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_OK - // - this.B_OK.Anchor = System.Windows.Forms.AnchorStyles.None; - this.B_OK.Location = new System.Drawing.Point(12, 3); - this.B_OK.Name = "B_OK"; - this.B_OK.Size = new System.Drawing.Size(75, 23); - this.B_OK.TabIndex = 0; - this.B_OK.Text = "OK"; - this.B_OK.UseVisualStyleBackColor = true; - this.B_OK.Click += new System.EventHandler(this.B_OK_Click); - // - // tableLayoutPanel6 - // - this.tableLayoutPanel6.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; - this.tableLayoutPanel6.ColumnCount = 1; - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel6.Controls.Add(this.label4, 0, 0); - this.tableLayoutPanel6.Controls.Add(this.RB_Description, 0, 1); - this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel6.Location = new System.Drawing.Point(3, 231); - this.tableLayoutPanel6.Name = "tableLayoutPanel6"; - this.tableLayoutPanel6.RowCount = 2; - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 23F)); - this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel6.Size = new System.Drawing.Size(453, 114); - this.tableLayoutPanel6.TabIndex = 4; - // - // label4 - // - this.label4.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(4, 6); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(161, 13); - this.label4.TabIndex = 1; - this.label4.Text = "Description (only for table export)"; - // - // RB_Description - // - this.RB_Description.DetectUrls = false; - this.RB_Description.Dock = System.Windows.Forms.DockStyle.Fill; - this.RB_Description.Location = new System.Drawing.Point(4, 28); - this.RB_Description.Name = "RB_Description"; - this.RB_Description.Size = new System.Drawing.Size(445, 82); - this.RB_Description.TabIndex = 2; - this.RB_Description.Text = ""; - this.RB_Description.TextChanged += new System.EventHandler(this.RB_Description_TextChanged); - // - // AddEditNewEntryDialog - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(459, 384); - this.Controls.Add(this.tableLayoutPanel1); - this.MinimizeBox = false; - this.Name = "AddEditNewEntryDialog"; - this.ShowIcon = false; - this.Text = "Add new entry"; - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.tableLayoutPanel3.ResumeLayout(false); - this.tableLayoutPanel3.PerformLayout(); - this.contextMenu_File.ResumeLayout(false); - this.tableLayoutPanel4.ResumeLayout(false); - this.tableLayoutPanel4.PerformLayout(); - this.tableLayoutPanel5.ResumeLayout(false); - this.tableLayoutPanel6.ResumeLayout(false); - this.tableLayoutPanel6.PerformLayout(); - this.ResumeLayout(false); + this.contextMenu_File.Name = "contextMenu_File"; + this.contextMenu_File.Size = new System.Drawing.Size(150, 48); + // + // addFileToolStripMenuItem + // + this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem"; + this.addFileToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.addFileToolStripMenuItem.Text = "Add file(s)"; + this.addFileToolStripMenuItem.Click += new System.EventHandler(this.AddFileToolStripMenuItem_Click); + // + // removeFileToolStripMenuItem + // + this.removeFileToolStripMenuItem.Name = "removeFileToolStripMenuItem"; + this.removeFileToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.removeFileToolStripMenuItem.Text = "Remove file(s)"; + this.removeFileToolStripMenuItem.Click += new System.EventHandler(this.RemoveFileToolStripMenuItem_Click); + // + // tableLayoutPanel7 + // + this.tableLayoutPanel7.ColumnCount = 6; + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 54F)); + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 112F)); + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 79F)); + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel7.Controls.Add(this.Num_Cooldown, 5, 0); + this.tableLayoutPanel7.Controls.Add(this.Num_Points, 3, 0); + this.tableLayoutPanel7.Controls.Add(this.label6, 2, 0); + this.tableLayoutPanel7.Controls.Add(this.label5, 0, 0); + this.tableLayoutPanel7.Controls.Add(this.Num_Volume, 1, 0); + this.tableLayoutPanel7.Controls.Add(this.label7, 4, 0); + this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel7.Location = new System.Drawing.Point(3, 283); + this.tableLayoutPanel7.Name = "tableLayoutPanel7"; + this.tableLayoutPanel7.RowCount = 1; + this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel7.Size = new System.Drawing.Size(478, 26); + this.tableLayoutPanel7.TabIndex = 6; + // + // Num_Cooldown + // + this.Num_Cooldown.Dock = System.Windows.Forms.DockStyle.Fill; + this.Num_Cooldown.Location = new System.Drawing.Point(402, 3); + this.Num_Cooldown.Maximum = new decimal(new int[] { + 604800, + 0, + 0, + 0}); + this.Num_Cooldown.Name = "Num_Cooldown"; + this.Num_Cooldown.Size = new System.Drawing.Size(73, 20); + this.Num_Cooldown.TabIndex = 7; + // + // Num_Points + // + this.Num_Points.Dock = System.Windows.Forms.DockStyle.Fill; + this.Num_Points.Location = new System.Drawing.Point(246, 3); + this.Num_Points.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.Num_Points.Minimum = new decimal(new int[] { + 80, + 0, + 0, + 0}); + this.Num_Points.Name = "Num_Points"; + this.Num_Points.Size = new System.Drawing.Size(71, 20); + this.Num_Points.TabIndex = 5; + this.Num_Points.Value = new decimal(new int[] { + 500, + 0, + 0, + 0}); + // + // label6 + // + this.label6.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(134, 6); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(103, 13); + this.label6.TabIndex = 4; + this.label6.Text = "Channel points cost:"; + // + // label5 + // + this.label5.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(3, 6); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(45, 13); + this.label5.TabIndex = 2; + this.label5.Text = "Volume:"; + // + // Num_Volume + // + this.Num_Volume.Dock = System.Windows.Forms.DockStyle.Fill; + this.Num_Volume.Location = new System.Drawing.Point(57, 3); + this.Num_Volume.Name = "Num_Volume"; + this.Num_Volume.Size = new System.Drawing.Size(71, 20); + this.Num_Volume.TabIndex = 3; + this.Num_Volume.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // label7 + // + this.label7.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(323, 6); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(57, 13); + this.label7.TabIndex = 6; + this.label7.Text = "Cooldown:"; + // + // AddEditNewEntryDialog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(484, 384); + this.Controls.Add(this.tableLayoutPanel1); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(500, 423); + this.Name = "AddEditNewEntryDialog"; + this.ShowIcon = false; + this.Text = "Add new entry"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AddEditNewEntryDialog_FormClosed); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel4.ResumeLayout(false); + this.tableLayoutPanel4.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.tableLayoutPanel5.ResumeLayout(false); + this.tableLayoutPanel6.ResumeLayout(false); + this.tableLayoutPanel6.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + this.contextMenu_File.ResumeLayout(false); + this.tableLayoutPanel7.ResumeLayout(false); + this.tableLayoutPanel7.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Num_Cooldown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Num_Points)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Num_Volume)).EndInit(); + this.ResumeLayout(false); } #endregion - private void AddComboboxDataSources() - { - CBox_RequiredRight.DisplayMember = "Description"; - CBox_RequiredRight.ValueMember = "value"; - CBox_RequiredRight.DataSource = Enum.GetValues(typeof(BasicTwitchSoundPlayer.Structs.TwitchRightsEnum)).Cast().Select(value => - new - { - (Attribute.GetCustomAttribute(value.GetType().GetField(value.ToString()), - typeof(DescriptionAttribute)) as DescriptionAttribute).Description, - value - }).ToList(); - } - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox TB_Command; + private System.Windows.Forms.TextBox TB_RewardName; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; private System.Windows.Forms.Label label2; private System.Windows.Forms.ListBox ListB_Files; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox CBox_RequiredRight; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; private System.Windows.Forms.Button B_Cancel; private System.Windows.Forms.Button B_OK; @@ -348,5 +471,16 @@ private void AddComboboxDataSources() private System.Windows.Forms.TableLayoutPanel tableLayoutPanel6; private System.Windows.Forms.Label label4; private System.Windows.Forms.RichTextBox RB_Description; - } + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button B_CreateReward; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.NumericUpDown Num_Volume; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel7; + private System.Windows.Forms.NumericUpDown Num_Points; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.NumericUpDown Num_Cooldown; + private System.Windows.Forms.Label label7; + public System.Windows.Forms.TextBox TB_RewardID; + } } \ No newline at end of file diff --git a/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.cs b/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.cs index 2ce6af5..29d1291 100644 --- a/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.cs +++ b/SoundDatabaseEditor/EditDialogues/AddEditNewEntryDialog.cs @@ -1,12 +1,7 @@ -using BasicTwitchSoundPlayer.Structs; +using BasicTwitchSoundPlayer.IRC; +using BasicTwitchSoundPlayer.SoundStorage; using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; namespace BasicTwitchSoundPlayer.SoundDatabaseEditor.EditDialogues @@ -14,26 +9,35 @@ namespace BasicTwitchSoundPlayer.SoundDatabaseEditor.EditDialogues public partial class AddEditNewEntryDialog : Form { public SoundEntry ReturnSound { get; set; } + public static AddEditNewEntryDialog Instance { get; private set; } public AddEditNewEntryDialog() { InitializeComponent(); - AddComboboxDataSources(); this.Text = "Add new entry"; } public AddEditNewEntryDialog(SoundEntry Entry) { InitializeComponent(); - AddComboboxDataSources(); this.Text = "Entry editing"; - this.TB_Command.Text = Entry.GetRewardName(); - foreach (var sound in Entry.GetAllFiles()) + this.TB_RewardName.Text = Entry.RewardName; + foreach (var sound in Entry.Files) { ListB_Files.Items.Add(sound); } - this.RB_Description.Text = Entry.GetDescription(); + this.RB_Description.Text = Entry.Description; + this.TB_RewardID.Text = Entry.RewardID; + this.Num_Points.Value = Entry.AmountOfPoints; + this.Num_Cooldown.Value = Entry.Cooldown; + this.Num_Volume.Value = (int)Math.Round(Entry.Volume * 100); Verify(); + Instance = this; + } + + private void AddEditNewEntryDialog_FormClosed(object sender, FormClosedEventArgs e) + { + Instance = null; } private void B_OK_Click(object sender, EventArgs e) @@ -47,8 +51,7 @@ private void B_OK_Click(object sender, EventArgs e) files[i] = listFile[i].ToString(); } - this.ReturnSound = new SoundEntry(TB_Command.Text, RB_Description.Text, files); - + this.ReturnSound = new SoundEntry(TB_RewardName.Text, RB_Description.Text, TB_RewardID.Text, files, (float)Num_Volume.Value / 100f, (int)Num_Points.Value, (int)Num_Cooldown.Value); this.Close(); } @@ -98,7 +101,7 @@ private void TB_Command_TextChanged(object sender, EventArgs e) private void Verify() { - if (TB_Command.Text == String.Empty) + if (TB_RewardName.Text == String.Empty) { B_OK.Enabled = false; return; @@ -149,5 +152,36 @@ private void RB_Description_TextChanged(object sender, EventArgs e) { Verify(); } + + private async void B_CreateReward_Click(object sender, EventArgs e) + { + var settings = PrivateSettings.GetInstance(); + KrakenConnections apiConnection = new KrakenConnections(settings.TwitchUsername, settings.TwitchPassword); + await apiConnection.GetBroadcasterIDAsync(); + if (string.IsNullOrEmpty(apiConnection.BroadcasterID)) + return; + + await apiConnection.GetRewardsList(); + + KrakenConnections.ChannelReward reward = await apiConnection.CreateOrUpdateReward(new SoundEntry(TB_RewardName.Text, RB_Description.Text, TB_RewardID.Text, new string[] { }, 1f, (int)Num_Points.Value, (int)Num_Cooldown.Value)); + + if (reward != null) + { + if (string.IsNullOrEmpty(TB_RewardID.Text)) + { + this.TB_RewardID.Text = reward.id; + MessageBox.Show("Created a reward!", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else if(TB_RewardID.Text != reward.id) + { + this.TB_RewardID.Text = reward.id; + MessageBox.Show("A reward was missing and was created - make sure this is OK", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + else + { + MessageBox.Show("A reward was updated!", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + } } } diff --git a/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.Designer.cs b/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.Designer.cs index 73091f8..a0aadc0 100644 --- a/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.Designer.cs +++ b/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.Designer.cs @@ -37,11 +37,7 @@ private void InitializeComponent() this.B_OK = new System.Windows.Forms.Button(); this.B_Cancel = new System.Windows.Forms.Button(); this.panel1 = new System.Windows.Forms.Panel(); - this.B_VerifyReward = new System.Windows.Forms.Button(); - this.B_CreateReward = new System.Windows.Forms.Button(); this.CB_OutputDevices = new System.Windows.Forms.ComboBox(); - this.TB_SoundRewardID = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.tableLayoutPanel1.SuspendLayout(); this.tableLayoutPanel5.SuspendLayout(); @@ -60,7 +56,7 @@ private void InitializeComponent() this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(484, 106); + this.tableLayoutPanel1.Size = new System.Drawing.Size(484, 77); this.tableLayoutPanel1.TabIndex = 0; // // tableLayoutPanel5 @@ -71,7 +67,7 @@ private void InitializeComponent() this.tableLayoutPanel5.Controls.Add(this.B_OK, 0, 0); this.tableLayoutPanel5.Controls.Add(this.B_Cancel, 1, 0); this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Right; - this.tableLayoutPanel5.Location = new System.Drawing.Point(287, 73); + this.tableLayoutPanel5.Location = new System.Drawing.Point(287, 44); this.tableLayoutPanel5.Name = "tableLayoutPanel5"; this.tableLayoutPanel5.RowCount = 1; this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); @@ -102,38 +98,14 @@ private void InitializeComponent() // // panel1 // - this.panel1.Controls.Add(this.B_VerifyReward); - this.panel1.Controls.Add(this.B_CreateReward); this.panel1.Controls.Add(this.CB_OutputDevices); - this.panel1.Controls.Add(this.TB_SoundRewardID); - this.panel1.Controls.Add(this.label2); this.panel1.Controls.Add(this.label1); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(3, 3); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(478, 64); + this.panel1.Size = new System.Drawing.Size(478, 35); this.panel1.TabIndex = 2; // - // B_VerifyReward - // - this.B_VerifyReward.Location = new System.Drawing.Point(381, 32); - this.B_VerifyReward.Name = "B_VerifyReward"; - this.B_VerifyReward.Size = new System.Drawing.Size(85, 23); - this.B_VerifyReward.TabIndex = 1; - this.B_VerifyReward.Text = "Verify reward"; - this.B_VerifyReward.UseVisualStyleBackColor = true; - this.B_VerifyReward.Click += new System.EventHandler(this.B_VerifyReward_Click); - // - // B_CreateReward - // - this.B_CreateReward.Location = new System.Drawing.Point(290, 32); - this.B_CreateReward.Name = "B_CreateReward"; - this.B_CreateReward.Size = new System.Drawing.Size(85, 23); - this.B_CreateReward.TabIndex = 0; - this.B_CreateReward.Text = "Create reward"; - this.B_CreateReward.UseVisualStyleBackColor = true; - this.B_CreateReward.Click += new System.EventHandler(this.B_CreateReward_Click); - // // CB_OutputDevices // this.CB_OutputDevices.FormattingEnabled = true; @@ -142,22 +114,6 @@ private void InitializeComponent() this.CB_OutputDevices.Size = new System.Drawing.Size(380, 21); this.CB_OutputDevices.TabIndex = 4; // - // TB_SoundRewardID - // - this.TB_SoundRewardID.Location = new System.Drawing.Point(104, 34); - this.TB_SoundRewardID.Name = "TB_SoundRewardID"; - this.TB_SoundRewardID.Size = new System.Drawing.Size(180, 20); - this.TB_SoundRewardID.TabIndex = 1; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(3, 37); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(95, 13); - this.label2.TabIndex = 0; - this.label2.Text = "Sound Reward ID:"; - // // label1 // this.label1.AutoSize = true; @@ -171,7 +127,7 @@ private void InitializeComponent() // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(484, 106); + this.ClientSize = new System.Drawing.Size(484, 77); this.ControlBox = false; this.Controls.Add(this.tableLayoutPanel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; @@ -194,11 +150,7 @@ private void InitializeComponent() private System.Windows.Forms.Button B_OK; private System.Windows.Forms.Button B_Cancel; private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox TB_SoundRewardID; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.ComboBox CB_OutputDevices; - private System.Windows.Forms.Button B_CreateReward; - private System.Windows.Forms.Button B_VerifyReward; } } \ No newline at end of file diff --git a/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.cs b/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.cs index 732fd72..6e7e2a1 100644 --- a/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.cs +++ b/SoundDatabaseEditor/EditDialogues/SoundPlaybackSettingsDialog.cs @@ -1,32 +1,22 @@ using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; namespace BasicTwitchSoundPlayer.SoundDatabaseEditor.EditDialogues { public partial class SoundPlaybackSettingsDialog : Form { - public string SoundRewardID { get; set; } public Guid SelectedDevice { get; set; } public SoundPlaybackSettingsDialog() { var settings = PrivateSettings.GetInstance(); - this.SoundRewardID = settings.SoundRewardID; this.SelectedDevice = settings.OutputDevice; InitializeComponent(); //Initialization stuff and bindings this.FillInOutputDevices(); - this.TB_SoundRewardID.DataBindings.Add("Text", this, "SoundRewardID", false, DataSourceUpdateMode.OnPropertyChanged); } private void FillInOutputDevices() @@ -66,40 +56,5 @@ private void B_Cancel_Click(object sender, EventArgs e) this.DialogResult = DialogResult.Cancel; this.Close(); } - - private void CBox_RedemptionLogic_SelectedIndexChanged(object sender, EventArgs e) - { - TB_SoundRewardID.Enabled = true; - B_CreateReward.Enabled = true; - B_VerifyReward.Enabled = true; - } - - private async void B_CreateReward_Click(object sender, EventArgs e) - { - var dialogResult = MessageBox.Show("Are you sure you want to create a new Reward?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); - if (dialogResult == DialogResult.Yes) - { - var settings = PrivateSettings.GetInstance(); - IRC.KrakenConnections apiConnection = new IRC.KrakenConnections(settings.TwitchUsername, settings.TwitchPassword); - await apiConnection.GetBroadcasterIDAsync(); - var result = await apiConnection.CreateRewardAsync(IRC.KrakenConnections.RewardType.Sound); - if (result != null) - { - TB_SoundRewardID.Text = result.id; - MessageBox.Show("Successfully created a new reward!", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - } - } - - private async void B_VerifyReward_Click(object sender, EventArgs e) - { - var settings = PrivateSettings.GetInstance(); - - IRC.KrakenConnections apiConnection = new IRC.KrakenConnections(settings.TwitchUsername, settings.TwitchPassword); - - await apiConnection.GetBroadcasterIDAsync(); - await apiConnection.VerifyChannelRewardsAsync(MainForm.Instance, TB_SoundRewardID.Text); - MessageBox.Show("Results should be displayed in main chat window (Sorry, that was an afterthought)", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information); - } } } diff --git a/SoundEntry.cs b/SoundEntry.cs new file mode 100644 index 0000000..ac02d47 --- /dev/null +++ b/SoundEntry.cs @@ -0,0 +1,91 @@ +using System; +using System.Linq; +using System.Runtime.Remoting.Activation; +using System.Xml.Serialization; + +namespace BasicTwitchSoundPlayer.SoundStorage +{ + [Serializable] + public class SoundEntry + { + [XmlAttribute] + public string RewardName; + [XmlAttribute] + public string RewardID; + [XmlAttribute] + public string Description; + [XmlArrayItem] + public string[] Files; + [XmlAttribute] + public float Volume; + [XmlAttribute] + public int AmountOfPoints; + [XmlAttribute] + public int Cooldown; + + public SoundEntry() + { + RewardName = ""; + Description = ""; + Files = new string[0]; + RewardID = ""; + Volume = 1f; + AmountOfPoints = 500; + Cooldown = 0; + } + + public SoundEntry(string Command, string Description, string RewardID, string[] Files, float Volume, int AmountOfPoints, int Cooldown) + { + this.RewardName = Command; + this.Description = Description; + this.RewardID = RewardID; + this.Files = Files; + this.Description = Description; + this.Volume = Volume; + this.AmountOfPoints = AmountOfPoints; + + if (Cooldown < 0) + Cooldown = 0; + this.Cooldown = Cooldown; + } + + public string GetFile(Random rng) + { + if (Files.Length > 1) + { + return Files[rng.Next(0, Files.Length)]; + } + return Files[0]; + } + + public void AddFiles(string[] importedFiles) + { + foreach (var importedFile in importedFiles) + { + if (!Files.Any(x => x.ToLower() == importedFile.ToLower())) + { + var tempFile = new string[Files.Length + 1]; + for (int i = 0; i < Files.Length; i++) + { + tempFile[i] = Files[i]; + } + tempFile[tempFile.Length - 1] = importedFile; + Files = tempFile; + } + } + } + + public bool GetIsProperEntry() { return (RewardName != null && RewardName != "") && (Files != null && Files.Length > 0); } + + public SoundEntry CreateCopy() => new SoundEntry() + { + RewardID = RewardID, + RewardName = RewardName, + AmountOfPoints = AmountOfPoints, + Cooldown = Cooldown, + Description = Description, + Files = Files, + Volume = Volume, + }; + } +} diff --git a/SoundStorageXML.cs b/SoundStorageXML.cs index a7775ce..619bc69 100644 --- a/SoundStorageXML.cs +++ b/SoundStorageXML.cs @@ -1,90 +1,35 @@ -using BasicTwitchSoundPlayer.Extensions; -using BasicTwitchSoundPlayer.Structs; -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; -using System.Windows.Forms; -using System.Xml; +using System.Xml.Serialization; namespace BasicTwitchSoundPlayer.SoundStorage { class SoundStorageXML { - private static readonly string varSounds = "Sounds"; - private static readonly string varRequirement = "Requirement"; - private static readonly string varDescription = "SoundDescription"; - private static readonly string varDateAdded = "DateAdded"; - - - public static List LoadSoundBase(string XmlPath) + public static List LoadSoundBase(string XmlPath) { - XmlDocument doc = new XmlDocument(); - XmlNode ROOTNODE = null; - List entries = new List(); - + List entries; if (!File.Exists(XmlPath)) { - ROOTNODE = doc.Sui_GetNode("Entries"); + entries = new List(); SaveSoundBase(XmlPath, entries); } else { - doc.Load(XmlPath); - foreach (XmlNode sound in doc["Entries"]) - { - var newSoundEntry = doc.GetQuickSoundEntry(sound); - if (newSoundEntry.GetIsProperEntry()) - entries.Add(newSoundEntry); - } + XmlSerializer xmlSerializer = new XmlSerializer(typeof(List)); + FileStream fs = new FileStream(XmlPath, FileMode.Open); + entries = (List)xmlSerializer.Deserialize(fs); + fs.Dispose(); } return entries; } - public static void SaveSoundBase(string XmlPath, List entries) - { - XmlDocument doc = new XmlDocument(); - XmlNode ROOTNODE = doc.Sui_GetNode("Entries"); - - var parentDir = Directory.GetParent(XmlPath); - if (!parentDir.Exists) - parentDir.Create(); - - foreach (var entry in entries) - { - if (entry.GetIsProperEntry()) - { - var ChildNode = ROOTNODE.Sui_GetNode(doc, entry.GetRewardName()); - ChildNode.Sui_SetAttributeValue(doc, varSounds, string.Join(";", entry.GetAllFiles())); - ChildNode.Sui_SetAttributeValue(doc, varDescription, entry.GetDescription()); - } - } - - doc.Save(XmlPath); - } - } - - static class SoundEntriesExtansions - { - private static readonly string varSounds = "Sounds"; - private static readonly string varRequirement = "Requirement"; - private static readonly string varDescription = "SoundDescription"; - private static readonly string varDateAdded = "DateAdded"; - - public static SoundEntry GetQuickSoundEntry(this XmlDocument xmlDoc, XmlNode node) + public static void SaveSoundBase(string XmlPath, List entries) { - try - { - string tmpCommand = node.Name; - string[] tmpSounds = node.Sui_GetAttributeValue(xmlDoc, varSounds, "").Split(';'); - TwitchRightsEnum tmpRequirement = node.Sui_GetAttributeValue(xmlDoc, varRequirement, TwitchRightsEnum.Disabled.ToString()).ToTwitchRights(); - string tmpDescription = node.Sui_GetAttributeValue(xmlDoc, varDescription, ""); - DateTime dateAdded = node.Sui_GetAttributeValue(xmlDoc, varDateAdded, DateTime.UtcNow.ToString()).ToDateTimeSafe(); - return new SoundEntry(tmpCommand, tmpDescription, tmpSounds); - } - catch - { - return new SoundEntry(); - } + XmlSerializer xmlSerializer = new XmlSerializer(typeof(List)); + FileStream fs = new FileStream(XmlPath, FileMode.OpenOrCreate); + xmlSerializer.Serialize(fs, entries); + fs.Dispose(); } } } diff --git a/Structs/SoundEntry.cs b/Structs/SoundEntry.cs deleted file mode 100644 index a47ff30..0000000 --- a/Structs/SoundEntry.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Linq; - -namespace BasicTwitchSoundPlayer.Structs -{ - //This struct is butt ugly and I hate I wrote something like this many years ago... and manually serialized and deserialized - public struct SoundEntry - { - string RewardName { get; set; } - string Description { get; set; } - string[] File { get; set; } - - public SoundEntry(string Command, string Description, string[] Files) - { - this.RewardName = Command; - this.Description = Description; - this.File = Files; - this.Description = Description; - } - - public string GetRewardName() { return RewardName; } - public string[] GetAllFiles() { return File; } - public string GetDescription() { return Description; } - - public string GetFile(Random rng) - { - if (File.Length > 1) - { - return File[rng.Next(0, File.Length)]; - } - return File[0]; - } - - public void AddFiles(string[] importedFiles) - { - foreach (var importedFile in importedFiles) - { - if (!File.Any(x => x.ToLower() == importedFile.ToLower())) - { - var tempFile = new string[File.Length + 1]; - for (int i = 0; i < File.Length; i++) - { - tempFile[i] = File[i]; - } - tempFile[tempFile.Length - 1] = importedFile; - File = tempFile; - } - } - } - - public bool GetIsProperEntry() { return (RewardName != null && RewardName != "") && (File != null && File.Length > 0); } - } -} diff --git a/Structs/TwitchRightsEnum.cs b/Structs/TwitchRightsEnum.cs index 0dba46a..f87901d 100644 --- a/Structs/TwitchRightsEnum.cs +++ b/Structs/TwitchRightsEnum.cs @@ -17,12 +17,6 @@ public enum TwitchRightsEnum Admin, } - public enum MessageType - { - Normal, - SoundReward - } - static class TwitchRightsExtensions { public static TwitchRightsEnum ToTwitchRights(this int Number) diff --git a/TwitchSocket.cs b/TwitchSocket.cs new file mode 100644 index 0000000..3f08f61 --- /dev/null +++ b/TwitchSocket.cs @@ -0,0 +1,80 @@ +using BasicTwitchSoundPlayer.IRC; +using System; +using System.Threading.Tasks; +using TwitchLib.PubSub; +using static BasicTwitchSoundPlayer.IRC.KrakenConnections; + +namespace BasicTwitchSoundPlayer +{ + public class TwitchSocket + { + private IRCBot iRCBot; + private Task SubscribingTask; + private TwitchPubSub TwitchPubSubClient; + + public Action OnChannelPointsRedeem; + + public async Task CreateSessionAndSocket() + { + while (!iRCBot.BotRunning || iRCBot.irc == null || !iRCBot.irc.ConnectedStatus) + await Task.Delay(2500); + var rewards = await iRCBot.irc.krakenConnection.GetRewardsList(); + + TwitchPubSubClient = new TwitchPubSub(); + TwitchPubSubClient.OnPubSubServiceConnected += TwitchPubSubClient_OnPubSubServiceConnected; + TwitchPubSubClient.OnListenResponse += TwitchPubSubClient_OnListenResponse; + TwitchPubSubClient.OnChannelPointsRewardRedeemed += TwitchPubSubClient_OnChannelPointsRewardRedeemed; + + TwitchPubSubClient.ListenToChannelPoints(iRCBot.irc.krakenConnection.BroadcasterID); + TwitchPubSubClient.Connect(); + } + + private void TwitchPubSubClient_OnChannelPointsRewardRedeemed(object sender, TwitchLib.PubSub.Events.OnChannelPointsRewardRedeemedArgs e) + { + if (!Enum.TryParse(e.RewardRedeemed.Redemption.Status, true, out KrakenConnections.RedemptionStates state)) + return; + + OnChannelPointsRedeem?.Invoke(new ChannelPointRedeemRequest(e.RewardRedeemed.Redemption.User.Id, e.RewardRedeemed.Redemption.Reward.Id, e.RewardRedeemed.Redemption.Id, state)); + } + + private void TwitchPubSubClient_OnPubSubServiceConnected(object sender, EventArgs e) + { + var auth = "oauth:" + PrivateSettings.GetInstance().TwitchPassword; + TwitchPubSubClient.SendTopics(oauth: auth); + } + + private void TwitchPubSubClient_OnListenResponse(object sender, TwitchLib.PubSub.Events.OnListenResponseArgs e) + { + if (!e.Successful) + throw new Exception($"Failed to listen! Response: {e.Response}"); + } + + public void SetIrcReference(IRCBot iRCBot) + { + this.iRCBot = iRCBot; + + SubscribingTask = Task.Run(CreateSessionAndSocket); + } + + public void UpdateRedemptionStatus(ChannelPointRedeemRequest redeem, KrakenConnections.RedemptionStates status) + { + if (redeem.state != RedemptionStates.UNFULFILLED) + { + MainForm.Instance.ThreadSafeAddPreviewText("Can't change the state of already accepted/rejected redeem - this needs to be fixed!", LineType.IrcCommand); + return; + } + + if (status == RedemptionStates.UNFULFILLED) + { + MainForm.Instance.ThreadSafeAddPreviewText("Can't set state to UNFULFILLED - this needs to be fixed!", LineType.IrcCommand); + return; + } + + redeem.state = status; + iRCBot.irc.krakenConnection.UpdateRedemptionStatus(redeem.rewardId, new string[] + { + redeem.redemptionId, + }, status); + } + } +} diff --git a/VoiceModHandling.cs b/VoiceModHandling.cs index b1a854f..5dba8f9 100644 --- a/VoiceModHandling.cs +++ b/VoiceModHandling.cs @@ -11,6 +11,7 @@ using System.Threading.Tasks; using TwitchLib.PubSub; using WebSocketSharp; +using static BasicTwitchSoundPlayer.IRC.KrakenConnections; namespace BasicTwitchSoundPlayer { @@ -48,18 +49,15 @@ public static bool IsConfigured() public bool Disposed { get; private set; } public bool SocketConnected { get; private set; } - private IRCBot iRCBot; - private MainForm parent; - - private WebSocket client; + private WebSocket VoiceModSocket; string currentVoice = ""; bool currentStatus = false; public Dictionary VoicesAvailable = new Dictionary(); System.Timers.Timer timer; - private bool Playing = false; - private bool RedeemsPaused = false; + private bool m_IsConnecting = false; + private bool m_Playing = false; + private bool m_RedeemsPaused = false; - private TwitchPubSub TwitchPubSubClient { get; set; } private (string request, string voiceID) awaitingBitmap; public bool ConnectedToVoiceMod { get; private set; } @@ -75,44 +73,46 @@ public static VoiceModHandling GetInstance() private VoiceModHandling() { - this.parent = MainForm.Instance; - Disposed = false; ConnectToVoiceMod(); } - public void SetPauseRedeems(bool value) => RedeemsPaused = value; + public void SetPauseRedeems(bool value) => m_RedeemsPaused = value; public void ConnectToVoiceMod() { - if (ConnectedToVoiceMod) + if (ConnectedToVoiceMod || m_IsConnecting) return; try { - var voiceModConf = VoiceModConfig.GetInstance(); + var voiceModConfig = VoiceModConfig.GetInstance(); - client = new WebSocket(voiceModConf.AdressPort); - client.OnMessage += Client_OnMessage; - client.OnOpen += Client_OnOpen; - client.OnClose += Client_OnClose; + VoiceModSocket = new WebSocket(voiceModConfig.AdressPort); + VoiceModSocket.OnMessage += VoiceModSocket_OnMessage; + VoiceModSocket.OnOpen += VoiceModSocket_OnOpen; + VoiceModSocket.OnClose += VoiceModSocket_OnClose; if (IsConfigured()) { - parent.ThreadSafeAddPreviewText("Connecting to voice mod!", LineType.IrcCommand); - client.ConnectAsync(); + m_IsConnecting = true; + MainForm.Instance.ThreadSafeAddPreviewText("Connecting to voice mod!", LineType.VoiceMod); + VoiceModSocket.ConnectAsync(); + if (MainForm.TwitchSocket != null) + MainForm.TwitchSocket.OnChannelPointsRedeem += OnChannelPointsRedeem; } else - parent.ThreadSafeAddPreviewText("VoiceMod is not configured - this is OK, unless you want to use it", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText("VoiceMod is not configured - this is OK, unless you want to use it", LineType.VoiceMod); } catch (Exception ex) { - parent.ThreadSafeAddPreviewText($"Failed to connect to voicemod: {ex}", LineType.IrcCommand); + m_IsConnecting = false; + MainForm.Instance.ThreadSafeAddPreviewText($"Failed to connect to VoiceMod: {ex}", LineType.VoiceMod); ConnectedToVoiceMod = false; Dispose(); } } - private void Client_OnMessage(object sender, MessageEventArgs e) + private void VoiceModSocket_OnMessage(object sender, MessageEventArgs e) { //Should have probably used enums...................... //Oh well. @@ -122,7 +122,7 @@ private void Client_OnMessage(object sender, MessageEventArgs e) if (msg != null) { var value = msg.Value(); - parent.ThreadSafeAddPreviewText($"VoiceMod response: {value}", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"VoiceMod response: {value}", LineType.VoiceMod); } else { @@ -140,7 +140,7 @@ private void Client_OnMessage(object sender, MessageEventArgs e) if (code == 200) { ConnectedToVoiceMod = true; - parent.ThreadSafeAddPreviewText($"Client registered in VoiceMod", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Client registered in VoiceMod", LineType.VoiceMod); var voicedRequest = new JObject() { @@ -149,7 +149,7 @@ private void Client_OnMessage(object sender, MessageEventArgs e) { "payload", new JObject() } }; - client.Send(voicedRequest.ToString()); + VoiceModSocket.Send(voicedRequest.ToString()); var message = new JObject() { @@ -162,27 +162,27 @@ private void Client_OnMessage(object sender, MessageEventArgs e) } }; - client.Send(message.ToString()); + VoiceModSocket.Send(message.ToString()); } else { - parent.ThreadSafeAddPreviewText($"Failed to register VoiceMod client - response code was {code}", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Failed to register VoiceMod client - response code was {code}", LineType.VoiceMod); } } else { - parent.ThreadSafeAddPreviewText($"Failed to register VoiceMod client - there was no status code?", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Failed to register VoiceMod client - there was no status code?", LineType.VoiceMod); } } else if (value == "voiceChangerDisabledEvent") { currentStatus = false; if (PrivateSettings.GetInstance().Debug_mode) - parent.ThreadSafeAddPreviewText($"Set current status to {currentStatus}", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Set current status to {currentStatus}", LineType.VoiceMod); Debug.WriteLine($"Set current status to {currentStatus}"); - Playing = false; - if(timer != null && timer.Enabled) + m_Playing = false; + if (timer != null && timer.Enabled) { timer.Dispose(); timer = null; @@ -192,7 +192,7 @@ private void Client_OnMessage(object sender, MessageEventArgs e) { currentStatus = true; if (PrivateSettings.GetInstance().Debug_mode) - parent.ThreadSafeAddPreviewText($"Set current status to {currentStatus}", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Set current status to {currentStatus}", LineType.VoiceMod); Debug.WriteLine($"Set current status to {currentStatus}"); } else if (value == "voiceLoadedEvent") @@ -212,21 +212,21 @@ private void Client_OnMessage(object sender, MessageEventArgs e) { "id", Guid.NewGuid().ToString() }, { "payload", new JObject() } }; - client.Send(statusRequest.ToString()); + VoiceModSocket.Send(statusRequest.ToString()); } else { - parent.ThreadSafeAddPreviewText($"Set VoiceMod to \"{voiceId.Value()}\"", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Set VoiceMod to \"{voiceId.Value()}\"", LineType.VoiceMod); } } else { - parent.ThreadSafeAddPreviewText($"Set VoiceMod to unknown voice?", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Set VoiceMod to unknown voice?", LineType.VoiceMod); } } else { - parent.ThreadSafeAddPreviewText($"Empty payload?", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Empty payload?", LineType.VoiceMod); } } @@ -248,23 +248,23 @@ private void Client_OnMessage(object sender, MessageEventArgs e) var enabled = voice["isEnabled"].Value(); var parameters = voice["parameters"]; - + var information = new VoiceInformation(id, friendlyName, favourite, enabled, parameters); if (!VoicesAvailable.TryGetValue(friendlyName, out VoiceInformation voiceInformation)) VoicesAvailable.Add(friendlyName, information); else { - if(voiceInformation.Parameters == null || voiceInformation.Parameters.Count() == 0) + if (voiceInformation.Parameters == null || voiceInformation.Parameters.Count() == 0) { voiceInformation.Parameters = parameters; } } } - parent.ThreadSafeAddPreviewText($"Received voices from VoiceMod - a total of {VoicesAvailable.Count}!", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Received voices from VoiceMod - a total of {VoicesAvailable.Count}!", LineType.VoiceMod); OnListOfVoicesReceived?.Invoke(); } else - parent.ThreadSafeAddPreviewText($"Received response to get voices, but it was empty!", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText($"Received response to get voices, but it was empty!", LineType.VoiceMod); } } else if (json["actionType"] != null) @@ -281,7 +281,7 @@ private void Client_OnMessage(object sender, MessageEventArgs e) { "id", Guid.NewGuid().ToString() }, { "payload", new JObject() } }; - client.Send(disableRequest.ToString()); + VoiceModSocket.Send(disableRequest.ToString()); } } else if (value == "getBitmap") @@ -351,7 +351,7 @@ private void StoreThumbnail(Image sourceImage, int size, string path) destImage.Dispose(); } - public bool SetVoice(string voice, float lenght) + public bool SetVoice(string voice, float length) { if (Disposed) return false; @@ -365,7 +365,7 @@ public bool SetVoice(string voice, float lenght) { "id", Guid.NewGuid().ToString() }, { "payload", new JObject() } }; - client.Send(enableRequest.ToString()); + VoiceModSocket.Send(enableRequest.ToString()); } var message = new JObject() { @@ -377,7 +377,7 @@ public bool SetVoice(string voice, float lenght) } } }; - client.Send(message.ToString()); + VoiceModSocket.Send(message.ToString()); currentVoice = "nofx"; if (timer != null) @@ -393,7 +393,7 @@ public bool SetVoice(string voice, float lenght) { "id", Guid.NewGuid().ToString() }, { "payload", new JObject() } }; - client.Send(enableRequest.ToString()); + VoiceModSocket.Send(enableRequest.ToString()); } var message = new JObject() @@ -408,16 +408,16 @@ public bool SetVoice(string voice, float lenght) }; currentVoice = voice; - client.Send(message.ToString()); + VoiceModSocket.Send(message.ToString()); if (timer != null) { timer.Stop(); timer.Dispose(); } - timer = new System.Timers.Timer(lenght * 1000); + timer = new System.Timers.Timer(length * 1000); timer.Start(); - Playing = true; + m_Playing = true; timer.Elapsed += ReturnToDefault; return true; @@ -427,14 +427,15 @@ public bool SetVoice(string voice, float lenght) private void ReturnToDefault(object sender, System.Timers.ElapsedEventArgs e) { - Playing = false; + m_Playing = false; SetVoice(null, 0); } - private void Client_OnOpen(object sender, EventArgs e) + private void VoiceModSocket_OnOpen(object sender, EventArgs e) { - parent.ThreadSafeAddPreviewText("Opened VoiceMod connection", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText("Opened VoiceMod connection", LineType.IrcCommand); ConnectedToVoiceMod = true; + m_IsConnecting = false; OnConnectionStateChanged?.Invoke(true); var message = new JObject() @@ -448,12 +449,12 @@ private void Client_OnOpen(object sender, EventArgs e) } }; - client.Send(message.ToString()); + VoiceModSocket.Send(message.ToString()); } - private void Client_OnClose(object sender, CloseEventArgs e) + private void VoiceModSocket_OnClose(object sender, CloseEventArgs e) { - parent.ThreadSafeAddPreviewText("Closed VoiceMod connection", LineType.IrcCommand); + MainForm.Instance.ThreadSafeAddPreviewText("Closed VoiceMod connection", LineType.IrcCommand); ConnectedToVoiceMod = false; } @@ -461,103 +462,58 @@ public void Dispose() { if (!this.Disposed) { - client.Close(); - client.OnMessage -= Client_OnMessage; - client.OnOpen -= Client_OnOpen; - client.OnClose -= Client_OnClose; + VoiceModSocket.Close(); + VoiceModSocket.OnMessage -= VoiceModSocket_OnMessage; + VoiceModSocket.OnOpen -= VoiceModSocket_OnOpen; + VoiceModSocket.OnClose -= VoiceModSocket_OnClose; this.Disposed = true; } } - public void SetIrcReference(IRCBot iRCBot) + private void TwitchPubSubClient_OnListenResponse(object sender, TwitchLib.PubSub.Events.OnListenResponseArgs e) { - this.iRCBot = iRCBot; - - SubscribingTask = Task.Run(CreateSessionAndSocket); + if (!e.Successful) + throw new Exception($"Failed to listen! Response: {e.Response}"); } - public async Task CreateSessionAndSocket() + public void Disconnect() { - while (!iRCBot.BotRunning || iRCBot.irc == null || !iRCBot.irc.ConnectedStatus) - await Task.Delay(2500); - - var rewards = await iRCBot.irc.krakenConnection.GetRewardsList(); + if (SubscribingTask != null) + SubscribingTask.Dispose(); - TwitchPubSubClient = new TwitchPubSub(); - TwitchPubSubClient.OnPubSubServiceConnected += TwitchPubSubClient_OnPubSubServiceConnected; - TwitchPubSubClient.OnListenResponse += TwitchPubSubClient_OnListenResponse; - TwitchPubSubClient.OnChannelPointsRewardRedeemed += TwitchPubSubClient_OnChannelPointsRewardRedeemed; + if (VoiceModSocket != null) + { + VoiceModSocket.Close(); + } - TwitchPubSubClient.ListenToChannelPoints(iRCBot.irc.krakenConnection.BroadcasterID); - TwitchPubSubClient.Connect(); + if (MainForm.TwitchSocket != null) + MainForm.TwitchSocket.OnChannelPointsRedeem -= OnChannelPointsRedeem; } - private void TwitchPubSubClient_OnChannelPointsRewardRedeemed(object sender, TwitchLib.PubSub.Events.OnChannelPointsRewardRedeemedArgs e) + private void OnChannelPointsRedeem(ChannelPointRedeemRequest redeem) { - var reward = VoiceModHandling.GetInstance().CheckIDs(e.RewardRedeemed.Redemption.Reward.Id); + if (redeem.state != RedemptionStates.UNFULFILLED) + return; + + var reward = VoiceModConfig.GetInstance().GetReward(redeem.rewardId); if (reward != null) { - if (e.RewardRedeemed.Redemption.Status == "UNFULFILLED") + if (redeem.state == KrakenConnections.RedemptionStates.UNFULFILLED) { - if (Playing || RedeemsPaused) + if (m_Playing || m_RedeemsPaused) { - iRCBot.irc.krakenConnection.UpdateRedemptionStatus(e.RewardRedeemed.Redemption.Reward.Id, new string[] - { - e.RewardRedeemed.Redemption.Id, - }, KrakenConnections.RedemptionStates.CANCELED); + MainForm.TwitchSocket?.UpdateRedemptionStatus(redeem, RedemptionStates.CANCELED); } else { SetVoice(reward.VoiceModFriendlyName, reward.RewardDuration); - iRCBot.irc.krakenConnection.UpdateRedemptionStatus(e.RewardRedeemed.Redemption.Reward.Id, new string[] - { - e.RewardRedeemed.Redemption.Id, - }, KrakenConnections.RedemptionStates.FULFILLED); + MainForm.TwitchSocket?.UpdateRedemptionStatus(redeem, RedemptionStates.FULFILLED); } } } } - private void TwitchPubSubClient_OnListenResponse(object sender, TwitchLib.PubSub.Events.OnListenResponseArgs e) - { - if (!e.Successful) - throw new Exception($"Failed to listen! Response: {e.Response}"); - } - - private void TwitchPubSubClient_OnPubSubServiceConnected(object sender, EventArgs e) - { - var auth = "oauth:" + PrivateSettings.GetInstance().TwitchPassword; - TwitchPubSubClient.SendTopics(oauth: auth); - } - - public VoiceModConfig.VoiceModReward CheckIDs(string rewardID) - { - var config = VoiceModConfig.GetInstance(); - foreach (var reward in config.Rewards) - { - if (reward.RewardID == rewardID) - return reward; - } - - return null; - } - - public void Disconnect() - { - if (SubscribingTask != null) - SubscribingTask.Dispose(); - - if (client != null) - { - client.Close(); - } - - TwitchPubSubClient.OnPubSubServiceConnected -= TwitchPubSubClient_OnPubSubServiceConnected; - TwitchPubSubClient.OnListenResponse -= TwitchPubSubClient_OnListenResponse; - TwitchPubSubClient.OnChannelPointsRewardRedeemed -= TwitchPubSubClient_OnChannelPointsRewardRedeemed; - } - internal async Task DownloadImages() { var voices = VoiceModConfig.GetInstance().Rewards.ToArray(); @@ -578,7 +534,7 @@ internal async Task DownloadImages() }; awaitingBitmap = (guid, voiceInfo.FriendlyName); - client.Send(message.ToString()); + VoiceModSocket.Send(message.ToString()); while (awaitingBitmap != default) await Task.Delay(100); }