diff foosdk/sdk/foobar2000/helpers/file_list_helper.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foosdk/sdk/foobar2000/helpers/file_list_helper.h	Mon Jan 05 02:15:46 2026 -0500
@@ -0,0 +1,28 @@
+#pragma once
+
+namespace file_list_helper
+{
+	typedef pfc::list_base_const_t<const char*> base_t;
+
+	//list guaranteed to be sorted by metadb::path_compare
+	class file_list_from_metadb_handle_list : public base_t {
+	public:
+		file_list_from_metadb_handle_list() {}
+		file_list_from_metadb_handle_list( metadb_handle_list_cref lst, bool bDisplayPaths = false );
+
+		static t_size g_get_count(const list_base_const_t<metadb_handle_ptr> & p_list, t_size max = SIZE_MAX);
+
+		void init_from_list(const list_base_const_t<metadb_handle_ptr> & p_list);
+		void init_from_list_display(const list_base_const_t<metadb_handle_ptr> & p_list);
+
+		t_size get_count() const;
+		void get_item_ex(const char * & p_out,t_size n) const;
+
+		~file_list_from_metadb_handle_list();
+
+	private:
+		void _add(const char * p_what);
+		pfc::ptr_list_t<char> m_data;
+	};
+};
+