| blackhole89's generic site thing
main · stuff dump · foobar2000 plugins · db plugins · compiz-ringmenu · epic fail game · sst · f.lists · blog · pics · links


These are two plugins for version 0.4.4 of the media player DeaDBeeF which provide a system of creating playlists which, in reality, work a lot like a sort of persistent search query (called derived playlists. Although there are still some glaring feature gaps and stubs, the syntax for those queries, in fact, already is significantly more powerful than the default search function. Searches are reperformed across all normal playlists open whenever the derived playlist is activated, although this is a candidate for future improvement.

A playlist is turned into a derived playlist by setting its title to something following the format %name%query, hwhere query is a query string following the following format:
query ::= secondary | secondary '&' secondary | secondary '|' secondary
secondary ::= '!' secondary | '(' query ')' | criterion
criterion ::= format_string '=' string | format_string '>' string
format_string ::= '%PL%' | deadbeef_title_format_string
where & is conjunction, | is disjunction, ! is negation, = denotes string equality, > denotes string containment (i.e. the right string being a substring of the left) and %PL% is the name of the playlist a song is contained in. For example, a playlist with the name %DerivedPlaylist%%PL%=plname|(!%a %t>cakes&%a>pie)|%t=food would contain all songs contained in playlist "plname", having title "food" or both containing "pie" in their album and "cakes" in their "album title" string.

In order to avoid having to deal with those mangled playlist names on an everyday basis, the dpl plugin is accompanied by a mod of the default Gtk UI plugin which highlights derived playlists in blue while only showing their "name" part in the tab title, while still allowing the actual name to be edited. Furthermore, the plugin introduces the ability of setting the vertical size of playlist items via the preferences menu, thus enabling a more compact and less wasteful display than the default GtkTreeView one. (cf. screenshot)

Source and compiled builds of the plugins (to be unpacked in / as root, for nonportable installations) are available.

gtkui2.tar.gz (255KB) - modded gtkui source (2011-04-14)
dpl.tar.gz (2KB) - dpl source (2011-04-14)
gtkui2-bin.tar.gz (446KB) - modded gtkui binary (2011-04-14)
dpl-bin.tar.gz (12KB) - dpl binary (2011-04-14)