本文整理汇总了C++中TrackPointer::setWaveformSummary方法的典型用法代码示例。如果您正苦于以下问题:C++ TrackPointer::setWaveformSummary方法的具体用法?C++ TrackPointer::setWaveformSummary怎么用?C++ TrackPointer::setWaveformSummary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TrackPointer
的用法示例。
在下文中一共展示了TrackPointer::setWaveformSummary方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isDisabledOrLoadStoredSuccess
bool AnalyzerWaveform::isDisabledOrLoadStoredSuccess(TrackPointer tio) const {
ConstWaveformPointer pTrackWaveform = tio->getWaveform();
ConstWaveformPointer pTrackWaveformSummary = tio->getWaveformSummary();
ConstWaveformPointer pLoadedTrackWaveform;
ConstWaveformPointer pLoadedTrackWaveformSummary;
TrackId trackId = tio->getId();
bool missingWaveform = pTrackWaveform.isNull();
bool missingWavesummary = pTrackWaveformSummary.isNull();
if (trackId.isValid() && (missingWaveform || missingWavesummary)) {
QList<AnalysisDao::AnalysisInfo> analyses =
m_pAnalysisDao->getAnalysesForTrack(trackId);
QListIterator<AnalysisDao::AnalysisInfo> it(analyses);
while (it.hasNext()) {
const AnalysisDao::AnalysisInfo& analysis = it.next();
WaveformFactory::VersionClass vc;
if (analysis.type == AnalysisDao::TYPE_WAVEFORM) {
vc = WaveformFactory::waveformVersionToVersionClass(analysis.version);
if (missingWaveform && vc == WaveformFactory::VC_USE) {
pLoadedTrackWaveform = ConstWaveformPointer(
WaveformFactory::loadWaveformFromAnalysis(analysis));
missingWaveform = false;
} else if (vc != WaveformFactory::VC_KEEP) {
// remove all other Analysis except that one we should keep
m_pAnalysisDao->deleteAnalysis(analysis.analysisId);
}
} if (analysis.type == AnalysisDao::TYPE_WAVESUMMARY) {
vc = WaveformFactory::waveformSummaryVersionToVersionClass(analysis.version);
if (missingWavesummary && vc == WaveformFactory::VC_USE) {
pLoadedTrackWaveformSummary = ConstWaveformPointer(
WaveformFactory::loadWaveformFromAnalysis(analysis));
missingWavesummary = false;
} else if (vc != WaveformFactory::VC_KEEP) {
// remove all other Analysis except that one we should keep
m_pAnalysisDao->deleteAnalysis(analysis.analysisId);
}
}
}
}
// If we don't need to calculate the waveform/wavesummary, skip.
if (!missingWaveform && !missingWavesummary) {
kLogger.debug() << "loadStored - Stored waveform loaded";
if (pLoadedTrackWaveform) {
tio->setWaveform(pLoadedTrackWaveform);
}
if (pLoadedTrackWaveformSummary) {
tio->setWaveformSummary(pLoadedTrackWaveformSummary);
}
return true;
}
return false;
}
示例2: initialize
bool AnalyzerWaveform::initialize(TrackPointer tio, int sampleRate, int totalSamples) {
m_skipProcessing = false;
m_timer.start();
if (totalSamples == 0) {
qWarning() << "AnalyzerWaveform::initialize - no waveform/waveform summary";
return false;
}
// If we don't need to calculate the waveform/wavesummary, skip.
if (isDisabledOrLoadStoredSuccess(tio)) {
m_skipProcessing = true;
} else {
// Now actually initialize the AnalyzerWaveform:
destroyFilters();
createFilters(sampleRate);
//TODO (vrince) Do we want to expose this as settings or whatever ?
const int mainWaveformSampleRate = 441;
// two visual sample per pixel in full width overview in full hd
const int summaryWaveformSamples = 2 * 1920;
m_waveform = WaveformPointer(new Waveform(
sampleRate, totalSamples, mainWaveformSampleRate, -1));
m_waveformSummary = WaveformPointer(new Waveform(
sampleRate, totalSamples, mainWaveformSampleRate,
summaryWaveformSamples));
// Now, that the Waveform memory is initialized, we can set set them to
// the TIO. Be aware that other threads of Mixxx can touch them from
// now.
tio->setWaveform(m_waveform);
tio->setWaveformSummary(m_waveformSummary);
m_waveformData = m_waveform->data();
m_waveformSummaryData = m_waveformSummary->data();
m_stride = WaveformStride(m_waveform->getAudioVisualRatio(),
m_waveformSummary->getAudioVisualRatio());
m_currentStride = 0;
m_currentSummaryStride = 0;
//debug
//m_waveform->dump();
//m_waveformSummary->dump();
#ifdef TEST_HEAT_MAP
test_heatMap = new QImage(256,256,QImage::Format_RGB32);
test_heatMap->fill(0xFFFFFFFF);
#endif
}
return !m_skipProcessing;
}
示例3: cleanup
void AnalyzerWaveform::cleanup(TrackPointer tio) {
Q_UNUSED(tio);
if (m_skipProcessing) {
return;
}
tio->setWaveform(ConstWaveformPointer());
// Since clear() could delete the waveform, clear our pointer to the
// waveform's vector data first.
m_waveformData = nullptr;
m_waveform.clear();
tio->setWaveformSummary(ConstWaveformPointer());
// Since clear() could delete the waveform, clear our pointer to the
// waveform's vector data first.
m_waveformSummaryData = nullptr;
m_waveformSummary.clear();
}