From Amarok Wiki
Proposals/Support for multiple tags
| State: draft | Target release: 2.4.3 |
| Percent completed: 2 | Creator: Horrendus |
| Scope/Difficulty: 5 | Driver: Horrendus |
| Priority: 4 | Assignee: Horrendus |
Summary
Add Support for Multiple Artist/Album/Genre/... Tags to Amarok
Extended information and rationale
ID3v2 and many other Tagging Systems allow Multiple Tags. Amarok ignores them. Users wish for mutliple Tags to be read & to be editable by Amarok.
Related bug reports and branches
https://bugs.kde.org/show_bug.cgi?id=119539 http://bugs.kde.org/show_bug.cgi?id=137756
Discussion
Please discuss this proposal on its discussion page.
TODO
- ) Try how TagLib Support looks - done, example file see tagtest.cpp Gist
- ) Plan how to save multiple Tags in the XML File of the Collection Scanner - planning example: http://piratepad.net/QYDQn3Ardp
- ) Change Collection Scanner to scan all the Multiple Tags and put them in the XML File
- ) Plan how to save them in the Database
- ) Change MetaTrack to return lists for genre and others. So instead of a GenrePtr genre() const; we should have GenreList genres() const;
- ) Change Database. We would have a standard normalized database table layout. e.g. since Tracks<->Genre is a n:m relation we need a relation table. (change DatabaseUpdater)
- ) Change Classes (SqlMeta, SqlRegistry and SqlRegistryPrivate) to handle the changed database layout.
- ) Change the ScanManager to use all the new stuff.
- ) Plan how to display multiple Tags in the UI
- ) Change UI (CollectionBrowser, CurrentTrack Applet, Meta Data editor, Playlist items)
Working mode:
- ) Start after 2.4.2 release
- ) Use independent changes. E.g. changing the collection scanner XML but for a first step not using the information. Or returning GenreLists but for a first try just using the first entry, disregarding further genre results. This working mode allows us to always have a running Amarok and no need for a big merge when everything is done.
- ) Work on a separate branch when we need to put all the parts together.