Ciao a tutti
se avete tempo e, soprattutto, voglia date un'occhiata al mio problema..
on line ho trovato un programma per gestire wave e sto cercando di modificarlo (questo e' il link per i sorgenti: wave.zip [48k])
funziona da linea di comando: registra quello che passa sul device audio e crea, una volta stoppata l'esecuzione premendo 's' da tastiera, un file rec.wav nella cartella 'wave'.
quello che sto cercando di fare e' questo:
- nel main decido il formato del .wav (mono, 44100Hz, 16bit) e avvio la registrazione con 'waveIn.Record()':
-- la funzione 'waveInProc' legge da device e crea una lista di buffer con la funzione 'AddNewBuffer' in cui mette i campioni con la funzione 'AddNewHeader'.
- sempre nel main chiamo la funzione 'waveIn.Hashlk()' definita nella classe 'CWaveIn'. Dentro questa faccio:
-- ciclo while -> l'esecuzione continua finche' non viene premuto il tasto 's'
-- conto i buffer creati con 'm_listOfBuffer.GetCount()'. Se sono almeno 32 (=frame_size/512=16384/512) faccio i conti che mi servono. Nel ciclo 'while (contatore_pos_hashlk <= 31)' metto insieme i 32 buffer che mi servono copiandoli (col 'CopyMemory') in 'pBuffer_hashlk' e poi cancello il primo dei buffer
..e' giusto quello che ho fatto??
pBuffer_hashlk, come l'ho definito, rappresenta il puntatore al primo elemento della lista dei buffer??
come faccio a fare i conti su quei 16384 campioni??
spero che la spiegazione non sia stata troppo incasinata..
ciao e grazie