[mythtv] Heads up: Smart playlists in MythMusic

Joseph A. Caputo jcaputo1 at comcast.net
Mon Jan 26 15:56:55 EST 2004

On Monday 26 January 2004 14:41, Kevin Kuphal wrote:
> Just a heads up that I should be submitting a patch soon that adds
> basic backend smart playlist support.  That is, right now, there is
> no GUI to configure it but you can edit the playlist entries in the
> DB to configure.
> Right now a list is defined in place of the comma delimited list of
> song Ids in the musicplaylist table like:
> smart:[any|all]:[field],[operand],[result];[...]
> any|all: Either any or all depending on whether you want all
> conditions met or any condition
> field: any field from the musicmetadata table
> operand: any valid SQL operator like =, <, >, LIKE, etc.
> result: the value to test against.  Text must be quoted.
> So
> smart:all:artist,=,"Fuel";playcount,>,1
> Would generate a playlist at selection time with this SQL:
> SELECT intid FROM musicmetadata WHERE artist = "Fuel" AND playcount >
> 1;
> I have to do some more testing but it seems to work so far.
> Kevin

Why the need for all the commas in the database?  Why not just store the 
SQL query, starting with everything after 'WHERE'?  So, 
"smart:all:artist,=,"Fuel";playcount,>,1" becomes "smart:artist = 
'Fuel' AND playcount > 1"

This way it's really easy for anybody hand-editing the database, and a 
GUI to construct simple playlist/queries shouldn't be that difficult.  
I'd model it on the common GUI interface for building mail filters.  
Basically you get a 3-part entry form:  a combo list with the column 
names, a combo or lineedit with an operator, and a combo or lineedit 
with the match value (combo is good for picking exact matches, lineedit 
is good for <,>, and LIKE).  Use a checkbox for the any/all, which will 
determine whether the query uses AND or OR.  Then buttons at the bottom 
will add/remove conditions.

I suppose now that I've suggested all this, I should probably put my 
code where my mouth is and write the GUI, hmmm?  I'll volunteer if you 
like, but I can't promise any kind of delivery schedule :-)


More information about the mythtv-dev mailing list