diff --git a/stubs/pyaudio/METADATA.toml b/stubs/pyaudio/METADATA.toml new file mode 100644 index 000000000..0291bda13 --- /dev/null +++ b/stubs/pyaudio/METADATA.toml @@ -0,0 +1,2 @@ +version = "0.2" +python2 = true diff --git a/stubs/pyaudio/pyaudio.pyi b/stubs/pyaudio/pyaudio.pyi new file mode 100644 index 000000000..58176455c --- /dev/null +++ b/stubs/pyaudio/pyaudio.pyi @@ -0,0 +1,166 @@ +from typing import Callable, ClassVar, Mapping, Optional, Sequence, Tuple, Union +from typing_extensions import Final + +paFloat32: Final[int] = ... +paInt32: Final[int] = ... +paInt24: Final[int] = ... +paInt16: Final[int] = ... +paInt8: Final[int] = ... +paUInt8: Final[int] = ... +paCustomFormat: Final[int] = ... + +paInDevelopment: Final[int] = ... +paDirectSound: Final[int] = ... +paMME: Final[int] = ... +paASIO: Final[int] = ... +paSoundManager: Final[int] = ... +paCoreAudio: Final[int] = ... +paOSS: Final[int] = ... +paALSA: Final[int] = ... +paAL: Final[int] = ... +paBeOS: Final[int] = ... +paWDMKS: Final[int] = ... +paJACK: Final[int] = ... +paWASAPI: Final[int] = ... +paNoDevice: Final[int] = ... + +paNoError: Final[int] = ... +paNotInitialized: Final[int] = ... +paUnanticipatedHostError: Final[int] = ... +paInvalidChannelCount: Final[int] = ... +paInvalidSampleRate: Final[int] = ... +paInvalidDevice: Final[int] = ... +paInvalidFlag: Final[int] = ... +paSampleFormatNotSupported: Final[int] = ... +paBadIODeviceCombination: Final[int] = ... +paInsufficientMemory: Final[int] = ... +paBufferTooBig: Final[int] = ... +paBufferTooSmall: Final[int] = ... +paNullCallback: Final[int] = ... +paBadStreamPtr: Final[int] = ... +paTimedOut: Final[int] = ... +paInternalError: Final[int] = ... +paDeviceUnavailable: Final[int] = ... +paIncompatibleHostApiSpecificStreamInfo: Final[int] = ... +paStreamIsStopped: Final[int] = ... +paStreamIsNotStopped: Final[int] = ... +paInputOverflowed: Final[int] = ... +paOutputUnderflowed: Final[int] = ... +paHostApiNotFound: Final[int] = ... +paInvalidHostApi: Final[int] = ... +paCanNotReadFromACallbackStream: Final[int] = ... +paCanNotWriteToACallbackStream: Final[int] = ... +paCanNotReadFromAnOutputOnlyStream: Final[int] = ... +paCanNotWriteToAnInputOnlyStream: Final[int] = ... +paIncompatibleStreamHostApi: Final[int] = ... + +paContinue: Final[int] = ... +paComplete: Final[int] = ... +paAbort: Final[int] = ... + +paInputUnderflow: Final[int] = ... +paInputOverflow: Final[int] = ... +paOutputUnderflow: Final[int] = ... +paOutputOverflow: Final[int] = ... +paPrimingOutput: Final[int] = ... + +paMacCoreStreamInfo: PaMacCoreStreamInfo + +# Auxiliary types +_ChannelMap = Sequence[int] +_PaHostApiInfo = Mapping[str, Union[str, int]] +_PaDeviceInfo = Mapping[str, Union[str, int, float]] +_StreamCallback = Callable[[Optional[bytes], int, Mapping[str, float], int], Tuple[Optional[bytes], int]] + +def get_format_from_width(width: int, unsigned: bool = ...) -> int: ... +def get_portaudio_version() -> int: ... +def get_portaudio_version_text() -> str: ... +def get_sample_size(format: int) -> int: ... + +class Stream: + def __init__( + self, + PA_manager: PyAudio, + rate: int, + channels: int, + format: int, + input: bool = ..., + output: bool = ..., + input_device_index: Optional[int] = ..., + output_device_index: Optional[int] = ..., + frames_per_buffer: int = ..., + start: bool = ..., + input_host_api_specific_stream_info: Optional[PaMacCoreStreamInfo] = ..., + output_host_api_specific_stream_info: Optional[PaMacCoreStreamInfo] = ..., + stream_callback: Optional[_StreamCallback] = ..., + ) -> None: ... + def close(self) -> None: ... + def get_cpu_load(self) -> float: ... + def get_input_latency(self) -> float: ... + def get_output_latency(self) -> float: ... + def get_read_available(self) -> int: ... + def get_time(self) -> float: ... + def get_write_available(self) -> int: ... + def is_active(self) -> bool: ... + def is_stopped(self) -> bool: ... + def read(self, num_frames: int, exception_on_overflow: bool = ...) -> bytes: ... + def start_stream(self) -> None: ... + def stop_stream(self) -> None: ... + def write(self, frames: bytes, num_frames: Optional[int] = ..., exception_on_underflow: bool = ...) -> None: ... + +class PyAudio: + def __init__(self) -> None: ... + def close(self, stream: Stream) -> None: ... + def get_default_host_api_info(self) -> _PaHostApiInfo: ... + def get_default_input_device_info(self) -> _PaDeviceInfo: ... + def get_default_output_device_info(self) -> _PaDeviceInfo: ... + def get_device_count(self) -> int: ... + def get_device_info_by_host_api_device_index(self, host_api_index: int, host_api_device_index: int) -> _PaDeviceInfo: ... + def get_device_info_by_index(self, device_index: int) -> _PaDeviceInfo: ... + def get_format_from_width(self, width: int, unsigned: bool = ...) -> int: ... + def get_host_api_count(self) -> int: ... + def get_host_api_info_by_index(self, host_api_index: int) -> _PaHostApiInfo: ... + def get_host_api_info_by_type(self, host_api_type: int) -> _PaHostApiInfo: ... + def get_sample_size(self, format: int) -> int: ... + def is_format_supported( + self, + rate: int, + input_device: Optional[int] = ..., + input_channels: Optional[int] = ..., + input_format: Optional[int] = ..., + output_device: Optional[int] = ..., + output_channels: Optional[int] = ..., + output_format: Optional[int] = ..., + ) -> bool: ... + def open( + self, + rate: int, + channels: int, + format: int, + input: bool = ..., + output: bool = ..., + input_device_index: Optional[int] = ..., + output_device_index: Optional[int] = ..., + frames_per_buffer: int = ..., + start: bool = ..., + input_host_api_specific_stream_info: Optional[PaMacCoreStreamInfo] = ..., + output_host_api_specific_stream_info: Optional[PaMacCoreStreamInfo] = ..., + stream_callback: Optional[_StreamCallback] = ..., + ) -> Stream: ... + def terminate(self) -> None: ... + +class PaMacCoreStreamInfo: + paMacCoreChangeDeviceParameters: Final[ClassVar[int]] = ... + paMacCoreFailIfConversionRequired: Final[ClassVar[int]] = ... + paMacCoreConversionQualityMin: Final[ClassVar[int]] = ... + paMacCoreConversionQualityMedium: Final[ClassVar[int]] = ... + paMacCoreConversionQualityLow: Final[ClassVar[int]] = ... + paMacCoreConversionQualityHigh: Final[ClassVar[int]] = ... + paMacCoreConversionQualityMax: Final[ClassVar[int]] = ... + paMacCorePlayNice: Final[ClassVar[int]] = ... + paMacCorePro: Final[ClassVar[int]] = ... + paMacCoreMinimizeCPUButPlayNice: Final[ClassVar[int]] = ... + paMacCoreMinimizeCPU: Final[ClassVar[int]] = ... + def __init__(self, flags: Optional[int] = ..., channel_map: Optional[_ChannelMap] = ...) -> None: ... + def get_flags(self) -> int: ... + def get_channel_map(self) -> Optional[_ChannelMap]: ...