#ifndef MUSIC_H #define MUSIC_H #include "http.h" #include #include #include namespace fs = boost::filesystem; class MusicListing { public: fs::path path; virtual void render(HTTPRequest& req, HTTPResponse& res) = 0; }; class MusicTrack : public MusicListing { public: MusicTrack(const fs::path path); virtual void render(HTTPRequest& req, HTTPResponse& res); }; class MusicDirectory; typedef std::vector MusicDirectories; typedef std::vector MusicTracks; class MusicDirectory : public MusicListing { public: MusicDirectories directories; MusicTracks tracks; MusicDirectory(const fs::path root); virtual void render(HTTPRequest& req, HTTPResponse& res); }; namespace music { extern MusicDirectory *root_directory; void init(std::string root); MusicListing *find(std::string path, MusicDirectory& root); MusicListing *find(std::string path); }; #endif