ZXNet эхоконференция «zxnet.pc»


тема: AY-player для linyx?



от: Dima Kozlov
кому: All
дата: 01 Feb 2006
Hello, SMT

SMT> ты же на с/с++ пишешь плагины? можно и статически слинковать. правда
SMT> DLL хорош тем, что можно независимо обновлять плагины и плейер

зришь в корень! кроме того можно иметь одну копию dll'ки в системе и обновлять
только ее...

SMT> вообще-то пока рано делить шкуру неубитого медведя, ещё интерфейс
SMT> даже не готов.

согласен, в конце концов если интерфейс будет достаточно стабильным, обертку
можно один раз руками будет сделать...

SMT> вот теперь думаю, для модуля нужен список свойств, которые можно
SMT> прочитать, и тех, которые можно редактировать

а вот на эту тему хорошо бы с Сергеем Бульбой пошептаться...

от: Станислав Ломакин
кому: All
дата: 02 Feb 2006
Hello, elf/2

отъ xmms-плагин...
раззиповать, сделать "make plugin", скопировать образовавшийся libvtxplay.so в
каталог, где xmms держит плагины ввода.
(у меня это /usr/lib/xmms/Input)

кстати, оказывается, есть уже один vtx-xmms-плагин под линух %)
тута: http://sashnov.nm.ru/ayengine.html
и библиотека эмуляции AY/YM там тоже есть

хм, граждане, у которых уши не из зада^H^H^H^H подмышки растут -- как считаете,
которая эмуляция больше на железку похожа? :rolleyes:

Файл: vtxplay_n_xmms.zip http://zx.pk.ru/attachment.php?attachmentid=2526

от: Slavik Tretiak
кому: All
дата: 02 Feb 2006
Hello, boo_boo

а оно только vtx-ы играет?

от: Slavik Tretiak
кому: All
дата: 02 Feb 2006
Hello, boo_boo

ну тогда я подожду, ибо в vtx у меня ровно 1 музон ^_~

от: Станислав Ломакин
кому: All
дата: 02 Feb 2006
Hello, Sinus

Sin> а оно только vtx-ы играет?

ну да. вот сделает SMT анонсированный класс Song со всякими разными форматами,
будет остальное ;)

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, SMT

SMT> большая часть из-за неподдержки nameless structs/unions в описании
SMT> Z80

ну да, по крайней мере это вроде единственное, что требует вмешательства в
код, а не только в декларации.

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, SMT

SMT> насчёт Z80 не знаю, как соберётся под линуксом. попробуйте свой, если
SMT> не получится unreal'овский

с ходу не собирается, ессно -- ругается на кучу всего, не только в z80. как со
временем разгребусь, гляну толком. ...а в MSVC что, нет режима совместимости с
ANSI/ISO C++? ;)

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, SMT

SMT> ту мне лог компиляции скинь, посмотрю...

вот лог :)

Файл: err.zip http://zx.pk.ru/attachment.php?attachmentid=2606

от: SMT
кому: All
дата: 09 Mar 2006
Hello, SMT

пофиксен глюк с рассинхронизацией AY и других звуковых источников (bepeer,
tape, etc), добавлен класс SNDCOUNTER для определения, сколько семплов
полностью готово (при генерации от нескольких источников) и откуда из
внутреннего буфера надо брать эти семплы. пример использования - в файле
sndcounter.h

Файл: sndrender.rar http://zx.pk.ru/attachment.php?attachmentid=2793

от: Станислав Ломакин
кому: All
дата: 09 Mar 2006
Hello, SMT

ура, все работает :)

кстати, предложение -- а почему бы не сделать режим EXTERNAL_BUFFER штатным? то
есть передавать в start_frame указатель на буфер и его длину. ИМХО при таком
раскладе больше ничего и не надо -- он полностью заменяет нынешний умолчальный
режим. а то сейчас чтобы EXTERNAL_BUFFER врубить, приходится лезть в сорцы (тк
дефинить его, а потом инклюдить *.h и *.cpp в файл -- неудобно, особенно если
такой файл не один ,)

