void RDHPIRecordStream::tickClock() { HPI_InStreamGetInfoEx(hpi_subsys,hpi_stream, &state,&buffer_size,&data_recorded, &samples_recorded,&reserved); if((!record_started)&&(is_recording)) { if(samples_recorded>0) { if(record_length>0) { length_timer->start(record_length,true); } emit recordStart(); emit stateChanged(card_number,stream_number,4); // RecordStarted if(debug) { printf("RDHPIRecordStream: emitted recordStart()\n"); printf("RDHPIRecordStream: emitted stateChanged(%d,%d,RDHPIRecordStream::RecordStarted)\n",card_number,stream_number); } record_started=true; } } while(data_recorded>fragment_size) { #if HPI_VER > 0x00030500 HPI_InStreamReadBuf(hpi_subsys,hpi_stream,pdata,fragment_size); #else HPI_InStreamRead(hpi_subsys,hpi_stream,&hpi_data); #endif if(is_recording) { writeWave(pdata,fragment_size); } HPI_InStreamGetInfoEx(hpi_subsys,hpi_stream, &state,&buffer_size,&data_recorded, &samples_recorded,&reserved); } if(state==HPI_STATE_STOPPED) { #if HPI_VER > 0x00030500 HPI_InStreamReadBuf(hpi_subsys,hpi_stream,pdata,data_recorded); #else HPI_DataCreate(&hpi_data,&format,pdata,data_recorded); HPI_InStreamRead(hpi_subsys,hpi_stream,&hpi_data); #endif if(is_recording) { writeWave(pdata,data_recorded); } } emit position(samples_recorded); if(debug) { printf("RDHPIRecordStream: emitted position(%u)\n", (unsigned)samples_recorded); } }
void QBSoundWin::playSound() { m_nCurPBuff ++; if (m_nCurPBuff >= NumWaveBuff) { m_nCurPBuff = 0; } writeWave(m_nCurPBuff); m_nCurBuff ++; if (m_nCurBuff >= NumWaveBuff) { m_nCurBuff = 0; } }