- Support multiple Web Audio contexts
- Render ports on nodes
- Smooth edge lines
- Draw edge lines between the ports the edge connects
- Add a loading screen until the panel's script is ready
- Add button that fits the graph to the viewport
- Zoom viewport around the mouse cursor
- Add viewport margin
- Constrain viewport panning when zoomed within the graph bounds
- Remove unused files
Multiple Web Audio Contexts
Collect web audio graph data in the devtools script for when the panel is opened and connects. On the panel the initial set of current graphs and updates is collected. One of those current graphs can be selected with the GraphSelector instance and it will passed on to the worker for layout and back to the panel for rendering. As one graph is rendered at any time, one instance of the rendering logic and state is reused with each graph, whichever one is currently selected. To the rendering logic receiving a graph for a web audio graph other than what it last displayed is the same as the previous graph destroying all of its nodes and making brand new ones.
* devtools-page: connect to and process webaudio debugger events
Connect to WebAudio chrome debugger protocol domain and collect events
into a larger AudioContext "graph". This object is collects the events
into a current representation of WebAudio graphs in the inspected
window. A graphlib graph will be derived from this information in a
future change.
- Add and test some internal utilities
- Observer
- Observer.throttle
Used to limit the frequency of WebAudio representations to later
process steps.
- invariant
- Add and test some types to process events
- DevtoolsGraphPanel
Create a chrome devtools panel and post graph updates to the panel.
- WebAudioEventObserver
Attach to chrome debugger api and forward WebAudio domain events.
- WebAudioGraphIntegrator
Collect WebAudio events into a current representation.
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events
* fixup! devtools-page: connect to and process webaudio debugger events