-rw-r--r-- | core/applets/vmemo/vmemo.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/core/applets/vmemo/vmemo.cpp b/core/applets/vmemo/vmemo.cpp index 25ee476..bba55a3 100644 --- a/core/applets/vmemo/vmemo.cpp +++ b/core/applets/vmemo/vmemo.cpp @@ -278,64 +278,65 @@ int VMemo::openDSP() { perror("ioctl(\"SNDCTL_DSP_CHANNELS\")"); return -1; } if(ioctl(dsp, SNDCTL_DSP_SPEED , &speed)==-1) { perror("ioctl(\"SNDCTL_DSP_SPEED\")"); return -1; } if(ioctl(dsp, SOUND_PCM_READ_RATE , &rate)==-1) { perror("ioctl(\"SOUND_PCM_READ_RATE\")"); return -1; } return 1; } int VMemo::openWAV(const char *filename) { qDebug("Creating %s ",filename); track.setName(filename); if(!track.open(IO_WriteOnly|IO_Truncate|IO_Raw)) { qDebug("Could not open file"); return -1; } wav=track.handle(); WaveHeader wh; wh.main_chunk = RIFF;// RIFF + wh.length=0; /* filelen */ wh.chunk_type = WAVE;//WAVE wh.sub_chunk = FMT;// fmt wh.sc_len = 16;// format length = 16 wh.format = PCM_CODE;// PCM wh.modus = channels;// channels wh.sample_fq = speed;//samplerate wh.byte_p_sec = speed * channels * resolution/8;// av bytes per second wh.byte_p_spl = channels * (resolution / 8); //block align wh.bit_p_spl = resolution;//bits per sample 8, or 16 wh.data_chunk = DATA; wh.data_length= 0; // <--- // qDebug("Write header channels %d, speed %d, b/s %d, blockalign %d, bitrate %d" // , wh.modus, wh.sample_fq, wh.byte_p_sec, wh.byte_p_spl, wh.bit_p_spl ); write (wav, &wh, sizeof(WaveHeader)); return 1; } void VMemo::record(void) { int length=0, result, value; char sound[8192]; qWarning("VMemo::record()"); while(recording) { result = read(dsp, sound, 512); // 8192 qApp->processEvents(); write(wav, sound, result); qApp->processEvents(); length += result; |