Skip to content

Commit

Permalink
Hide display when LCD is off
Browse files Browse the repository at this point in the history
  • Loading branch information
pipe01 committed Jun 3, 2024
1 parent 88bb744 commit 9de3306
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 6 deletions.
30 changes: 24 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,39 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#sleepCover {
position: absolute;
top: 0;
left: 0;
width: 240px;
height: 240px;
background-color: black;
display: none;
pointer-events: none;
}
</style>
</head>

<body>
<input id="programPicker" type="file" onchange="loadProgramFile(this.files[0])">

<canvas id="display" width="240" height="240" style="background-color: red;"></canvas>
<div style="position: relative">
<canvas id="display" width="240" height="240" style="background-color: red;"></canvas>
<div id="sleepCover"></div>
</div>

<div id="performance"></div>

<div>
<button onclick="myWorker.postMessage({type: 'doTouch', gesture: 0x02, x: 120, y: 120, duration: 200})">Swipe
up</button>
</div>

<script>
const myWorker = new Worker("infiniemu.worker.js");
const programPicker = document.getElementById("programPicker");
const display = document.getElementById("display");
const sleepCover = document.getElementById("sleepCover");

function loadProgramFile(file) {
myWorker.postMessage({ type: "loadProgramFile", file });
programPicker.remove();
}

let isMouseDown = false, isButtonDown = false;
Expand Down Expand Up @@ -103,6 +116,11 @@
document.getElementById("performance").innerText = data.ips.toFixed(0) + " instructions per second";
break;

case "lcdSleeping":
console.log("sleeping", data);
sleepCover.style.display = data ? "block" : "none";
break;

case "screenLoaded":
const ctx = display.getContext("2d");
const imageData = ctx.createImageData(240, 240);
Expand Down
11 changes: 11 additions & 0 deletions infiniemu.worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const iterations = 700000;

var pt, lcd, touch, pins;

var isLcdSleeping = false;
var displayBufferPointer;

function sendScreenUpdate() {
Expand Down Expand Up @@ -91,6 +92,16 @@ onmessage = (e) => {

const end = new Date().valueOf();

const lcdSleepingNow = Module._st7789_is_sleeping(lcd);
if (lcdSleepingNow !== isLcdSleeping) {
isLcdSleeping = lcdSleepingNow;

postMessage({
type: "lcdSleeping",
data: isLcdSleeping,
});
}

postMessage({
type: "performance",
data: {
Expand Down

0 comments on commit 9de3306

Please sign in to comment.