This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

Things that (might) need to be done to RhythmDB in the future. These are merely sketches of shadows of ideas.

Multi-valued properties (artist, album, etc.)

Entry-type specific properties

If we're going to convert the existing podcast code into plugin form, entry types will need to be able to register new properties. These properties will need to be usable through normal(ish) queries so that they can be used to perform searches and such. An initial proposal:

Allocate property IDs the same way we allocate entry types. A custom property ID would be a pointer to a structure containing:

This might get slightly messy if the built-in property IDs stayed as small sequential integers.

Values stored in the on-disk db would probably work OK. If the entry type isn't registered, then the entry is stored in the unknown-entry-types map; if the entry type is registered, then the property must be too. This would require a small change to entry type registration, splitting it into entry type creation, followed by registration of properties, then registration.

This should be enough to allow entry-type specific properties to be used in queries. Changes could be propagated as normal, and query conditions could be evaluated easily enough.

Python bindings

The query creation functions all use varargs, which the python binding tools don't support.

The multi-valued and custom property stuff above might cause some problems.

DBus bindings

?


2024-10-23 10:58