Compare commits

..

2 Commits

Author SHA1 Message Date
Gilles Boccon-Gibod eec145e095 add type hint 2024-07-11 18:39:02 -07:00
Gilles Boccon-Gibod 27791cf218 emit delay_report 2024-07-03 13:51:15 -07:00
5 changed files with 7 additions and 43 deletions
+3
View File
@@ -2162,6 +2162,9 @@ class LocalStreamEndPoint(StreamEndPoint, EventEmitter):
def on_abort_command(self):
self.emit('abort')
def on_delayreport_command(self, delay: int):
self.emit('delay_report', delay)
def on_rtp_channel_open(self):
self.emit('rtp_channel_open')
+1 -20
View File
@@ -20,10 +20,7 @@ Invoke tasks
# Imports
# -----------------------------------------------------------------------------
import os
import glob
import shutil
import urllib
from pathlib import Path
from invoke import task, call, Collection
from invoke.exceptions import Exit, UnexpectedExit
@@ -208,21 +205,5 @@ def serve(ctx, port=8000):
server.serve_forever()
# -----------------------------------------------------------------------------
@task
def web_build(ctx):
# Step 1: build the wheel
build(ctx)
# Step 2: Copy the wheel to the web folder, so the http server can access it
newest_wheel = Path(max(glob.glob('dist/*.whl'), key=lambda f: os.path.getmtime(f)))
shutil.copy(newest_wheel, Path('web/'))
# Step 3: Write wheel's name to web/packageFile
with open(Path('web', 'packageFile'), mode='w') as package_file:
package_file.write(str(Path('/') / newest_wheel.name))
# Step 4: Success!
print('Include ?packageFile=true in your URL!')
# -----------------------------------------------------------------------------
web_tasks.add_task(serve)
web_tasks.add_task(web_build, name="build")
-3
View File
@@ -1,3 +0,0 @@
# files created by invoke web.build
*.whl
packageFile
-5
View File
@@ -24,14 +24,9 @@ controller using some other transport (ex: `python apps/hci_bridge.py ws-server:
For HTTP, start an HTTP server with the `web` directory as its
root. You can use the invoke task `inv web.serve` for convenience.
`inv web.build` will build the local copy of bumble and automatically copy the `.whl` file
to the web directory. To use this build, include the param `?packageFile=true` to the URL.
In a browser, open either `scanner/scanner.html` or `speaker/speaker.html`.
You can pass optional query parameters:
* `packageFile=true` will automatically use the bumble package built via the
`inv web.build` command.
* `package` may be set to point to a local build of Bumble (`.whl` files).
The filename must be URL-encoded of course, and must be located under
the `web` directory (the HTTP server won't serve files not under its
+3 -15
View File
@@ -75,6 +75,7 @@ export class Bumble extends EventTarget {
}
// Load the Bumble module
bumblePackage ||= 'bumble';
console.log('Installing micropip');
this.log(`Installing ${bumblePackage}`)
await this.pyodide.loadPackage('micropip');
@@ -165,20 +166,6 @@ export class Bumble extends EventTarget {
}
}
async function getBumblePackage() {
const params = (new URL(document.location)).searchParams;
// First check the packageFile override param
if (params.has('packageFile')) {
return await (await fetch('/packageFile')).text()
}
// Then check the package override param
if (params.has('package')) {
return params.get('package')
}
// If no override params, default to the main package
return 'bumble'
}
export async function setupSimpleApp(appUrl, bumbleControls, log) {
// Load Bumble
log('Loading Bumble');
@@ -186,7 +173,8 @@ export async function setupSimpleApp(appUrl, bumbleControls, log) {
bumble.addEventListener('log', (event) => {
log(event.message);
})
await bumble.loadRuntime(await getBumblePackage());
const params = (new URL(document.location)).searchParams;
await bumble.loadRuntime(params.get('package'));
log('Bumble is ready!')
const app = await bumble.loadApp(appUrl);