[Rhythmbox-devel] Additional automatic playlist criteria patch(es)



G'day everyone,

I've finally gotten around to porting more of the auto playlist stuff
from my arch branch to cvs. I've made patches that a fair few of the
rest of the metadata that RB supports to the playlist editor. If you
just want to look and play with it, use patch [0] - the others are the
same, but broken up into logical parts. This is similar, but to quite
the same, to what I had in my arch branch.


Patch [1] makes some changes to how the query editor deals with
different properties, so that when you add a new supported property you
don't have to change five different parts of the file. I've broken the
actual property-related bits out into a different file, because
rb-query-creator.c was getting very cluttered with the new stuff in
there, but it's easy enough to change back if it's a bad idea.

Basically what it does is add a new field to the table of properties,
which identifies it's "type". Each "type" is defined by it's list of
criteria and the entry widget(s) that it uses. If you want to add a new
property of an existing type, it's a simple matter of adding it to the
property_options array.

Adding a new type (say boolean, for "autorate"), all that is needed is
to create a new RBQueryCreatorPropertyType filled in correctly, and
write the functions to deal with the entry widget(s).


I think this adds flexibility, as I've thought of a couple of features
that could be implemented more easily with it structured like this:

1) not recreate the entry widget(s) if you change the property to one of
the same type (i.e. property_type is the same). This would mean that the
entry widget wouldn't get cleared when changing from title to artist.

2) make the entry widgets based on criteria, not properties. This would
let us add "between" criteria, which have different widgets to the other
criteria for the same property.


Patch [1] adds the integer properties (play count, track #, disc # and
bitrate); [2] adds duration and [3] and relative time based ones (first
added, last played).

I didn't think the other properties (replay gain ones, file size,
mime-type, mountpoint, last seen and modification) were worth adding,
but they would be easy enough to do.


[0]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-combined.patch
[1]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-structure.patch
[2]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-integer.patch
[3]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-duration.patch
[4]http://www.ids.org.au/~jrl/rhythmbox/rb-query-creator-relative-time.patch


Cheers,

James "Doc" Livingston 
-- 
"He's right, guys... Just checked it with MS Word spellchecker, 'virii'
gives me a squiggly red underline, but 'viruses' doesn't. And let's face
it, if anyone should know..." -- from Slashdot

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]