diff --git a/src/renderer/index.js b/src/renderer/index.js index ef8becc1..eb557878 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -302,6 +302,70 @@ const app = new Vue({ } }, methods: { + simulateController() { + let intTabIndex = 0 + + var sounds = { + Confirm: new Audio("./sounds/confirm.ogg"), + Menu: new Audio("./sounds/btn1.ogg"), + Hover: new Audio("./sounds/hover.ogg") + } + + document.addEventListener("keydown", (e) => { + sounds.Confirm.currentTime = 0 + sounds.Menu.currentTime = 0 + sounds.Hover.currentTime = 0 + let tabbable = $("[tabindex]") + console.log(e.key) + switch (e.key) { + default: + break; + case "ArrowLeft": + + e.preventDefault() + break; + case "ArrowRight": + e.preventDefault() + break; + case "ArrowUp": + sounds.Hover.play() + if(intTabIndex <= 0) { + intTabIndex = 0 + }else{ + intTabIndex-- + } + $(tabbable[intTabIndex]).focus() + // $("#app-content").scrollTop($(document.activeElement).offset().top) + e.preventDefault() + break; + case "ArrowDown": + sounds.Hover.play() + if(intTabIndex < tabbable.length) { + intTabIndex++ + }else{ + intTabIndex = tabbable.length + } + $(tabbable[intTabIndex]).focus() + // $("#app-content").scrollTop($(document.activeElement).offset().top) + e.preventDefault() + break; + case "c": + app.resetState() + break; + case "x": + sounds.Menu.play() + document.activeElement.dispatchEvent(new Event("contextmenu")) + e.preventDefault() + break; + case "z": + sounds.Confirm.play() + document.activeElement.dispatchEvent(new Event("click")) + document.activeElement.dispatchEvent(new Event("controller-click")) + e.preventDefault() + break; + } + }); + }, songLinkShare(amUrl) { notyf.open({ type: "info", className: "notyf-info", message: app.getLz('term.song.link.generate') }) let self = this diff --git a/src/renderer/sounds/btn1.ogg b/src/renderer/sounds/btn1.ogg new file mode 100644 index 00000000..f6f75efa Binary files /dev/null and b/src/renderer/sounds/btn1.ogg differ diff --git a/src/renderer/sounds/confirm.ogg b/src/renderer/sounds/confirm.ogg new file mode 100644 index 00000000..c4e3857b Binary files /dev/null and b/src/renderer/sounds/confirm.ogg differ diff --git a/src/renderer/sounds/hover.ogg b/src/renderer/sounds/hover.ogg new file mode 100644 index 00000000..9da1b148 Binary files /dev/null and b/src/renderer/sounds/hover.ogg differ diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index 7eff29fa..d9d5551e 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -12,6 +12,9 @@ @mouseenter="checkLibrary" @mouseover="showInLibrary = true" @mouseleave="showInLibrary = false" + @dblclick="route()" + @controller-click.self="route()" + tabindex="0" :class="[{'mediaitem-selected': app.select_hasMediaItem(guid)}, addClasses]">