#pragma once #include #include #include #include #include "structs.hpp" class Cartographer { public: Cartographer(); static Cartographer& instance(); static Cartographer* create() { return &instance(); } void addAlbum(KotoAlbum* album); void addArtist(KotoArtist* artist); void addTrack(KotoTrack* track); std::optional getAlbum(QUuid uuid); //.std::optional getAlbum(QString name); std::optional getArtist(QUuid uuid); std::optional getArtist(QString name); std::optional getTrack(QUuid uuid); private: QHash i_albums; QHash i_artists; QHash i_artists_by_name; QHash i_tracks; };