src/multimedia/audio/qaudioinput_win32_p.cpp
changeset 30 5dc02b23752f
parent 23 89e065397ea6
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    77 QAudioInputPrivate::~QAudioInputPrivate()
    77 QAudioInputPrivate::~QAudioInputPrivate()
    78 {
    78 {
    79     stop();
    79     stop();
    80 }
    80 }
    81 
    81 
    82 void CALLBACK QAudioInputPrivate::waveInProc( HWAVEIN hWaveIn, UINT uMsg,
    82 void QT_WIN_CALLBACK QAudioInputPrivate::waveInProc( HWAVEIN hWaveIn, UINT uMsg,
    83         DWORD dwInstance, DWORD dwParam1, DWORD dwParam2 )
    83         DWORD dwInstance, DWORD dwParam1, DWORD dwParam2 )
    84 {
    84 {
    85     Q_UNUSED(dwParam1)
    85     Q_UNUSED(dwParam1)
    86     Q_UNUSED(dwParam2)
    86     Q_UNUSED(dwParam2)
    87     Q_UNUSED(hWaveIn)
    87     Q_UNUSED(hWaveIn)
   219         buffer_size = settings.frequency()*settings.channels()*(settings.sampleSize()/8)*0.2;
   219         buffer_size = settings.frequency()*settings.channels()*(settings.sampleSize()/8)*0.2;
   220 	period_size = buffer_size/5;
   220 	period_size = buffer_size/5;
   221     } else {
   221     } else {
   222         period_size = buffer_size/5;
   222         period_size = buffer_size/5;
   223     }
   223     }
       
   224 #ifdef Q_OS_WINCE
       
   225     // For wince reduce size to 40ms for buffer size and 20ms period
       
   226     buffer_size = settings.sampleRate()*settings.channelCount()*(settings.sampleSize()/8)*0.04;
       
   227     period_size = buffer_size/2;
       
   228 #endif
   224     timeStamp.restart();
   229     timeStamp.restart();
   225     elapsedTimeOffset = 0;
   230     elapsedTimeOffset = 0;
   226     wfx.nSamplesPerSec = settings.frequency();
   231     wfx.nSamplesPerSec = settings.frequency();
   227     wfx.wBitsPerSample = settings.sampleSize();
   232     wfx.wBitsPerSample = settings.sampleSize();
   228     wfx.nChannels = settings.channels();
   233     wfx.nChannels = settings.channels();
   239     iNumDevs = waveInGetNumDevs();
   244     iNumDevs = waveInGetNumDevs();
   240     for(ii=0;ii<iNumDevs;ii++) {
   245     for(ii=0;ii<iNumDevs;ii++) {
   241         if(waveInGetDevCaps(ii, &wic, sizeof(WAVEINCAPS))
   246         if(waveInGetDevCaps(ii, &wic, sizeof(WAVEINCAPS))
   242 	    == MMSYSERR_NOERROR) {
   247 	    == MMSYSERR_NOERROR) {
   243 	    QString tmp;
   248 	    QString tmp;
   244 	    tmp = QString::fromUtf16((const unsigned short*)wic.szPname);
   249 	    tmp = QString((const QChar *)wic.szPname);
   245 	    if(tmp.compare(QLatin1String(m_device)) == 0) {
   250 	    if(tmp.compare(QLatin1String(m_device)) == 0) {
   246 	        devId = ii;
   251 	        devId = ii;
   247 		break;
   252 		break;
   248 	    }
   253 	    }
   249 	}
   254 	}