[RoLUG] GSleep 1.1 is out
Dario Rigolin
drigolin@iol.it
Ven 19 Set 2003 20:27:25 CEST
On Friday 19 September 2003 18:18, Eduard Roccatello wrote:
>> /* AFMT_S16_LE 0x00000010 Little endian signed 16 */
> formato = AFMT_S16_LE;
> stereo = 1;
> speed = 44100;
>
> /* Imposto il formato */
> if (ioctl(cardFd, SNDCTL_DSP_SETFMT, &formato)==-1) {
> perror("Formato");
> exit(-1);
> }
> /* Imposto la modalita` stereo */
> if (ioctl(cardFd, SNDCTL_DSP_STEREO, &stereo)==-1) {
> perror("Stereo");
> exit(-1);
> }
> /* Imposto il data rate a 44100 */
> if (ioctl(cardFd, SNDCTL_DSP_SPEED, &speed)==-1) {
> perror("Speed");
> exit(-1);
> }
Attento Enrico che nell'esempio di Eduard viene dato per scontato che il file
Wav in lettura sia stereo a 16Bit Little Endian Signed e campionato a
44100Hz.
Ovviamente se dai direttamente in pasto a /dev/dsp un Wav sbagliato potresti
correre il rischio di fare dei danni alle tue casse o peggio se indossi le
cuffie potresti subire danni permanenti ai timpani... Non saresti il primo
caso...
L'header del file Wav ha una struttura semplice che contiene appunto i dati
relativi alle caratteristiche del file...
Ritornando alla tua domanda iniziale: ovviamente mandare lo stream digitale
del CDROM direttamente su /dev/dsp è un pochetto diverso ma Eduard ti ha
messo sulla buona strada...
Ciao e buon ascolto.
--
Dario Rigolin
Mobile: +39 347 7232652
Maggiori informazioni sulla lista
RoLUG