Artist role filter

Add support for filtering artist lists by artist role.

OpenSubsonic version: 1

OpenSubsonic extension name: artistRoleFilter (As returned by getOpenSubsonicExtensions)

When a server supports this extension it means that it supports filtering the returned artists by role: the role parameter of the getArtists endpoint and the artistRole parameter of the search3 endpoint. (The parameter is named artistRole on search3 to disambiguate it from that endpoint’s album and song results.)

Version 1

You can now filter the artists returned by getArtists and search3 by role, letting clients choose whether they want album artists, track artists, or every artist regardless of role.

Historically these endpoints return only album artists. Some clients want the full set of artists (composers, track artists, etc.) - for example to mirror the whole library - while legacy clients rely on the album-artist-only behavior. This extension lets the client, rather than the server, decide.

The parameter may be repeated to request several roles, using the values found in the ArtistID3 roles field (e.g. albumartist, artist, composer). An artist is returned if it has any of the requested roles. The special value all returns every artist regardless of role.

When the parameter is omitted the server returns what it does today, so the extension is purely additive and existing clients are unaffected. On search3, the parameter only affects the returned artists; albums and songs are unaffected.

This extension requires the support of the role parameter of getArtists and the artistRole parameter of search3.