// Library // // Douglas Thrift // // $Id$ #include #include #include "Library.hpp" Library::Library(const _R& connection) : connection(connection) { connection->Execute(_B("UPDATE files SET live = FALSE")); } _L Library::GetArtists() const { _R artists_(connection->Execute(_B("SELECT DISTINCT artist FROM files WHERE live = TRUE"))); _L artists; while (artists_->MoveNext()) artists.InsertLast(artists_->GetString(_B("artist"))); return artists; } _L Library::GetTitles() const { _R titles_(connection->Execute(_B("SELECT DISTINCT title FROM files WHERE live = TRUE"))); _L titles; while (titles_->MoveNext()) titles.InsertLast(titles_->GetString(_B("title"))); return titles; } _L Library::GetAlbums() const { _R albums_(connection->Execute(_B("SELECT DISTINCT album FROM files WHERE live = TRUE"))); _L albums; while (albums_->MoveNext()) albums.InsertLast(albums_->GetString(_B("album"))); return albums; } _L Library::GetGenres() const { _R genres_(connection->Execute(_B("SELECT DISTINCT album FROM files WHERE live = TRUE"))); _L genres; while (genres_->MoveNext()) genres.InsertLast(genres_->GetString(_B("genre"))); return genres; } _L Library::GetFolders() const { _R paths(connection->Execute(_B("SELECT DISTINCT root FROM files WHERE live = TRUE"))); _L folders; while (paths->MoveNext()) folders.InsertLast(MediaFolder(connection, paths->GetString(_B("path")))); return folders; }