Что такое OSS в Haiku? - Интервью с Франсуа Револем
Вадим Бобковский 5 июля, 2007 - 18:18.Разработчик Франсуа Револь, представитель «программистской элиты» на нашей родной платформе 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 и ее поклонников!
--–
Перевод с английского: Вадим Бобковский
Что–то
Что–то
VLC не дружит c OSS v4.1?Кто–нить в курсе дела?
Отправить комментарий