GNOME Bugzilla – Bug 330259
Support arbitrary metadata
Last modified: 2018-05-24 11:21:38 UTC
Rhythmbox should have a mechanism for attaching arbitrary metadata to RhythmDBEntries. Such as a map of (entry, metadata-tag)->value. This could be implemented by rhythmdb-tree having a GHashTable per metadata-tag which maps RhythmDBEntry->GValue, and a main GHashTable which maps RBRefString->GHashTable. This would be useful for 1) storing type-specific metadata (e.g. podcast data under "podcast:status", "podcast:copyright" etc), 2) arbitrary "tags" or "categories" under "category:foo", and 3) some of the current data that is often unused "rb:playback-error".
For serialisation/deserialisation we would also need a (metadata-tag)->(type) mapping. We could have the main hash table be (RBRefString) -> (GType, GHashTable). If the GType is NULL when saving then it would not be serialised. If the GType is NULL when deserialising, we would probably need to load it anyway in case there are plugins which haven't registered the it yet. Perhaps we could do the transformation into the real type when it is registered later.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/141.