feat(xml): export device libraries as Rekordbox XML - #254
Conversation
| #[must_use] | ||
| pub fn comment(&self) -> &DeviceSQLString { | ||
| &self.offsets.comment | ||
| } | ||
|
|
||
| /// Name of the mix. | ||
| #[must_use] | ||
| pub fn mix_name(&self) -> &DeviceSQLString { | ||
| &self.offsets.mix_name | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
What's the point of these accessors? I don't see any advantage vs just making the fields public. They're currently not public just bc they aren't used anywhere afaik
There was a problem hiding this comment.
Addressed in 5d7e626: I removed the extra comment() / mix_name() accessors, made the corresponding TrackStrings fields public, and changed XML export to read track.offsets.comment / track.offsets.mix_name directly.
Validation: cargo test passes locally.
facc9ee to
29815f3
Compare
|
Thanks for the direction. I retargeted this PR to Current branch state:
Ready for another review when you have time. |
|
Hi, I updated the PR to target the xml-improvements branch and verified the export tests locally. Before I spend more time adding hardware/import proof, can you confirm whether this PR is still eligible for the $200 bounty on #127 if accepted? |
Closes #127.
Summary
document_from_device_exportto build aDJ_PLAYLISTSdocument fromPIONEER/rekordbox/export.pdbfile://localhostlocations, TrackID-keyed playlists, beatgridTEMPOentries, and cuePOSITION_MARKentries from matching ANLZ filesrekordcrate export-xml <EXPORT_PATH> [OUTPUT_FILE]for writing the generated XMLdata/complete_export/demo_tracksPOSITION_MARKelements, includingNum,Type,Start,End, and unsupported hot cue filteringValidation
rustfmt src/pdb/mod.rs src/xml.rs src/main.rs tests/test_xml_export.rscargo testNotes
The repository fixture data does not include real hot cues in
data/complete_export/demo_tracks, so the integration fixture primarily covers the full export path, track metadata, playlists, and beatgridTEMPOentries. The added XML unit tests cover the hot cue and memory loopPOSITION_MARKbehavior directly.I do not have access to a mid-2010s CDJ for the optional hardware/video proof described in #127, so this PR focuses on a deterministic implementation and test coverage inside the repository.