27 lines
735 B
Python
27 lines
735 B
Python
|
|
from collections.abc import Generator, Iterable
|
||
|
|
from numbers import Integral
|
||
|
|
from typing import Any
|
||
|
|
|
||
|
|
class Tokenizer:
|
||
|
|
"""
|
||
|
|
Splits a MIDI byte stream into messages.
|
||
|
|
"""
|
||
|
|
def __init__(self, data: Iterable[int] | None = ...) -> None:
|
||
|
|
"""Create a new decoder."""
|
||
|
|
|
||
|
|
def feed_byte(self, byte: int | Integral) -> None:
|
||
|
|
"""Feed MIDI byte to the decoder.
|
||
|
|
|
||
|
|
Takes an int in range [0..255].
|
||
|
|
"""
|
||
|
|
|
||
|
|
def feed(self, data: Iterable[int]) -> None:
|
||
|
|
"""Feed MIDI bytes to the decoder.
|
||
|
|
|
||
|
|
Takes an iterable of ints in in range [0..255].
|
||
|
|
"""
|
||
|
|
|
||
|
|
def __len__(self) -> int: ...
|
||
|
|
def __iter__(self) -> Generator[Any, Any]:
|
||
|
|
"""Yield messages that have been parsed so far."""
|