--- a/src/SongFilter.hxx
+++ b/src/SongFilter.hxx
@@ -34,6 +34,7 @@ struct TagItem;
 struct Song;
 
 class SongFilter {
+public:
 	class Item {
 		uint8_t tag;
 
@@ -60,6 +61,12 @@ class SongFilter {
 		unsigned GetTag() const {
 			return tag;
 		}
+		const char *GetValue() const {
+			return value;
+		}
+		bool GetFold() const {
+			return fold_case;
+		}
 
 		gcc_pure gcc_nonnull(2)
 		bool StringMatch(const char *s) const;
@@ -73,7 +80,7 @@ class SongFilter {
 		gcc_pure
 		bool Match(const Song &song) const;
 	};
-
+private:
 	std::list<Item> items;
 
 public:
@@ -95,6 +102,11 @@ public:
 
 	gcc_pure
 	bool Match(const Song &song) const;
+
+	const std::list<Item>* GetItems() const
+	{
+		return &items;
+	}
 };
 
 /**
diff --git a/src/db/ProxyDatabasePlugin.cxx b/src/db/ProxyDatabasePlugin.cxx
index 2b8850f..9fd037d 100644
