mirror of
https://github.com/bdnugget/AHK_X11.git
synced 2026-11-07 02:57:27 +00:00
128 lines
3.4 KiB
AutoHotkey
128 lines
3.4 KiB
AutoHotkey
; Volume On-Screen-Display (OSD) -- by Rajat
|
|
; http://www.autohotkey.com
|
|
; This script assigns hotkeys of your choice to raise and lower the
|
|
; master and/or wave volume. Both volumes are displayed as different
|
|
; color bar graphs.
|
|
|
|
;_________________________________________________
|
|
;_______User Settings_____________________________
|
|
|
|
; Make customisation only in this area or hotkey area only!!
|
|
|
|
; The percentage by which to raise or lower the volume each time:
|
|
vol_Step = 4
|
|
|
|
; How long to display the volume level bar graphs:
|
|
vol_DisplayTime = 2000
|
|
|
|
; Master Volume Bar color (see the help file to use more
|
|
; precise shades):
|
|
vol_CBM = Red
|
|
|
|
; Wave Volume Bar color
|
|
vol_CBW = Blue
|
|
|
|
; Background color
|
|
vol_CW = Silver
|
|
|
|
; Bar's screen position. Use -1 to center the bar in that dimension:
|
|
vol_PosX = -1
|
|
vol_PosY = -1
|
|
vol_Width = 150 ; width of bar
|
|
vol_Thick = 12 ; thickness of bar
|
|
|
|
; If your keyboard has multimedia buttons for Volume, you can
|
|
; try changing the below hotkeys to use them by specifying
|
|
; Volume_Up, ^Volume_Up, Volume_Down, and ^Volume_Down:
|
|
HotKey, #Up, vol_MasterUp ; Win+UpArrow
|
|
HotKey, #Down, vol_MasterDown
|
|
HotKey, +#Up, vol_WaveUp ; Shift+Win+UpArrow
|
|
HotKey, +#Down, vol_WaveDown
|
|
|
|
|
|
;___________________________________________
|
|
;_____Auto Execute Section__________________
|
|
|
|
; DON'T CHANGE ANYTHING HERE (unless you know what you're doing).
|
|
|
|
vol_BarOptionsMaster = 1:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBM% CW%vol_CW%
|
|
vol_BarOptionsWave = 2:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBW% CW%vol_CW%
|
|
|
|
; If the X position has been specified, add it to the options.
|
|
; Otherwise, omit it to center the bar horizontally:
|
|
if vol_PosX >= 0
|
|
{
|
|
vol_BarOptionsMaster = %vol_BarOptionsMaster% X%vol_PosX%
|
|
vol_BarOptionsWave = %vol_BarOptionsWave% X%vol_PosX%
|
|
}
|
|
|
|
; If the Y position has been specified, add it to the options.
|
|
; Otherwise, omit it to have it calculated later:
|
|
if vol_PosY >= 0
|
|
{
|
|
vol_BarOptionsMaster = %vol_BarOptionsMaster% Y%vol_PosY%
|
|
vol_PosY_wave = %vol_PosY%
|
|
vol_PosY_wave += %vol_Thick%
|
|
vol_BarOptionsWave = %vol_BarOptionsWave% Y%vol_PosY_wave%
|
|
}
|
|
|
|
#SingleInstance
|
|
SetBatchLines, 10ms
|
|
Return
|
|
|
|
|
|
;___________________________________________
|
|
|
|
vol_WaveUp:
|
|
SoundSet, +%vol_Step%, Wave
|
|
Gosub, vol_ShowBars
|
|
return
|
|
|
|
vol_WaveDown:
|
|
SoundSet, -%vol_Step%, Wave
|
|
Gosub, vol_ShowBars
|
|
return
|
|
|
|
vol_MasterUp:
|
|
SoundSet, +%vol_Step%
|
|
Gosub, vol_ShowBars
|
|
return
|
|
|
|
vol_MasterDown:
|
|
SoundSet, -%vol_Step%
|
|
Gosub, vol_ShowBars
|
|
return
|
|
|
|
vol_ShowBars:
|
|
; To prevent the "flashing" effect, only create the bar window if it
|
|
; doesn't already exist:
|
|
IfWinNotExist, vol_Wave
|
|
Progress, %vol_BarOptionsWave%, , , vol_Wave
|
|
IfWinNotExist, vol_Master
|
|
{
|
|
; Calculate position here in case screen resolution changes while
|
|
; the script is running:
|
|
if vol_PosY < 0
|
|
{
|
|
; Create the Wave bar just above the Master bar:
|
|
WinGetPos, , vol_Wave_Posy, , , vol_Wave
|
|
vol_Wave_Posy -= %vol_Thick%
|
|
Progress, %vol_BarOptionsMaster% Y%vol_Wave_Posy%, , , vol_Master
|
|
}
|
|
else
|
|
Progress, %vol_BarOptionsMaster%, , , vol_Master
|
|
}
|
|
; Get both volumes in case the user or an external program changed them:
|
|
SoundGet, vol_Master, Master
|
|
SoundGet, vol_Wave, Wave
|
|
Progress, 1:%vol_Master%
|
|
Progress, 2:%vol_Wave%
|
|
SetTimer, vol_BarOff, %vol_DisplayTime%
|
|
return
|
|
|
|
vol_BarOff:
|
|
SetTimer, vol_BarOff, off
|
|
Progress, 1:Off
|
|
Progress, 2:Off
|
|
return
|