Внутренние компоненты
#
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.