Debian tcsh не учитывает локаль для расширения класса символов

Основываясь на ответе dirkt, я написал небольшую программу , которая захватывает приемник PulseAudio по умолчанию и записывает необработанные данные PCM в файл. Предполагая, что у вас есть клиент PulseAudio, вам нужно сначала запросить информацию о сервере PA :

.

pa_context_get_server_info(ctx, &pa_server_info_cb, nullptr /*userdata*/);

Структура информации о сервере содержит имя приемника по умолчанию. Это «куда идет звук» на пути к звуковой карте. Как заявил dirkt, мы можем подключиться к sink_name.monitor, чтобы прослушать указанный приемник.

Для этого сначала создайте новый поток, затем настройте обратные вызовы и, наконец, подключите его для записи.

void pa_server_info_cb(pa_context *ctx, const pa_server_info *info, void* /*userdata*/)
{
    pa_sample_spec spec;
    spec.format = PA_SAMPLE_S16LE;
    spec.rate = 44100;
    spec.channels = 1;
    pa_stream *stream = pa_stream_new(ctx, "output monitor", &spec, nullptr);

    pa_stream_set_state_callback(stream, &pa_stream_notify_cb, nullptr /*userdata*/);
    pa_stream_set_read_callback(stream, &pa_stream_read_cb, nullptr /*userdata*/);

    std::string monitor_name(info->default_sink_name);
    monitor_name += ".monitor";
    if (pa_stream_connect_record(stream, monitor_name.c_str(), nullptr, PA_STREAM_NOFLAGS) != 0) {
        std::cerr << "Failed to connect for recording\n";
        return;
    }
}

В обратном вызове read данные доступны через pa_stream_peek(). Обязательно обратитесь к pa _stream _peek ()docs , чтобы узнать, когда pa_stream_drop()после просмотра!

При программировании я нашел документацию по API PulseAudio очень полезной и хорошо написанной.

2
15.11.2021, 07:23
1 ответ

Обновление :похоже на ошибку в tcsh. Я собрал последнюю версию tcsh 6.23.00 с нуля, и классы персонажей работают, как и ожидалось. Сообщено в Debian , уже исправлено в восходящем направлении по адресу https://github.com/tcsh-org/tcsh/commit/4679bde3e1ceca63d6eb4de5ce41c996405e61aa, как указано в списке рассылки

2
16.11.2021, 03:00

Теги

Похожие вопросы