An easy-to-use platform for EEG experimentation in the classroom
1/**
2 * EEG Viewer renderer — uses the viewerAPI exposed by src/preload/viewer.ts
3 * to receive graph data from the main process via IPC.
4 */
5import EEGGraph from './components/d3Classes/EEGViewer';
6
7// eslint-disable-next-line @typescript-eslint/no-explicit-any
8let graph: any = {};
9
10declare global {
11 interface Window {
12 // eslint-disable-next-line @typescript-eslint/no-explicit-any
13 viewerAPI: any;
14 }
15}
16
17window.viewerAPI.onInitGraph((message: unknown) => {
18 graph = new EEGGraph(document.getElementById('graph'), message);
19});
20
21window.viewerAPI.onNewData((message: unknown) => {
22 graph.updateData(message);
23});
24
25window.viewerAPI.onZoomIn(() => {
26 graph.zoomOut();
27});
28
29window.viewerAPI.onZoomOut(() => {
30 graph.zoomIn();
31});
32
33window.viewerAPI.onUpdateChannels((message: unknown) => {
34 graph.updateChannels(message);
35});
36
37window.viewerAPI.onUpdateDomain((message: unknown) => {
38 graph.updateDomain(message);
39});
40
41window.viewerAPI.onUpdateDownsampling((message: unknown) => {
42 graph.updateDownsampling(message);
43});
44
45window.viewerAPI.onAutoScale(() => {
46 graph.autoScale();
47});