Главная

Что такое OSS в Haiku? - Интервью с Франсуа Револем

Разработчик Франсуа Револь, представитель «программистской элиты» на нашей родной платформе BeOS, был весьма заинтересован, когда узнал, что 4Front Technologies открыли исходный код интерфейса драйверов аудио — Open Sound System.
Спустя две недели после анонса, у него на руках уже были готовые бинарники «интерфейсного слоя», позволяющего «говорить» с целым рядом различных звуковых устройств. После того, как он объединит куски кода воедино на BeOS/Haiku, новый интерфейс драйверов аудио предоставит пользователям возможность получить доступ к множеству звуковых железок, которые ранее не поддерживались.

Корреспонденты сайта LeBuzz взяли у Франсуа краткое интервью и быстро обнаружили, как мало они знают термины, слог и жаргонизмы разработчиков. Однако, им все таки удалось понять, что будет после того, как OSS станет полностью поддерживаться в BeOS/Haiku.

LEBUZZ: Что вообще это такое — OSS, и что это даст Haiku?

ФРАНСУА РЕВОЛЬ: Система OpenSound — звуковой фреймворк для Unix. Все началось, как драйвер для SoundBlaster под Linux, затем появились подобные драйвера для других устройств, и сейчас это стандарт аудио API де–факто в Unix. Компания разработчик в какой–то момент закрыла его исходники, чтобы извлекать из этой системы выгоду. В мире Linux, люди написали ALSA, чтобы заменить старую GPL–версию в ядре, но множество приложений все еще используют OSS API. Фреймворк был выпущен под лицензией GPL в прошлом месяце и должен обеспечить поддержку большого количества звуковых карт, и других аудио–устройств. Без необходимости писать нативные драйверы каждый раз.

LEBUZZ: Насколько будет расширена поддержка, предположительно?

ФРАНСУА РЕВОЛЬ: Список поддерживаемых устройств очень большой.

LEBUZZ: Итак, все драйвера будут портированы из мира Linux.

ФРАНСУА РЕВОЛЬ: Да, однако они не раздувают его объем.

LEBUZZ: Тяжело ли заставить работать OSS в BeOS?

ФРАНСУА РЕВОЛЬ: Я анонсировал порт около двух недель после того, как исходники были опубликованы. Самой сложной частью было понять, как функционирует обмен вызовами и как собрать рабочую систему. OSS поддерживает много платформ. На Linux например, он поддерживает defering, когда идет сборка основного модуля (core module), так что он может работать с несколькими версиями ядра. Из–за того, что Linux не хватает чистого драйверного API, большинство драйверов устройств находятся в исходниках ядра.

LEBUZZ: Как далеко вы продвинулись?

ФРАНСУА РЕВОЛЬ: Сейчас фреймворк загружается, выводит устройства в /dev (пока еще немного аляповато) и воспроизводит звук с помощью терминальных утилит. Нужно еще поработать над тем, чтобы система нормально работала и чтобы OSS не падал. Затем медиа–нода (opensound media node) должна быть доступна из MediaKit, прозрачно для всех родных программ. MediaKit уже имеет доступ к нескольким типам драйверов (старые pre–R4 в /dev/audio/old с аддоном, мульти–аудио драйверы в /dev/audio/multi…), добавить к нашей медиа–подсистеме еще один новый адд–он не составит проблемы.

LEBUZZ: Будет ли OSS для BeOS/Haiku потенциально поддерживать как вход, так и выход на звуковых устройствах, или только вспроизведение?

ФРАНСУА РЕВОЛЬ: Драйвера поддерживают вход и выход на аппаратных устройствах в дуплексе, так что все должно работать, как в случае с родными драйверами.

LEBUZZ: Что нужно будет сделать с настройками медиа (Media Preferences)? Возможно ли будет отображать настройки звука для OSS–совместимых драйверов, например регулирование уровней, отключение каналов и прочее?

ФРАНСУА РЕВОЛЬ: OSS выводит несколько устройств для каждой звуковой карты (например /dev/oss/atiaudio0/mix0 и /dev/oss/atiaudio0/pcm0), чтобы разделить управление микшера и вход/выход аудио, однако OSS Media Node станет использовать это посылая действия ioctl для нужного файла. Это работает немного иначе, чем Multi Audio API, но он выводит управление микшером teh прямо в пространство пользователя (userland), насколько это возможно. Адд–он должен спрашивать драйвер и выводить BParameterWeb, как это делает Multi Audio Addon, просто чуть иначе. Также, каждый драйвер имеет параметры низкого уровня (такие как I/O адреса, DMA и подобное), которые могут быть доступны в файле настроек точно также, как и в родных беосных драйверах.

LEBUZZ: Хорошо, очевидный вопрос, который появляется у людей в голове и на него невозможно ответить с полной уверенностью… сколько нам надо будет ждать, чтобы наконец «получить это в руки» и попытаться испробовать новинку на своем железе?

ФРАНСУА РЕВОЛЬ: Я выложил тестовые бинарники, которые опубликовал в списке рассылки OpenSound. Они пока не работают с родными приложениями, но позволяют проверить поддержку ваших звуковых устройств. Уверен, через несколько недель появится соответствующий адд–он и он, как минимум, будет воспроизводить звук. OSS также можно использовать для поддержки MIDI, но модуль сейчас переписывается для версии 4.1, и мы сможем попробовать это немного позже.

В жизни, вещи редко даются легко, и «оптовое» решение проблемы поддержки звуковых устройств не может быть стопроцентно безупречным. Впрочем, если эта штука работает так, как нам ее разрекламировали, Haiku — наша новая надежда, как и проверенный временем BeOS, получат поддержку немаленького количества устройств. Захватывающее ощущение, будто мы оказались в магазине с целой кучей современной, совместимой звуковой аппаратуры. Так или иначе, это определенно хорошие новости для всего сообщества BeOS и ее поклонников!

--–
По материалам сайта LeBuzz
Перевод с английского: Вадим Бобковский

Что–то

Что–то VLC не дружит c OSS v4.1?
Кто–нить в курсе дела?

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
2
t
H
i
y
k
Enter the code without spaces and pay attention to upper/lower case.