Page 3 of 5

Posted: Sun May 28, 2006 11:28 pm
by Quantum
2 Serge:
Мне всё равно как будет реализован интерфейс. Для меня важнее эффективность, чем простота разработки. Пусть будет как в DirectSound.

Добавил:

Работы по портированию uFMOD потихоньку продвигаются. Уже тестируется полность ассемблерный билд синтезатора (вообще без сишного кода). Добавлены ключи для поддержки произвольной частоты дискретизации. Так что 48К уже экспериментально поддерживаются движком.

Ещё добавил:

Теперь исходники uFMOD можно собирать не только MASM'ом и TASM'ом, но ещё и NASM'ом и FASM'ом. Последнее, думаю, актуально для Колибри. Получились прямо таки кроссассемблерные и кроссплатформенные исходники :)

Posted: Thu Jun 22, 2006 4:18 am
by Quantum
Всё, что перечислено выше, и ещё куча мелких доработок, включено в uFMOD 1.16, который можно скачать с офф. сайта (ufmod.sf.net). Линуксовый билд полностью избавлен от внешних библиотек (многопоточность, I/O и работа с памятью осуществляются системными вызовами) и на его базе можно начинать работать над билдом для Kolibri.

2 Serge:
Как там поживает драйвер для AC97/SB?

А теперь ещё несколько вопросов:

1. Про 64 - перераспределение памяти. Новый размер имиджа должен быть кратен какому-то значению или можно задавать произвольно?

2. Про 51 - создать поток. Во-первых, надо полагать, что поток имеет доступ к памяти процесса как в *никсах, т.е. основной поток и вновьсозданный разделяют всю память, кроме стека, так? Во-вторых, как потом завершить поток? Реализована ли возможность ожидания завершения потока из основного процесса (как wait4/waitpid в posix) или события для этого лучше не использовать?

3. Про 55 - звуковой интерфейс. Через что это выводит звук? Оно умеет проигрывать PCM? А 16-бит стерео поддерживает? Там ссылаются на документацию к PlayNote, но я её не нашёл.

Для начала хватит :)

Posted: Thu Jun 22, 2006 7:07 am
by halyavin
1. Можно задавать произвольно, но реально он все равно будет кратен 4096 байтам.
2. Да, у потока и процесса общая память. Завершается поток -1 функцией. Возможность ожидания завершения не реализована.
3. По-моему там через спикер звук выводится.

Posted: Thu Jun 22, 2006 11:25 am
by vectoroc
halyavin
Имхо твой ответ не очень внёс ясность в вопрос (№2). Никакого "кроме" вроде нету (мне самому интересен этот момент...)

Posted: Thu Jun 22, 2006 12:07 pm
by willow
2. указатель стека для нового потока передается при его создании, и горе приложению, если стеки потоков пересекутся

3. http://menuet.narod.ru/download/playnote.zip и описание от автора внизу страницы http://menuet.narod.ru/arch2003_5.htm

Posted: Thu Jun 22, 2006 12:09 pm
by halyavin
Стек является частью общей памяти. У потока и процесса он просто находится в разных местах (если программист не дурак).

Posted: Thu Jun 22, 2006 12:09 pm
by halyavin
Стек является частью общей памяти. У потока и процесса он просто находится в разных местах (если программист не дурак).

Posted: Thu Jun 22, 2006 1:14 pm
by Serge
Quantum
В монопольном режиме (когда только одна программа выводит звук) драйвер поживает неплохо. Но некоторые проблемы есть. Если при проигрывании звука загрузить программу, то иногда файловая система не успевает прокачать данные и звук на время прерывается. Я добавил новое событие EVENT_NOTIFY equ 0x00000200 для передачи сообщения от драйвера к программе, но надо ещё изменить планировщик, чтобы программы с установленными событиями получали управление первыми. А сейчас пишу код для динамического связывания драйвера, библиотеки и ядра.

Posted: Thu Jun 22, 2006 1:53 pm
by diamond
Блин, я что, зря документацию пишу? В 55-й функции есть 4 подфункции. Подфункция 55.55
(http://diamondz.land.ru/klbr_doc/5555.htm) пищит спикером. Подфункции 0,1,2
(http://diamondz.land.ru/klbr_doc/5500.htm
http://diamondz.land.ru/klbr_doc/5501.htm
http://diamondz.land.ru/klbr_doc/5502.htm) работают с Sound Blaster'ом.

Posted: Thu Jun 22, 2006 4:34 pm
by Serge
С прерывающимся звуком я разобрался. Файловая система оказалась не причём, что радует. Глючила одна единственная программа и конечно моя собственная. Там было прямое обращение к драйверу из-за чего он начинал работать ненормально, а я про это забыл :(. В окончательной версии вся работа со звуком будет идти только через библиотеку.

Posted: Thu Jun 22, 2006 5:40 pm
by Quantum
2 halyavin:
1 - ясно
2 - ясно
3 - жаль

2 diamond:
Блин, я что, зря документацию пишу?
Эта дока полнее той, что в дистре.

Спикер мне совершенно не подходит. С саундбластером я ещё не разбирался, но сразу видно, что там надо устанавливать базовый порт (у юзера нужно конфигурацию запрашивать, наверно), 16-бит стерео не поддерживает и не ясно как в буфер можно дозаписывать следующий кусок данных, чтобы не происходило артефактов на стыке. Пример SB смотрел, но там эти проблемы просто не учитываются.

2 Serge:
Буду рад потестить эту библиотеку как можно раньше.

Posted: Thu Jun 22, 2006 5:45 pm
by Serge
Quantum Драйвер готов только для интелловских ICH - ICH7. Другими я пока не занимался и еще есть проблемы с отсутствием нормальной документации. Если чипсет не интелловский придётся подождать.

Posted: Thu Jun 22, 2006 6:19 pm
by Mario79
Quantum
Вся документация от Diamond'a появилась после выпуска последнего дистрибутива. Так что тут уж ничего сделать нельзя.
Спикер мне совершенно не подходит. С саундбластером я ещё не разбирался, но сразу видно, что там надо устанавливать базовый порт (у юзера нужно конфигурацию запрашивать, наверно), 16-бит стерео не поддерживает и не ясно как в буфер можно дозаписывать следующий кусок данных, чтобы не происходило артефактов на стыке. Пример SB смотрел, но там эти проблемы просто не учитываются.
Не торопись, люди делают работу по внедрению нормальной реализации звуковой системы. Я думаю, как будет сделана более-менее безглючная версия, то Serge выложит ее для общего доступа.

Serge
Не торопись - лучше исправить глюки и выложить позже, чем потом каждому объяснять, почему глючит.

Posted: Thu Jun 22, 2006 8:24 pm
by Quantum
2 Serge:
У меня есть одна машина с интегрированным интеловским чипом. Хотя Mario79 прав в том, что лучше не торопиться. Мы с Астериксом месяц усиленно тестили последний релиз uFMOD на разных дистрах линукса и бсд, а всё равно вылез один мелкий но мерзкий глюк сразу после релиза. И так всегда :(

2 Mario79:
Желание заниматься SB16 уже пропало. Будем ждать.

Posted: Sun Jul 08, 2007 5:48 am
by Quantum
Прошёл год... И бета-релиз наконец состоялся. На правах рекламы, вот снова линк на официальный сайт:
http://ufmod.sf.net