|
|
|
|
<?php
|
|
|
|
|
include_once 'ADBService.php';
|
|
|
|
|
|
|
|
|
|
$service = new ADBService(ADBService::DEFAULT_HOST);
|
|
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
<!doctype html>
|
|
|
|
|
<html lang="de">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
|
|
|
<link rel="stylesheet" href="https://bootswatch.com/4/slate/bootstrap.min.css">
|
|
|
|
|
<link rel="stylesheet" href="remote.css">
|
|
|
|
|
<title>Android TV Web Remote</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="row remote-control" id="remote">
|
|
|
|
|
<a class="col-4 btn btn-danger" onclick="sendKey('POWER')"><i class="fas fa-power-off"></i></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('DPAD_UP')"><i class="fas fa-caret-up fa-1c5x"></i></a>
|
|
|
|
|
<a class="col-4"></a>
|
|
|
|
|
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('DPAD_LEFT')"><i class="fas fa-caret-left fa-1c5x"></i></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('DPAD_CENTER')">OK</a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('DPAD_RIGHT')"><i class="fas fa-caret-right fa-1c5x"></i></a>
|
|
|
|
|
|
|
|
|
|
<a class="col-4"></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('DPAD_DOWN')"><i class="fas fa-caret-down fa-1c5x"></i></a>
|
|
|
|
|
<a class="col-4"></a>
|
|
|
|
|
|
|
|
|
|
<hr class="col-md-12"/>
|
|
|
|
|
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('BACK')"><i class="fas fa-long-arrow-alt-left"></i></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('HOME')"><i class="fas fa-home"></i></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('VOLUME_UP')"><i class="fas fa-volume-up"></i></a>
|
|
|
|
|
|
|
|
|
|
<a class="col-4"></a>
|
|
|
|
|
<a class="col-4"></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('VOLUME_DOWN')"><i class="fas fa-volume-down"></i></a>
|
|
|
|
|
|
|
|
|
|
<hr class="col-md-12"/>
|
|
|
|
|
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('MEDIA_PREVIOUS')"><i class="fas fa-backward"></i></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('MEDIA_PLAY_PAUSE')"><img src="play.png" alt="" class="play-pause-button"></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary" onclick="sendKey('MEDIA_NEXT')"><i class="fas fa-forward"></i></a>
|
|
|
|
|
|
|
|
|
|
<hr class="col-md-12"/>
|
|
|
|
|
|
|
|
|
|
<a class="col-4 btn btn-secondary btn-youtube" onclick="startApp('youtube')"><i class="fab fa-youtube fa-1c5x"></i></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary btn-plex" onclick="startApp('plex')"><img src="plex.png" alt="" class="plex-button fa-1c5x"></a>
|
|
|
|
|
<a class="col-4 btn btn-secondary btn-twitch" onclick="startApp('twitch')"><i class="fab fa-twitch"></i></a>
|
|
|
|
|
|
|
|
|
|
<a class="col-12 brand">
|
|
|
|
|
LUNA
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
|
|
|
|
<script src="https://kit.fontawesome.com/b54a4cceff.js" crossorigin="anonymous"></script>
|
|
|
|
|
<script>
|
|
|
|
|
function sendKey(key) {
|
|
|
|
|
axios.post('execute.php', {
|
|
|
|
|
keyCode: key
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
// console.log(response);
|
|
|
|
|
}).catch((error) => {22
|
|
|
|
|
console.log(error);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function startApp(appName) {
|
|
|
|
|
axios.post('execute.php', {
|
|
|
|
|
appName: appName
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
// console.log(response);
|
|
|
|
|
}).catch((error) => {22
|
|
|
|
|
console.log(error);
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check for Keypress
|
|
|
|
|
jQuery(document).keydown(function (e) {
|
|
|
|
|
switch (e.keyCode) {
|
|
|
|
|
// SPACE / ENTER
|
|
|
|
|
case 13:
|
|
|
|
|
case 32:
|
|
|
|
|
sendKey('DPAD_CENTER');
|
|
|
|
|
break;
|
|
|
|
|
// W
|
|
|
|
|
case 87:
|
|
|
|
|
sendKey('DPAD_UP');
|
|
|
|
|
break;
|
|
|
|
|
// D
|
|
|
|
|
case 68:
|
|
|
|
|
sendKey('DPAD_RIGHT');
|
|
|
|
|
break;
|
|
|
|
|
// S
|
|
|
|
|
case 83:
|
|
|
|
|
sendKey('DPAD_DOWN');
|
|
|
|
|
break;
|
|
|
|
|
// A
|
|
|
|
|
case 65:
|
|
|
|
|
sendKey('DPAD_LEFT');
|
|
|
|
|
break;
|
|
|
|
|
// UP
|
|
|
|
|
case 38:
|
|
|
|
|
sendKey('VOLUME_UP');
|
|
|
|
|
break;
|
|
|
|
|
// DOWN
|
|
|
|
|
case 40:
|
|
|
|
|
sendKey('VOLUME_DOWN');
|
|
|
|
|
break;
|
|
|
|
|
// H
|
|
|
|
|
case 72:
|
|
|
|
|
sendKey('HOME');
|
|
|
|
|
break;
|
|
|
|
|
// B
|
|
|
|
|
case 27:
|
|
|
|
|
case 66:
|
|
|
|
|
sendKey('BACK');
|
|
|
|
|
break;
|
|
|
|
|
// Backward ,
|
|
|
|
|
case 188:
|
|
|
|
|
sendKey('MEDIA_PREVIOUS');
|
|
|
|
|
break;
|
|
|
|
|
// PLAY PAUSE .
|
|
|
|
|
case 190:
|
|
|
|
|
sendKey('MEDIA_PLAY_PAUSE');
|
|
|
|
|
break;
|
|
|
|
|
// forward -
|
|
|
|
|
case 189:
|
|
|
|
|
sendKey('MEDIA_NEXT');
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|