Внутренние компоненты
#
PortAudio.Buffer
— Type
struct PortAudio.Buffer{Sample}
PortAudio.Buffer
содержит все необходимое для считывания данных из PortAudio и их записи. Поле data
содержит необработанные данные буфера. Для записи данных в PortAudio используйте PortAudio.write_buffer
, а для их считывания из PortAudio — PortAudio.read_buffer!
.
#
PortAudio.Messenger
— Type
Messenger{Sample, Scribe, Input, Output}
Структура struct
с элементами.
-
device_name::String
-
buffer::Buffer{Sample}
-
scribe::Scribe
-
input_channel::Channel{Input}
-
output_channel::Channel{Output}
Средство обмена сообщениями отправляет задачи средству записи, которое считывает данные из буфера или записывает их в буфер.
#
PortAudio.SampledSignalsReader
— Type
struct PortAudio.SampledSignalsReader
Объект PortAudio.Scribe
, который использует пакет SampledSignals
для управления считыванием данных из PortAudio.
#
PortAudio.SampledSignalsWriter
— Type
struct PortAudio.SampledSignalsReader
Объект PortAudio.Scribe
, который использует пакет SampledSignals
для управления записью данных в PortAudio.
#
PortAudio.Scribe
— Type
abstract type PortAudio.Scribe end
Средство записи должно реализовывать следующие методы:
-
Метод для
PortAudio.get_input_type
-
Метод для
PortAudio.get_output_type
-
Метод, вызывающий сам себя с двумя аргументами:
PortAudio.Buffer
и входными данными типа ввода.
Этот метод должен возвращать выходные данные типа вывода. Этот метод должен использовать PortAudio.read_buffer!
и PortAudio.write_buffer
.
#
PortAudio.get_input_type
— Method
PortAudio.get_input_type(scribe::PortAudio.Scribe, Sample)
Возвращает тип ввода PortAudio.Scribe
для сэмплов типа Sample
.
#
PortAudio.get_output_type
— Method
PortAudio.get_input_type(scribe::PortAudio.Scribe, Sample)
Возвращает тип вывода PortAudio.Scribe
для сэмплов типа Sample
.
#
PortAudio.read_buffer!
— Function
PortAudio.read_buffer!(buffer::Buffer, use_frames = buffer.frames_per_buffer; acquire_lock = true)
Считайте определенное количество фреймов (use_frames
) из PortAudio в PortAudio.Buffer
.
Чтобы пропустить получение acquire*lock, задайте acquire*lock = false
.
#
PortAudio.write_buffer
— Function
PortAudio.write_buffer(buffer, use_frames = buffer.frames_per_buffer; acquire_lock = true)
Записывает определенное количество фреймов (use_frames
) из PortAudio.Buffer
в PortAudio.
Чтобы пропустить получение блокировки, задайте acquire_lock = false
.