local kb = libs.keyboard;
local win = libs.win;
local log = require("log");
events.detect = function ()
if OS_WINDOWS then
return libs.fs.exists("C:\\Program Files\\Plex\\Plex Media Player");
elseif OS_OSX then
return libs.fs.exists("/Applications/Plex Home Theater.app") or libs.fs.exists("/Applications/Plex.app") or libs.fs.exists("/Applications/Pley Media Player.app");
end
end
--@help Focus Plex application
actions.switch = function()
if OS_WINDOWS then
local hwnd = win.window("PlexMediaPlayer.exe");
if (hwnd == 0) then
actions.launch();
return false;
else
local active = win.active();
if (active == hwnd) then return true; end
win.switchtowait("PlexMediaPlayer.exe");
return false;
end
end
end
--@help Launch Plex application
actions.launch = function()
if OS_WINDOWS then
log.info("LAUNCHING");
pcall(function ()
os.start("c:\\Program Files\\Plex\\Plex Media Player\\PlexMediaPlayer.exe");
end);
elseif OS_OSX then
os.script("tell application \"Plex Home Theater\" to activate");
os.script("tell application \"Plex\" to activate");
os.script("tell application \"Plex Media Player\" to activate");
end
for i = 1,10,1
do
local hwnd = win.window("PlexMediaPlayer.exe");
if (hwnd ~= 0) then break; end
os.sleep(1000);
end
log.info("LAUNCHED AND SWITCHING");
win.switchtowait("PlexMediaPlayer.exe");
end
--@help Navigate back
actions.back = function ()
if (actions.switch()) then kb.press("esc"); end
end
--@help Play pause
actions.play_pause = function ()
if (actions.switch()) then kb.press("space"); end
end
--@help Seek forward
actions.forward = function ()
if (actions.switch()) then kb.press("right"); end
end
--@help Seek rewind
actions.rewind = function ()
if (actions.switch()) then kb.press("left"); end
end
--@help Navigate home
actions.home = function ()
if (actions.switch()) then kb.press("h"); end
end
--@help Stop playback
actions.stop = function ()
if (actions.switch()) then kb.press("x"); end
end
--@help Play current item
actions.play_current = function ()
if (actions.switch()) then kb.press("space"); end
end
--@help Play select item
actions.select = function ()
if (actions.switch()) then kb.press("enter"); end
end
--@help Play volumeup item
actions.volumeup = function ()
if (actions.switch()) then kb.press("oem_plus"); end
end
--@help Play volumeup item
actions.volumedown = function ()
if (actions.switch()) then kb.press("oem_minus"); end
end
--@help Navigate left
actions.left = function ()
if (actions.switch()) then kb.press("left"); end
end
--@help Navigate down
actions.down = function ()
if (actions.switch()) then kb.press("down"); end
end
--@help Navigate right
actions.right = function ()
if (actions.switch()) then kb.press("right"); end
end
--@help Navigate up
actions.up = function ()
if (actions.switch()) then kb.press("up"); end
end
--@help Select
actions.select = function ()
if (actions.switch()) then kb.press("return"); end
end
--@help Toggle Fullscreen
actions.fullscreen = function ()
if (actions.switch()) then kb.stroke("alt", "return"); end
end