Skip to content

Commit cd83374

Browse files
committed
WIP: Start working on wcp
1 parent a2d8d0d commit cd83374

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

src/surfer/embed.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ document.addEventListener('DOMContentLoaded', async () => {
2323
window.addEventListener('message', async (event: MessageEvent<ExtensionToWebviewMessage>) => {
2424
const message = event.data;
2525
if (message.type === 'cxxrtl_scmessage') {
26-
console.log("Handing off ", message.message.inner, " to Surfer")
2726
await libsurfer.on_cxxrtl_sc_message(message.message.inner);
27+
} else if (message.type === 'wcp_cs_message') {
28+
await libsurfer.send_wcp_sc_message(message.message);
2829
} else {
2930
console.error('[RTL Debugger] [surferEmbed] Unhandled extension to webview message', message);
3031
}
3132
});
3233

33-
const handle_cs_messages = async () => {
34+
const handle_cxxrtl_cs_messages = async () => {
3435
while (true) {
3536
const message = await libsurfer.cxxrtl_cs_message();
3637
if (message) {
@@ -41,13 +42,27 @@ document.addEventListener('DOMContentLoaded', async () => {
4142
}
4243
};
4344

45+
const handle_wcp_sc_messages = async () => {
46+
while (true) {
47+
const message = await libsurfer.next_wcp_sc_message();
48+
if (message) {
49+
console.log("[WCP] Receiving wcp sc message: {message}")
50+
postMessage({type: 'wcp_sc_message', message: message});
51+
} else {
52+
throw Error('Got an undefined message from Surfer. Its client probably disconnected');
53+
}
54+
}
55+
};
56+
4457
try {
4558
await libsurferInit();
4659
await new libsurfer.WebHandle().start(canvas);
4760

48-
handle_cs_messages();
61+
handle_cxxrtl_cs_messages();
62+
handle_wcp_sc_messages();
4963

5064
await libsurfer.start_cxxrtl();
65+
await libsurfer.start_wcp();
5166

5267
libsurferInjectMessage('ToggleMenu'); // turn off menu
5368
// libsurferInjectMessage('ToggleStatusBar'); // turn off status bar

src/ui/waveform.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ export type ExtensionToWebviewMessage =
1818
| { type: 'restore', state: any }
1919
// TODO: Proper type here
2020
| { type: 'cxxrtl_scmessage', message: ServerPacketString }
21+
| { type: 'wcp_cs_message', message: string }
2122
;
2223

2324
export type WebviewToExtensionMessage =
2425
| { type: 'ready' }
2526
| { type: 'crash', error: any }
2627
// TODO: Proper type here
2728
| { type: 'cxxrtl_csmessage', message: ClientPacketString }
29+
| { type: 'wcp_sc_message', message: string }
2830
;
2931

3032
export class WaveformProvider {
@@ -76,6 +78,8 @@ export class WaveformProvider {
7678
console.log('[RTL Debugger] [WaveformProvider] Got CSMessage', message.message);
7779
const packet: Packet<ClientPacket> = Packet.fromString(message.message.inner);
7880
await this.debuggerLink.send(packet);
81+
} else if (message.type == 'wcp_sc_message') {
82+
console.log('[RTL Debugger] [WaveformProvider] Got WCP SC message', message.message);
7983
} else {
8084
console.error('[RTL Debugger] [WaveformProvider] Unhandled webview to extension message:', message);
8185
}

vendor/surfer

Submodule surfer updated from e0c704b to 1a6b34c

0 commit comments

Comments
 (0)