The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Програмирование звука (sound example)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: sound, example,  (найти похожие документы)
_ RU.UNIX.LINUX (2:5077/15.22) _________________________________ RU.UNIX.LINUX _ From : Andrew B. Sapozhnikov 2:5020/400 18 Jan 99 18:47:28 Subj : Програмирование звука ________________________________________________________________________________ From: "Andrew B. Sapozhnikov" <sapa@hq.icb.chel.su> Ivan Lebedev wrote: > День добрый всем кто это видит! > Посоветует ли Всемогущий Олл, где взять литературу, > разъясняющую вопросы управлениея звуковой картой. > Как вообще под эхотагом генерируют звуки. > А то находил лишь библиотеки для игрушек и исходники от mpg123. > хочется книжку! В /dev/dsp уже дудю, а частоту дескритизации не могу > настроить. > И дудит она на 8 бит, а mpg123 дудит ту да же на 16! #include <stdio.h> #include <fcntl.h> #include <sys/soundcard.h> #define DSPDEVICE "/dev/dsp" int main() { int dsp, rate, realr, stereo, reals, formats, format; dsp = open(DSPDEVICE,O_WRONLY,0); if(dsp==-1) { perror("open: " DSPDEVICE); exit(1); } realr=rate=11025; if(ioctl(dsp,SOUND_PCM_WRITE_RATE,&realr)==-1) { perror("ioctl(SOUND_PCM_WRITE_RATE): " DSPDEVICE); exit(1); } printf("NOTICE: I asked rate %i, and %i was set.\n",rate,realr); reals=stereo=1; if(ioctl(dsp,SNDCTL_DSP_STEREO,&reals)==-1) { perror("ioctl(SNDCTL_DSP_STEREO): " DSPDEVICE); exit(1); } printf("NOTICE: I asked %s, and %s was set.\n", stereo?"stereo":"mono", reals?"stereo":"mono"); if(ioctl(dsp,SNDCTL_DSP_GETFMTS,&formats)==-1) { perror("ioctl(SNDCTL_DSP_GETFMTS): " DSPDEVICE); exit(1); } printf("NOTICE: Device support formats:\n%s%s%s%s%s%s%s%s%s%s", (formats&AFMT_MU_LAW)?"\tU-LAW\n":"", (formats&AFMT_A_LAW)?"\tA-LAW\n":"", (formats&AFMT_IMA_ADPCM)?"\tIMA-ADPCM\n":"", (formats&AFMT_U8)?"\tUnsigned-8\n":"", (formats&AFMT_S16_LE)?"\tSigned-16 (little-endian)\n":"", (formats&AFMT_S16_BE)?"\tSigned-16 (big-endian)\n":"", (formats&AFMT_S8)?"\tSigned-8\n":"", (formats&AFMT_U16_LE)?"\tUnsigned-16 (little-endian)\n":"", (formats&AFMT_U16_BE)?"\tUnsigned-16 (big-endian)\n":"", (formats&AFMT_MPEG)?"\tMPEG-2\n":""); format=0; if((formats&AFMT_S16_LE)!=0) { format=AFMT_S16_LE; if(ioctl(dsp,SNDCTL_DSP_SETFMT,&format)==-1) { perror("ioctl(SNDCTL_DSP_SETFMT): " DSPDEVICE); exit(1); } if(format==AFMT_S16_LE) printf("NOTICE: Signed 16-bit little-endian " "was set.\n"); else { printf("STRANGE: Cannot set mode S16_LE :-(\n"); format=0; } } if (!format && (formats&AFMT_U8)!=0) { format=AFMT_U8; if(ioctl(dsp,SNDCTL_DSP_SETFMT,&format)==-1) { perror("ioctl(SNDCTL_DSP_SETFMT): " DSPDEVICE); exit(1); } if(format==AFMT_U8) printf("NOTICE: Unsigned 8-bit was set.\n"); else printf("STRANGE: Cannot set mode U8 :-(\n"); } close(dsp); return 0; } --- ifmail v.2.14dev2 * Origin: ICB (2:5020/400@fidonet)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, DRAHM (?), 20:12, 20/11/2006 [ответить]  
  • +/
    Ага всем достоиным привет!Я сразу в суть
    делаю прог. на ASM(MSDOS) в защещеном режиме надо заставить работать встроенный 2-, 6- или 8-канальный звуковой контроллер RealTek ALC850(звук).Нужно описания портов(I/O),внутрених регистров и команд.Хотябы как стаким или подобным устройством работать.А то я че то колом стал! Заранее всем кто поможет от души душевно.


     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру