From c284af0ddff9452e250b6a0ad192d5f84c26660b Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 4 Aug 2024 21:10:05 -0400 Subject: [PATCH] Now works with OBS, even if not focused --- MidiRules.ahk | 119 +++++++++++++++++++++++++++++++++++++ VirtualDesktopAccessor.dll | Bin 0 -> 30720 bytes 2 files changed, 119 insertions(+) create mode 100644 VirtualDesktopAccessor.dll diff --git a/MidiRules.ahk b/MidiRules.ahk index c51c1d2..89be422 100644 --- a/MidiRules.ahk +++ b/MidiRules.ahk @@ -101,6 +101,125 @@ ProcessCC(device, channel, cc, value) { } DisplayOutput("Games Unmuted", "") } + + ; Get the PID of OBS directly + Process, Exist, obs64.exe + obsPID := ErrorLevel + + ;************************************************* + ;* Start / Stop Streaming Button (Play Icon) * + ;************************************************* + + if (cc = 115 && value = 127) { + DisplayOutput("Streaming Started / Stopped", "") + PostMessage, 0x100, 0x7D, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F14 + Sleep, 10 + PostMessage, 0x101, 0x7D, 0, , ahk_pid %obsPID% ; WM_KEYUP F14 + } + + ;************************************************************** + ;* Stop Streaming - Discarding Delay (Stop Solo Mute Button) * + ;************************************************************** + + if (cc = 105 && value = 127) { + DisplayOutput("Streaming Started / Stopped", "") + PostMessage, 0x100, 0x7E, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F15 + Sleep, 10 + PostMessage, 0x101, 0x7E, 0, , ahk_pid %obsPID% ; WM_KEYUP F15 + } + + ;************************************************* + ;* Start / Stop Recording Button (Record Icon) * + ;************************************************* + + if (cc = 117 && value = 127) { + DisplayOutput("Streaming Started / Stopped", "") + PostMessage, 0x100, 0x7C, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F13 + Sleep, 10 + PostMessage, 0x101, 0x7C, 0, , ahk_pid %obsPID% ; WM_KEYUP F13 + } + + ;************************************************* + ;* Change Scene All Screens * + ;************************************************* + + if (cc = 8 && value = 0) { + DisplayOutput("Changing Scene", "All Screens (With Brainrot)") + ; Press Shift key using Send + Send, {Shift Down} + ; Press F13 key using PostMessage + PostMessage, 0x100, 0x7C, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F13 + Sleep, 10 + PostMessage, 0x101, 0x7C, 0, , ahk_pid %obsPID% ; WM_KEYUP F13 + ; Release Shift key using Send + Send, {Shift Up} + } + + ;************************************************* + ;* Change Scene Main Screen Only * + ;************************************************* + + if (cc = 9 && value = 0) { + DisplayOutput("Changing Scene", "All Screens (No Brainrot)") + ; Press Shift key using Send + Send, {Shift Down} + ; Press F14 key using PostMessage + PostMessage, 0x100, 0x7D, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F14 + Sleep, 10 + PostMessage, 0x101, 0x7D, 0, , ahk_pid %obsPID% ; WM_KEYUP F14 + ; Release Shift key using Send + Send, {Shift Up} + } + + ;************************************************* + ;* Change Scene Top Left Only * + ;************************************************* + + if (cc = 10 && value = 0) { + DisplayOutput("Changing Scene", "Be Right Back") + ; Press Shift key using Send + Send, {Shift Down} + ; Press F15 key using PostMessage + PostMessage, 0x100, 0x7E, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F15 + Sleep, 10 + PostMessage, 0x101, 0x7E, 0, , ahk_pid %obsPID% ; WM_KEYUP F15 + ; Release Shift key using Send + Send, {Shift Up} + } + + ;************************************************* + ;* Change Scene Bottom Left Only * + ;************************************************* + + if (cc = 11 && value = 0) { + DisplayOutput("Changing Scene", "Be Right Back") + ; Press Shift key using Send + Send, {Shift Down} + ; Press F16 key using PostMessage + PostMessage, 0x100, 0x7F, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F16 + Sleep, 10 + PostMessage, 0x101, 0x7F, 0, , ahk_pid %obsPID% ; WM_KEYUP F16 + ; Release Shift key using Send + Send, {Shift Up} + } + + ;************************************************* + ;* Change Scene Be Right Back * + ;************************************************* + + if (cc = 15 && value = 0) { + DisplayOutput("Changing Scene", "Be Right Back") + ; Press Shift key using Send + Send, {Shift Down} + ; Press F20 key using PostMessage + PostMessage, 0x100, 0x84, 0, , ahk_pid %obsPID% ; WM_KEYDOWN F20 + Sleep, 10 + PostMessage, 0x101, 0x84, 0, , ahk_pid %obsPID% ; WM_KEYUP F20 + ; Release Shift key using Send + Send, {Shift Up} + } + + } ProcessPC(device, channel, note, velocity) { diff --git a/VirtualDesktopAccessor.dll b/VirtualDesktopAccessor.dll new file mode 100644 index 0000000000000000000000000000000000000000..d6af0adcc3d7c850f156846552646349566af736 GIT binary patch literal 30720 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 literal 0 HcmV?d00001