First version GamepadUI

This commit is contained in:
cecilkorik 2019-05-17 23:20:52 -04:00
commit 6a0f2b9403
4 changed files with 347 additions and 0 deletions

3
.hgignore Normal file
View file

@ -0,0 +1,3 @@
syntax:glob
chromium
*.mp4

325
GamepadUI.ahk Executable file
View file

@ -0,0 +1,325 @@
#SingleInstance Ignore
;FormatTime,TS,,yyyy-MM-dd-HH:mm:ss
;FileAppend,%TS%> -- SCRIPT STARTUP -- `n,C:\GamepadUI\debug.txt
Gui,Bg:New
Gui,Bg:Color,Black,000000
Gui,Bg:-Caption +AlwaysOnTop E0x08000000
Gui,Bg:+hwndGuiBg
Gui,Bg:Show, h1080 w1920 x0 y0
Gui,Bg:Add, ActiveX, x0 y0 w1920 h1080 vWB, Shell.Explorer
WB.silent := true ;Surpress JS Error boxes
WB.Navigate("file:///c:/GamepadUI/bg_display.html")
repeats := 0
menuitem := 0
menuitem_skipmax := 7
menuitem_max := 7
shutting_down := 0
og_menu := 0
RepeatDelay := -1
RepeatDelay2 := -1
Setting_RepeatDelayPolling := 125
Setting_RepeatDelayFirst := 350
Setting_RepeatDelayAgain := 140
SetTimer, WatchJoy, %Setting_RepeatDelayPolling%
GoSub redraw_menu
Esc::
Gosub really_exit
return
really_exit:
Gui,Main:Destroy
Gui,Bg:Destroy
exitapp
return
menu_prev:
menuitem--
if( menuitem < 0 )
{
menuitem := menuitem_max
}
GoSub redraw_menu
return
menu_next:
menuitem++
if( menuitem >= menuitem_max )
{
menuitem := 0
}
GoSub redraw_menu
return
menu_click:
if ( shutting_down == 1 ) {
return
}
if ( og_menu == 1 )
{
}
else
{
if ( menuitem == 0 ) {
GoSub load_screen
Run, C:\Retroarch\Retroarch.exe
GoSub load_screen_finish
}
if ( menuitem == 1 ) {
GoSub load_screen
Run, C:\Program Files (x86)\Steam\Steam.exe -start steam://open/bigpicture/library
GoSub load_screen_finish
}
if ( menuitem == 2 ) {
; Other Games
og_menu := 1
GoSub redraw_menu
}
if ( menuitem == 3 ) {
GoSub load_screen
Run, c:\GamepadUI\Chromium\bin\chrome.exe https://www.cravetv.ca/ --start-fullscreen
GoSub load_screen_finish
}
if ( menuitem == 4 ) {
GoSub load_screen
Run, C:\Kodi\Kodi.exe
GoSub load_screen_finish
}
if ( menuitem == 5 ) {
Gosub really_exit
}
if ( menuitem == 6 ) {
Gosub really_exit
}
if ( menuitem == 7 ) {
; restart system
Shutdown, 6
}
}
return
load_screen:
Gui,Bg:-AlwaysOnTop
Gui,Main:Destroy
Gui,Main:New
Gui,Main:Color,0E0A09
Gui,Main:-AlwaysOnTop +OwnerBg
Gui,Main:+hwndGuiMain
Gui,Main:Show, h1080 w1920 x0 y0
WinSet, TransColor, 0E0A09, ahk_id %GuiMain%
Gui,Main:-Caption
Gui,Main:Font,Tahoma s46
;MsgBox, yval = %yval% = %menuitem% = %menuitem_max%
Gui,Main:Add, Text,cWhite w550 x650 y400,Please Wait! Loading ...
shutting_down := 1
SetTimer, cleanup_timer, 100
return
load_screen_finish:
sleep 15000
Gosub really_exit
return
cleanup_timer:
WinGetTitle, Title, A
if ( Title != "GamepadUI.ahk" ) {
Gosub really_exit
}
return
redraw_menu:
if ( shutting_down == 1 ) {
return
}
yval := 550 + (menuitem * 50)
Gui,Main:Destroy
Gui,Main:New
Gui,Main:Color,0E0A09
Gui,Main:+AlwaysOnTop +OwnerBg
Gui,Main:+hwndGuiMain
Gui,Main:Show, h1080 w1920 x0 y0
WinSet, TransColor, 0E0A09, ahk_id %GuiMain%
Gui,Main:-Caption
Gui,Main:Font,Tahoma s28
;MsgBox, yval = %yval% = %menuitem% = %menuitem_max%
Gui,Main:Add, Text,cWhite w350 x1180 y%yval% 0x12,
if ( og_menu == 1 ) {
Gui,Main:Add, Text,cWhite w550 x1200 y550,Fortnite
Gui,Main:Add, Text,cWhite w550 x1200 y600,Minecraft
Gui,Main:Add, Text,cWhite w550 x1200 y650,Terraria
Gui,Main:Add, Text,cWhite w550 x1200 y700,Other Games
Gui,Main:Add, Text,cWhite w550 x1200 y750,Other Games
Gui,Main:Add, Text,cWhite w550 x1200 y800,Exit and Resume
Gui,Main:Add, Text,cWhite w550 x1200 y850,Exit to Desktop
Gui,Main:Add, Text,cWhite w550 x1200 y900,Return To Main Menu
}
else
{
Gui,Main:Add, Text,cWhite w550 x1200 y550,Retro Console
Gui,Main:Add, Text,cWhite w550 x1200 y600,Steam Library
Gui,Main:Add, Text,cWhite w550 x1200 y650,Other Games
Gui,Main:Add, Text,cWhite w550 x1200 y700,CraveTV / HBO
Gui,Main:Add, Text,cWhite w550 x1200 y750,Kodi Media Player
Gui,Main:Add, Text,cWhite w550 x1200 y800,Exit and Resume
Gui,Main:Add, Text,cWhite w550 x1200 y850,Exit to Desktop
Gui,Main:Add, Text,cWhite w550 x1200 y900,Reboot
}
return
WatchJoy:
delayed := 0
GetKeyState, POV, JoyPOV ; Get position of the POV control.
GetKeyState, POV2, 2JoyPOV ; Get position of the POV control.
PovDirPrev = %PovDir% ; Prev now holds the key that was down before (if any).
PovDir2Prev = %Pov2Dir% ; Prev now holds the key that was down before (if any).
if ( ( POV < 0 ) && ( POV2 < 0 ) ) {
return
}
FormatTime,TS,,yyyy-MM-dd-HH:mm:ss
;FileAppend,%TS%> Pov=%POV% LastPov=%PovDirPrev%`n,C:\GamepadUI\debug.txt
; Some joysticks might have a smooth/continous POV rather than one in fixed increments.
; To support them all, use a range:
if POV < 0 ; No angle to report
PovDir = 0
else if POV > 27000
PovDir = Up
else if POV between 0 and 8999
PovDir = Up
else if POV between 9001 and 26999
PovDir = Down
else
PovDir = 0
if ( PovDir != 0 ) {
if ( PovDir == PovDirPrev ) ; The correct key is already down (or no key is needed).
{
if ( RepeatDelay > 0 ) {
RepeatDelay := RepeatDelay - Setting_RepeatDelayPolling
;FileAppend,%TS%> Waiting For Repeat=%repeats% RD=%RepeatDelay% POV=%POV% PovDir=%PovDir% LastPovDir=%PovDirPrev%`n,C:\GamepadUI\debug.txt
delayed := 1
}
else
{
repeats++
;FileAppend,%TS%> Repeated=%repeats% RD=%RepeatDelay% POV=%POV% PovDir=%PovDir% LastPovDir=%PovDirPrev%`n,C:\GamepadUI\debug.txt
RepeatDelay := Setting_RepeatDelayAgain
delayed := 0
}
}
else
{
; This is the first time this key is pressed, so we wait longer before repeating
RepeatDelay := Setting_RepeatDelayFirst
repeats := 0
delayed := 0
;FileAppend,%TS%> First Press=%repeats% RD=%RepeatDelay% POV=%POV% PovDir=%PovDir% LastPovDir=%PovDirPrev%`n,C:\GamepadUI\debug.txt
}
}
PovDir2Prev = %Pov2Dir% ; Prev now holds the key that was down before (if any).
; Some joysticks might have a smooth/continous POV rather than one in fixed increments.
; To support them all, use a range:
if POV2 < 0 ; No angle to report
Pov2Dir = 0
else if POV2 > 27000
Pov2Dir = Up
else if POV2 between 0 and 8999
Pov2Dir = Up
else if POV2 between 9001 and 26999
Pov2Dir = Down
else
Pov2Dir = 0
if ( Pov2Dir != 0 ) {
if ( Pov2Dir == PovDir2Prev ) ; The correct key is already down (or no key is needed).
{
if ( RepeatDelay2 > 0 ) {
RepeatDelay2 := RepeatDelay2 - Setting_RepeatDelayPolling
return ; Do nothing.
}
else
{
RepeatDelay2 := Setting_RepeatDelayAgain
}
}
else
{
; This is the first time this key is pressed, so we wait longer before repeating
RepeatDelay2 := Setting_RepeatDelayFirst
}
}
if ( delayed == 1 ) {
return
}
;FileAppend,%TS%> Repeating=%repeats% RD=%RepeatDelay% POV=%POV% PovDir=%PovDir% LastPovDir=%PovDirPrev%`n,C:\GamepadUI\debug.txt
if ( ( PovDir == 0 ) && ( Pov2Dir == 0 ) ) {
return
}
if ( ( PovDir == "Up" ) || ( Pov2Dir == "Up" ) ) {
GoSub menu_prev
}
if ( ( PovDir == "Down" ) || ( Pov2Dir == "Down" ) ) {
GoSub menu_next
}
return
Joy1::
GoSub menu_click
return
2Joy1::
GoSub menu_click
return
Joy2::
GoSub menu_click
return
2Joy2::
GoSub menu_click
return
Up::
GoSub menu_prev
return
Down::
GoSub menu_next
return
Enter::
GoSub menu_click
return

3
GuideButton.ahk Executable file
View file

@ -0,0 +1,3 @@
vk07::
Run, C:\GamepadUI\GamepadUI.ahk
return

16
bg_display.html Executable file
View file

@ -0,0 +1,16 @@
<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<script type="text/javascript">
</script>
<style type="text/css">
</style>
</head>
<body bgcolor="black" style="overflow: hidden">
<video id="video1" width="1920" autoplay="true" loop="true">
<source src="file:///c:/GamepadUI/background.mp4" type="video/mp4">
Your browser does not support HTML5 video.
</video>
</body>
</html>