media-db: Add possibilty for meta-data field query
authorJens Georg <mail@jensge.org>
Fri, 1 Jan 2010 17:20:41 +0000 (18:20 +0100)
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>
Sun, 14 Mar 2010 22:34:54 +0000 (00:34 +0200)
src/rygel/rygel-media-db.vala

index 6a37bf1..285b442 100644 (file)
@@ -904,4 +904,25 @@ public class Rygel.MediaDB : Object {
         return "%s %s ?".printf (column, func);
     }
 
+    public Gee.List<string> get_meta_data_column_by_filter (
+                                       string          column,
+                                       string          filter,
+                                       GLib.ValueArray args,
+                                       long            offset,
+                                       long            max_count) throws Error {
+        GLib.Value v = offset;
+        args.append (v);
+        v = max_count;
+        args.append (v);
+        var data = new ArrayList<string> ();
+        Rygel.Database.RowCallback cb = (stmt) => {
+            data.add (stmt.column_text (0));
+        };
+
+        this.db.exec (("SELECT DISTINCT %s FROM meta_data AS m %s " +
+                      "ORDER BY %s LIMIT ?,?").printf(column, filter, column),
+                      args.values, cb);
+
+        return data;
+    }
 }