Пример #1
0
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);
  }
}
Пример #2
0
void QBSoundWin::playSound()
{
	m_nCurPBuff ++;
	if (m_nCurPBuff >= NumWaveBuff) {
		m_nCurPBuff = 0;
	}
	writeWave(m_nCurPBuff);
	m_nCurBuff ++;
	if (m_nCurBuff >= NumWaveBuff) {
		m_nCurBuff = 0;
	}
}