--- /dev/null
+#ifndef MSP_DATAFILE_BUILTINSOURCE_H_
+#define MSP_DATAFILE_BUILTINSOURCE_H_
+
+#include "collectionsource.h"
+
+namespace Msp {
+namespace DataFile {
+
+class BuiltinSource: public CollectionSource
+{
+private:
+ struct Object
+ {
+ const char *data;
+ unsigned size;
+
+ Object();
+ Object(const char *, unsigned);
+ };
+
+ typedef std::map<std::string, Object> ObjectMap;
+
+ ObjectMap objects;
+
+public:
+ void add_object(const std::string &, const char *, unsigned);
+ void add_object(const std::string &, const char *);
+
+ virtual bool is_loadable(const CollectionItemTypeBase &, const std::string &) const;
+ virtual NameList get_names(const CollectionItemTypeBase &) const;
+ virtual void load(Collection &, const CollectionItemTypeBase &, const std::string &) const;
+ virtual IO::Seekable *open(const std::string &) const;
+};
+
+} // namespace DataFile
+} // namespace Msp
+
+#endif