от: SMT
кому: All
дата: 09 Mar 2006
Hello, SMT

> кстати, предложение -- а почему бы не сделать режим EXTERNAL_BUFFER
> штатным?

потому что 1) могут передавать размер - не степень двойки и 2) потеряется
несколько десятков тактов внутри цикла заполнения буфера из-за переменных
вместо констант (действия с константами MSVC оптимизирует на отлично)

> сейчас чтобы EXTERNAL_BUFFER врубить, приходится лезть в сорцы

понятно, я специально вынес это в отдельный файл sndbuffer.h - достаточно
исправить там 1-2 строки - указать, в какой переменной лежит буфер

з.ы. теперь можно немного упростить обработку звука - start_frame вызывать без
параметра, результат end_frame игнорировать (см. пример), объект SNDCOUNTER сам
всё считает

от: Станислав Ломакин
кому: All
дата: 09 Mar 2006
Hello, SMT

SMT> потому что 1) могут передавать размер - не степень двойки

не степень 2ки и дефайном можно указать :rolleyes:

SMT> понятно, я специально вынес это в отдельный файл sndbuffer.h -
SMT> достаточно исправить там 1-2 строки - указать, в какой переменной
SMT> лежит буфер

тогда еще надо #include "sndcounter.h" в sndcounter.cpp вынести на самый верх,
а в sndcounter.h добавить #include "sndbuffer.h" перед ifdef'ом

хмм... если важно быстродействие, можно сделать темплейтами с
параметрами-константами: медленней не станет, при использовании код править
вообще не придется, и если понадобиться с несколькими буферами работать (может
пригодиться в плеерах и тп) ничего не помешает.

ЗЫ извини за занудство, просто я маньяк по части интерфейсов, когда вижу
отличный код, безумно хочется, чтобы и интерфейс был весь из себя :rolleyes:

от: SMT
кому: All
дата: 09 Mar 2006
Hello, SMT

> не степень 2ки и дефайном можно указать

а хуже того, могут с каждым разом передавать разные буферы и размеры, когда всё
должно быть одинаково, чтобы SNDCOUNTER правильно работал

от: SMT
кому: All
дата: 09 Mar 2006
Hello, SMT

> не степень 2ки и дефайном можно указать

это я уже добавил в sndrender.h:
┌─- CODE ───
#ifdef SND_EXTERNAL_BUFFER
#if ((SND_EXTERNAL_BUFFER_SIZE & (SND_EXTERNAL_BUFFER_SIZE-1)) != 0)
#pragma error("SND_EXTERNAL_BUFFER_SIZE must be power of 2")
#endif
#endif
└── CODE ───

> тогда еще надо #include "sndcounter.h" в sndcounter.cpp вынести на
> самый верх

согласен

> а в sndcounter.h добавить #include "sndbuffer.h" перед ifdef'ом

включается через #include "sndrender.h", который надо вынести наверх

> хмм... если важно быстродействие, можно сделать темплейтами с
> параметрами-константами: медленней не станет, при использовании код
> править вообще не придется, и если понадобиться с несколькими
> буферами работать (может пригодиться в плеерах и тп) ничего не
> помешает

можно, но это надо думать - надо ещё заводить класс-буфер и юзать его как
параметр шаблона, что-ли, чтобы все SNDRENDER'ы c одним буфером были одним
классом

от: Станислав Ломакин
кому: All
дата: 09 Mar 2006
Hello, SMT

SMT> а хуже того, могут с каждым разом передавать разные буферы и размеры,
SMT> когда всё должно быть одинаково, чтобы SNDCOUNTER правильно работал

если указатель на буфер и его размер передавать параметрами темплейта, не
смогут... и, кстати, в этом случае ведь как раз и получится один класс на все
SNDRENDER'ы, использующие один буфер.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Inferno - Авторы.
Реклама - Реклама и объявления.
О людях... - О истории создания и планах Virt group.

В этот день...   25 августа