Важная информация

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 43

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

  1. #31
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    ту мне лог компиляции скинь, посмотрю...
    вот лог

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #33
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    большая часть из-за неподдержки nameless structs/unions в описании Z80
    ну да, по крайней мере это вроде единственное, что требует вмешательства в код, а не только в декларации.

  5. #34
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    не только. ещё проскочила разок переменная, объявленная в for и ещё кое-какие мелочи

  6. #35
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #36
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    типа: void start_frame(SNDSAMPLE *dst, unsigned dstlen, unsigned dstpos=0);
    Последний раз редактировалось boo_boo; 09.03.2006 в 04:20.

  8. #37
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  9. #38
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    потому что 1) могут передавать размер - не степень двойки
    не степень 2ки и дефайном можно указать
    Цитата Сообщение от SMT
    понятно, я специально вынес это в отдельный файл sndbuffer.h - достаточно исправить там 1-2 строки - указать, в какой переменной лежит буфер
    тогда еще надо #include "sndcounter.h" в sndcounter.cpp вынести на самый верх, а в sndcounter.h добавить #include "sndbuffer.h" перед ifdef'ом

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

    ЗЫ извини за занудство, просто я маньяк по части интерфейсов, когда вижу отличный код, безумно хочется, чтобы и интерфейс был весь из себя
    Последний раз редактировалось boo_boo; 09.03.2006 в 12:07.

  10. #39
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    не степень 2ки и дефайном можно указать
    это я уже добавил в sndrender.h:
    Код:
    #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
    тогда еще надо #include "sndcounter.h" в sndcounter.cpp вынести на самый верх
    согласен
    а в sndcounter.h добавить #include "sndbuffer.h" перед ifdef'ом
    включается через #include "sndrender.h", который надо вынести наверх
    хмм... если важно быстродействие, можно сделать темплейтами с параметрами-константами: медленней не станет, при использовании код править вообще не придется, и если понадобиться с несколькими буферами работать (может пригодиться в плеерах и тп) ничего не помешает
    можно, но это надо думать - надо ещё заводить класс-буфер и юзать его как параметр шаблона, что-ли, чтобы все SNDRENDER'ы c одним буфером были одним классом

  11. #40
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •