Mercurial > hg > svcore
comparison data/model/BoxModel.h @ 1835:804dd0c06f0e
Merge from branch sensible-delimited-data-strings
author | Chris Cannam |
---|---|
date | Mon, 06 Apr 2020 13:55:44 +0100 |
parents | 21c792334c2e |
children |
comparison
equal
deleted
inserted
replaced
1832:7c92c644db20 | 1835:804dd0c06f0e |
---|---|
346 options.levelAttributeName = "extent"; | 346 options.levelAttributeName = "extent"; |
347 | 347 |
348 m_events.toXml(out, indent, QString("dimensions=\"2\""), options); | 348 m_events.toXml(out, indent, QString("dimensions=\"2\""), options); |
349 } | 349 } |
350 | 350 |
351 QString getDelimitedDataHeaderLine(QString delimiter, | 351 QVector<QString> |
352 DataExportOptions opts) const override { | 352 getStringExportHeaders(DataExportOptions opts) const override { |
353 | |
353 QStringList list; | 354 QStringList list; |
354 | 355 |
355 // These are considered API rather than human-readable text - | 356 // These are considered API rather than human-readable text - |
356 // they shouldn't be translated | 357 // they shouldn't be translated |
357 | 358 |
361 list << "start" << "end"; | 362 list << "start" << "end"; |
362 } | 363 } |
363 | 364 |
364 list << "extent start" << "extent end" << "label"; | 365 list << "extent start" << "extent end" << "label"; |
365 | 366 |
366 return list.join(delimiter).toUpper(); | 367 QVector<QString> sv; |
367 } | 368 for (QString s: list) { |
368 | 369 sv.push_back(s.toUpper()); |
369 QString toDelimitedDataString(QString delimiter, | 370 } |
370 DataExportOptions opts, | 371 return sv; |
371 sv_frame_t startFrame, | 372 } |
372 sv_frame_t duration) const override { | 373 |
374 QVector<QVector<QString>> | |
375 toStringExportRows(DataExportOptions opts, | |
376 sv_frame_t startFrame, | |
377 sv_frame_t duration) const override { | |
373 | 378 |
374 // We need a custom format here | 379 // We need a custom format here |
375 | 380 |
376 EventVector ee = m_events.getEventsSpanning(startFrame, duration); | 381 EventVector ee = m_events.getEventsSpanning(startFrame, duration); |
377 | 382 |
378 QString s; | 383 QVector<QVector<QString>> rows; |
379 | 384 |
380 for (auto e: ee) { | 385 for (auto e: ee) { |
381 | 386 |
382 QStringList list; | 387 QVector<QString> list; |
383 | 388 |
384 if (opts & DataExportWriteTimeInFrames) { | 389 if (opts & DataExportWriteTimeInFrames) { |
385 | 390 |
386 list << QString("%1").arg(e.getFrame()); | 391 list << QString("%1").arg(e.getFrame()); |
387 list << QString("%1").arg(e.getFrame() + e.getDuration()); | 392 list << QString("%1").arg(e.getFrame() + e.getDuration()); |
403 | 408 |
404 if (e.getLabel() != "") { | 409 if (e.getLabel() != "") { |
405 list << e.getLabel(); | 410 list << e.getLabel(); |
406 } | 411 } |
407 | 412 |
408 s += list.join(delimiter) + "\n"; | 413 rows.push_back(list); |
409 } | 414 } |
410 | 415 |
411 return s; | 416 return rows; |
412 } | 417 } |
413 | 418 |
414 protected: | 419 protected: |
415 sv_samplerate_t m_sampleRate; | 420 sv_samplerate_t m_sampleRate; |
416 int m_resolution; | 421 int m_resolution; |