diff --git a/README.md b/README.md index ffd7350..ccafc51 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,7 @@ --- -| **`Code Factor`** | **`Travis CI`** | **`Gitter`** | **`Trello`** -|-----------------|---------------------|------------------|------------------| -| [![CodeFactor](https://www.codefactor.io/repository/github/fetzenrndy/astrosoundboard/badge)](https://www.codefactor.io/repository/github/fetzenrndy/astrosoundboard) | [![Build Status](https://travis-ci.org/FetzenRndy/AstroSoundboard.svg?branch=master)](https://travis-ci.org/FetzenRndy/AstroSoundboard) | [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/AstroSoundboard/Lobby) | [Todo List](https://trello.com/b/L7tztN1W/astrokittysoundboard) +[![CodeFactor](https://www.codefactor.io/repository/github/fetzenrndy/astrosoundboard/badge)](https://www.codefactor.io/repository/github/fetzenrndy/astrosoundboard) [![Build Status](https://travis-ci.org/FetzenRndy/AstroSoundboard.svg?branch=master)](https://travis-ci.org/FetzenRndy/AstroSoundboard) [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/AstroSoundboard/Lobby) [![CodeFactor](https://img.shields.io/badge/YouTrack-Online-green.svg)](https://bugline.myjetbrains.com/youtrack/issues/AstroBoard) [![Github All Releases](https://img.shields.io/github/downloads/FetzenRndy/AstroSoundBoard/total.svg)](https://github.com/FetzenRndy/AstroSoundboard/) [![GitHub release](https://img.shields.io/github/release/qubyte/rubidium.svg)](https://github.com/FetzenRndy/AstroSoundboard/) ## How to get the Soundboard? Download the AstroKittySoundBoard.exe [here](https://github.com/FetzenRndy/AstroSoundboard/releases) and run it. - Thats all. @@ -39,11 +37,13 @@ A little tour of the Code. ``` -#### Librarays -| AutoUpdater.NET | Fody.Costura | Fody.PropChanged | Fody | log4net | Xaml Material Design Kit | Json.NET | SharpRaven | -|---------------------------------------------------------|-------------------------------------------|---------------------------------------------------|------------------------------------|---------------------------------------------|--------------------------------------------|------------------------------------------|-----------------------------------------------------| -| A Updating lib | Dependency embedding | Auto Implements IPropertyChanged | Core Package for Fody Plugins | Logging lib | Xaml MaterialDesign Kit | Json Handling | Sentry Error Handling lib | -| [Source](https://github.com/ravibpatel/AutoUpdater.NET) | [Source](https://github.com/Fody/Costura) | [Source](https://github.com/Fody/PropertyChanged) | [Source](https://github.com/Fody/) | [Source](https://github.com/apache/log4net) | [Source](http://materialdesigninxaml.net/) | [Source](http://www.newtonsoft.com/json) | [Source](https://github.com/getsentry/raven-csharp) | +### Building +If you want to fork you need tom register a new Sentry app, and add the API Key in the Credentials class. +#### Librarays +| AutoUpdater.NET | NHotkey | Fody.Costura | Fody.Property Changed | Fody | log4net | Xaml Material Design Kit | Json.NET | SharpRaven | +|---------------------------------------------------------|-----------------------------------------------------|-------------------------------------------|---------------------------------------------------|------------------------------------|---------------------------------------------|--------------------------------------------|------------------------------------------|-----------------------------------------------------| +| A Updating lib | Easy Global Hotkey Handling | Dependency embedding | Auto Implements IPropChanged | Core Package for Fody Plugins | Logging lib | Xaml Material Design Kit | Json Handling | Sentry Error Handling lib | +| [Source](https://github.com/ravibpatel/AutoUpdater.NET) | [Source](https://github.com/thomaslevesque/NHotkey) | [Source](https://github.com/Fody/Costura) | [Source](https://github.com/Fody/PropertyChanged) | [Source](https://github.com/Fody/) | [Source](https://github.com/apache/log4net) | [Source](http://materialdesigninxaml.net/) | [Source](http://www.newtonsoft.com/json) | [Source](https://github.com/getsentry/raven-csharp) | \ No newline at end of file diff --git a/public/versions/AstroKittySoundBoard.zip b/public/versions/AstroKittySoundBoard.zip index 63d142a..fe17bce 100644 Binary files a/public/versions/AstroKittySoundBoard.zip and b/public/versions/AstroKittySoundBoard.zip differ diff --git a/public/versions/releaseNotes.html b/public/versions/releaseNotes.html index e794225..f08ce0c 100644 --- a/public/versions/releaseNotes.html +++ b/public/versions/releaseNotes.html @@ -13,9 +13,12 @@

v1

diff --git a/public/versions/updaterInfo.xml b/public/versions/updaterInfo.xml index 1537ae5..3dd98b2 100644 --- a/public/versions/updaterInfo.xml +++ b/public/versions/updaterInfo.xml @@ -1,6 +1,6 @@ - 0.9.0 + 1 https://github.com/FetzenRndy/AstroSoundboard/raw/master/public/versions/AstroKittySoundBoard.zip - - \ No newline at end of file + https://raw.githubusercontent.com/FetzenRndy/AstroSoundboard/master/public/versions/releaseNotes.html + diff --git a/src/AstroSoundBoard/App.config b/src/AstroSoundBoard/App.config index 5d18033..e0ab481 100644 --- a/src/AstroSoundBoard/App.config +++ b/src/AstroSoundBoard/App.config @@ -54,6 +54,12 @@ 50 + + True + + + True + diff --git a/src/AstroSoundBoard/App.xaml b/src/AstroSoundBoard/App.xaml index 53c2bfa..2132121 100644 --- a/src/AstroSoundBoard/App.xaml +++ b/src/AstroSoundBoard/App.xaml @@ -6,16 +6,16 @@ Exit="Application_Exit" Startup="Application_Startup" StartupUri="/WPF/Windows/MainWindow.xaml"> - - - + + + - - - - + + + + - - - + + + \ No newline at end of file diff --git a/src/AstroSoundBoard/App.xaml.cs b/src/AstroSoundBoard/App.xaml.cs index d9300c0..2cd8d4f 100644 --- a/src/AstroSoundBoard/App.xaml.cs +++ b/src/AstroSoundBoard/App.xaml.cs @@ -1,8 +1,8 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 24:04:2017 / 17:46 -// Creation: 23:04:2017 +// Last Modified: 01:05:2017 / 01:21 +// Creation: 29:04:2017 // Project: AstroSoundBoard // // @@ -12,19 +12,21 @@ namespace AstroSoundBoard { using System; + using System.Collections.Generic; using System.Reflection; using System.Windows; using AstroSoundBoard.Core.Components; using AstroSoundBoard.Core.Objects; using AstroSoundBoard.Core.Utils; - using AstroSoundBoard.WPF.Pages.Settings; using log4net; using log4net.Core; using MaterialDesignThemes.Wpf; + using SharpRaven; + public partial class App : Application { private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -35,8 +37,8 @@ private void Application_Startup(object sender, StartupEventArgs e) ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Level = Level.Debug; ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).RaiseConfigurationChanged(EventArgs.Empty); #else - ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Level = Level.Info; - ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).RaiseConfigurationChanged(EventArgs.Empty); + ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Level = Level.Info; + ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).RaiseConfigurationChanged(EventArgs.Empty); #endif Log.Info("--- APP START! ---"); @@ -46,8 +48,21 @@ private void Application_Startup(object sender, StartupEventArgs e) FileSystem.FolderHelper.CreateIfMissing($"{AppSettings.InstallationFilePath}/"); // Setup error handling to log fatal errors. - AppDomain currentDomain = AppDomain.CurrentDomain; - currentDomain.UnhandledException += (caller, args) => { Log.Fatal($"Fatal unhanded exception. - {args.ExceptionObject} -- {args.IsTerminating} -> {args}"); }; + AppDomain.CurrentDomain.UnhandledException += (caller, args) => + { + Log.Fatal($"Fatal unhanded exception. - {args.ExceptionObject} -- {args.IsTerminating} -> {args}"); + +#if !DEBUG + if (AstroSoundBoard.Properties.Settings.Default.AllowErrorReporting) + { + var ravenClient = new RavenClient(Credentials.SentryApiKey); + ravenClient.Capture(new SharpRaven.Data.SentryEvent((Exception)args.ExceptionObject)); + + Log.Info("Reported error to sentry!"); + } + +#endif + }; ApplyMaterialTheme(); SoundManager.Init(); @@ -61,9 +76,11 @@ private void Application_Exit(object sender, ExitEventArgs e) public static void ApplyMaterialTheme() { + List colorList = new List { "Red", "Pink", "Purple", "Indigo", "Blue", "Cyan", "Teal", "Green", "Lime", "Yellow", "Amber", "Orange", "Brown", "Grey" }; + var palette = new PaletteHelper(); palette.SetLightDark(AstroSoundBoard.Properties.Settings.Default.IsDarkModeEnabled); - palette.ReplacePrimaryColor(SettingsView.ColorList[AstroSoundBoard.Properties.Settings.Default.PrimaryColor]); + palette.ReplacePrimaryColor(colorList[AstroSoundBoard.Properties.Settings.Default.PrimaryColor]); } } } \ No newline at end of file diff --git a/src/AstroSoundBoard/AstroSoundBoard.csproj b/src/AstroSoundBoard/AstroSoundBoard.csproj index b06f285..e4ff246 100644 --- a/src/AstroSoundBoard/AstroSoundBoard.csproj +++ b/src/AstroSoundBoard/AstroSoundBoard.csproj @@ -77,12 +77,25 @@ ..\..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll + + ..\..\packages\NHotkey.1.2.1\lib\net20\NHotkey.dll + + + ..\..\packages\NHotkey.Wpf.1.2.1\lib\net35\NHotkey.Wpf.dll + ..\..\packages\PropertyChanged.Fody.1.53.0\lib\netstandard10\PropertyChanged.dll False + + ..\..\packages\SharpRaven.2.2.0\lib\net45\SharpRaven.dll + + + ..\..\packages\System.ValueTuple.4.3.0\lib\netstandard1.0\System.ValueTuple.dll + + @@ -98,13 +111,29 @@ MSBuild:Compile Designer - - UpdateWindow.xaml + + + + + + + KeybindView.xaml + + + AboutView.xaml + + Designer + MSBuild:Compile + Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -113,10 +142,22 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + MSBuild:Compile Designer @@ -131,7 +172,6 @@ - @@ -149,17 +189,22 @@ SettingsView.xaml + + FeedbackWindow.xaml + InfoWindow.xaml + + KeybindConfiguratorWindow.xaml + + + KeybindManagerWindow.xaml + MainWindow.xaml Code - - Designer - MSBuild:Compile - @@ -311,6 +356,7 @@ + @@ -321,16 +367,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". - - + - - + \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Components/KeybindManager.cs b/src/AstroSoundBoard/Core/Components/KeybindManager.cs new file mode 100644 index 0000000..8f29c30 --- /dev/null +++ b/src/AstroSoundBoard/Core/Components/KeybindManager.cs @@ -0,0 +1,183 @@ +// ****************************** Module Header ****************************** // +// +// +// Last Modified: 01:05:2017 / 13:33 +// Creation: 01:05:2017 +// Project: AstroSoundBoard +// +// +// // +// *************************************************************************** // + +namespace AstroSoundBoard.Core.Components +{ + using System; + using System.IO; + using System.Media; + + using AstroSoundBoard.Core.Objects.DataObjects; + + using log4net; + + using NHotkey; + using NHotkey.Wpf; + + public class KeybindManager + { + private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + public static void SetKeybinds() + { + Log.Debug("Setting Keybinds..."); + + foreach (Sound sound in SettingsManager.Cache) + { + if (sound.HotKey == null) + { + continue; + } + + try + { + HotkeyManager.Current.Remove(sound.Name); + HotkeyManager.Current.AddOrReplace(sound.Name, sound.HotKey.Key, sound.HotKey.Modifier, true, PlaySound); + } + catch + { + // Do nothing. There will be alot of errors but this is fine. + } + } + } + + public static void RemoveAllKeybinds() + { + for (int i = 0; i < SettingsManager.Cache.Count; i++) + { + SettingsManager.Cache[i].HotKey = new KeyBind(); + SettingsManager.RewriteSound(SettingsManager.Cache[i]); + } + + SetKeybinds(); + } + + public static void RemoveAllKeybindMappings() + { + for (int i = 0; i < SettingsManager.Cache.Count; i++) + { + try + { + HotkeyManager.Current.Remove(SettingsManager.Cache[i].Name); + } + catch + { + // Do nothing since there will be many errors thrown. + } + } + + SetKeybinds(); + } + + public static (bool status, string) CheckDuplicate(Sound sound) + { + (bool, string) returnType = (true, "Success"); + + try + { + HotkeyManager.Current.AddOrReplace(sound.Name, sound.HotKey.Key, sound.HotKey.Modifier, true, PlaySound); + } + catch (HotkeyAlreadyRegisteredException) + { + returnType = (false, $@"A Hotkey for {sound.HotKey.Modifier}+{sound.HotKey.Key} is already defined, in {GetSoundByKeybind(sound)?.Name}! Please choose another one! "); + } + catch + { + returnType = (false, "Sorry the Hotkey can not be set"); + } + finally + { + HotkeyManager.Current.Remove(sound.Name); + } + + return returnType; + } + + public static Sound GetSoundByKeybind(Sound sound) + { + foreach (Sound item in SettingsManager.Cache) + { + if (item.HotKey.Key == sound.HotKey.Key && item.HotKey.Modifier == sound.HotKey.Modifier) + { + return item; + } + } + + return null; + } + + private static void PlaySound(object sender, HotkeyEventArgs e) + { + Log.Debug($"Trying to Play sound : {e.Name}"); + + try + { + string name = e.Name; + name = name.Replace(' ', '_'); + + using (SoundPlayer player = new SoundPlayer((UnmanagedMemoryStream)SoundManager.Storage.GetAudioFileFromResources(name))) + { + player.Play(); + } + } + catch (Exception exception) + { + Log.Error("Can not play Definition!", exception); + } + } + + public static void RemoveKeybindAndMappingByName(string name) + { + foreach (Sound sound in SettingsManager.Cache) + { + if (sound.Name == name) + { + sound.HotKey = new KeyBind(); + } + } + + try + { + HotkeyManager.Current.Remove(name); + } + catch (Exception exception) + { + Log.Error("Hotkey error!", exception); + } + } + + public static void RemoveKeybindByName(string name) + { + foreach (Sound sound in SettingsManager.Cache) + { + if (sound.Name == name) + { + sound.HotKey = new KeyBind(); + } + } + } + + public static void DisableAllKeybindsAndMappings() + { + foreach (Sound sound in SettingsManager.Cache) + { + try + { + HotkeyManager.Current.Remove(sound.Name); + } + catch (Exception exception) + { + Log.Error("Hotkey error!", exception); + } + } + } + } +} \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Components/SettingsManager.cs b/src/AstroSoundBoard/Core/Components/SettingsManager.cs index 938de13..fc49b43 100644 --- a/src/AstroSoundBoard/Core/Components/SettingsManager.cs +++ b/src/AstroSoundBoard/Core/Components/SettingsManager.cs @@ -1,8 +1,8 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 25:04:2017 / 16:46 -// Creation: 16:04:2017 +// Last Modified: 01:05:2017 / 15:08 +// Creation: 01:05:2017 // Project: AstroSoundBoard // // @@ -12,21 +12,22 @@ namespace AstroSoundBoard.Core.Components { using System; + using System.Collections.Generic; using System.IO; using AstroSoundBoard.Core.Objects; using AstroSoundBoard.Core.Objects.DataObjects; + using AstroSoundBoard.Properties; using log4net; using Newtonsoft.Json; - // BUG: File does not get written! public class SettingsManager { - private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + internal static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private static Sounds Cache { get; set; } + internal static List Cache { get; set; } public static void Init() { @@ -42,19 +43,25 @@ public static void Init() { var readText = File.ReadAllText(AppSettings.SoundSettingsFilePath); - if (readText == string.Empty) + if (string.IsNullOrWhiteSpace(readText)) { File.Delete(AppSettings.SoundSettingsFilePath); CreateStandardFile(); } - Cache = JsonConvert.DeserializeObject(readText); + Cache = JsonConvert.DeserializeObject>(readText); } catch (Exception exception) { + File.Delete(AppSettings.SoundSettingsFilePath); Log.Error("Something failed.", exception); } } + + if (Settings.Default.EnableSoundHotKeys) + { + KeybindManager.SetKeybinds(); + } } private static void CreateStandardFile() @@ -68,54 +75,27 @@ private static void CreateStandardFile() }; ResetCache(); - Cache.SoundList.Add(stdSounds); + Cache.Add(stdSounds); File.WriteAllText(AppSettings.SoundSettingsFilePath, JsonConvert.SerializeObject(stdObject)); } private static void ResetCache() { Cache = null; - Cache = new Sounds(); + Cache = new List(); } private static void RegisterSound(Sound sound) { Log.Debug("Registering Definition!"); - Cache.SoundList.Add(sound); + Cache.Add(sound); WriteSounds(); } - public static void RegisterSoundIfNotExists(Sound sound) - { - try - { - for (int i = 0; i < Cache.SoundList.Count; i++) - { - if (Cache.SoundList[i].Name == sound.Name) - { - break; - } - else if (i == Cache.SoundList.Count - 1) - { - RegisterSound(sound); - } - } - } - catch (Exception exception) - { - Log.Error("Error while trying to register Definition...", exception); - if (File.Exists(AppSettings.SoundSettingsFilePath)) - { - File.Delete(AppSettings.SoundSettingsFilePath); - } - - throw; - } - } - public static void WriteSounds() { Log.Debug("Writing sound..."); + if (File.Exists(AppSettings.SoundSettingsFilePath)) { File.Delete(AppSettings.SoundSettingsFilePath); @@ -126,7 +106,7 @@ public static void WriteSounds() public static Sound GetSound(string name) { - foreach (Sound item in Cache.SoundList) + foreach (Sound item in Cache) { if (item.Name == name) { @@ -146,11 +126,11 @@ public static void RewriteSound(Sound sound) } Log.Debug($"Changing Definition of {sound.Name}"); - for (int i = 0; i < Cache.SoundList.Count; i++) + for (int i = 0; i < Cache.Count; i++) { - if (Cache.SoundList[i].Name == sound.Name) + if (Cache[i].Name == sound.Name) { - Cache.SoundList[i] = sound; + Cache[i] = sound; WriteSounds(); return; } diff --git a/src/AstroSoundBoard/Core/Components/SoundManager.cs b/src/AstroSoundBoard/Core/Components/SoundManager.cs index 27983c4..a75e4ab 100644 --- a/src/AstroSoundBoard/Core/Components/SoundManager.cs +++ b/src/AstroSoundBoard/Core/Components/SoundManager.cs @@ -1,7 +1,7 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 22:04:2017 / 15:52 +// Last Modified: 30:04:2017 / 16:44 // Creation: 17:04:2017 // Project: AstroSoundBoard // @@ -25,70 +25,70 @@ namespace AstroSoundBoard.Core.Components using Newtonsoft.Json; public static class SoundManager - { - // These variables are getting assigned in the Startup Process in the Updater class! - private static SoundDefinitions SoundDefinition { get; set; } - private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + { + // These variables are getting assigned in the Startup Process in the Updater class! + private static SoundDefinitions SoundDefinition { get; set; } + private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - // I could have used a static constructor but I like having more control over when this will happen! - public static void Init() - { - Log.Info("Starting in Sound Manager!"); - Updater.GetDefinition(); - } + // I could have used a static constructor but I like having more control over when this will happen! + public static void Init() + { + Log.Info("Starting in Sound Manager!"); + Updater.GetDefinition(); + } - public static class Storage - { - public static object GetAudioFileFromResources(string value) - { - ResourceSet resourceSet = Properties.Resources.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); + public static class Storage + { + public static object GetAudioFileFromResources(string value) + { + ResourceSet resourceSet = Properties.Resources.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); - foreach (DictionaryEntry item in resourceSet) - { - if (item.Key.ToString() == value) - { - return item.Value; - } - } + foreach (DictionaryEntry item in resourceSet) + { + if (item.Key.ToString() == value) + { + return item.Value; + } + } - return null; - } - } + return null; + } + } - public static class Information - { - public static Definition GetSoundInfo(string name) - { - foreach (Definition item in SoundDefinition.SoundList) - { - if (item.Sound.Name == name) - { - return item; - } - } + public static class Information + { + public static Definition GetSoundInfo(string name) + { + foreach (Definition item in SoundDefinition.SoundList) + { + if (item.Sound.Name == name) + { + return item; + } + } - return null; - } + return null; + } - public static List GetSoundList() - { - return SoundDefinition.SoundList; - } - } + public static List GetSoundList() + { + return SoundDefinition.SoundList; + } + } - internal static class Updater - { - internal static void GetDefinition() - { - try - { - SoundDefinition = JsonConvert.DeserializeObject(Properties.Resources.SoundDefinition); - } - catch (Exception exception) - { - Log.Fatal("Can not de-serialize the downloaded Json!", exception); - } - } - } - } + internal static class Updater + { + internal static void GetDefinition() + { + try + { + SoundDefinition = JsonConvert.DeserializeObject(Properties.Resources.SoundDefinition); + } + catch (Exception exception) + { + Log.Fatal("Can not de-serialize the downloaded Json!", exception); + } + } + } + } } \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Components/ViewChanger.cs b/src/AstroSoundBoard/Core/Components/ViewChanger.cs index 481a4cf..6211c76 100644 --- a/src/AstroSoundBoard/Core/Components/ViewChanger.cs +++ b/src/AstroSoundBoard/Core/Components/ViewChanger.cs @@ -1,7 +1,7 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 22:04:2017 / 17:04 +// Last Modified: 26:04:2017 / 21:33 // Creation: 16:04:2017 // Project: AstroSoundBoard // @@ -26,7 +26,8 @@ public class ViewChanger public enum Page { Board, - Settings + Settings, + About } public static void ChangeViewTo(Page p) @@ -45,6 +46,9 @@ private static object GetViewFromEnum(Page p) case Page.Settings: return new SettingsView(); + case Page.About: + return new WPF.Pages.About.AboutView(); + default: throw new System.ArgumentException("Illegal Argument"); } diff --git a/src/AstroSoundBoard/Core/Objects/Credentials.cs b/src/AstroSoundBoard/Core/Objects/Credentials.cs new file mode 100644 index 0000000..0ed7cc9 --- /dev/null +++ b/src/AstroSoundBoard/Core/Objects/Credentials.cs @@ -0,0 +1,18 @@ +// ****************************** Module Header ****************************** // +// +// +// Last Modified: 29:04:2017 / 20:00 +// Creation: 29:04:2017 +// Project: AstroSoundBoard +// +// +// // +// *************************************************************************** // + +namespace AstroSoundBoard.Core.Objects +{ + public class Credentials + { + public const string SentryApiKey = "https://7022c1d1e36c4342882fd531a437f87d:17f4fdd9922148558ecd41f69f6b70f3@sentry.io/162665"; + } +} \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Objects/DataObjects/KeyBind.cs b/src/AstroSoundBoard/Core/Objects/DataObjects/KeyBind.cs new file mode 100644 index 0000000..6f3eb24 --- /dev/null +++ b/src/AstroSoundBoard/Core/Objects/DataObjects/KeyBind.cs @@ -0,0 +1,97 @@ +// ****************************** Module Header ****************************** // +// +// +// Last Modified: 01:05:2017 / 01:12 +// Creation: 30:04:2017 +// Project: AstroSoundBoard +// +// +// // +// *************************************************************************** // + +namespace AstroSoundBoard.Core.Objects.DataObjects +{ + using System; + using System.ComponentModel; + using System.Runtime.CompilerServices; + using System.Windows.Input; + + public class KeyBind : INotifyPropertyChanged + { + public KeyBind(Key key, ModifierKeys modifier) + { + Modifier = modifier; + Key = key; + } + + public KeyBind() + { + Modifier = ModifierKeys.None; + Key = Key.None; + } + + private bool isActive; + private Key key; + private ModifierKeys modifier; + + public ModifierKeys Modifier + { + get => modifier; + set + { + modifier = value; + OnPropertyChanged(nameof(Modifier)); + } + } + public Key Key + { + get => key; + set + { + key = value; + OnPropertyChanged(nameof(Key)); + } + } + + public bool HasAssignedKeybind + { + get => Key == Key.None && Modifier == ModifierKeys.None; + } + + // Needed for Json Serialisation. + public string ModifierString => Modifier.ToString(); + + public string KeyString => Key.ToString(); + + // Helpers + public bool SetValues() + { + try + { + Modifier = (ModifierKeys)Enum.Parse(typeof(ModifierKeys), ModifierString); + Key = (Key)Enum.Parse(typeof(Key), KeyString); + return true; + } + catch + { + return false; + } + } + + public void RaisePropertyChanged() + { + OnPropertyChanged(); + } + + #region PropertyChanged + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion PropertyChanged + } +} \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Objects/DataObjects/Sound.cs b/src/AstroSoundBoard/Core/Objects/DataObjects/Sound.cs index 2700701..8c34012 100644 --- a/src/AstroSoundBoard/Core/Objects/DataObjects/Sound.cs +++ b/src/AstroSoundBoard/Core/Objects/DataObjects/Sound.cs @@ -1,26 +1,83 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 21:04:2017 / 23:43 +// Last Modified: 01:05:2017 / 01:11 // Creation: 21:04:2017 // Project: AstroSoundBoard // // -// // +// // // *************************************************************************** // namespace AstroSoundBoard.Core.Objects.DataObjects { - public class Sound - { - // Definition - public string Name { get; set; } - - // Settings - public string IsFavorite { get; set; } - - // Info - public string Description { get; set; } - public string VideoLink { get; set; } - } + using System.ComponentModel; + using System.Runtime.CompilerServices; + + public class Sound : INotifyPropertyChanged + { + private string name; + private string videoLink; + private string isFavorite; + private KeyBind hotKey; + + public string Name + { + get => name; + + set + { + name = value; + OnPropertyChanged(nameof(Name)); + } + } + + public string IsFavorite + { + get => isFavorite; + set + { + isFavorite = value; + OnPropertyChanged(nameof(isFavorite)); + } + } + + public string Description { get; set; } + + public string VideoLink + { + get => videoLink; + set + { + videoLink = value; + OnPropertyChanged(nameof(VideoLink)); + } + } + + public KeyBind HotKey + { + get => hotKey; + set + { + hotKey = value; + OnPropertyChanged(nameof(HotKey)); + } + } + + public void RaisePropertyChanged() + { + OnPropertyChanged(); + } + + #region PropertyChanged + + public event PropertyChangedEventHandler PropertyChanged; + + public virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + #endregion PropertyChanged + } } \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Objects/DataObjects/SoundDefinitions.cs b/src/AstroSoundBoard/Core/Objects/DataObjects/SoundDefinitions.cs index e447796..83128c1 100644 --- a/src/AstroSoundBoard/Core/Objects/DataObjects/SoundDefinitions.cs +++ b/src/AstroSoundBoard/Core/Objects/DataObjects/SoundDefinitions.cs @@ -1,7 +1,7 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 21:04:2017 / 23:45 +// Last Modified: 29:04:2017 / 21:09 // Creation: 17:04:2017 // Project: AstroSoundBoard // @@ -14,31 +14,28 @@ namespace AstroSoundBoard.Core.Objects.DataObjects.SoundDefinitionJsonTypes using Newtonsoft.Json; public class SoundAttribute - { - [JsonProperty("name")] - public string Name { get; set; } + { + [JsonProperty("name")] + public string Name { get; set; } + } - [JsonProperty("version")] - public string Version { get; set; } - } + public class InfoAttribute + { + [JsonProperty("VideoLink")] + public string VideoLink { get; set; } - public class InfoAttribute - { - [JsonProperty("VideoLink")] - public string VideoLink { get; set; } + [JsonProperty("Description")] + public string Description { get; set; } + } - [JsonProperty("Description")] - public string Description { get; set; } - } + public class Definition + { + [JsonProperty("sound")] + public SoundAttribute Sound { get; set; } - public class Definition - { - [JsonProperty("sound")] - public SoundAttribute Sound { get; set; } - - [JsonProperty("info")] - public InfoAttribute Info { get; set; } - } + [JsonProperty("info")] + public InfoAttribute Info { get; set; } + } } namespace AstroSoundBoard.Core.Objects.DataObjects.SoundDefinition @@ -50,19 +47,19 @@ namespace AstroSoundBoard.Core.Objects.DataObjects.SoundDefinition using Newtonsoft.Json; public class SoundDefinitions - { - public SoundDefinitions() - { - SoundList = new List(); - } + { + public SoundDefinitions() + { + SoundList = new List(); + } - [JsonProperty("FileVersion")] - public string FileVersion { get; set; } + [JsonProperty("FileVersion")] + public string FileVersion { get; set; } - [JsonProperty("ParserVersion")] - public string ParserVersion { get; set; } + [JsonProperty("ParserVersion")] + public string ParserVersion { get; set; } - [JsonProperty("Sounds")] - public List SoundList { get; set; } - } + [JsonProperty("Sounds")] + public List SoundList { get; set; } + } } \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Objects/DataObjects/Sounds.cs b/src/AstroSoundBoard/Core/Objects/DataObjects/Sounds.cs deleted file mode 100644 index 7d47094..0000000 --- a/src/AstroSoundBoard/Core/Objects/DataObjects/Sounds.cs +++ /dev/null @@ -1,25 +0,0 @@ -// ****************************** Module Header ****************************** // -// -// -// Last Modified: 16:04:2017 / 23:32 -// Creation: 16:04:2017 -// Project: AstroSoundBoard -// -// -// // -// *************************************************************************** // - -namespace AstroSoundBoard.Core.Objects.DataObjects -{ - using System.Collections.Generic; - - public class Sounds - { - public Sounds() - { - SoundList = new List(); - } - - public List SoundList { get; set; } - } -} \ No newline at end of file diff --git a/src/AstroSoundBoard/Core/Utils/NativeMethods.cs b/src/AstroSoundBoard/Core/Utils/NativeMethods.cs new file mode 100644 index 0000000..e8f7ba7 --- /dev/null +++ b/src/AstroSoundBoard/Core/Utils/NativeMethods.cs @@ -0,0 +1,28 @@ +// ****************************** Module Header ****************************** // +// +// +// Last Modified: 30:04:2017 / 14:33 +// Creation: 29:04:2017 +// Project: AstroSoundBoard +// +// +// // +// *************************************************************************** // + +namespace AstroSoundBoard.Core.Utils +{ + using System; + using System.Runtime.InteropServices; + + public class Win32 + { + public const int WM_HOTKEY_MSG_ID = 0x0312; + } + + public class NativeMethods + { + // SOUNDS + [DllImport("winmm.dll")] + public static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume); + } +} \ No newline at end of file diff --git a/src/AstroSoundBoard/Properties/Resources.Designer.cs b/src/AstroSoundBoard/Properties/Resources.Designer.cs index 61cd368..ee2d329 100644 --- a/src/AstroSoundBoard/Properties/Resources.Designer.cs +++ b/src/AstroSoundBoard/Properties/Resources.Designer.cs @@ -60,6 +60,33 @@ internal Resources() { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream AGAINST_ME { + get { + return ResourceManager.GetStream("AGAINST_ME", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream ALOT_OF_CUNTS { + get { + return ResourceManager.GetStream("ALOT_OF_CUNTS", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream AMEIZING { + get { + return ResourceManager.GetStream("AMEIZING", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -69,6 +96,15 @@ internal static System.IO.UnmanagedMemoryStream AW_YEAH_PAPI { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream BAD_DECISIONS { + get { + return ResourceManager.GetStream("BAD_DECISIONS", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -105,6 +141,24 @@ internal static System.IO.UnmanagedMemoryStream CHEEKY_CHEEKY { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream DARKNESS_IM_DAD { + get { + return ResourceManager.GetStream("DARKNESS_IM_DAD", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream DICK_SKIN_IS_PEELING { + get { + return ResourceManager.GetStream("DICK_SKIN_IS_PEELING", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -123,6 +177,33 @@ internal static System.IO.UnmanagedMemoryStream DROP_THAT_CHITTY { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream ENGINE_START { + get { + return ResourceManager.GetStream("ENGINE_START", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream FUCKING_DOMINATE { + get { + return ResourceManager.GetStream("FUCKING_DOMINATE", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream FUCKING_JUNKRAT { + get { + return ResourceManager.GetStream("FUCKING_JUNKRAT", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -132,6 +213,15 @@ internal static System.IO.UnmanagedMemoryStream FUCKING_MERCY { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream FUCKING_NEOW { + get { + return ResourceManager.GetStream("FUCKING_NEOW", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -168,6 +258,15 @@ internal static System.IO.UnmanagedMemoryStream GOING_TOO_DEEP_GUYS { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream GOOD_CATCH { + get { + return ResourceManager.GetStream("GOOD_CATCH", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -186,6 +285,15 @@ internal static System.IO.UnmanagedMemoryStream HARMONY_ORB { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream HE_CAME_IN_MY_FACE { + get { + return ResourceManager.GetStream("HE_CAME_IN_MY_FACE", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -195,6 +303,60 @@ internal static System.IO.UnmanagedMemoryStream HEAL_ME_YOU_CUNT { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream HEY { + get { + return ResourceManager.GetStream("HEY", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream HIT_ME { + get { + return ResourceManager.GetStream("HIT_ME", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream I_AM_NUTCRACKER { + get { + return ResourceManager.GetStream("I_AM_NUTCRACKER", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream I_MAIN_CANCER { + get { + return ResourceManager.GetStream("I_MAIN_CANCER", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream IS_THIS_HARAMBE { + get { + return ResourceManager.GetStream("IS_THIS_HARAMBE", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream MAINHART_RAIN { + get { + return ResourceManager.GetStream("MAINHART_RAIN", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -204,6 +366,15 @@ internal static System.IO.UnmanagedMemoryStream MONKEY_EAT_MY_ASS { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream MONKEY_MONKEY { + get { + return ResourceManager.GetStream("MONKEY_MONKEY", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -213,6 +384,15 @@ internal static System.IO.UnmanagedMemoryStream MORE_STYLE { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream MOVED_ASLEP { + get { + return ResourceManager.GetStream("MOVED_ASLEP", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -231,6 +411,42 @@ internal static System.IO.UnmanagedMemoryStream NICE_PHARA { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream NOT_PAST_GORILLA { + get { + return ResourceManager.GetStream("NOT_PAST_GORILLA", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream OVERUSED_MEME { + get { + return ResourceManager.GetStream("OVERUSED_MEME", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream PHARA_VS_SOLIDER { + get { + return ResourceManager.GetStream("PHARA_VS_SOLIDER", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream PLATNIUM_DAMAGE { + get { + return ResourceManager.GetStream("PLATNIUM_DAMAGE", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -258,6 +474,15 @@ internal static System.IO.UnmanagedMemoryStream RIPPAAA { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream RRRRRRR { + get { + return ResourceManager.GetStream("RRRRRRR", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -276,6 +501,15 @@ internal static System.IO.UnmanagedMemoryStream SHUT_UP_ASTROKITTY { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream SICK_ULT { + get { + return ResourceManager.GetStream("SICK_ULT", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -295,7 +529,21 @@ internal static System.IO.UnmanagedMemoryStream SO_RUDE { } /// - /// Sucht eine lokalisierte Zeichenfolge, die {"FileVersion":"1","ParserVersion":"1","Sounds":[{"sound":{"name":"FUCKING_MERCY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/11olpkle_YQ","Description":"Friend of Astro Screaming 'FUCKING MERCY' as a mercy comes in and revives alot of people and causing them to lose the Game. - Mercy OP please nerf"}},{"sound":{"name":"AW_YEAH_PAPI","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/4npgppVhcQ4","Description":"A Kid get's horny in the Middle of the Match"}},{"sound":{"n [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. + /// Sucht eine lokalisierte Zeichenfolge, die { + /// "FileVersion": "1", + /// "ParserVersion": "1", + /// "Sounds": [{ + /// "sound": { + /// "name": "FUCKING_MERCY" + /// }, + /// "info": { + /// "VideoLink": "https://www.youtube.com/embed/11olpkle_YQ", + /// "Description": "Friend of Astro Screaming 'FUCKING MERCY' as a mercy comes in and revives alot of people and causing them to lose the Game. - Mercy OP please nerf" + /// } + /// }, + /// { + /// "sound": { + /// "name": "AW_YEA [Rest der Zeichenfolge wurde abgeschnitten]"; ähnelt. /// internal static string SoundDefinition { get { @@ -321,6 +569,15 @@ internal static System.IO.UnmanagedMemoryStream SUCK_MY_DICK { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream SUCK_MY_ORBS { + get { + return ResourceManager.GetStream("SUCK_MY_ORBS", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -348,6 +605,15 @@ internal static System.IO.UnmanagedMemoryStream THATS_UNFORTUNATE { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream THE_META { + get { + return ResourceManager.GetStream("THE_META", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// @@ -366,6 +632,42 @@ internal static System.IO.UnmanagedMemoryStream THIS_IS_A_BAD_IDEA { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream THIS_MOMENT { + get { + return ResourceManager.GetStream("THIS_MOMENT", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream TRUMP_2017 { + get { + return ResourceManager.GetStream("TRUMP_2017", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream TURNED_INTO_TRACER { + get { + return ResourceManager.GetStream("TURNED_INTO_TRACER", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream WHEN_YOU_TRY { + get { + return ResourceManager.GetStream("WHEN_YOU_TRY", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.IO.UnmanagedMemoryStream ähnlich wie System.IO.MemoryStream. /// diff --git a/src/AstroSoundBoard/Properties/Resources.resx b/src/AstroSoundBoard/Properties/Resources.resx index 0266f6e..17b7225 100644 --- a/src/AstroSoundBoard/Properties/Resources.resx +++ b/src/AstroSoundBoard/Properties/Resources.resx @@ -194,7 +194,614 @@ ..\Resources\SMACK_MY_BITCH_UP.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - {"FileVersion":"1","ParserVersion":"1","Sounds":[{"sound":{"name":"FUCKING_MERCY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/11olpkle_YQ","Description":"Friend of Astro Screaming 'FUCKING MERCY' as a mercy comes in and revives alot of people and causing them to lose the Game. - Mercy OP please nerf"}},{"sound":{"name":"AW_YEAH_PAPI","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/4npgppVhcQ4","Description":"A Kid get's horny in the Middle of the Match"}},{"sound":{"name":"BOOPEY_BOOPEY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/Sgcemfa7Tow","Description":"Astro Boops a Person"}},{"sound":{"name":"BYE_BYE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/xNAPJ5bMLGQ","Description":"Astros team says bye a billion times"}},{"sound":{"name":"CHEEKY_BOOP","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/Sgcemfa7Tow","Description":"Astro Boops a other Player while hiding and calls it a cheeky boop"}},{"sound":{"name":"CHEEKY_CHEEKY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/qv8E50WPF9E","Description":"Astro plays Cheeky with Reaper"}},{"sound":{"name":"DO_IT_FOR_THE_MEMEZ","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/8tExMeAsGEU","Description":"Kid wants to do it for the Memes"}},{"sound":{"name":"DROP_THAT_CHITTY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/I34V4HeasKs","Description":"Description"}},{"sound":{"name":"GET_HER_BABY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/YeDCTAkwAA","Description":"Mercy wants astro to kill the baby d.va"}},{"sound":{"name":"GIVE_IT_TO_ME_ASTRO","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/dwmZwOngW8I","Description":"After a team mate of Astro says to him that he did a good job, and Astro responds with 'Thanks mum' he comes up with this voiceline"}},{"sound":{"name":"GOING_TOO_DEEP_GUYS","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/gGrcV994cqY","Description":"Astro and his team are overextending and a grill wants to make them aware of it and tells them that they are going to deep."}},{"sound":{"name":"GUNG","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/yGUS7fVu0ZA","Description":"Astros Friend get shot in the Head and the Bullet gets reflected by the Helmet and making a GUNG sound"}},{"sound":{"name":"HARMONY_ORB","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/YrDomblEJV8","Description":"Astros Friend imitates the 'Playing with a guy that sounds like zen' video"}},{"sound":{"name":"HEAL_ME_YOU_CUNT","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/IG7sC5tudN0","Description":"Astro as Mercy soloheals a McRee the whole match but as the gets to another Teammate to help him out he dies and the McRee gets salty"}},{"sound":{"name":"MONKEY_EAT_MY_ASS","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/G4V1c5GC72E","Description":"Astros team mate gets killed by a Winston to which he responds that he wants their Winston to eat his ass"}},{"sound":{"name":"NICE_JOB_ASTRO","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/ixda9vcYxvk","Description":"Astro gets a double with the Solider ult saving the point, and a grill calls him out for it."}},{"sound":{"name":"NICE_PHARA","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/xNAPJ5bMLGQ","Description":"Astros russian team mate is supprised at phara getting the POTG"}},{"sound":{"name":"PRETTY_GOOD_PUSH","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/LkcR79j8n-Q","Description":"Astro fucks up a push"}},{"sound":{"name":"PRETTY_NICE_BOOP","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/Sgcemfa7Tow","Description":"Astro is a boop god"}},{"sound":{"name":"GIVE_A_BLOWJOB","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/4npgppVhcQ4","Description":"Astros Team mate wants a blowjob from a Guy with a nice voice"}},{"sound":{"name":"RIPPAAA","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/qv8E50WPF9E&t","Description":"Astro cheeky with Reaper"}},{"sound":{"name":"RUNNAWAY_FROM_ME","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/I34V4HeasKs","Description":"Astros Teammate named runaway leaves the Match"}},{"sound":{"name":"SHUT_UP_ASTROKITTY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/lYeDCTAkwAA","Description":"Astro roasts a mercy that was saving his ult"}},{"sound":{"name":"SMACK_MY_BITCH_UP","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/qv8E50WPF9E","Description":"Astro smacks his enemys with Reinhart"}},{"sound":{"name":"SO_RUDE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/8-1c9wkWITA","Description":"Astros Team is Rude"}},{"sound":{"name":"STOP_BEING_A_PUSSY","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/IG7sC5tudN0","Description":"Ana on Astros Team wants the Team to push up and not be such a pussy"}},{"sound":{"name":"SUCK_MY_DICK","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/4npgppVhcQ4","Description":"Astros team mate gets salty at the end of the match and starts to Argue with him as the match ends the finished with this voiceline"}},{"sound":{"name":"THATS_ALRIGHT_BAE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/I34V4HeasKs","Description":"Astro gets caught from then enemy reinhart and almost dies as ana commes in to save him."}},{"sound":{"name":"THATS_UNFORTUNATE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/YrDomblEJV8","Description":"Astros mate gets picked"}},{"sound":{"name":"THAT_SUCKS_DICK_DUDE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/dwmZwOngW8I","Description":"As Astros team gets a Team wipe mercy comes in and rescuructs the whole team."}},{"sound":{"name":"THERE_IS_YOUR_PICK","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/iEZE-Rd-EAY","Description":"Astros team mate gets a double pick and wants to motivate the team to get into the Point."}},{"sound":{"name":"THIS_IS_A_BAD_IDEA","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/8tExMeAsGEU","Description":"A Teammate thinks this it is a bad idea to push"}},{"sound":{"name":"WINSTON_ON_MY_COCK","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/iEZE-Rd-EAY","Description":"Astros Teammate (zen) gets focused by a winston which he responds to with this voiceline."}},{"sound":{"name":"MORE_STYLE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/tD5G_WQWXMw","Description":"Astro and his Team won a Match with more style that their Enemys"}},{"sound":{"name":"YOU_SLUT","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/IG7sC5tudN0","Description":"Astros Team mate gets salty as he gets killed"}},{"sound":{"name":"YOU_SUCK_DUDE","version":"1"},"info":{"VideoLink":"https://www.youtube.com/embed/jKRGhj7vK7Q","Description":"Mercy waited the whole match on Astro (phara) to ult but he didnt ult, in the end of the round he expresses his emotions."}}]} + { + "FileVersion": "1", + "ParserVersion": "1", + "Sounds": [{ + "sound": { + "name": "FUCKING_MERCY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/11olpkle_YQ", + "Description": "Friend of Astro Screaming 'FUCKING MERCY' as a mercy comes in and revives alot of people and causing them to lose the Game. - Mercy OP please nerf" + } + }, + { + "sound": { + "name": "AW_YEAH_PAPI" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/4npgppVhcQ4", + "Description": "A Kid get's horny in the Middle of the Match" + } + }, + { + "sound": { + "name": "BOOPEY_BOOPEY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/Sgcemfa7Tow", + "Description": "Astro Boops a Person" + } + }, + { + "sound": { + "name": "BYE_BYE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/xNAPJ5bMLGQ", + "Description": "Astros team says bye a billion times" + } + }, + { + "sound": { + "name": "CHEEKY_BOOP" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/Sgcemfa7Tow", + "Description": "Astro Boops a other Player while hiding and calls it a cheeky boop" + } + }, + { + "sound": { + "name": "CHEEKY_CHEEKY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E", + "Description": "Astro plays Cheeky with Reaper" + } + }, + { + "sound": { + "name": "DO_IT_FOR_THE_MEMEZ" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8tExMeAsGEU", + "Description": "Kid wants to do it for the Memes" + } + }, + { + "sound": { + "name": "DROP_THAT_CHITTY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Description" + } + }, + { + "sound": { + "name": "GET_HER_BABY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/Iqp0CqtjlNo", + "Description": "Mercy wants astro to kill the baby d.va" + } + }, + { + "sound": { + "name": "GIVE_IT_TO_ME_ASTRO" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/dwmZwOngW8I", + "Description": "After a team mate of Astro says to him that he did a good job, and Astro responds with 'Thanks mum' he comes up with this voiceline" + } + }, + { + "sound": { + "name": "GOING_TOO_DEEP_GUYS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/gGrcV994cqY", + "Description": "Astro and his team are overextending and a grill wants to make them aware of it and tells them that they are going to deep." + } + }, + { + "sound": { + "name": "GUNG" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/yGUS7fVu0ZA", + "Description": "Astros Friend get shot in the Head and the Bullet gets reflected by the Helmet and making a GUNG sound" + } + }, + { + "sound": { + "name": "HARMONY_ORB" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/YrDomblEJV8", + "Description": "Astros Friend imitates the 'Playing with a guy that sounds like zen' video" + } + }, + { + "sound": { + "name": "HEAL_ME_YOU_CUNT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/IG7sC5tudN0", + "Description": "Astro as Mercy soloheals a McRee the whole match but as the gets to another Teammate to help him out he dies and the McRee gets salty" + } + }, + { + "sound": { + "name": "MONKEY_EAT_MY_ASS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/G4V1c5GC72E", + "Description": "Astros team mate gets killed by a Winston to which he responds that he wants their Winston to eat his ass" + } + }, + { + "sound": { + "name": "NICE_JOB_ASTRO" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/ixda9vcYxvk", + "Description": "Astro gets a double with the Solider ult saving the point, and a grill calls him out for it." + } + }, + { + "sound": { + "name": "NICE_PHARA" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/xNAPJ5bMLGQ", + "Description": "Astros russian team mate is supprised at phara getting the POTG" + } + }, + { + "sound": { + "name": "PRETTY_GOOD_PUSH" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/LkcR79j8n-Q", + "Description": "Astro fucks up a push" + } + }, + { + "sound": { + "name": "PRETTY_NICE_BOOP" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/Sgcemfa7Tow", + "Description": "Astro is a boop god" + } + }, + { + "sound": { + "name": "GIVE_A_BLOWJOB" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/4npgppVhcQ4", + "Description": "Astros Team mate wants a blowjob from a Guy with a nice voice" + } + }, + { + "sound": { + "name": "RIPPAAA" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E", + "Description": "Astro cheeky with Reaper" + } + }, + { + "sound": { + "name": "RUNNAWAY_FROM_ME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Astros Teammate named runaway leaves the Match" + } + }, + { + "sound": { + "name": "SHUT_UP_ASTROKITTY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/lYeDCTAkwAA", + "Description": "Astro roasts a mercy that was saving his ult" + } + }, + { + "sound": { + "name": "SMACK_MY_BITCH_UP" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E", + "Description": "Astro smacks his enemys with Reinhart" + } + }, + { + "sound": { + "name": "SO_RUDE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Astros Team is Rude" + } + }, + { + "sound": { + "name": "STOP_BEING_A_PUSSY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/IG7sC5tudN0", + "Description": "Ana on Astros Team wants the Team to push up and not be such a pussy" + } + }, + { + "sound": { + "name": "SUCK_MY_DICK" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/4npgppVhcQ4", + "Description": "Astros team mate gets salty at the end of the match and starts to Argue with him as the match ends the finished with this voiceline" + } + }, + { + "sound": { + "name": "THATS_ALRIGHT_BAE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Astro gets caught from then enemy reinhart and almost dies as ana commes in to save him." + } + }, + { + "sound": { + "name": "THATS_UNFORTUNATE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/YrDomblEJV8", + "Description": "Astros mate gets picked" + } + }, + { + "sound": { + "name": "THAT_SUCKS_DICK_DUDE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/dwmZwOngW8I", + "Description": "As Astros team gets a Team wipe mercy comes in and rescuructs the whole team." + } + }, + { + "sound": { + "name": "THERE_IS_YOUR_PICK" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/iEZE-Rd-EAY", + "Description": "Astros team mate gets a double pick and wants to motivate the team to get into the Point." + } + }, + { + "sound": { + "name": "THIS_IS_A_BAD_IDEA" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8tExMeAsGEU", + "Description": "A Teammate thinks this it is a bad idea to push" + } + }, + { + "sound": { + "name": "WINSTON_ON_MY_COCK" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/iEZE-Rd-EAY", + "Description": "Astros Teammate (zen) gets focused by a winston which he responds to with this voiceline." + } + }, + { + "sound": { + "name": "MORE_STYLE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro and his Team won a Match with more style that their Enemys" + } + }, + { + "sound": { + "name": "YOU_SLUT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/IG7sC5tudN0", + "Description": "Astros Team mate gets salty as he gets killed" + } + }, + { + "sound": { + "name": "YOU_SUCK_DUDE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/jKRGhj7vK7Q", + "Description": "Mercy waited the whole match on Astro (phara) to ult but he didnt ult, in the end of the round he expresses his emotions." + } + }, + { + "sound": { + "name": "ENGINE_START" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/oaiFJwKjacE", + "Description": "Astro's friend flees from Astro in Dying light as he is about to make run a way he makes this very ambicious sound." + } + }, + { + "sound": { + "name": "ALOT_OF_CUNTS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro's Teammate was alone on point and saw alot of enemys" + } + }, + { + "sound": { + "name": "BAD_DECISIONS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro wants to kill a Mercy and just walkes throught the whole enemy Team, and gets killed" + } + }, + { + "sound": { + "name": "FUCKING_DOMINATE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro wants to play sym, but a Team mate is against that Idea on Attack, so he changes to phara and has to dominate them" + } + }, + { + "sound": { + "name": "FUCKING_JUNKRAT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro get caught by a junkrat trap" + } + }, + { + "sound": { + "name": "HEY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Hello" + } + }, + { + "sound": { + "name": "HIT_ME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro playing zarya wants to get energy and hit :3" + } + }, + { + "sound": { + "name": "I_AM_NUTCRACKER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro playing zen with the nuttcracker skin" + } + }, + { + "sound": { + "name": "I_MAIN_CANCER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro playing Mei" + } + }, + { + "sound": { + "name": "MOVED_ASLEP" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro teammate ana got slept and moved the payload to victory while sleeping." + } + }, + { + "sound": { + "name": "NOT_PAST_GORILLA" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro keeping the whole team from getting to the point with winstons ult" + } + }, + { + "sound": { + "name": "RRRRRRR" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro and solider have a affair" + } + }, + { + "sound": { + "name": "SUCK_MY_ORBS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Phara ults and astro commes in with the zen ult to save the team" + } + }, + { + "sound": { + "name": "THE_META" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro wants to play sym but is lagging al over the place, his team mate thought this would be an advantage, when playing sym." + } + }, + { + "sound": { + "name": "TRUMP_2017" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Make murica great again!" + } + }, + { + "sound": { + "name": "WHEN_YOU_TRY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro as zarya get's caught flanking by a winston" + } + }, + { + "sound": { + "name": "GOOD_CATCH" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/QG-ef22eRr0", + "Description": "Reinhart catching someone." + } + }, + { + "sound": { + "name": "OVERUSED_MEME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/QG-ef22eRr0", + "Description": "Harambe is a overused meme" + } + }, + { + "sound": { + "name": "FUCKING_NEOW" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/0U_fjk01cNo", + "Description": "Unknowen source." + } + }, + { + "sound": { + "name": "MONKEY_MONKEY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/0U_fjk01cNo", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "SICK_ULT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "PLATNIUM_DAMAGE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "PHARA_VS_SOLIDER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "TURNED_INTO_TRACER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "DARKNESS_IM_DAD" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/G4V1c5GC72E", + "Description": "Astro trolling." + } + }, + { + "sound": { + "name": "DICK_SKIN_IS_PEELING" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Kid trying to ryme :3" + } + }, + { + "sound": { + "name": "MAINHART_RAIN" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/bGV2_v64fPI", + "Description": "Astro makes a slip of the tongue, while trying to say that he is a Reinhart main" + } + }, + { + "sound": { + "name": "AMEIZING" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/ixda9vcYxvk", + "Description": "Pun intendet" + } + }, + { + "sound": { + "name": "THIS_MOMENT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/ixda9vcYxvk", + "Description": "It was at this moment astrokitty knew, he fucked up" + } + }, + { + "sound": { + "name": "AGAINST_ME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/_FaF_1iYkqUk", + "Description": "Astro *hates* when he gives soundbites that can be used against him" + } + }, + { + "sound": { + "name": "HE_CAME_IN_MY_FACE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/_FaF_1iYkqU", + "Description": "Astrokitty gettings wrecked in his Face" + } + } + ] +} ..\Resources\SO_RUDE.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -229,4 +836,100 @@ ..\Resources\YOU_SUCK_DUDE.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\ALOT_OF_CUNTS.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\BAD_DECISIONS.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\ENGINE_START.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\FUCKING_DOMINATE.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\FUCKING_JUNKRAT.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\HEY.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\HIT_ME.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\I_AM_NUTCRACKER.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\I_MAIN_CANCER.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\MOVED_ASLEP.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\NOT_PAST_GORILLA.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\RRRRRRR.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\THE_META.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\TRUMP_2017.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\WHEN_YOU_TRY.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\AMEIZING.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\DARKNESS_IM_DAD.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\DICK_SKIN_IS_PEELING.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\FUCKING_NEOW.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\GOOD_CATCH.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\IS_THIS_HARAMBE.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\MAINHART_RAIN.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\MONKEY_MONKEY.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\OVERUSED_MEME.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\PHARA_VS_SOLIDER.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\PLATNIUM_DAMAGE.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\SICK_ULT.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\SUCK_MY_ORBS.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\THIS_MOMENT.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\TURNED_INTO_TRACER.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\AGAINST_ME.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\HE_CAME_IN_MY_FACE.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/src/AstroSoundBoard/Properties/Settings.Designer.cs b/src/AstroSoundBoard/Properties/Settings.Designer.cs index a32230b..27ee19e 100644 --- a/src/AstroSoundBoard/Properties/Settings.Designer.cs +++ b/src/AstroSoundBoard/Properties/Settings.Designer.cs @@ -58,5 +58,29 @@ public uint Volume { this["Volume"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool AllowErrorReporting { + get { + return ((bool)(this["AllowErrorReporting"])); + } + set { + this["AllowErrorReporting"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool EnableSoundHotKeys { + get { + return ((bool)(this["EnableSoundHotKeys"])); + } + set { + this["EnableSoundHotKeys"] = value; + } + } } } diff --git a/src/AstroSoundBoard/Properties/Settings.settings b/src/AstroSoundBoard/Properties/Settings.settings index f6cd813..76c032c 100644 --- a/src/AstroSoundBoard/Properties/Settings.settings +++ b/src/AstroSoundBoard/Properties/Settings.settings @@ -1,15 +1,21 @@  - + - + 3 - + True - + 50 + + True + + + True + \ No newline at end of file diff --git a/src/AstroSoundBoard/Resources/AGAINST_ME.wav b/src/AstroSoundBoard/Resources/AGAINST_ME.wav new file mode 100644 index 0000000..d501125 Binary files /dev/null and b/src/AstroSoundBoard/Resources/AGAINST_ME.wav differ diff --git a/src/AstroSoundBoard/Resources/ALOT_OF_CUNTS.wav b/src/AstroSoundBoard/Resources/ALOT_OF_CUNTS.wav new file mode 100644 index 0000000..da139af Binary files /dev/null and b/src/AstroSoundBoard/Resources/ALOT_OF_CUNTS.wav differ diff --git a/src/AstroSoundBoard/Resources/AMEIZING.wav b/src/AstroSoundBoard/Resources/AMEIZING.wav new file mode 100644 index 0000000..a500789 Binary files /dev/null and b/src/AstroSoundBoard/Resources/AMEIZING.wav differ diff --git a/src/AstroSoundBoard/Resources/Assets/soundDefinition.json b/src/AstroSoundBoard/Resources/Assets/soundDefinition.json index ca4a3cf..8427c92 100644 --- a/src/AstroSoundBoard/Resources/Assets/soundDefinition.json +++ b/src/AstroSoundBoard/Resources/Assets/soundDefinition.json @@ -1,11 +1,9 @@ { "FileVersion": "1", "ParserVersion": "1", - "Sounds": [ - { + "Sounds": [{ "sound": { - "name": "FUCKING_MERCY", - "version": "1" + "name": "FUCKING_MERCY" }, "info": { "VideoLink": "https://www.youtube.com/embed/11olpkle_YQ", @@ -14,8 +12,7 @@ }, { "sound": { - "name": "AW_YEAH_PAPI", - "version": "1" + "name": "AW_YEAH_PAPI" }, "info": { "VideoLink": "https://www.youtube.com/embed/4npgppVhcQ4", @@ -24,8 +21,7 @@ }, { "sound": { - "name": "BOOPEY_BOOPEY", - "version": "1" + "name": "BOOPEY_BOOPEY" }, "info": { "VideoLink": "https://www.youtube.com/embed/Sgcemfa7Tow", @@ -34,8 +30,7 @@ }, { "sound": { - "name": "BYE_BYE", - "version": "1" + "name": "BYE_BYE" }, "info": { "VideoLink": "https://www.youtube.com/embed/xNAPJ5bMLGQ", @@ -44,8 +39,7 @@ }, { "sound": { - "name": "CHEEKY_BOOP", - "version": "1" + "name": "CHEEKY_BOOP" }, "info": { "VideoLink": "https://www.youtube.com/embed/Sgcemfa7Tow", @@ -54,8 +48,7 @@ }, { "sound": { - "name": "CHEEKY_CHEEKY", - "version": "1" + "name": "CHEEKY_CHEEKY" }, "info": { "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E", @@ -64,8 +57,7 @@ }, { "sound": { - "name": "DO_IT_FOR_THE_MEMEZ", - "version": "1" + "name": "DO_IT_FOR_THE_MEMEZ" }, "info": { "VideoLink": "https://www.youtube.com/embed/8tExMeAsGEU", @@ -74,8 +66,7 @@ }, { "sound": { - "name": "DROP_THAT_CHITTY", - "version": "1" + "name": "DROP_THAT_CHITTY" }, "info": { "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", @@ -84,18 +75,16 @@ }, { "sound": { - "name": "GET_HER_BABY", - "version": "1" + "name": "GET_HER_BABY" }, "info": { - "VideoLink": "https://www.youtube.com/embed/YeDCTAkwAA", + "VideoLink": "https://www.youtube.com/embed/Iqp0CqtjlNo", "Description": "Mercy wants astro to kill the baby d.va" } }, { "sound": { - "name": "GIVE_IT_TO_ME_ASTRO", - "version": "1" + "name": "GIVE_IT_TO_ME_ASTRO" }, "info": { "VideoLink": "https://www.youtube.com/embed/dwmZwOngW8I", @@ -104,8 +93,7 @@ }, { "sound": { - "name": "GOING_TOO_DEEP_GUYS", - "version": "1" + "name": "GOING_TOO_DEEP_GUYS" }, "info": { "VideoLink": "https://www.youtube.com/embed/gGrcV994cqY", @@ -114,8 +102,7 @@ }, { "sound": { - "name": "GUNG", - "version": "1" + "name": "GUNG" }, "info": { "VideoLink": "https://www.youtube.com/embed/yGUS7fVu0ZA", @@ -124,8 +111,7 @@ }, { "sound": { - "name": "HARMONY_ORB", - "version": "1" + "name": "HARMONY_ORB" }, "info": { "VideoLink": "https://www.youtube.com/embed/YrDomblEJV8", @@ -134,8 +120,7 @@ }, { "sound": { - "name": "HEAL_ME_YOU_CUNT", - "version": "1" + "name": "HEAL_ME_YOU_CUNT" }, "info": { "VideoLink": "https://www.youtube.com/embed/IG7sC5tudN0", @@ -144,8 +129,7 @@ }, { "sound": { - "name": "MONKEY_EAT_MY_ASS", - "version": "1" + "name": "MONKEY_EAT_MY_ASS" }, "info": { "VideoLink": "https://www.youtube.com/embed/G4V1c5GC72E", @@ -154,8 +138,7 @@ }, { "sound": { - "name": "NICE_JOB_ASTRO", - "version": "1" + "name": "NICE_JOB_ASTRO" }, "info": { "VideoLink": "https://www.youtube.com/embed/ixda9vcYxvk", @@ -164,8 +147,7 @@ }, { "sound": { - "name": "NICE_PHARA", - "version": "1" + "name": "NICE_PHARA" }, "info": { "VideoLink": "https://www.youtube.com/embed/xNAPJ5bMLGQ", @@ -174,8 +156,7 @@ }, { "sound": { - "name": "PRETTY_GOOD_PUSH", - "version": "1" + "name": "PRETTY_GOOD_PUSH" }, "info": { "VideoLink": "https://www.youtube.com/embed/LkcR79j8n-Q", @@ -184,8 +165,7 @@ }, { "sound": { - "name": "PRETTY_NICE_BOOP", - "version": "1" + "name": "PRETTY_NICE_BOOP" }, "info": { "VideoLink": "https://www.youtube.com/embed/Sgcemfa7Tow", @@ -194,8 +174,7 @@ }, { "sound": { - "name": "GIVE_A_BLOWJOB", - "version": "1" + "name": "GIVE_A_BLOWJOB" }, "info": { "VideoLink": "https://www.youtube.com/embed/4npgppVhcQ4", @@ -204,18 +183,16 @@ }, { "sound": { - "name": "RIPPAAA", - "version": "1" + "name": "RIPPAAA" }, "info": { - "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E&t", + "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E", "Description": "Astro cheeky with Reaper" } }, { "sound": { - "name": "RUNNAWAY_FROM_ME", - "version": "1" + "name": "RUNNAWAY_FROM_ME" }, "info": { "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", @@ -224,8 +201,7 @@ }, { "sound": { - "name": "SHUT_UP_ASTROKITTY", - "version": "1" + "name": "SHUT_UP_ASTROKITTY" }, "info": { "VideoLink": "https://www.youtube.com/embed/lYeDCTAkwAA", @@ -234,8 +210,7 @@ }, { "sound": { - "name": "SMACK_MY_BITCH_UP", - "version": "1" + "name": "SMACK_MY_BITCH_UP" }, "info": { "VideoLink": "https://www.youtube.com/embed/qv8E50WPF9E", @@ -244,8 +219,7 @@ }, { "sound": { - "name": "SO_RUDE", - "version": "1" + "name": "SO_RUDE" }, "info": { "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", @@ -254,8 +228,7 @@ }, { "sound": { - "name": "STOP_BEING_A_PUSSY", - "version": "1" + "name": "STOP_BEING_A_PUSSY" }, "info": { "VideoLink": "https://www.youtube.com/embed/IG7sC5tudN0", @@ -264,8 +237,7 @@ }, { "sound": { - "name": "SUCK_MY_DICK", - "version": "1" + "name": "SUCK_MY_DICK" }, "info": { "VideoLink": "https://www.youtube.com/embed/4npgppVhcQ4", @@ -274,8 +246,7 @@ }, { "sound": { - "name": "THATS_ALRIGHT_BAE", - "version": "1" + "name": "THATS_ALRIGHT_BAE" }, "info": { "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", @@ -284,8 +255,7 @@ }, { "sound": { - "name": "THATS_UNFORTUNATE", - "version": "1" + "name": "THATS_UNFORTUNATE" }, "info": { "VideoLink": "https://www.youtube.com/embed/YrDomblEJV8", @@ -294,8 +264,7 @@ }, { "sound": { - "name": "THAT_SUCKS_DICK_DUDE", - "version": "1" + "name": "THAT_SUCKS_DICK_DUDE" }, "info": { "VideoLink": "https://www.youtube.com/embed/dwmZwOngW8I", @@ -304,8 +273,7 @@ }, { "sound": { - "name": "THERE_IS_YOUR_PICK", - "version": "1" + "name": "THERE_IS_YOUR_PICK" }, "info": { "VideoLink": "https://www.youtube.com/embed/iEZE-Rd-EAY", @@ -314,8 +282,7 @@ }, { "sound": { - "name": "THIS_IS_A_BAD_IDEA", - "version": "1" + "name": "THIS_IS_A_BAD_IDEA" }, "info": { "VideoLink": "https://www.youtube.com/embed/8tExMeAsGEU", @@ -324,8 +291,7 @@ }, { "sound": { - "name": "WINSTON_ON_MY_COCK", - "version": "1" + "name": "WINSTON_ON_MY_COCK" }, "info": { "VideoLink": "https://www.youtube.com/embed/iEZE-Rd-EAY", @@ -334,8 +300,7 @@ }, { "sound": { - "name": "MORE_STYLE", - "version": "1" + "name": "MORE_STYLE" }, "info": { "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", @@ -344,8 +309,7 @@ }, { "sound": { - "name": "YOU_SLUT", - "version": "1" + "name": "YOU_SLUT" }, "info": { "VideoLink": "https://www.youtube.com/embed/IG7sC5tudN0", @@ -354,13 +318,291 @@ }, { "sound": { - "name": "YOU_SUCK_DUDE", - "version": "1" + "name": "YOU_SUCK_DUDE" }, "info": { "VideoLink": "https://www.youtube.com/embed/jKRGhj7vK7Q", "Description": "Mercy waited the whole match on Astro (phara) to ult but he didnt ult, in the end of the round he expresses his emotions." } + }, + { + "sound": { + "name": "ENGINE_START" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/oaiFJwKjacE", + "Description": "Astro's friend flees from Astro in Dying light as he is about to make run a way he makes this very ambicious sound." + } + }, + { + "sound": { + "name": "ALOT_OF_CUNTS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro's Teammate was alone on point and saw alot of enemys" + } + }, + { + "sound": { + "name": "BAD_DECISIONS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro wants to kill a Mercy and just walkes throught the whole enemy Team, and gets killed" + } + }, + { + "sound": { + "name": "FUCKING_DOMINATE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro wants to play sym, but a Team mate is against that Idea on Attack, so he changes to phara and has to dominate them" + } + }, + { + "sound": { + "name": "FUCKING_JUNKRAT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro get caught by a junkrat trap" + } + }, + { + "sound": { + "name": "HEY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Hello" + } + }, + { + "sound": { + "name": "HIT_ME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro playing zarya wants to get energy and hit :3" + } + }, + { + "sound": { + "name": "I_AM_NUTCRACKER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro playing zen with the nuttcracker skin" + } + }, + { + "sound": { + "name": "I_MAIN_CANCER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro playing Mei" + } + }, + { + "sound": { + "name": "MOVED_ASLEP" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro teammate ana got slept and moved the payload to victory while sleeping." + } + }, + { + "sound": { + "name": "NOT_PAST_GORILLA" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro keeping the whole team from getting to the point with winstons ult" + } + }, + { + "sound": { + "name": "RRRRRRR" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro and solider have a affair" + } + }, + { + "sound": { + "name": "SUCK_MY_ORBS" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Phara ults and astro commes in with the zen ult to save the team" + } + }, + { + "sound": { + "name": "THE_META" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro wants to play sym but is lagging al over the place, his team mate thought this would be an advantage, when playing sym." + } + }, + { + "sound": { + "name": "TRUMP_2017" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Make murica great again!" + } + }, + { + "sound": { + "name": "WHEN_YOU_TRY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/tD5G_WQWXMw", + "Description": "Astro as zarya get's caught flanking by a winston" + } + }, + { + "sound": { + "name": "GOOD_CATCH" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/QG-ef22eRr0", + "Description": "Reinhart catching someone." + } + }, + { + "sound": { + "name": "OVERUSED_MEME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/QG-ef22eRr0", + "Description": "Harambe is a overused meme" + } + }, + { + "sound": { + "name": "FUCKING_NEOW" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/0U_fjk01cNo", + "Description": "Unknowen source." + } + }, + { + "sound": { + "name": "MONKEY_MONKEY" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/0U_fjk01cNo", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "SICK_ULT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "PLATNIUM_DAMAGE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/I34V4HeasKs", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "PHARA_VS_SOLIDER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "TURNED_INTO_TRACER" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Astro as Harambe abuses another player" + } + }, + { + "sound": { + "name": "DARKNESS_IM_DAD" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/G4V1c5GC72E", + "Description": "Astro trolling." + } + }, + { + "sound": { + "name": "DICK_SKIN_IS_PEELING" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/8-1c9wkWITA", + "Description": "Kid trying to ryme :3" + } + }, + { + "sound": { + "name": "MAINHART_RAIN" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/bGV2_v64fPI", + "Description": "Astro makes a slip of the tongue, while trying to say that he is a Reinhart main" + } + }, + { + "sound": { + "name": "AMEIZING" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/ixda9vcYxvk", + "Description": "Pun intendet" + } + }, + { + "sound": { + "name": "THIS_MOMENT" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/ixda9vcYxvk", + "Description": "It was at this moment astrokitty knew, he fucked up" + } + }, + { + "sound": { + "name": "AGAINST_ME" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/_FaF_1iYkqUk", + "Description": "Astro *hates* when he gives soundbites that can be used against him" + } + }, + { + "sound": { + "name": "HE_CAME_IN_MY_FACE" + }, + "info": { + "VideoLink": "https://www.youtube.com/embed/_FaF_1iYkqU", + "Description": "Astrokitty gettings wrecked in his Face" + } } ] -} +} \ No newline at end of file diff --git a/src/AstroSoundBoard/Resources/BAD_DECISIONS.wav b/src/AstroSoundBoard/Resources/BAD_DECISIONS.wav new file mode 100644 index 0000000..6c4d175 Binary files /dev/null and b/src/AstroSoundBoard/Resources/BAD_DECISIONS.wav differ diff --git a/src/AstroSoundBoard/Resources/DARKNESS_IM_DAD.wav b/src/AstroSoundBoard/Resources/DARKNESS_IM_DAD.wav new file mode 100644 index 0000000..e19a25c Binary files /dev/null and b/src/AstroSoundBoard/Resources/DARKNESS_IM_DAD.wav differ diff --git a/src/AstroSoundBoard/Resources/DICK_SKIN_IS_PEELING.wav b/src/AstroSoundBoard/Resources/DICK_SKIN_IS_PEELING.wav new file mode 100644 index 0000000..46b1a7a Binary files /dev/null and b/src/AstroSoundBoard/Resources/DICK_SKIN_IS_PEELING.wav differ diff --git a/src/AstroSoundBoard/Resources/ENGINE_START.wav b/src/AstroSoundBoard/Resources/ENGINE_START.wav new file mode 100644 index 0000000..538ccf6 Binary files /dev/null and b/src/AstroSoundBoard/Resources/ENGINE_START.wav differ diff --git a/src/AstroSoundBoard/Resources/FUCKING_DOMINATE.wav b/src/AstroSoundBoard/Resources/FUCKING_DOMINATE.wav new file mode 100644 index 0000000..2330a8e Binary files /dev/null and b/src/AstroSoundBoard/Resources/FUCKING_DOMINATE.wav differ diff --git a/src/AstroSoundBoard/Resources/FUCKING_JUNKRAT.wav b/src/AstroSoundBoard/Resources/FUCKING_JUNKRAT.wav new file mode 100644 index 0000000..519ffc0 Binary files /dev/null and b/src/AstroSoundBoard/Resources/FUCKING_JUNKRAT.wav differ diff --git a/src/AstroSoundBoard/Resources/FUCKING_NEOW.wav b/src/AstroSoundBoard/Resources/FUCKING_NEOW.wav new file mode 100644 index 0000000..a1126d7 Binary files /dev/null and b/src/AstroSoundBoard/Resources/FUCKING_NEOW.wav differ diff --git a/src/AstroSoundBoard/Resources/GOOD_CATCH.wav b/src/AstroSoundBoard/Resources/GOOD_CATCH.wav new file mode 100644 index 0000000..12544d4 Binary files /dev/null and b/src/AstroSoundBoard/Resources/GOOD_CATCH.wav differ diff --git a/src/AstroSoundBoard/Resources/HEY.wav b/src/AstroSoundBoard/Resources/HEY.wav new file mode 100644 index 0000000..8c0efc6 Binary files /dev/null and b/src/AstroSoundBoard/Resources/HEY.wav differ diff --git a/src/AstroSoundBoard/Resources/HE_CAME_IN_MY_FACE.wav b/src/AstroSoundBoard/Resources/HE_CAME_IN_MY_FACE.wav new file mode 100644 index 0000000..31741e0 Binary files /dev/null and b/src/AstroSoundBoard/Resources/HE_CAME_IN_MY_FACE.wav differ diff --git a/src/AstroSoundBoard/Resources/HIT_ME.wav b/src/AstroSoundBoard/Resources/HIT_ME.wav new file mode 100644 index 0000000..cc6548f Binary files /dev/null and b/src/AstroSoundBoard/Resources/HIT_ME.wav differ diff --git a/src/AstroSoundBoard/Resources/IS_THIS_HARAMBE.wav b/src/AstroSoundBoard/Resources/IS_THIS_HARAMBE.wav new file mode 100644 index 0000000..7cae65d Binary files /dev/null and b/src/AstroSoundBoard/Resources/IS_THIS_HARAMBE.wav differ diff --git a/src/AstroSoundBoard/Resources/I_AM_NUTCRACKER.wav b/src/AstroSoundBoard/Resources/I_AM_NUTCRACKER.wav new file mode 100644 index 0000000..1335dfc Binary files /dev/null and b/src/AstroSoundBoard/Resources/I_AM_NUTCRACKER.wav differ diff --git a/src/AstroSoundBoard/Resources/I_MAIN_CANCER.wav b/src/AstroSoundBoard/Resources/I_MAIN_CANCER.wav new file mode 100644 index 0000000..b12b1ab Binary files /dev/null and b/src/AstroSoundBoard/Resources/I_MAIN_CANCER.wav differ diff --git a/src/AstroSoundBoard/Resources/MAINHART_RAIN.wav b/src/AstroSoundBoard/Resources/MAINHART_RAIN.wav new file mode 100644 index 0000000..a324739 Binary files /dev/null and b/src/AstroSoundBoard/Resources/MAINHART_RAIN.wav differ diff --git a/src/AstroSoundBoard/Resources/MONKEY_MONKEY.wav b/src/AstroSoundBoard/Resources/MONKEY_MONKEY.wav new file mode 100644 index 0000000..146c70b Binary files /dev/null and b/src/AstroSoundBoard/Resources/MONKEY_MONKEY.wav differ diff --git a/src/AstroSoundBoard/Resources/MOVED_ASLEP.wav b/src/AstroSoundBoard/Resources/MOVED_ASLEP.wav new file mode 100644 index 0000000..42ff748 Binary files /dev/null and b/src/AstroSoundBoard/Resources/MOVED_ASLEP.wav differ diff --git a/src/AstroSoundBoard/Resources/NOT_PAST_GORILLA.wav b/src/AstroSoundBoard/Resources/NOT_PAST_GORILLA.wav new file mode 100644 index 0000000..7262442 Binary files /dev/null and b/src/AstroSoundBoard/Resources/NOT_PAST_GORILLA.wav differ diff --git a/src/AstroSoundBoard/Resources/OVERUSED_MEME.wav b/src/AstroSoundBoard/Resources/OVERUSED_MEME.wav new file mode 100644 index 0000000..2eb5fc4 Binary files /dev/null and b/src/AstroSoundBoard/Resources/OVERUSED_MEME.wav differ diff --git a/src/AstroSoundBoard/Resources/PHARA_VS_SOLIDER.wav b/src/AstroSoundBoard/Resources/PHARA_VS_SOLIDER.wav new file mode 100644 index 0000000..bbf0fa4 Binary files /dev/null and b/src/AstroSoundBoard/Resources/PHARA_VS_SOLIDER.wav differ diff --git a/src/AstroSoundBoard/Resources/PLATNIUM_DAMAGE.wav b/src/AstroSoundBoard/Resources/PLATNIUM_DAMAGE.wav new file mode 100644 index 0000000..df46782 Binary files /dev/null and b/src/AstroSoundBoard/Resources/PLATNIUM_DAMAGE.wav differ diff --git a/src/AstroSoundBoard/Resources/RRRRRRR.wav b/src/AstroSoundBoard/Resources/RRRRRRR.wav new file mode 100644 index 0000000..172668c Binary files /dev/null and b/src/AstroSoundBoard/Resources/RRRRRRR.wav differ diff --git a/src/AstroSoundBoard/Resources/SICK_ULT.wav b/src/AstroSoundBoard/Resources/SICK_ULT.wav new file mode 100644 index 0000000..260237b Binary files /dev/null and b/src/AstroSoundBoard/Resources/SICK_ULT.wav differ diff --git a/src/AstroSoundBoard/Resources/SUCK_MY_ORBS.wav b/src/AstroSoundBoard/Resources/SUCK_MY_ORBS.wav new file mode 100644 index 0000000..7ca8b2e Binary files /dev/null and b/src/AstroSoundBoard/Resources/SUCK_MY_ORBS.wav differ diff --git a/src/AstroSoundBoard/Resources/THE_META.wav b/src/AstroSoundBoard/Resources/THE_META.wav new file mode 100644 index 0000000..a9dd7f9 Binary files /dev/null and b/src/AstroSoundBoard/Resources/THE_META.wav differ diff --git a/src/AstroSoundBoard/Resources/THIS_MOMENT.wav b/src/AstroSoundBoard/Resources/THIS_MOMENT.wav new file mode 100644 index 0000000..27e315d Binary files /dev/null and b/src/AstroSoundBoard/Resources/THIS_MOMENT.wav differ diff --git a/src/AstroSoundBoard/Resources/TRUMP_2017.wav b/src/AstroSoundBoard/Resources/TRUMP_2017.wav new file mode 100644 index 0000000..4a0dc7e Binary files /dev/null and b/src/AstroSoundBoard/Resources/TRUMP_2017.wav differ diff --git a/src/AstroSoundBoard/Resources/TURNED_INTO_TRACER.wav b/src/AstroSoundBoard/Resources/TURNED_INTO_TRACER.wav new file mode 100644 index 0000000..68644c4 Binary files /dev/null and b/src/AstroSoundBoard/Resources/TURNED_INTO_TRACER.wav differ diff --git a/src/AstroSoundBoard/Resources/WHEN_YOU_TRY.wav b/src/AstroSoundBoard/Resources/WHEN_YOU_TRY.wav new file mode 100644 index 0000000..5ada105 Binary files /dev/null and b/src/AstroSoundBoard/Resources/WHEN_YOU_TRY.wav differ diff --git a/src/AstroSoundBoard/WPF/Base/RelayCommand.cs b/src/AstroSoundBoard/WPF/Base/RelayCommand.cs new file mode 100644 index 0000000..862280a --- /dev/null +++ b/src/AstroSoundBoard/WPF/Base/RelayCommand.cs @@ -0,0 +1,38 @@ +// ****************************** Module Header ****************************** // +// +// +// Last Modified: 30:04:2017 / 13:44 +// Creation: 30:04:2017 +// Project: AstroSoundBoard +// +// +// // +// *************************************************************************** // + +namespace AstroSoundBoard.WPF.Base +{ + using System; + using System.Windows.Input; + + internal class RelayCommand : ICommand + { + public RelayCommand(Action action) + { + LocalAction = action; + } + + private Action LocalAction { get; set; } + + public bool CanExecute(object parameter) + { + return true; + } + + public void Execute(object parameter) + { + LocalAction.Invoke(); + } + + public event EventHandler CanExecuteChanged; + } +} \ No newline at end of file diff --git a/src/AstroSoundBoard/WPF/Controls/Keybind/KeybindView.xaml b/src/AstroSoundBoard/WPF/Controls/Keybind/KeybindView.xaml new file mode 100644 index 0000000..ded4e43 --- /dev/null +++ b/src/AstroSoundBoard/WPF/Controls/Keybind/KeybindView.xaml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Open Source + + This project is completely open source. If you like it and want to say thanks you could hit the GitHub Star button, tweet or post about it, or tell your mum about it! + + + + + + + Feel like you want to make a contribution? + + + + + + + + + \ No newline at end of file diff --git a/src/AstroSoundBoard/WPF/Pages/About/AboutView.xaml.cs b/src/AstroSoundBoard/WPF/Pages/About/AboutView.xaml.cs new file mode 100644 index 0000000..747bcfe --- /dev/null +++ b/src/AstroSoundBoard/WPF/Pages/About/AboutView.xaml.cs @@ -0,0 +1,34 @@ +// ****************************** Module Header ****************************** // +// +// +// Last Modified: 27:04:2017 / 18:13 +// Creation: 26:04:2017 +// Project: AstroSoundBoard +// +// +// // +// *************************************************************************** // + +namespace AstroSoundBoard.WPF.Pages.About +{ + using System.Diagnostics; + using System.Windows; + using System.Windows.Controls; + + /// + /// Interaktionslogik für AboutView.xaml + /// + public partial class AboutView : UserControl + { + public AboutView() + { + InitializeComponent(); + } + + private void OpenGitHub(object sender, RoutedEventArgs e) => Process.Start("https://github.com/FetzenRndy/AstroSoundboard"); + + private void ShowDiscordInfo(object sender, RoutedEventArgs e) => MessageBox.Show("Add me on discord : Fetzen.NET#9296"); + + private void OpenMail(object sender, RoutedEventArgs e) => Process.Start("mailto:patrick-hollweck@gmx.de"); + } +} \ No newline at end of file diff --git a/src/AstroSoundBoard/WPF/Pages/Board/BoardView.xaml.cs b/src/AstroSoundBoard/WPF/Pages/Board/BoardView.xaml.cs index 57ebe6e..6b9ddd2 100644 --- a/src/AstroSoundBoard/WPF/Pages/Board/BoardView.xaml.cs +++ b/src/AstroSoundBoard/WPF/Pages/Board/BoardView.xaml.cs @@ -1,8 +1,8 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 25:04:2017 / 16:49 -// Creation: 16:04:2017 +// Last Modified: 30:04:2017 / 23:24 +// Creation: 25:04:2017 // Project: AstroSoundBoard // // @@ -26,106 +26,105 @@ namespace AstroSoundBoard.WPF.Pages.Board using PropertyChanged; [ImplementPropertyChanged] - public partial class BoardView : UserControl - { - private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - private List AllSounds { get; set; } = new List(); - - public static BoardView BoadViewInstance { get; set; } - - public BoardView() - { - BoadViewInstance = this; - - InitializeComponent(); - DataContext = this; - - foreach (Definition definition in SoundManager.Information.GetSoundList()) - { - var item = new Sound - { - Description = definition.Info.Description, - IsFavorite = SettingsManager.GetSound(definition.Sound.Name).IsFavorite, - Name = definition.Sound.Name, - VideoLink = definition.Info.VideoLink - }; - - var view = new SoundView(item); - - AllSounds.Add(view); - ItemCtrl.Items.Add(view); - } - } - - public void OnlyShowFavorites(bool show) - { - Log.Debug("Board - only showing favs"); - if (show) - { - List matchingItems = new List(); - - foreach (SoundView item in ItemCtrl.Items) - { - if (item.LocalDefinition.IsFavorite == JsonConvert.True) - { - matchingItems.Add(item); - } - } - - ItemCtrl.Items.Clear(); - - foreach (SoundView view in matchingItems) - { - ItemCtrl.Items.Add(view); - } - } - else - { - ItemCtrl.Items.Clear(); - - foreach (SoundView view in AllSounds) - { - ItemCtrl.Items.Add(view); - } - } - } - - public void SearchForElement(string element, bool onlyInFavorites) - { - if (string.IsNullOrWhiteSpace(element)) - { - ItemCtrl.Items.Clear(); - - foreach (SoundView view in AllSounds) - { - ItemCtrl.Items.Add(view); - } - - if (onlyInFavorites) - { - OnlyShowFavorites(true); - } - } - else - { - List matchingItems = new List(); - - foreach (SoundView view in ItemCtrl.Items) - { - if (view.LocalDefinition.Name.ToLower().Contains(element.ToLower())) - { - matchingItems.Add(view); - } - } - - ItemCtrl.Items.Clear(); - - foreach (SoundView view in matchingItems) - { - ItemCtrl.Items.Add(view); - } - } - } - } + public partial class BoardView : UserControl + { + private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + public List AllSounds { get; set; } = new List(); + public static BoardView BoardViewInstance { get; set; } + + public BoardView() + { + BoardViewInstance = this; + + InitializeComponent(); + DataContext = this; + + foreach (Definition definition in SoundManager.Information.GetSoundList()) + { + var item = new Sound + { + Description = definition.Info.Description, + IsFavorite = SettingsManager.GetSound(definition.Sound.Name).IsFavorite, + Name = definition.Sound.Name, + VideoLink = definition.Info.VideoLink + }; + + var view = new SoundView(item); + + AllSounds.Add(view); + ItemCtrl.Items.Add(view); + } + } + + public void OnlyShowFavorites(bool show) + { + Log.Debug("Board - only showing favs"); + if (show) + { + List matchingItems = new List(); + + foreach (SoundView item in ItemCtrl.Items) + { + if (item.LocalDefinition.IsFavorite == JsonConvert.True) + { + matchingItems.Add(item); + } + } + + ItemCtrl.Items.Clear(); + + foreach (SoundView view in matchingItems) + { + ItemCtrl.Items.Add(view); + } + } + else + { + ItemCtrl.Items.Clear(); + + foreach (SoundView view in AllSounds) + { + ItemCtrl.Items.Add(view); + } + } + } + + public void SearchForElement(string element, bool onlyInFavorites) + { + if (string.IsNullOrWhiteSpace(element)) + { + ItemCtrl.Items.Clear(); + + foreach (SoundView view in AllSounds) + { + ItemCtrl.Items.Add(view); + } + + if (onlyInFavorites) + { + OnlyShowFavorites(true); + } + } + else + { + List matchingItems = new List(); + + foreach (SoundView view in AllSounds) + { + if (view.LocalDefinition.Name.ToLower().Contains(element.ToLower())) + { + matchingItems.Add(view); + } + } + + ItemCtrl.Items.Clear(); + + foreach (SoundView view in matchingItems) + { + ItemCtrl.Items.Add(view); + } + } + } + } } \ No newline at end of file diff --git a/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml b/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml index 0c85905..79221bb 100644 --- a/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml +++ b/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml @@ -1,78 +1,196 @@  - - - - - - - - + x:Class="AstroSoundBoard.WPF.Pages.Settings.SettingsView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:AstroSoundBoard.WPF.Pages.Settings" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + d:DesignHeight="1000" + d:DesignWidth="800" + Background="{DynamicResource MaterialDesignPaper}" + FontFamily="pack://application:,,,/MaterialDesignThemes.Wpf;component/Resources/Roboto/#Roboto" + TextElement.FontSize="14" + TextElement.FontWeight="Medium" + TextElement.Foreground="{DynamicResource MaterialDesignBody}" + mc:Ignorable="d"> + + + + + + + + + + + + - - - - - - + + + + + + + + + x:Name="SearchBox" + Grid.Column="1" + MinWidth="200" + Margin="8,0,0,0" + VerticalAlignment="Center" + materialDesign:HintAssist.Hint="Search for sound" + materialDesign:TextFieldAssist.DecorationVisibility="Hidden" + BorderThickness="0" + TextChanged="SearchForItem" /> + Margin="1" + HorizontalAlignment="Center" + Orientation="Horizontal"> + + Name="FavoriteButton" + Margin="10,10,1,10" + Click="FavoriteButton_Click" + Style="{StaticResource MaterialDesignActionToggleButton}" + ToolTip="Toggle Favorites"> @@ -100,14 +146,14 @@ + Name="VolumeSlider" + Width="170" + Margin="10,17,10,0" + Maximum="100" + Minimum="0" + TickFrequency="1" + ToolTip="Volume Slider" + ValueChanged="VolumeSlider_ValueChanged" /> @@ -122,28 +168,28 @@ @@ -158,119 +204,119 @@ - - - - - - - - - - + + - + + + + - - - + - - + HorizontalAlignment="Center" + VerticalAlignment="Center" + Kind="HumanGreeting" /> + + + + + Grid.Row="1" + Grid.Column="1" + Grid.ColumnSpan="2" + Panel.ZIndex="-1" + Content="{Binding}" + DataContextChanged="ContentControl_DataContextChanged" + FontWeight="Normal" /> + + \ No newline at end of file diff --git a/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml.cs b/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml.cs index 2705ad1..d662811 100644 --- a/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml.cs +++ b/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml.cs @@ -1,8 +1,8 @@ // ****************************** Module Header ****************************** // // // -// Last Modified: 28:04:2017 / 22:58 -// Creation: 28:04:2017 +// Last Modified: 01:05:2017 / 13:22 +// Creation: 01:05:2017 // Project: AstroSoundBoard // // @@ -12,13 +12,16 @@ namespace AstroSoundBoard.WPF.Windows { using System; + using System.ComponentModel; using System.Diagnostics; using System.Globalization; - using System.Runtime.InteropServices; + using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; + using System.Windows.Media.Animation; using AstroSoundBoard.Core.Components; + using AstroSoundBoard.Core.Utils; using AstroSoundBoard.WPF.Pages.Board; using AutoUpdaterDotNET; @@ -32,7 +35,7 @@ public partial class MainWindow : Window public MainWindow() { AutoUpdater.CurrentCulture = CultureInfo.CreateSpecificCulture("en"); - AutoUpdater.Start("http://127.0.0.1:8887/updaterInfo.xml"); + AutoUpdater.Start("https://raw.githubusercontent.com/FetzenRndy/AstroSoundboard/develop/public/versions/updaterInfo.xml"); ViewChanger.MainWindowInstance = this; @@ -44,6 +47,12 @@ public MainWindow() VolumeSlider.Value = 50; } + protected override void OnClosing(CancelEventArgs e) + { + KeybindManager.RemoveAllKeybindMappings(); + base.OnClosing(e); + } + #region Helpers private bool CanSearchItemsExecute() @@ -68,7 +77,7 @@ private bool CanSearchItemsExecute() public void SearchForItem(object sender, TextChangedEventArgs e) { - BoardView.BoadViewInstance?.SearchForElement(SearchBox.Text, onlyFavoritesActive); + BoardView.BoardViewInstance?.SearchForElement(SearchBox.Text, onlyFavoritesActive); } #endregion Search @@ -89,12 +98,12 @@ public void ToogleFavorites() if (onlyFavoritesActive) { onlyFavoritesActive = false; - BoardView.BoadViewInstance?.OnlyShowFavorites(onlyFavoritesActive); + BoardView.BoardViewInstance?.OnlyShowFavorites(onlyFavoritesActive); } else { onlyFavoritesActive = true; - BoardView.BoadViewInstance?.OnlyShowFavorites(onlyFavoritesActive); + BoardView.BoardViewInstance?.OnlyShowFavorites(onlyFavoritesActive); } } @@ -112,15 +121,12 @@ private void ContentControl_DataContextChanged(object sender, DependencyProperty #region VolumeSlider - [DllImport("winmm.dll")] - private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume); - private void VolumeSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { int newVolume = ushort.MaxValue / 100 * (int)e.NewValue; uint newVolumeAllChannels = ((uint)newVolume & 0x0000ffff) | ((uint)newVolume << 16); - waveOutSetVolume(IntPtr.Zero, newVolumeAllChannels); + NativeMethods.waveOutSetVolume(IntPtr.Zero, newVolumeAllChannels); } #endregion VolumeSlider @@ -137,13 +143,45 @@ private void VolumeSlider_ValueChanged(object sender, RoutedPropertyChangedEvent private void BrowserYoutube_Click(object sender, RoutedEventArgs e) => Process.Start("https://www.youtube.com/user/TheAstronautKitty"); - private void BrowserRequestFeature_Click(object sender, RoutedEventArgs e) => Process.Start("https://docs.google.com/forms/d/e/1FAIpQLSc9JnTYAgQ2fbaSujj9-F3DsI6_BOXJGG7jsXNLD6Dqf11X9g/viewform?usp=sf_link"); + private void OpenFeedback(object sender, RoutedEventArgs e) => new FeedbackWindow().Show(); + + private void SwitchToAbout(object sender, RoutedEventArgs e) => ViewChanger.ChangeViewTo(ViewChanger.Page.About); + + private void OpenKeybindManager(object sender, RoutedEventArgs e) => new KeybindManagerWindow().Show(); + + private bool isMenuExpanded = true; + + private void ToogleMenu(object sender, RoutedEventArgs e) + { + if (isMenuExpanded) + { + isMenuExpanded = false; - private void BrowserRequestSound_Click(object sender, RoutedEventArgs e) => Process.Start("https://docs.google.com/forms/d/e/1FAIpQLSfVT7Jx-5n80LYFskIcjLsL3fb2RmI7XOXAS_2rtUFIuyYp8Q/viewform?usp=sf_link"); + Storyboard anim = (Storyboard)Resources["InAnimation"]; + anim.Begin(); + + Task.Run( + () => + { + System.Threading.Thread.Sleep(650); + Application.Current.Dispatcher.Invoke(() => { SideMenu.Margin = new Thickness(-300, 0, 0, 0); }); + }); + } + else + { + isMenuExpanded = true; - private void BrowserReportIssue_Click(object sender, RoutedEventArgs e) => Process.Start("https://docs.google.com/forms/d/e/1FAIpQLSdrhFCCVeKrbA56kiLpOqA5H1nszwA4gWimV1V6YOjXr5mC-A/viewform?usp=sf_link"); + Storyboard anim = (Storyboard)Resources["OutAnimation"]; + anim.Begin(); - private void BrowserGitHub_Click(object sender, RoutedEventArgs e) => Process.Start("https://github.com/FetzenRndy/AstroSoundboard"); + Task.Run( + () => + { + System.Threading.Thread.Sleep(100); + Application.Current.Dispatcher.Invoke(() => { SideMenu.Margin = new Thickness(0, 0, 0, 0); }); + }); + } + } #endregion UI Events } diff --git a/src/AstroSoundBoard/WPF/Windows/UpdateWindow.xaml b/src/AstroSoundBoard/WPF/Windows/UpdateWindow.xaml deleted file mode 100644 index da0d2df..0000000 --- a/src/AstroSoundBoard/WPF/Windows/UpdateWindow.xaml +++ /dev/null @@ -1,31 +0,0 @@ - - - - -