55#include < QMap>
66#include < QMessageBox>
77#include < QSettings>
8+ #include < QString>
89#include < QTextCodec>
910#include < QtDebug>
1011
@@ -274,9 +275,9 @@ QString getText(rekordbox_pdb_t::device_sql_string_t* deviceString) {
274275 rekordbox_pdb_t ::device_sql_long_ascii_t * longAsciiString =
275276 static_cast <rekordbox_pdb_t ::device_sql_long_ascii_t *>(deviceString->body ());
276277 text = QString::fromStdString (longAsciiString->text ());
277- } else if (instanceof <rekordbox_pdb_t ::device_sql_long_utf16be_t >(deviceString->body ())) {
278- rekordbox_pdb_t ::device_sql_long_utf16be_t * longUtf16beString =
279- static_cast <rekordbox_pdb_t ::device_sql_long_utf16be_t *>(deviceString->body ());
278+ } else if (instanceof <rekordbox_pdb_t ::device_sql_long_utf16le_t >(deviceString->body ())) {
279+ rekordbox_pdb_t ::device_sql_long_utf16le_t * longUtf16beString =
280+ static_cast <rekordbox_pdb_t ::device_sql_long_utf16le_t *>(deviceString->body ());
280281 text = toUnicode (longUtf16beString->text ());
281282 }
282283
@@ -490,7 +491,7 @@ QString parseDeviceDB(mixxx::DbConnectionPoolPtr dbConnectionPool, TreeItem* dev
490491 std::ifstream ifs (dbPath.toStdString (), std::ifstream::binary);
491492 kaitai::kstream ks (&ifs);
492493
493- rekordbox_pdb_t reckordboxDB = rekordbox_pdb_t (&ks);
494+ rekordbox_pdb_t rekordboxDB = rekordbox_pdb_t (&ks);
494495
495496 // There are other types of tables (eg. COLOR), these are the only ones we are
496497 // interested at the moment. Perhaps when/if
@@ -523,82 +524,57 @@ QString parseDeviceDB(mixxx::DbConnectionPoolPtr dbConnectionPool, TreeItem* dev
523524 bool folderOrPlaylistFound = false ;
524525
525526 for (int tableOrderIndex = 0 ; tableOrderIndex < totalTables; tableOrderIndex++) {
526- for (std::vector<rekordbox_pdb_t ::table_t *>::iterator table =
527- reckordboxDB.tables ()->begin ();
528- table != reckordboxDB.tables ()->end ();
529- ++table) {
530- if ((*table)->type () == tableOrder[tableOrderIndex]) {
531- uint16_t lastIndex = (*table)->last_page ()->index ();
532- rekordbox_pdb_t ::page_ref_t * currentRef = (*table)->first_page ();
527+ for (const auto & table : *rekordboxDB.tables ()) {
528+ if (table->type () == tableOrder[tableOrderIndex]) {
529+ uint16_t lastIndex = table->last_page ()->index ();
530+ rekordbox_pdb_t ::page_ref_t * currentRef = table->first_page ();
533531
534532 while (true ) {
535533 rekordbox_pdb_t ::page_t * page = currentRef->body ();
536534
537535 if (page->is_data_page ()) {
538- for (std::vector<rekordbox_pdb_t ::row_group_t *>::
539- iterator rowGroup =
540- page->row_groups ()->begin ();
541- rowGroup != page->row_groups ()->end ();
542- ++rowGroup) {
543- for (std::vector<rekordbox_pdb_t ::row_ref_t *>::
544- iterator rowRef = (*rowGroup)
545- ->rows ()
546- ->begin ();
547- rowRef != (*rowGroup)->rows ()->end ();
548- ++rowRef) {
549- if ((*rowRef)->present ()) {
536+ for (const auto & rowgroup : *page->row_groups ()) {
537+ for (const auto & rowRef : *rowgroup->rows ()) {
538+ if (rowRef->present ()) {
550539 switch (tableOrder[tableOrderIndex]) {
551540 case rekordbox_pdb_t ::PAGE_TYPE_KEYS : {
552- // Key found, update map
553- rekordbox_pdb_t ::key_row_t * key =
554- static_cast <rekordbox_pdb_t ::
555- key_row_t *>(
556- (*rowRef)->body ());
541+ auto * key =
542+ static_cast <rekordbox_pdb_t ::key_row_t *>(
543+ rowRef->body ());
557544 keysMap[key->id ()] = getText (key->name ());
558545 } break ;
559546 case rekordbox_pdb_t ::PAGE_TYPE_GENRES : {
560- // Genre found, update map
561- rekordbox_pdb_t ::genre_row_t * genre =
562- static_cast <rekordbox_pdb_t ::
563- genre_row_t *>(
564- (*rowRef)->body ());
547+ auto * genre =
548+ static_cast <rekordbox_pdb_t ::genre_row_t *>(
549+ rowRef->body ());
565550 genresMap[genre->id ()] = getText (genre->name ());
566551 } break ;
567552 case rekordbox_pdb_t ::PAGE_TYPE_ARTISTS : {
568- // Artist found, update map
569- rekordbox_pdb_t ::artist_row_t * artist =
570- static_cast <rekordbox_pdb_t ::
571- artist_row_t *>(
572- (*rowRef)->body ());
553+ auto * artist =
554+ static_cast <rekordbox_pdb_t ::artist_row_t *>(
555+ rowRef->body ());
573556 artistsMap[artist->id ()] = getText (artist->name ());
574557 } break ;
575558 case rekordbox_pdb_t ::PAGE_TYPE_ALBUMS : {
576- // Album found, update map
577- rekordbox_pdb_t ::album_row_t * album =
578- static_cast <rekordbox_pdb_t ::
579- album_row_t *>(
580- (*rowRef)->body ());
559+ auto * album =
560+ static_cast <rekordbox_pdb_t ::album_row_t *>(
561+ rowRef->body ());
581562 albumsMap[album->id ()] = getText (album->name ());
582563 } break ;
583564 case rekordbox_pdb_t ::PAGE_TYPE_PLAYLIST_ENTRIES : {
584- // Playlist to track mapping found, update map
585- rekordbox_pdb_t ::playlist_entry_row_t *
586- playlistEntry = static_cast <
587- rekordbox_pdb_t ::
588- playlist_entry_row_t *>(
589- (*rowRef)->body ());
565+ auto * playlistEntry =
566+ static_cast <rekordbox_pdb_t ::playlist_entry_row_t *>(
567+ rowRef->body ());
590568 playlistTrackMap
591569 [playlistEntry->playlist_id ()]
592570 [playlistEntry->entry_index ()] =
593571 playlistEntry
594572 ->track_id ();
595573 } break ;
596574 case rekordbox_pdb_t ::PAGE_TYPE_TRACKS : {
597- // Track found, insert into database
598575 insertTrack (database,
599- static_cast <rekordbox_pdb_t ::
600- track_row_t *>(
601- (*rowRef)->body ()),
576+ static_cast <rekordbox_pdb_t ::track_row_t *>(
577+ rowRef->body ()),
602578 query,
603579 queryInsertIntoDevicePlaylistTracks,
604580 artistsMap,
@@ -612,12 +588,9 @@ QString parseDeviceDB(mixxx::DbConnectionPoolPtr dbConnectionPool, TreeItem* dev
612588 audioFilesCount++;
613589 } break ;
614590 case rekordbox_pdb_t ::PAGE_TYPE_PLAYLIST_TREE : {
615- // Playlist tree node found, update map
616- rekordbox_pdb_t ::playlist_tree_row_t *
617- playlistTree = static_cast <
618- rekordbox_pdb_t ::
619- playlist_tree_row_t *>(
620- (*rowRef)->body ());
591+ auto * playlistTree =
592+ static_cast <rekordbox_pdb_t ::playlist_tree_row_t *>(
593+ rowRef->body ());
621594
622595 playlistNameMap[playlistTree->id ()] =
623596 getText (playlistTree->name ());
@@ -632,6 +605,8 @@ QString parseDeviceDB(mixxx::DbConnectionPoolPtr dbConnectionPool, TreeItem* dev
632605 folderOrPlaylistFound = true ;
633606 } break ;
634607 default :
608+ // we currently don't handle any other
609+ // data, even though there is more.
635610 break ;
636611 }
637612 }
@@ -909,27 +884,21 @@ void readAnalyze(TrackPointer track,
909884 QList<memory_cue_loop_t > memoryCuesAndLoops;
910885 int lastHotCueIndex = 0 ;
911886
912- for (std::vector<rekordbox_anlz_t ::tagged_section_t *>::iterator section =
913- anlz.sections ()->begin ();
914- section != anlz.sections ()->end ();
915- ++section) {
916- switch ((*section)->fourcc ()) {
887+ for (const auto & section : *anlz.sections ()) {
888+ switch (section->fourcc ()) {
917889 case rekordbox_anlz_t ::SECTION_TAGS_BEAT_GRID : {
918890 if (!ignoreCues) {
919891 break ;
920892 }
921893
922- rekordbox_anlz_t :: beat_grid_tag_t * beatGridTag =
894+ auto * beatGridTag =
923895 static_cast <rekordbox_anlz_t ::beat_grid_tag_t *>(
924- (* section) ->body ());
896+ section->body ());
925897
926898 QVector<mixxx::audio::FramePos> beats;
927899
928- for (std::vector<rekordbox_anlz_t ::beat_grid_beat_t *>::iterator
929- beat = beatGridTag->beats ()->begin ();
930- beat != beatGridTag->beats ()->end ();
931- ++beat) {
932- int time = static_cast <int >((*beat)->time ()) - timingOffset;
900+ for (const auto & beat : *beatGridTag->beats ()) {
901+ int time = static_cast <int >(beat->time ()) - timingOffset;
933902 // Ensure no offset times are less than 1
934903 if (time < 1 ) {
935904 time = 1 ;
@@ -948,15 +917,12 @@ void readAnalyze(TrackPointer track,
948917 break ;
949918 }
950919
951- rekordbox_anlz_t :: cue_tag_t * cuesTag =
920+ auto * cuesTag =
952921 static_cast <rekordbox_anlz_t ::cue_tag_t *>(
953- (* section) ->body ());
922+ section->body ());
954923
955- for (std::vector<rekordbox_anlz_t ::cue_entry_t *>::iterator
956- cueEntry = cuesTag->cues ()->begin ();
957- cueEntry != cuesTag->cues ()->end ();
958- ++cueEntry) {
959- int time = static_cast <int >((*cueEntry)->time ()) - timingOffset;
924+ for (const auto & cueEntry : *cuesTag->cues ()) {
925+ int time = static_cast <int >(cueEntry->time ()) - timingOffset;
960926 // Ensure no offset times are less than 1
961927 if (time < 1 ) {
962928 time = 1 ;
@@ -966,7 +932,7 @@ void readAnalyze(TrackPointer track,
966932
967933 switch (cuesTag->type ()) {
968934 case rekordbox_anlz_t ::CUE_LIST_TYPE_MEMORY_CUES : {
969- switch ((* cueEntry) ->type ()) {
935+ switch (cueEntry->type ()) {
970936 case rekordbox_anlz_t ::CUE_ENTRY_TYPE_MEMORY_CUE : {
971937 memory_cue_loop_t memoryCue;
972938 memoryCue.startPosition = position;
@@ -975,7 +941,7 @@ void readAnalyze(TrackPointer track,
975941 memoryCuesAndLoops << memoryCue;
976942 } break ;
977943 case rekordbox_anlz_t ::CUE_ENTRY_TYPE_LOOP : {
978- int endTime = static_cast <int >((* cueEntry) ->loop_time ()) - timingOffset;
944+ int endTime = static_cast <int >(cueEntry->loop_time ()) - timingOffset;
979945 // Ensure no offset times are less than 1
980946 if (endTime < 1 ) {
981947 endTime = 1 ;
@@ -991,7 +957,7 @@ void readAnalyze(TrackPointer track,
991957 }
992958 } break ;
993959 case rekordbox_anlz_t ::CUE_LIST_TYPE_HOT_CUES : {
994- int hotCueIndex = static_cast <int >((* cueEntry) ->hot_cue () - 1 );
960+ int hotCueIndex = static_cast <int >(cueEntry->hot_cue () - 1 );
995961 if (hotCueIndex > lastHotCueIndex) {
996962 lastHotCueIndex = hotCueIndex;
997963 }
@@ -1011,15 +977,12 @@ void readAnalyze(TrackPointer track,
1011977 break ;
1012978 }
1013979
1014- rekordbox_anlz_t :: cue_extended_tag_t * cuesExtendedTag =
980+ auto * cuesExtendedTag =
1015981 static_cast <rekordbox_anlz_t ::cue_extended_tag_t *>(
1016- (* section) ->body ());
982+ section->body ());
1017983
1018- for (std::vector<rekordbox_anlz_t ::cue_extended_entry_t *>::iterator
1019- cueExtendedEntry = cuesExtendedTag->cues ()->begin ();
1020- cueExtendedEntry != cuesExtendedTag->cues ()->end ();
1021- ++cueExtendedEntry) {
1022- int time = static_cast <int >((*cueExtendedEntry)->time ()) - timingOffset;
984+ for (const auto & cueExtendedEntry : *cuesExtendedTag->cues ()) {
985+ int time = static_cast <int >(cueExtendedEntry->time ()) - timingOffset;
1023986 // Ensure no offset times are less than 1
1024987 if (time < 1 ) {
1025988 time = 1 ;
@@ -1029,20 +992,20 @@ void readAnalyze(TrackPointer track,
1029992
1030993 switch (cuesExtendedTag->type ()) {
1031994 case rekordbox_anlz_t ::CUE_LIST_TYPE_MEMORY_CUES : {
1032- switch ((* cueExtendedEntry) ->type ()) {
995+ switch (cueExtendedEntry->type ()) {
1033996 case rekordbox_anlz_t ::CUE_ENTRY_TYPE_MEMORY_CUE : {
1034997 memory_cue_loop_t memoryCue;
1035998 memoryCue.startPosition = position;
1036999 memoryCue.endPosition = mixxx::audio::kInvalidFramePos ;
1037- memoryCue.comment = toUnicode ((* cueExtendedEntry) ->comment ());
1000+ memoryCue.comment = toUnicode (cueExtendedEntry->comment ());
10381001 memoryCue.color = colorFromID (static_cast <int >(
1039- (* cueExtendedEntry) ->color_id ()));
1002+ cueExtendedEntry->color_id ()));
10401003 memoryCuesAndLoops << memoryCue;
10411004 } break ;
10421005 case rekordbox_anlz_t ::CUE_ENTRY_TYPE_LOOP : {
10431006 int endTime =
10441007 static_cast <int >(
1045- (* cueExtendedEntry) ->loop_time ()) -
1008+ cueExtendedEntry->loop_time ()) -
10461009 timingOffset;
10471010 // Ensure no offset times are less than 1
10481011 if (endTime < 1 ) {
@@ -1053,28 +1016,28 @@ void readAnalyze(TrackPointer track,
10531016 loop.startPosition = position;
10541017 loop.endPosition = mixxx::audio::FramePos (
10551018 sampleRateKhz * static_cast <double >(endTime));
1056- loop.comment = toUnicode ((* cueExtendedEntry) ->comment ());
1057- loop.color = colorFromID (static_cast <int >((* cueExtendedEntry) ->color_id ()));
1019+ loop.comment = toUnicode (cueExtendedEntry->comment ());
1020+ loop.color = colorFromID (static_cast <int >(cueExtendedEntry->color_id ()));
10581021 memoryCuesAndLoops << loop;
10591022 } break ;
10601023 }
10611024 } break ;
10621025 case rekordbox_anlz_t ::CUE_LIST_TYPE_HOT_CUES : {
1063- int hotCueIndex = static_cast <int >((* cueExtendedEntry) ->hot_cue () - 1 );
1026+ int hotCueIndex = static_cast <int >(cueExtendedEntry->hot_cue () - 1 );
10641027 if (hotCueIndex > lastHotCueIndex) {
10651028 lastHotCueIndex = hotCueIndex;
10661029 }
10671030 setHotCue (track,
10681031 position,
10691032 mixxx::audio::kInvalidFramePos ,
10701033 hotCueIndex,
1071- toUnicode ((* cueExtendedEntry) ->comment ()),
1034+ toUnicode (cueExtendedEntry->comment ()),
10721035 mixxx::RgbColor (qRgb (
10731036 static_cast <int >(
1074- (* cueExtendedEntry) ->color_red ()),
1037+ cueExtendedEntry->color_red ()),
10751038 static_cast <int >(
1076- (* cueExtendedEntry) ->color_green ()),
1077- static_cast <int >((* cueExtendedEntry)
1039+ cueExtendedEntry->color_green ()),
1040+ static_cast <int >(cueExtendedEntry
10781041 ->color_blue ()))));
10791042 } break ;
10801043 }
0 commit comments