ReadonlytransportsThe transports this driver connects over, in the order Settings offers them.
ReadonlycurrentCurrent connection state.
ReadonlyisTrue when a device is connected and ready for output.
ReadonlygeometryLayout of the connected device, or null.
ReadonlycanTrue when the text line can be translated into contracted braille.
ReadonlybreaksTrue when the text line is broken between words, so a scroll never lands in the middle of one; false when it is cut every so many cells.
ReadonlyisTrue when this browser can reach the device over any of its transports.
ReadonlyonFires whenever the connection state changes.
ReadonlyonFires when a write was refused before it reached the device.
ReadonlyonFires when a hardware key MAIDR responds to is pressed.
Reports whether the browser can reach the device over one transport.
The connection to test
Fetches anything a connect attempt would otherwise wait on.
Opens the browser's device picker and connects to the chosen display. Called from a user gesture; returns rather than throws.
Which way to look for the device
Connects to a display the page was already granted, without a picker, quietly.
True when a display was taken up
Closes the connection.
Translates text into contracted braille cells, or null when the caller should fall back to MAIDR's own table.
The text to translate
Sends a whole graphic frame.
cellColumns * cellRows cells, as DotPack.graphic packs them
Sends one row of cells of the graphic area.
Zero-based cell row
cellColumns cells, as DotPack.graphicRow packs them
Sends the braille text line.
textCells cells, bit 0 being dot 1
Buzzes the device to say the reader has reached an edge.
OptionalonFailure: () => voidCalled when the device refused after the request was queued
False when the device cannot vibrate, so the caller says it instead
What MAIDR needs from the connection to one kind of tactile display.
Each kind of device is reached its own way -- a DotPad through its vendor's SDK over Web Bluetooth or Web Serial, a Monarch through WebHID -- and each driver hides that behind this one surface, so the tactile service and the Settings dialog work the same whichever the reader has.
The graphic payloads are a DotPad's: cells of two pins by four, packed by
DotPack.graphic. A driver for a display laid out differently unpacks them into its own pins.