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
- - Reworked Settings
+
- Added Crash Reporting
- - Code Cleanup and Bug Fixes
+ - Added More sounds
+ - Added Keybinds
+ - Code Cleanup and Bug Fixes
+ - Reworked Settings
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Controls/Keybind/KeybindView.xaml.cs b/src/AstroSoundBoard/WPF/Controls/Keybind/KeybindView.xaml.cs
new file mode 100644
index 0000000..f2c6481
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Controls/Keybind/KeybindView.xaml.cs
@@ -0,0 +1,59 @@
+// ****************************** Module Header ****************************** //
+//
+//
+// Last Modified: 01:05:2017 / 13:44
+// Creation: 01:05:2017
+// Project: AstroSoundBoard
+//
+//
+// //
+// *************************************************************************** //
+
+namespace AstroSoundBoard.WPF.Controls.Keybind
+{
+ using System.Windows;
+ using System.Windows.Controls;
+
+ using AstroSoundBoard.Core.Components;
+ using AstroSoundBoard.Core.Objects.DataObjects;
+ using AstroSoundBoard.WPF.Windows;
+
+ public partial class KeybindView : UserControl
+ {
+ public Sound LocalDefinition { get; set; }
+
+ public KeybindView(Sound sound)
+ {
+ LocalDefinition = SettingsManager.GetSound(sound.Name);
+
+ InitializeComponent();
+ DataContext = this;
+
+ if (LocalDefinition.HotKey == null)
+ {
+ LocalDefinition.HotKey = new KeyBind();
+ }
+
+ LocalDefinition.HotKey.PropertyChanged += (sender, args) => { CurrentKeybindPanel.Visibility = LocalDefinition.HotKey.HasAssignedKeybind ? Visibility.Hidden : Visibility.Visible; };
+ LocalDefinition.HotKey.RaisePropertyChanged();
+ }
+
+ public void ConfigureKeybind(object sender, RoutedEventArgs e)
+ {
+ if (!KeybindConfiguratorWindow.HasOpenInstance)
+ {
+ new KeybindConfiguratorWindow(LocalDefinition).Show();
+ }
+ else
+ {
+ MessageBox.Show("Only one instance of the Configuration Window allowed at a Time... \nPlease close the other one.", "Error!", MessageBoxButton.OK, MessageBoxImage.Information);
+ }
+ }
+
+ public void RemoveKeybind(object sender, RoutedEventArgs e)
+ {
+ KeybindManager.RemoveKeybindAndMappingByName(LocalDefinition.Name);
+ LocalDefinition.HotKey.RaisePropertyChanged();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Controls/Sound/SoundView.xaml.cs b/src/AstroSoundBoard/WPF/Controls/Sound/SoundView.xaml.cs
index 14e5999..ead9356 100644
--- a/src/AstroSoundBoard/WPF/Controls/Sound/SoundView.xaml.cs
+++ b/src/AstroSoundBoard/WPF/Controls/Sound/SoundView.xaml.cs
@@ -1,7 +1,7 @@
// ****************************** Module Header ****************************** //
//
//
-// Last Modified: 23:04:2017 / 15:57
+// Last Modified: 30:04:2017 / 20:21
// Creation: 17:04:2017
// Project: AstroSoundBoard
//
diff --git a/src/AstroSoundBoard/WPF/Pages/About/AboutView.xaml b/src/AstroSoundBoard/WPF/Pages/About/AboutView.xaml
new file mode 100644
index 0000000..da14e2b
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Pages/About/AboutView.xaml
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get In Touch
+
+
+ Say hello, make a feature request, or raise a bug through one of these channels:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ Red
+ Pink
+ Purple
+ Indigo
+ Blue
+ Cyan
+ Teal
+ Green
+ Lime
+ Yellow
+ Amber
+ Orange
+ Brown
+ Grey
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml.cs b/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml.cs
index db408b7..f7ed67d 100644
--- a/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml.cs
+++ b/src/AstroSoundBoard/WPF/Pages/Settings/SettingsView.xaml.cs
@@ -1,8 +1,8 @@
// ****************************** Module Header ****************************** //
//
//
-// Last Modified: 25:04:2017 / 18:02
-// Creation: 16:04:2017
+// Last Modified: 01:05:2017 / 15:09
+// Creation: 29:04:2017
// Project: AstroSoundBoard
//
//
@@ -11,19 +11,21 @@
namespace AstroSoundBoard.WPF.Pages.Settings
{
- using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
+ using AstroSoundBoard.Core.Components;
using AstroSoundBoard.Core.Objects;
using AstroSoundBoard.Properties;
+ using AstroSoundBoard.WPF.Windows;
+
+ using log4net;
public partial class SettingsView : UserControl
{
- public static List ColorList { get; } = new List { "Red", "Pink", "Purple", "Indigo", "Blue", "Cyan", "Teal", "Green", "Lime", "Yellow", "Amber", "Orange", "Brown", "Grey" };
-
+ private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public string CurrentVersion { get; } = Assembly.GetExecutingAssembly().GetName().Version.ToString();
public SettingsView()
@@ -31,13 +33,8 @@ public SettingsView()
InitializeComponent();
DataContext = this;
- // Add all available colors to the ColorBox. So the User can select the one he wants.
- foreach (string color in ColorList)
- {
- ColorBox.Items.Add(color);
- }
-
ColorBox.SelectedValue = Settings.Default.PrimaryColor;
+ AllowErrorReportingToogleButton.IsChecked = Settings.Default.AllowErrorReporting;
}
public int SelectedColor { get; set; } = Settings.Default.PrimaryColor;
@@ -68,14 +65,54 @@ private void ChangeLightMode(object sender, RoutedEventArgs e)
App.ApplyMaterialTheme();
}
- private void BrowserChangeLog(object sender, RoutedEventArgs e)
+ private void ShowAbout_Click(object sender, RoutedEventArgs e) => ViewChanger.ChangeViewTo(ViewChanger.Page.About);
+
+ private void BrowserChangeLog(object sender, RoutedEventArgs e) => Process.Start("https://github.com/FetzenRndy/AstroSoundboard/releases/");
+
+ private void OpenApplicationPath_Click(object sender, RoutedEventArgs e) => Process.Start("explorer.exe", AppSettings.AssemblyDirectory);
+
+ private void OpenLogsFolder(object sender, RoutedEventArgs e) => Process.Start("explorer.exe", @"C:\ProgramData\AstroKittySoundBoard\logs");
+
+ private void AllowErrorReportingToogleButton_Click(object sender, RoutedEventArgs e)
+ {
+ if (Settings.Default.AllowErrorReporting)
+ {
+ Settings.Default.AllowErrorReporting = false;
+ Settings.Default.Save();
+ }
+ else
+ {
+ Settings.Default.AllowErrorReporting = true;
+ Settings.Default.Save();
+ }
+
+ Log.Info($"Changed ErrorReporting! TO: {Settings.Default.AllowErrorReporting}");
+ }
+
+ private void RequestImplementation_Click(object sender, RoutedEventArgs e)
+ {
+ var window = new FeedbackWindow();
+ window.Show();
+ }
+
+ private void ReportIssue_Click(object sender, RoutedEventArgs e)
{
- Process.Start("https://github.com/FetzenRndy/AstroSoundboard/blob/master/public/changelog.md");
+ var window = new FeedbackWindow();
+ window.Show();
}
- private void OpenApplicationPath_Click(object sender, RoutedEventArgs e)
+ private void EnableKeybindsToogle(object sender, RoutedEventArgs e)
{
- Process.Start("explorer.exe", AppSettings.AssemblyDirectory);
+ if (Settings.Default.EnableSoundHotKeys)
+ {
+ Settings.Default.EnableSoundHotKeys = false;
+ Settings.Default.Save();
+ }
+ else
+ {
+ Settings.Default.EnableSoundHotKeys = true;
+ Settings.Default.Save();
+ }
}
}
}
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/FeedbackWindow.xaml b/src/AstroSoundBoard/WPF/Windows/FeedbackWindow.xaml
new file mode 100644
index 0000000..7942454
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Windows/FeedbackWindow.xaml
@@ -0,0 +1,152 @@
+
+
+
+
+ Give Feedback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bug
+ Cosmetic
+ Exception
+ Usability Problem
+ Performance Problem
+ General Improvement
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/FeedbackWindow.xaml.cs b/src/AstroSoundBoard/WPF/Windows/FeedbackWindow.xaml.cs
new file mode 100644
index 0000000..61bd526
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Windows/FeedbackWindow.xaml.cs
@@ -0,0 +1,125 @@
+// ****************************** Module Header ****************************** //
+//
+//
+// Last Modified: 29:04:2017 / 20:53
+// Creation: 29:04:2017
+// Project: AstroSoundBoard
+//
+//
+// //
+// *************************************************************************** //
+
+namespace AstroSoundBoard.WPF.Windows
+{
+ using System.Windows;
+
+ using AstroSoundBoard.Core.Objects;
+
+ using log4net;
+
+ using SharpRaven;
+ using SharpRaven.Data;
+
+ public partial class FeedbackWindow : Window
+ {
+ private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+
+ public FeedbackWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void IssueSubmit(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ if (!string.IsNullOrWhiteSpace(IssueTitle.Text) && !string.IsNullOrWhiteSpace(IssueDescription.Text))
+ {
+ var data = new SentryEvent("USER ISSUE REPORT!")
+ {
+ Level = ErrorLevel.Info,
+ Message = $"USER ISSUE REPORT: {IssueTitle.Text} \nKIND: {IssueKind.Text} \n\nDESCRIPTION: \n{IssueDescription.Text} \n \nContact: \n{IssueContact.Text}"
+ };
+
+ new RavenClient(Credentials.SentryApiKey).Capture(data);
+
+ IssueStatus.Content = "Issue Sent! - Thanks for the Feedback";
+
+ IssueTitle.Text = string.Empty;
+ IssueDescription.Text = string.Empty;
+ IssueContact.Text = string.Empty;
+ }
+ else
+ {
+ IssueStatus.Content = "Please atlease fill the Title and the Description!";
+ }
+ }
+ catch
+ {
+ IssueStatus.Content = "Error while sending... Try again...";
+ }
+ }
+
+ private void FeatureSubmit(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ if (!string.IsNullOrWhiteSpace(FeatureTitle.Text) && !string.IsNullOrWhiteSpace(FeatureDescription.Text))
+ {
+ var data = new SentryEvent("USER FEATURE REQUEST!")
+ {
+ Level = ErrorLevel.Info,
+ Message = $"USER FEATURE REQUEST: {FeatureTitle.Text} \nDESCRIPTION:\n{FeatureDescription.Text} \n \nContact: \n{FeatureContact.Text}"
+ };
+
+ new RavenClient(Credentials.SentryApiKey).Capture(data);
+
+ FeatureStatus.Content = "Issue Sent! - Thanks for the Feedback";
+
+ FeatureTitle.Text = string.Empty;
+ FeatureDescription.Text = string.Empty;
+ FeatureContact.Text = string.Empty;
+ }
+ else
+ {
+ FeatureStatus.Content = "Please atlease fill the Title and the Description!";
+ }
+ }
+ catch
+ {
+ FeatureStatus.Content = "Error while sending... Try again...";
+ }
+ }
+
+ private void SoundSubmit(object sender, RoutedEventArgs e)
+ {
+ try
+ {
+ if (!string.IsNullOrWhiteSpace(SoundTitle.Text) && !string.IsNullOrWhiteSpace(SoundDescription.Text))
+ {
+ var data = new SentryEvent("USER SOUND REQUEST!")
+ {
+ Level = ErrorLevel.Info,
+ Message = $"USER SOUND REQUEST: {SoundTitle.Text} \nDESCRIPTION:\n{SoundDescription.Text} \n \nContact: \n{SoundContact.Text}"
+ };
+
+ new RavenClient(Credentials.SentryApiKey).Capture(data);
+
+ IssueStatus.Content = "Issue Sent! - Thanks for the Feedback";
+
+ SoundTitle.Text = string.Empty;
+ SoundDescription.Text = string.Empty;
+ SoundContact.Text = string.Empty;
+ }
+ else
+ {
+ SoundStatus.Content = "Please atlease fill the Title and the Description!";
+ }
+ }
+ catch
+ {
+ SoundStatus.Content = "Error while sending... Try again...";
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/KeybindConfiguratorWindow.xaml b/src/AstroSoundBoard/WPF/Windows/KeybindConfiguratorWindow.xaml
new file mode 100644
index 0000000..b7f693c
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Windows/KeybindConfiguratorWindow.xaml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/KeybindConfiguratorWindow.xaml.cs b/src/AstroSoundBoard/WPF/Windows/KeybindConfiguratorWindow.xaml.cs
new file mode 100644
index 0000000..6a1753b
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Windows/KeybindConfiguratorWindow.xaml.cs
@@ -0,0 +1,186 @@
+// ****************************** Module Header ****************************** //
+//
+//
+// Last Modified: 01:05:2017 / 13:46
+// Creation: 01:05:2017
+// Project: AstroSoundBoard
+//
+//
+// //
+// *************************************************************************** //
+
+namespace AstroSoundBoard.WPF.Windows
+{
+ using System.ComponentModel;
+ using System.Windows;
+ using System.Windows.Input;
+
+ using AstroSoundBoard.Core.Components;
+ using AstroSoundBoard.Core.Objects.DataObjects;
+
+ using log4net;
+
+ using PropertyChanged;
+
+ [ImplementPropertyChanged]
+ public partial class KeybindConfiguratorWindow : Window
+ {
+ public static bool HasOpenInstance { get; set; }
+
+ private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+
+ public Sound LocalDefinition { get; set; }
+
+ private Key PressedKey { get; set; }
+
+ public KeybindConfiguratorWindow(Sound definition)
+ {
+ InitializeComponent();
+ DataContext = this;
+
+ HasOpenInstance = true;
+
+ LocalDefinition = SettingsManager.GetSound(definition.Name);
+
+ if (LocalDefinition.HotKey == null)
+ {
+ LocalDefinition.HotKey = new KeyBind();
+ }
+
+ LoadState();
+
+ KeyDown += (sender, e) =>
+ {
+ PressedKey = e.Key;
+ BoundKey.Text = e.Key.ToString();
+ LocalDefinition.HotKey.Key = e.Key;
+ CheckDuplicate();
+ };
+ }
+
+ private void LoadState()
+ {
+ Log.Debug("LOADING STATE!");
+ LocalDefinition.HotKey.SetValues();
+
+ if (LocalDefinition.HotKey.Modifier == ModifierKeys.Alt)
+ {
+ AltModifier.IsChecked = true;
+ }
+
+ if (LocalDefinition.HotKey.Modifier == ModifierKeys.Control)
+ {
+ CtrlModifier.IsChecked = true;
+ }
+
+ if (LocalDefinition.HotKey.Modifier == ModifierKeys.Windows)
+ {
+ WindowsModifier.IsChecked = true;
+ }
+
+ if (LocalDefinition.HotKey.Modifier == ModifierKeys.Shift)
+ {
+ ShiftModifier.IsChecked = true;
+ }
+
+ BoundKey.Text = LocalDefinition.HotKey.Key.ToString();
+ }
+
+ private void ApplyKeybind(object sender, RoutedEventArgs e)
+ {
+ SettingsManager.RewriteSound(LocalDefinition);
+ }
+
+ protected override void OnClosing(CancelEventArgs e)
+ {
+ HasOpenInstance = false;
+ KeybindManager.SetKeybinds();
+ base.OnClosing(e);
+ }
+
+ private void ModifierChanged(object sender, RoutedEventArgs e)
+ {
+ bool control = CtrlModifier.IsChecked != null && (bool)CtrlModifier.IsChecked;
+ bool shift = ShiftModifier.IsChecked != null && (bool)ShiftModifier.IsChecked;
+ bool windows = WindowsModifier.IsChecked != null && (bool)WindowsModifier.IsChecked;
+ bool alternative = AltModifier.IsChecked != null && (bool)AltModifier.IsChecked;
+
+ int checkedCount = 0;
+
+ if (windows)
+ {
+ checkedCount++;
+ }
+
+ if (shift)
+ {
+ checkedCount++;
+ }
+
+ if (control)
+ {
+ checkedCount++;
+ }
+
+ if (alternative)
+ {
+ checkedCount++;
+ }
+
+ if (checkedCount > 1)
+ {
+ MessageBox.Show("Only one Modifier allowed... Support for more comming in a future version!");
+
+ CtrlModifier.IsChecked = false;
+ ShiftModifier.IsChecked = false;
+ WindowsModifier.IsChecked = false;
+ AltModifier.IsChecked = false;
+ }
+ else
+ {
+ if (windows)
+ {
+ LocalDefinition.HotKey.Modifier = ModifierKeys.Windows;
+ return;
+ }
+
+ if (shift)
+ {
+ LocalDefinition.HotKey.Modifier = ModifierKeys.Shift;
+ return;
+ }
+
+ if (control)
+ {
+ LocalDefinition.HotKey.Modifier = ModifierKeys.Control;
+ return;
+ }
+
+ if (alternative)
+ {
+ LocalDefinition.HotKey.Modifier = ModifierKeys.Alt;
+ return;
+ }
+
+ LocalDefinition.HotKey.Modifier = ModifierKeys.None;
+ }
+
+ CheckDuplicate();
+ }
+
+ private void CheckDuplicate()
+ {
+ (bool status, string message) checkResult = KeybindManager.CheckDuplicate(LocalDefinition);
+
+ if (!checkResult.status)
+ {
+ MessageBox.Show(checkResult.message, "Error!", MessageBoxButton.OK, MessageBoxImage.Information);
+ ApplyButton.IsEnabled = false;
+ }
+ else
+ {
+ ApplyButton.IsEnabled = true;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/KeybindManagerWindow.xaml b/src/AstroSoundBoard/WPF/Windows/KeybindManagerWindow.xaml
new file mode 100644
index 0000000..8c0daba
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Windows/KeybindManagerWindow.xaml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/KeybindManagerWindow.xaml.cs b/src/AstroSoundBoard/WPF/Windows/KeybindManagerWindow.xaml.cs
new file mode 100644
index 0000000..7456272
--- /dev/null
+++ b/src/AstroSoundBoard/WPF/Windows/KeybindManagerWindow.xaml.cs
@@ -0,0 +1,87 @@
+// ****************************** Module Header ****************************** //
+//
+//
+// Last Modified: 01:05:2017 / 13:28
+// Creation: 01:05:2017
+// Project: AstroSoundBoard
+//
+//
+// //
+// *************************************************************************** //
+
+namespace AstroSoundBoard.WPF.Windows
+{
+ using System.Collections.Generic;
+ using System.Windows;
+ using System.Windows.Controls;
+
+ using AstroSoundBoard.Core.Components;
+ using AstroSoundBoard.Core.Objects.DataObjects;
+ using AstroSoundBoard.Core.Objects.DataObjects.SoundDefinitionJsonTypes;
+ using AstroSoundBoard.WPF.Controls.Keybind;
+
+ using PropertyChanged;
+
+ [ImplementPropertyChanged]
+ public partial class KeybindManagerWindow : Window
+ {
+ private List AllViews { get; set; } = new List();
+
+ public KeybindManagerWindow()
+ {
+ 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,
+ HotKey = SettingsManager.GetSound(definition.Sound.Name).HotKey
+ };
+
+ var view = new KeybindView(item) { MinWidth = Width - 40 };
+
+ ItemCtrl.Items.Add(view);
+ AllViews.Add(view);
+ }
+ }
+
+ private void RemoveAllKeybinds(object sender, RoutedEventArgs e) => KeybindManager.RemoveAllKeybinds();
+
+ public void SearchForElement(object sender, TextChangedEventArgs e)
+ {
+ if (string.IsNullOrEmpty(SearchBox.Text))
+ {
+ ItemCtrl.Items.Clear();
+
+ foreach (KeybindView view in AllViews)
+ {
+ ItemCtrl.Items.Add(view);
+ }
+ }
+ else
+ {
+ List matchingItems = new List();
+
+ foreach (KeybindView view in ItemCtrl.Items)
+ {
+ if (view.LocalDefinition.Name.ToLower().Contains(SearchBox.Text.ToLower()))
+ {
+ matchingItems.Add(view);
+ }
+ }
+
+ ItemCtrl.Items.Clear();
+
+ foreach (KeybindView view in matchingItems)
+ {
+ ItemCtrl.Items.Add(view);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml b/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml
index 081f60b..0d4b063 100644
--- a/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml
+++ b/src/AstroSoundBoard/WPF/Windows/MainWindow.xaml
@@ -1,24 +1,50 @@
+ x:Class="AstroSoundBoard.WPF.Windows.MainWindow"
+ 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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:system="clr-namespace:System;assembly=mscorlib"
+ Title="AstroKitty Soundboard"
+ Width="1110"
+ Height="550"
+ MinWidth="1110"
+ MinHeight="550"
+ d:DesignHeight="550"
+ d:DesignWidth="1110"
+ 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">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -29,32 +55,36 @@
-
+
+ Name="SideMenu"
+ Grid.Row="1"
+ Grid.Column="0"
+ HorizontalAlignment="Stretch"
+ VerticalAlignment="Stretch"
+ Mode="PrimaryDark">
+
+
+
+ Margin="10,10,10,-5"
+ HorizontalAlignment="Center"
+ FontSize="22"
+ FontWeight="Bold"
+ Text="ASTROKITTY MEMEBOARD" />
+ Margin="10,0,-5,10"
+ Padding="8,4,8,4"
+ Panel.ZIndex="1"
+ materialDesign:ShadowAssist.ShadowDepth="Depth1"
+ CornerRadius="2"
+ Mode="Standard">
@@ -65,32 +95,48 @@
+ 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 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/AstroSoundBoard/WPF/Windows/UpdateWindow.xaml.cs b/src/AstroSoundBoard/WPF/Windows/UpdateWindow.xaml.cs
deleted file mode 100644
index e5614b4..0000000
--- a/src/AstroSoundBoard/WPF/Windows/UpdateWindow.xaml.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-// ****************************** Module Header ****************************** //
-//
-//
-// Last Modified: 22:04:2017 / 22:36
-// Creation: 22:04:2017
-// Project: AstroSoundBoard
-//
-//
-// //
-// *************************************************************************** //
-
-namespace AstroSoundBoard.WPF.Windows
-{
- using System.Diagnostics;
- using System.Windows;
-
- ///
- /// Interaktionslogik für UpdateWindow.xaml
- ///
- public partial class UpdateWindow : Window
- {
- public UpdateWindow()
- {
- InitializeComponent();
- }
-
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- Process.Start("https://github.com/FetzenRndy/AstroSoundboard/blob/master/public/changelog.md");
- }
- }
-}
\ No newline at end of file
diff --git a/src/AstroSoundBoard/packages.config b/src/AstroSoundBoard/packages.config
index e138ba1..9ee0a50 100644
--- a/src/AstroSoundBoard/packages.config
+++ b/src/AstroSoundBoard/packages.config
@@ -1,8 +1,8 @@
-
-
+
+
@@ -11,5 +11,9 @@
+
+
+
+
\ No newline at end of file