From b26a183624f40361e46bdc94bf7eb10cf91a297e Mon Sep 17 00:00:00 2001 From: JonatanRek Date: Mon, 9 Sep 2024 12:11:36 -0700 Subject: [PATCH] Media Buttons --- FakeeDeck/ButtonType/Button.cs | 2 +- FakeeDeck/ButtonType/MediaMacro.cs | 43 ++++++++++++++++++++++++++++++ FakeeDeck/HttpServer.cs | 9 ++++--- 3 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 FakeeDeck/ButtonType/MediaMacro.cs diff --git a/FakeeDeck/ButtonType/Button.cs b/FakeeDeck/ButtonType/Button.cs index a127e91..a7b1782 100644 --- a/FakeeDeck/ButtonType/Button.cs +++ b/FakeeDeck/ButtonType/Button.cs @@ -12,7 +12,7 @@ namespace FakeeDeck.ButtonType { return "
" + - "
" + + " " + " " + " " + "
" + diff --git a/FakeeDeck/ButtonType/MediaMacro.cs b/FakeeDeck/ButtonType/MediaMacro.cs new file mode 100644 index 0000000..171a01c --- /dev/null +++ b/FakeeDeck/ButtonType/MediaMacro.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FakeeDeck.ButtonType +{ + internal class MediaMacro + { + public static Dictionary mediaControls = new Dictionary + { + { "play/pause", new uint[] { 0xB3}}, + { "mute", new uint[] { 0xAD }}, + }; + + public static Dictionary mediaIcons = new Dictionary + { + { "play/pause", "fa-play"}, + { "mute", "fa-volume-xmark"}, + }; + + public static string getButton(string Key) + { + return + "
" + + "
" + + " " + + " " + + "
" + + "
"; + } + + public static bool invokeAction(string control_action) + { + KeyboardMacro.SendKey(mediaControls[control_action][0]); + Console.WriteLine(control_action); + return true; + } + } +} diff --git a/FakeeDeck/HttpServer.cs b/FakeeDeck/HttpServer.cs index 42d668d..7cc336f 100644 --- a/FakeeDeck/HttpServer.cs +++ b/FakeeDeck/HttpServer.cs @@ -119,8 +119,6 @@ namespace FakeeDeck ""; public static string pageData = ""; - - public static async Task HandleIncomingConnections() { bool runServer = true; @@ -143,6 +141,7 @@ namespace FakeeDeck Console.WriteLine(req.UserAgent); Console.WriteLine(); + //Parse Port Parameters Dictionary postParams = new Dictionary(); if (req.HttpMethod == "POST") { @@ -171,7 +170,6 @@ namespace FakeeDeck { string module = req.Url.AbsolutePath.Replace("/button", ""); Console.WriteLine("Call module " + module); - Console.WriteLine(postParams["stratogem"]); callButtonAction(module, postParams); @@ -265,6 +263,11 @@ namespace FakeeDeck pageData += HelldiversTwoMacro.getButton(stratogem.Key); } + foreach (var control in MediaMacro.mediaControls) + { + pageData += MediaMacro.getButton(control.Key); + } + // Create a Http server and start listening for incoming connections listener = new HttpListener(); listener.Prefixes.Add(url);