diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-12-27 18:45:20 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-12-27 18:45:20 +0100 |
commit | 263097e22bdf0a56007644e4d19605371dc79a8f (patch) | |
tree | 1ed40707f9714e178ed07abf834b1a13c33bddc0 /music.h | |
parent | cd8874addb61e11cef83d4be31110ed670b58884 (diff) |
Basic directory listing for HTTP.
Diffstat (limited to 'music.h')
-rw-r--r-- | music.h | 20 |
1 files changed, 15 insertions, 5 deletions
@@ -3,30 +3,40 @@ #include <boost/filesystem.hpp> #include <vector> +#include <iostream> namespace fs = boost::filesystem; -class MusicTrack { +class MusicListing { public: - MusicTrack(const fs::path path); fs::path path; + virtual void render(std::ostream& os) = 0; +}; + +class MusicTrack : public MusicListing { + public: + MusicTrack(const fs::path path); + virtual void render(std::ostream& os); }; class MusicDirectory; typedef std::vector<MusicDirectory> MusicDirectories; typedef std::vector<MusicTrack> MusicTracks; -class MusicDirectory { +class MusicDirectory : public MusicListing { public: - MusicDirectory(const fs::path root); - fs::path path; MusicDirectories directories; MusicTracks tracks; + + MusicDirectory(const fs::path root); + virtual void render(std::ostream& os); }; namespace music { extern MusicDirectory *root_directory; void init(const fs::path root); + MusicListing *find(const std::string path, MusicDirectory& root); + MusicListing *find(const std::string path); }; #endif |