andrew_programmer
Я обсуждал COVOX с Hater-ом. Для многозадачных ОС это действительно очень тормозное устройство.
sound, SB, AC97 и другое
Ребят, у меня такая же проблема:( после переустановки винда, звука вообще нетю:( загружала драйв для него, а толку вообще никакого. причем, что самое интересное, что до этого все было замечательно, все работало, а теперь вообще без звука, и драйва нет:(
Rimel
BIOS не обнулялся?
BIOS не обнулялся?
а с моим звуком что?.. я плата какая написал ведь..
Gluk
Подожди немного. У меня пока нет возможности заняться драйвером.
Подожди немного. У меня пока нет возможности заняться драйвером.
Пора сделать новую версию ac97snd. Тот, который писался для ядра 448, с нынешним ядром не воспроизводит многие из тех файлов, которые раньше воспроизводил. Это зависит от программы, которой файл был закодирован, а точнее, от кодера.
Атауальпа
Ядро с работой декодера никак не связано. Скорее у тебя проявляется ошибка в файловой системе если длина пути к файлу превышает 60 символов. Проверь с последней версией ядра.
Ядро с работой декодера никак не связано. Скорее у тебя проявляется ошибка в файловой системе если длина пути к файлу превышает 60 символов. Проверь с последней версией ядра.
Ошибка была с ревизией 511. С ревизией 513 снова всё воспроизводится.
Есть вопросы по SDK...
Во-первых, если я не собираюсь настраивать master volume, то можно не грузить драйвер SOUND, а только INFINITY?
В функции _InitSound@4 есть вызов SRV_GETVERSION. Он действительно нужен или можно удалить?
Кстати, раньше драйвер нужно было грузить из потока, который его будет использовать. Это ограничение всё ещё в силе?
Во-первых, если я не собираюсь настраивать master volume, то можно не грузить драйвер SOUND, а только INFINITY?
В функции _InitSound@4 есть вызов SRV_GETVERSION. Он действительно нужен или можно удалить?
Кстати, раньше драйвер нужно было грузить из потока, который его будет использовать. Это ограничение всё ещё в силе?
Quantum
SOUND загрузится автоматом в любом случае поэтому если не нужна аппаратная регулировка громкости эту часть можно пропустить.
SRV_GETVERSION нужен иначе после обновления драйверов будут проблемы.
Программа будет работать с драйвером если (version>>16)<=SOUND_VERSION<=(version&0xFFFF)
Драйвер можно грузить из любого потока как и раньше, но звуковые буферы привязаны к родительскому потоку
SOUND загрузится автоматом в любом случае поэтому если не нужна аппаратная регулировка громкости эту часть можно пропустить.
SRV_GETVERSION нужен иначе после обновления драйверов будут проблемы.
Программа будет работать с драйвером если (version>>16)<=SOUND_VERSION<=(version&0xFFFF)
Code: Select all
#define SOUND_VERSION 0x0100
if(err = InitSound(&ver))
{
printf("Error %x Sound service not installed\n\r", err);
return 0;
}
if( SOUND_VERSION>(ver&0xFFFF))
{
printf("obsolete driver infinity.obj\n\r");
printf("Current version: %d, required version %d\n\r",
ver&0xFFFF, SOUND_VERSION);
};
if(SOUND_VERSION<(ver >> 16))
{
printf("programm version obsolete\n\r");
printf("compatible sound version: %d, required version %d\n\r",
ver, SOUND_VERSION);
};
OK, так и сделал. Раньше я просто не заметил, что у InitSound есть параметр.
Плохо, что пока не поддерживается es1371. Придётся опять разворачивать тесты на реальном железе
Плохо, что пока не поддерживается es1371. Придётся опять разворачивать тесты на реальном железе
Т.е. буфер я должен создать именно в том потоке, который будет его потом заполнять? При этом загрузку драйвера, проверку версии и т.д. можно осуществлять в основном потоке даже до того как будет создан поток проигрывания. Верно?Драйвер можно грузить из любого потока как и раньше, но звуковые буферы привязаны к родительскому потоку
Quantum
Для справки.
Эти функций можно безопасно вызавать из любого потока:
GetFormat GetBufferSize SetVolume GetVolume SetPan GetPan GetBufferPos.
Кстати в плеере управление громкостью и балансом каналов идёт из другого потока.
WaveOut PlayBuffer StopBuffer SetBuffer SetBufferPos DestroyBuffer
лучше вызывать из родительского потока.
Если ты хочешь сделать mod-плеер, eсть смысл встроить его в существующий ac97snd. Оформить декодер в виде статической библиотеки и прилинковать.
Да. В этом никаих ограничений нет.Т.е. буфер я должен создать именно в том потоке, который будет его потом заполнять? При этом загрузку драйвера, проверку версии и т.д. можно осуществлять в основном потоке даже до того как будет создан поток проигрывания. Верно?
Для справки.
Эти функций можно безопасно вызавать из любого потока:
GetFormat GetBufferSize SetVolume GetVolume SetPan GetPan GetBufferPos.
Кстати в плеере управление громкостью и балансом каналов идёт из другого потока.
WaveOut PlayBuffer StopBuffer SetBuffer SetBufferPos DestroyBuffer
лучше вызывать из родительского потока.
Если ты хочешь сделать mod-плеер, eсть смысл встроить его в существующий ac97snd. Оформить декодер в виде статической библиотеки и прилинковать.
Странно, что .output - это указатель на указатель на версию...
Попробовал перенести образ на старую машину с ICH, в надежде, что теперь будет работать, т.к. на основной машине тестить накладно. Увы :( Пишет, что обнаручен MENUET01 ICH, выводит значения control word и т.д. (не FFFFFFFF, что меня сразу обрадовало), но потом идёт device not found и дальше драйвер уже не грузится. Кстати, ни один из нормальных графических режимов (1-8) по прежнему не работает и при выборе любого из них в стандартном режиме меню виснет (как и раньше), а не перезагружается, как написано в документации. При указании опции запуска с дискеты, а не с уже загруженного образа, при отсутствии дискеты в дисководе, меню тоже наглухо виснет и помогает только ребут.
Попробовал загрузить образ на основной машине со встроенным AD, где твой драйвер нормально работал и раньше (только звук выводился не в тот разьём). Звук услышать пока не удалось, т.к. мой NTFS раздел живёт на SATA и Колибри его не видит, а CD-ROM'ы видит, но что-то не читает... (может быть, из-за того, что на всех моих дисках с MP3 используются длинные имена файлов и режим записи в несколько сессий). В образ дискеты никакой из обычных вавов (т.е. не ADPCM) или mp3 не влазиет. Замкнутый круг. Версию драйвера получить удалось.
1. Сделать минимальный hello world с фоновым звуком, как в большинстве примеров виндового бранча uFMOD. Компиляторы: FASM и NASM.
2. Сделать пример использования функции Jump2Pattern.
3. Оформить бранч с документацией и т.д. Зарелизить.
4. Сделать плеер файлов. Тут, конечно, имеет смысл пристроиться к стандартному плееру, а не изобретать велосипед. Но пока рано об этом думать, IMO.
Попробовал перенести образ на старую машину с ICH, в надежде, что теперь будет работать, т.к. на основной машине тестить накладно. Увы :( Пишет, что обнаручен MENUET01 ICH, выводит значения control word и т.д. (не FFFFFFFF, что меня сразу обрадовало), но потом идёт device not found и дальше драйвер уже не грузится. Кстати, ни один из нормальных графических режимов (1-8) по прежнему не работает и при выборе любого из них в стандартном режиме меню виснет (как и раньше), а не перезагружается, как написано в документации. При указании опции запуска с дискеты, а не с уже загруженного образа, при отсутствии дискеты в дисководе, меню тоже наглухо виснет и помогает только ребут.
Попробовал загрузить образ на основной машине со встроенным AD, где твой драйвер нормально работал и раньше (только звук выводился не в тот разьём). Звук услышать пока не удалось, т.к. мой NTFS раздел живёт на SATA и Колибри его не видит, а CD-ROM'ы видит, но что-то не читает... (может быть, из-за того, что на всех моих дисках с MP3 используются длинные имена файлов и режим записи в несколько сессий). В образ дискеты никакой из обычных вавов (т.е. не ADPCM) или mp3 не влазиет. Замкнутый круг. Версию драйвера получить удалось.
Пока план такой:Если ты хочешь сделать mod-плеер, eсть смысл встроить его в существующий ac97snd. Оформить декодер в виде статической библиотеки и прилинковать.
1. Сделать минимальный hello world с фоновым звуком, как в большинстве примеров виндового бранча uFMOD. Компиляторы: FASM и NASM.
2. Сделать пример использования функции Jump2Pattern.
3. Оформить бранч с документацией и т.д. Зарелизить.
4. Сделать плеер файлов. Тут, конечно, имеет смысл пристроиться к стандартному плееру, а не изобретать велосипед. Но пока рано об этом думать, IMO.
Quantum
>Странно, что .output - это указатель на указатель на версию...
Все функции драйвера делались в расчёте на вызовы из С в итоге получилось что .output это массив указателей на возвращаемые значения. Я подготовил исправленную версию но не успел к дистрибу а с нынешними программами она не совместима надо всё обновлять и опять начнётся путаница.
Кстати если драйвер пишет MENUET01 обнови его, это ошибка.
>control word и т.д.
Какие именно значения выводятся ?
>длинные имена файлов и режим записи в несколько сессий
С длинными именами файлов проблем нет а вот диски должны быть записаны только в одну сессию
>Странно, что .output - это указатель на указатель на версию...
Все функции драйвера делались в расчёте на вызовы из С в итоге получилось что .output это массив указателей на возвращаемые значения. Я подготовил исправленную версию но не успел к дистрибу а с нынешними программами она не совместима надо всё обновлять и опять начнётся путаница.
Кстати если драйвер пишет MENUET01 обнови его, это ошибка.
>control word и т.д.
Какие именно значения выводятся ?
>длинные имена файлов и режим записи в несколько сессий
С длинными именами файлов проблем нет а вот диски должны быть записаны только в одну сессию
Who is online
Users browsing this forum: No registered users and 1 guest