Changed packet sequence numbers to only apply to mouse movements, and they now reset with every tap.

Switched the JS code to calling fetch() directly.
Minor style changes.
This commit is contained in:
moosecrab 2020-06-18 12:52:20 -07:00
parent 3eb86784b6
commit 5f0d133580
3 changed files with 44 additions and 49 deletions

View File

@ -5,6 +5,7 @@ Public Class main
Dim weblistener As HttpListener
Dim lastpos As New Point(0, 0)
Dim startpos As New Point(0, 0)
Dim lastmouseseq As Integer = 0
Dim nexttoggleclick As UInteger = MouseEventFlags.MOUSEEVENTF_LEFTDOWN Or MouseEventFlags.MOUSEEVENTF_RIGHTDOWN Or MouseEventFlags.MOUSEEVENTF_MIDDLEDOWN Or MouseEventFlags.MOUSEEVENTF_XDOWN
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles StartButton.Click
@ -39,8 +40,6 @@ Public Class main
Dim context As HttpListenerContext = Nothing
Dim resp As HttpListenerResponse
Dim respstr As String = String.Empty
Dim lastpacket As Long = -1
Dim lastpack As Long
Dim leftclicking As Boolean = False
While weblistener.IsListening
Try
@ -57,13 +56,8 @@ Public Class main
If path = "/" Then
respstr = FileIO.FileSystem.ReadAllText("res/page.html")
lastpacket = 0
Else
Dim pack As Long = context.Request.QueryString("seq")
If pack > lastpack Then
respstr = handleinput(context.Request)
lastpack = pack
End If
respstr = handleinput(context.Request)
End If
If String.IsNullOrEmpty(respstr) Then
@ -117,11 +111,16 @@ Public Class main
lastpos.Y = req.QueryString("y")
startpos.X = req.QueryString("x")
startpos.Y = req.QueryString("y")
lastmouseseq = 0
Case "move" 'trackpad touch move
mouse_event(MouseEventFlags.MOUSEEVENTF_MOVE, req.QueryString("x") - lastpos.X, req.QueryString("y") - lastpos.Y, 0, 0)
lastpos.X = req.QueryString("x")
lastpos.Y = req.QueryString("y")
Dim seq As Integer = req.QueryString("seq")
If seq > lastmouseseq Then
mouse_event(MouseEventFlags.MOUSEEVENTF_MOVE, req.QueryString("x") - lastpos.X, req.QueryString("y") - lastpos.Y, 0, 0)
lastpos.X = req.QueryString("x")
lastpos.Y = req.QueryString("y")
lastmouseseq = seq
End If
Case "end"
Dim tol As Integer = TapInput.Value

View File

@ -36,7 +36,6 @@ button:active {
#canvas {
width: 100%;
background-color: #111;
outline: gray solid 1px;
}
div{
display: flex;
@ -44,7 +43,7 @@ div{
input{
background-color: #111;
color: gray;
outline: gray solid 1px;
border: 1px solid gray;
border: none;
}
@ -53,40 +52,40 @@ input{
<body>
<div style="flex:2">
<button style="flex:1">menu</button>
<button onclick="sendmessage('key', 'code=46')" style="flex:1">del</button>
<button onclick="sendmessage('key', 'code=8')" style="flex:1">bksp</button>
<button onclick="sendmessage('key', 'code=13')" style="flex:1">enter</button>
<button onclick="fetch('/key?code=46')" style="flex:1">del</button>
<button onclick="fetch('/key?code=8')" style="flex:1">bksp</button>
<button onclick="fetch('/key?code=13')" style="flex:1">enter</button>
<input id="typebox" placeholder="type here" size=8 style="flex:2">
</div>
<div style="flex:1">
<button onclick="sendmessage('sendkeys', 'keys=j')" style="flex:1">j</button>
<button onclick="sendmessage('sendkeys', 'keys={LEFT}')" style="flex:1">&larr;</button>
<button onclick="sendmessage('sendkeys', 'keys=k')" style="flex:1">k</button>
<button onclick="sendmessage('sendkeys', 'keys={RIGHT}')" style="flex:1">&rarr;</button>
<button onclick="sendmessage('sendkeys', 'keys=l')" style="flex:1">l</button>
<button onclick="fetch('/sendkeys?keys=j')" style="flex:1">j</button>
<button onclick="fetch('/sendkeys?keys={LEFT}')" style="flex:1">&larr;</button>
<button onclick="fetch('/sendkeys?keys=k')" style="flex:1">k</button>
<button onclick="fetch('/sendkeys?keys={RIGHT}')" style="flex:1">&rarr;</button>
<button onclick="fetch('/sendkeys?keys=l')" style="flex:1">l</button>
</div>
<div style="flex:12">
<span id="canvas"></span>
</div>
<div style="flex:2">
<button onclick="sendmessage('toggle', 'button=left')" style="flex:2">left (toggle)</button>
<button onclick="sendmessage('wheel', 'axis=vert&delta=120')" style="flex:1">up</button>
<button onclick="sendmessage('click', 'button=middle')" style="flex:1">mid</button>
<button onclick="sendmessage('wheel', 'axis=vert&delta=-120')" style="flex:1">dn</button>
<button onclick="sendmessage('click', 'button=right')" style="flex:2">right</button>
<button onclick="fetch('/toggle?button=left')" style="flex:2">left (toggle)</button>
<button onclick="fetch('/wheel?axis=vert&delta=120')" style="flex:1">up</button>
<button onclick="fetch('/click?button=middle')" style="flex:1">mid</button>
<button onclick="fetch('/wheel?axis=vert&delta=-120')" style="flex:1">dn</button>
<button onclick="fetch('/click?button=right')" style="flex:2">right</button>
</div>
<div style="flex:2">
<button onclick="sendmessage('key', 'code=174')" style="flex:2">vol -</button>
<button onclick="sendmessage('key', 'code=173')" style="flex:1">mute</button>
<button onclick="sendmessage('key', 'code=175')" style="flex:2">vol +</button>
<button onclick="fetch('/key?code=174')" style="flex:2">vol -</button>
<button onclick="fetch('/key?code=173')" style="flex:1">mute</button>
<button onclick="fetch('/key?code=175')" style="flex:2">vol +</button>
</div>
<div style="flex:2">
<button onclick="sendmessage('key', 'code=178')" style="flex:1">stop</button>
<button onclick="sendmessage('key', 'code=177')" style="flex:1">prev</button>
<button onclick="sendmessage('key', 'code=179')" style="flex:1">play/pause</button>
<button onclick="sendmessage('key', 'code=176')" style="flex:1">next</button>
<button onclick="fetch('/key?code=178')" style="flex:1">stop</button>
<button onclick="fetch('/key?code=177')" style="flex:1">prev</button>
<button onclick="fetch('/key?code=179')" style="flex:1">play/pause</button>
<button onclick="fetch('/key?code=176')" style="flex:1">next</button>
</div>
<script>
<script type="text/javascript">
function startup() {
var el = document.getElementById("canvas");
el.addEventListener("touchstart", handleStart, false);
@ -107,8 +106,9 @@ var packetnum = 0;
function handleStart(evt) {
if (currenttouch == null) {
currenttouch = evt.changedTouches[0];
sendmessage("start", "x=" + currenttouch.pageX + "&y=" + currenttouch.pageY)
currenttouch = evt.changedTouches[0];
packetnum = 0;
fetch("/start?x=" + currenttouch.pageX + "&y=" + currenttouch.pageY);
}
}
@ -119,8 +119,9 @@ function handleMove(evt) {
}
for (var i = 0; i < touches.length; i++) {
if (touches[i].identifier == currenttouch.identifier) {
currenttouch = evt.changedTouches[0];
sendmessage("move", "x=" + currenttouch.pageX + "&y=" + currenttouch.pageY)
currenttouch = evt.changedTouches[0];
packetnum++;
fetch("/move?x=" + currenttouch.pageX + "&y=" + currenttouch.pageY + "&seq=" + packetnum);
}
}
}
@ -130,7 +131,7 @@ function handleEnd(evt) {
for (var i = 0; i < touches.length; i++) {
if (touches[i].identifier == currenttouch.identifier) {
currenttouch = evt.changedTouches[0];
sendmessage("end", "x=" + currenttouch.pageX + "&y=" + currenttouch.pageY)
fetch("/end?x=" + currenttouch.pageX + "&y=" + currenttouch.pageY)
currenttouch = null;
}
}
@ -141,7 +142,7 @@ function handleCancel(evt) {
for (var i = 0; i < touches.length; i++) {
if (touches[i].identifier == currenttouch.identifier) {
currenttouch = evt.changedTouches[0];
sendmessage("end", "x=" + currenttouch.pageX + "&y=" + currenttouch.pageY)
fetch("/end?x=" + currenttouch.pageX + "&y=" + currenttouch.pageY)
currenttouch = null;
}
}
@ -149,17 +150,10 @@ function handleCancel(evt) {
function handlekeypress(evt) {
evt.preventDefault();
sendmessage("text", "text=" + encodeURIComponent(evt.target.value));
fetch("/text?text=" + encodeURIComponent(evt.target.value));
evt.target.value = "";
}
function sendmessage(opt, q) {
fetch("/" + opt + "/?" + q + "&seq=" + packetnum);
packetnum++;
}
</script>
</body>

View File

@ -153,7 +153,9 @@
<Content Include="res\page.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="res\readme.txt" />
<Content Include="res\readme.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.