#include "music.h" #include #include #include #include #include #include namespace music { MusicDirectory *root_directory = NULL; void init(const std::string root) { root_directory = new MusicDirectory(root); } }; MusicTrack::MusicTrack(const std::string filename) { printf("%s\n", filename.c_str()); this->filename = filename; } MusicDirectory::MusicDirectory(const std::string root) { printf("%s\n", root.c_str()); DIR *d = opendir(root.c_str()); if(!d) { throw std::runtime_error(strerror(errno)); } struct dirent *dir; while((dir = readdir(d)) != NULL) { if(strcmp(dir->d_name, ".") == 0 || strcmp(dir->d_name, "..") == 0) continue; if(dir->d_type == DT_DIR) { directories.push_back(MusicDirectory(root + "/" + dir->d_name)); } else if(dir->d_type == DT_REG) { tracks.push_back(MusicTrack(root + "/" + dir->d_name)); } } closedir(d); }