Changeset 846 for trunk/src/multimedia/audio/qaudioinput_win32_p.cpp
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/src/multimedia/audio/qaudioinput_win32_p.cpp
r769 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 201 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation ([email protected]) … … 80 80 } 81 81 82 void CALLBACK QAudioInputPrivate::waveInProc( HWAVEIN hWaveIn, UINT uMsg,82 void CALLBACK QAudioInputPrivate::waveInProc( HWAVEIN hWaveIn, UINT uMsg, 83 83 DWORD dwInstance, DWORD dwParam1, DWORD dwParam2 ) 84 84 { … … 149 149 for(int i = 0; i < count; i++) { 150 150 waveInUnprepareHeader(hWaveIn,blocks, sizeof(WAVEHDR)); 151 blocks+ =sizeof(WAVEHDR);151 blocks+; 152 152 } 153 153 HeapFree(GetProcessHeap(), 0, blockArray); … … 215 215 #endif 216 216 header = 0; 217 if(buffer_size == 0) { 218 // Default buffer size, 200ms, default period size is 40ms 219 buffer_size = settings.frequency()*settings.channels()*(settings.sampleSize()/8)*0.2; 220 period_size = buffer_size/5; 217 period_size = 0; 218 219 if (!settings.isValid()) { 220 qWarning("QAudioInput: open error, invalid format."); 221 } else if (settings.channels() <= 0) { 222 qWarning("QAudioInput: open error, invalid number of channels (%d).", 223 settings.channels()); 224 } else if (settings.sampleSize() <= 0) { 225 qWarning("QAudioInput: open error, invalid sample size (%d).", 226 settings.sampleSize()); 227 } else if (settings.frequency() < 8000 || settings.frequency() > 48000) { 228 qWarning("QAudioInput: open error, frequency out of range (%d).", settings.frequency()); 229 } else if (buffer_size == 0) { 230 231 buffer_size 232 = (settings.frequency() 233 * settings.channels() 234 * settings.sampleSize() 235 #ifndef Q_OS_WINCE // Default buffer size, 200ms, default period size is 40ms 236 + 39) / 40; 237 period_size = buffer_size / 5; 221 238 } else { 222 period_size = buffer_size/5; 223 } 239 period_size = buffer_size / 5; 240 #else // For wince reduce size to 40ms for buffer size and 20ms period 241 + 199) / 200; 242 period_size = buffer_size / 2; 243 } else { 244 period_size = buffer_size / 2; 245 #endif 246 } 247 248 if (period_size == 0) { 249 errorState = QAudio::OpenError; 250 deviceState = QAudio::StoppedState; 251 emit stateChanged(deviceState); 252 return false; 253 } 254 224 255 timeStamp.restart(); 225 256 elapsedTimeOffset = 0; … … 242 273 == MMSYSERR_NOERROR) { 243 274 QString tmp; 244 tmp = QString ::fromUtf16((const unsigned short*)wic.szPname);275 tmp = QString*)wic.szPname); 245 276 if(tmp.compare(QLatin1String(m_device)) == 0) { 246 277 devId = ii; … … 370 401 } 371 402 } else { 403 372 404 // push mode 373 memcpy(p,waveBlocks[header].lpData,waveBlocks[header].dwBytesRecorded); 374 l = waveBlocks[header].dwBytesRecorded; 405 memcpy(p, waveBlocks[header].lpData, l); 406 407 len -= l; 408 375 409 #ifdef DEBUG_AUDIO 376 410 qDebug()<<"IN: "<<waveBlocks[header].dwBytesRecorded<<", OUT: "<<l; … … 427 461 mutex.lock(); 428 462 if(!pullMode) { 429 if(l+period_size > len &&waveFreeBlockCount == buffer_size/period_size)463 waveFreeBlockCount == buffer_size/period_size) 430 464 done = true; 431 465 } else { … … 538 572 if(pullMode) { 539 573 // reads some audio data and writes it to QIODevice 540 read(0, 0);574 read(0,); 541 575 } else { 542 576 // emits readyRead() so user will call read() on QIODevice to get some audio data
Note:
See TracChangeset
for help on using the changeset viewer.