Mercurial > hg > svapp
comparison audio/AudioCallbackRecordTarget.cpp @ 644:6fd0ebfd2bbe
Merge from branch fix-static-analysis
author | Chris Cannam |
---|---|
date | Wed, 09 Jan 2019 15:25:09 +0000 |
parents | 92ad94dee103 e2715204feaa |
children | aee03ad6d3f6 |
comparison
equal
deleted
inserted
replaced
643:713b9a6b284a | 644:6fd0ebfd2bbe |
---|---|
33 m_clientName(clientName.toUtf8().data()), | 33 m_clientName(clientName.toUtf8().data()), |
34 m_recording(false), | 34 m_recording(false), |
35 m_recordSampleRate(44100), | 35 m_recordSampleRate(44100), |
36 m_recordChannelCount(2), | 36 m_recordChannelCount(2), |
37 m_frameCount(0), | 37 m_frameCount(0), |
38 m_model(0), | 38 m_model(nullptr), |
39 m_buffers(0), | 39 m_buffers(nullptr), |
40 m_bufferCount(0), | 40 m_bufferCount(0), |
41 m_inputLeft(0.f), | 41 m_inputLeft(0.f), |
42 m_inputRight(0.f), | 42 m_inputRight(0.f), |
43 m_levelsSet(false) | 43 m_levelsSet(false) |
44 { | 44 { |
54 { | 54 { |
55 #ifdef DEBUG_AUDIO_CALLBACK_RECORD_TARGET | 55 #ifdef DEBUG_AUDIO_CALLBACK_RECORD_TARGET |
56 cerr << "AudioCallbackRecordTarget dtor" << endl; | 56 cerr << "AudioCallbackRecordTarget dtor" << endl; |
57 #endif | 57 #endif |
58 | 58 |
59 m_viewManager->setAudioRecordTarget(0); | 59 m_viewManager->setAudioRecordTarget(nullptr); |
60 | 60 |
61 QMutexLocker locker(&m_bufPtrMutex); | 61 QMutexLocker locker(&m_bufPtrMutex); |
62 for (int c = 0; c < m_bufferCount; ++c) { | 62 for (int c = 0; c < m_bufferCount; ++c) { |
63 delete m_buffers[c]; | 63 delete m_buffers[c]; |
64 } | 64 } |
230 { | 230 { |
231 if (sender() == m_model) { | 231 if (sender() == m_model) { |
232 #ifdef DEBUG_AUDIO_CALLBACK_RECORD_TARGET | 232 #ifdef DEBUG_AUDIO_CALLBACK_RECORD_TARGET |
233 cerr << "AudioCallbackRecordTarget::modelAboutToBeDeleted: taking note" << endl; | 233 cerr << "AudioCallbackRecordTarget::modelAboutToBeDeleted: taking note" << endl; |
234 #endif | 234 #endif |
235 m_model = 0; | 235 m_model = nullptr; |
236 m_recording = false; | 236 m_recording = false; |
237 } else if (m_model) { | 237 } else if (m_model) { |
238 SVCERR << "WARNING: AudioCallbackRecordTarget::modelAboutToBeDeleted: this is not my model!" << endl; | 238 SVCERR << "WARNING: AudioCallbackRecordTarget::modelAboutToBeDeleted: this is not my model!" << endl; |
239 } | 239 } |
240 } | 240 } |
242 WritableWaveFileModel * | 242 WritableWaveFileModel * |
243 AudioCallbackRecordTarget::startRecording() | 243 AudioCallbackRecordTarget::startRecording() |
244 { | 244 { |
245 if (m_recording) { | 245 if (m_recording) { |
246 SVCERR << "WARNING: AudioCallbackRecordTarget::startRecording: We are already recording" << endl; | 246 SVCERR << "WARNING: AudioCallbackRecordTarget::startRecording: We are already recording" << endl; |
247 return 0; | 247 return nullptr; |
248 } | 248 } |
249 | 249 |
250 m_model = 0; | 250 m_model = nullptr; |
251 m_frameCount = 0; | 251 m_frameCount = 0; |
252 | 252 |
253 QString folder = RecordDirectory::getRecordDirectory(); | 253 QString folder = RecordDirectory::getRecordDirectory(); |
254 if (folder == "") return 0; | 254 if (folder == "") return nullptr; |
255 QDir recordedDir(folder); | 255 QDir recordedDir(folder); |
256 | 256 |
257 QDateTime now = QDateTime::currentDateTime(); | 257 QDateTime now = QDateTime::currentDateTime(); |
258 | 258 |
259 // Don't use QDateTime::toString(Qt::ISODate) as the ":" character | 259 // Don't use QDateTime::toString(Qt::ISODate) as the ":" character |
274 if (!m_model->isOK()) { | 274 if (!m_model->isOK()) { |
275 SVCERR << "ERROR: AudioCallbackRecordTarget::startRecording: Recording failed" | 275 SVCERR << "ERROR: AudioCallbackRecordTarget::startRecording: Recording failed" |
276 << endl; | 276 << endl; |
277 //!!! and throw? | 277 //!!! and throw? |
278 delete m_model; | 278 delete m_model; |
279 m_model = 0; | 279 m_model = nullptr; |
280 return 0; | 280 return nullptr; |
281 } | 281 } |
282 | 282 |
283 connect(m_model, SIGNAL(aboutToBeDeleted()), | 283 connect(m_model, SIGNAL(aboutToBeDeleted()), |
284 this, SLOT(modelAboutToBeDeleted())); | 284 this, SLOT(modelAboutToBeDeleted())); |
285 | 285 |
308 | 308 |
309 // buffers should now be up-to-date | 309 // buffers should now be up-to-date |
310 updateModel(); | 310 updateModel(); |
311 | 311 |
312 m_model->writeComplete(); | 312 m_model->writeComplete(); |
313 m_model = 0; | 313 m_model = nullptr; |
314 | 314 |
315 emit recordStatusChanged(false); | 315 emit recordStatusChanged(false); |
316 emit recordCompleted(); | 316 emit recordCompleted(); |
317 } | 317 } |
318 | 318 |