ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/DecentralizedMedia/Library.cpp
Revision: 549
Committed: 2005-07-04T21:28:02-07:00 (19 years, 11 months ago) by douglas
File size: 1718 byte(s)
Log Message:
WTF!

File Contents

# User Rev Content
1 douglas 542 // Library
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7     #include <menes/standard.hh>
8    
9 douglas 549 #include <menes/dbi/resultset.hpp>
10 douglas 542
11     #include "Library.hpp"
12    
13     Library::Library(const _R<dbi::Connection>& connection) : connection(connection)
14     {
15     connection->Execute(_B("UPDATE files SET live = FALSE"));
16     }
17    
18     _L<cse::String> Library::GetArtists() const
19     {
20     _R<dbi::ResultSet> artists_(connection->Execute(_B("SELECT DISTINCT artist FROM files WHERE live = TRUE")));
21     _L<cse::String> artists;
22    
23     while (artists_->MoveNext())
24     artists.InsertLast(artists_->GetString(_B("artist")));
25    
26     return artists;
27     }
28    
29     _L<cse::String> Library::GetTitles() const
30     {
31     _R<dbi::ResultSet> titles_(connection->Execute(_B("SELECT DISTINCT title FROM files WHERE live = TRUE")));
32     _L<cse::String> titles;
33    
34     while (titles_->MoveNext())
35     titles.InsertLast(titles_->GetString(_B("title")));
36    
37     return titles;
38     }
39    
40     _L<cse::String> Library::GetAlbums() const
41     {
42     _R<dbi::ResultSet> albums_(connection->Execute(_B("SELECT DISTINCT album FROM files WHERE live = TRUE")));
43     _L<cse::String> albums;
44    
45     while (albums_->MoveNext())
46     albums.InsertLast(albums_->GetString(_B("album")));
47    
48     return albums;
49     }
50    
51     _L<cse::String> Library::GetGenres() const
52     {
53     _R<dbi::ResultSet> genres_(connection->Execute(_B("SELECT DISTINCT album FROM files WHERE live = TRUE")));
54     _L<cse::String> genres;
55    
56     while (genres_->MoveNext())
57     genres.InsertLast(genres_->GetString(_B("genre")));
58    
59     return genres;
60     }
61    
62     _L<MediaFolder> Library::GetFolders() const
63     {
64 douglas 546 _R<dbi::ResultSet> roots(connection->Execute(_B("SELECT DISTINCT root FROM files WHERE live = TRUE")));
65 douglas 542 _L<MediaFolder> folders;
66    
67 douglas 546 while (roots->MoveNext())
68     folders.InsertLast(MediaFolder(connection, roots->GetString(_B("root"))));
69 douglas 542
70     return folders;
71     }

Properties

Name Value
svn:eol-style native
svn:keywords Id