Upload files to "/"
Signed-off-by: ZenDeuo <ryan@deuo.one>
This commit is contained in:
parent
c62b687da7
commit
8ff490329b
1 changed files with 122 additions and 0 deletions
122
thisthing.txt
Normal file
122
thisthing.txt
Normal file
|
|
@ -0,0 +1,122 @@
|
||||||
|
#SingleInstance Force
|
||||||
|
#Persistent
|
||||||
|
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
|
||||||
|
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
||||||
|
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
||||||
|
|
||||||
|
if not A_IsAdmin
|
||||||
|
{
|
||||||
|
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.0.92.01+
|
||||||
|
ExitApp
|
||||||
|
}
|
||||||
|
|
||||||
|
; Define constants
|
||||||
|
DEVICE_NAME := "SteelSeries Sonar - Media"
|
||||||
|
VOLUME_STEP := 1311
|
||||||
|
|
||||||
|
; Create GUI for OSD
|
||||||
|
Gui, +AlwaysOnTop +ToolWindow -Caption +LastFound
|
||||||
|
Gui, Color, 000000
|
||||||
|
Gui, Font, s20 cFFFFFF, Segoe UI
|
||||||
|
Gui, Add, Text, vVolumeText w180 x10, Volume: --`% ; Reduced width to 180, left-aligned with 10px margin
|
||||||
|
WinSet, Transparent, 200
|
||||||
|
Gui, +E0x20 ; Click through
|
||||||
|
|
||||||
|
; Global variables to track volume
|
||||||
|
global currentVolume := 0
|
||||||
|
global isMuted := 0
|
||||||
|
|
||||||
|
; Function to show volume OSD
|
||||||
|
ShowVolumeOSD() {
|
||||||
|
; Update OSD text
|
||||||
|
if (isMuted) {
|
||||||
|
GuiControl,, VolumeText, Volume: Muted
|
||||||
|
} else {
|
||||||
|
GuiControl,, VolumeText, Volume: %currentVolume%`%
|
||||||
|
}
|
||||||
|
|
||||||
|
; Position the OSD in the center of the screen
|
||||||
|
SysGet, MonitorWorkArea, MonitorWorkArea
|
||||||
|
OSDWidth := 300
|
||||||
|
OSDHeight := 60
|
||||||
|
xPos := MonitorWorkAreaRight - OSDWidth / 2
|
||||||
|
yPos := MonitorWorkAreaBottom - OSDHeight / 2
|
||||||
|
|
||||||
|
; Show the OSD
|
||||||
|
Gui, Show, NoActivate w%OSDWidth% h%OSDHeight% x%xPos% y%yPos%
|
||||||
|
|
||||||
|
; Auto-hide after 1.5 seconds
|
||||||
|
SetTimer, HideOSD, -1500
|
||||||
|
}
|
||||||
|
|
||||||
|
; Auto-hide function
|
||||||
|
HideOSD:
|
||||||
|
Gui, Hide
|
||||||
|
return
|
||||||
|
|
||||||
|
; Initialize volume (try to get initial value)
|
||||||
|
InitializeVolume:
|
||||||
|
tempFile := A_Temp . "\volume_init.txt"
|
||||||
|
RunWait, %comspec% /c C:\Nircmd\nircmd.exe setsysvolume 0 "%DEVICE_NAME%" > "%tempFile%" 2>&1,, Hide
|
||||||
|
FileRead, volumeOutput, %tempFile%
|
||||||
|
RegExMatch(volumeOutput, "Before change.* (\d+)", volumeMatch)
|
||||||
|
volume := volumeMatch1
|
||||||
|
if (volume != "") {
|
||||||
|
currentVolume := Round((volume / 65535) * 100)
|
||||||
|
}
|
||||||
|
FileDelete, %tempFile%
|
||||||
|
|
||||||
|
; Check mute state
|
||||||
|
tempFile := A_Temp . "\mute_init.txt"
|
||||||
|
RunWait, %comspec% /c C:\Nircmd\nircmd.exe mutesysvolume 3 "%DEVICE_NAME%" > "%tempFile%" 2>&1,, Hide
|
||||||
|
FileRead, muteOutput, %tempFile%
|
||||||
|
isMuted := InStr(muteOutput, "muted")
|
||||||
|
FileDelete, %tempFile%
|
||||||
|
return
|
||||||
|
|
||||||
|
; Run initialization on startup
|
||||||
|
GoSub, InitializeVolume
|
||||||
|
|
||||||
|
Volume_Up::
|
||||||
|
; Calculate new volume
|
||||||
|
newVolume := currentVolume + 2 ; Approximately 2% per step
|
||||||
|
if (newVolume > 100)
|
||||||
|
newVolume := 100
|
||||||
|
|
||||||
|
; Update our tracker
|
||||||
|
currentVolume := newVolume
|
||||||
|
isMuted := 0
|
||||||
|
|
||||||
|
; Execute volume change
|
||||||
|
Run, C:\Nircmd\nircmd.exe changesysvolume %VOLUME_STEP% "%DEVICE_NAME%",, Hide
|
||||||
|
|
||||||
|
; Show the OSD
|
||||||
|
ShowVolumeOSD()
|
||||||
|
Return
|
||||||
|
|
||||||
|
Volume_Down::
|
||||||
|
; Calculate new volume
|
||||||
|
newVolume := currentVolume - 2 ; Approximately 2% per step
|
||||||
|
if (newVolume < 0)
|
||||||
|
newVolume := 0
|
||||||
|
|
||||||
|
; Update our tracker
|
||||||
|
currentVolume := newVolume
|
||||||
|
|
||||||
|
; Execute volume change
|
||||||
|
Run, C:\Nircmd\nircmd.exe changesysvolume -%VOLUME_STEP% "%DEVICE_NAME%",, Hide
|
||||||
|
|
||||||
|
; Show the OSD
|
||||||
|
ShowVolumeOSD()
|
||||||
|
Return
|
||||||
|
|
||||||
|
Volume_Mute::
|
||||||
|
; Toggle mute state
|
||||||
|
isMuted := !isMuted
|
||||||
|
|
||||||
|
; Execute mute toggle
|
||||||
|
Run, C:\Nircmd\nircmd.exe mutesysvolume 2 "%DEVICE_NAME%",, Hide
|
||||||
|
|
||||||
|
; Show the OSD
|
||||||
|
ShowVolumeOSD()
|
||||||
|
Return
|
||||||
Loading…
Add table
Reference in a new issue