improve getting album's year in media library screen

This commit is contained in:
unK
2008-09-06 09:18:00 +02:00
parent 8de50a3c34
commit e171b907e9
3 changed files with 14 additions and 17 deletions

View File

@@ -1,7 +1,7 @@
AC_INIT(configure.in) AC_INIT(configure.in)
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(ncmpcpp, 0.2.2) AM_INIT_AUTOMAKE(ncmpcpp, 0.2.3_pre)
AC_PREREQ(2.59) AC_PREREQ(2.59)

View File

@@ -67,6 +67,7 @@ ncmpcpp_config Config;
ncmpcpp_keys Key; ncmpcpp_keys Key;
SongList vSearched; SongList vSearched;
std::map<string, string> vAlbums;
vector<int> vFoundPositions; vector<int> vFoundPositions;
int found_pos = 0; int found_pos = 0;
@@ -484,10 +485,12 @@ int main(int argc, char *argv[])
{ {
mLibAlbums->Reset(); mLibAlbums->Reset();
mLibSongs->Clear(0); mLibSongs->Clear(0);
vAlbums.clear();
TagList list; TagList list;
Mpd->GetAlbums(mLibArtists->GetOption(), list); Mpd->GetAlbums(mLibArtists->GetOption(), list);
for (TagList::iterator it = list.begin(); it != list.end(); it++) for (TagList::const_iterator it = list.begin(); it != list.end(); it++)
{ {
bool written = 0;
SongList l; SongList l;
Mpd->StartSearch(1); Mpd->StartSearch(1);
Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetOption()); Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetOption());
@@ -497,15 +500,17 @@ int main(int argc, char *argv[])
{ {
if ((*j)->GetYear() != EMPTY_TAG) if ((*j)->GetYear() != EMPTY_TAG)
{ {
*it = "(" + (*j)->GetYear() + ") " + *it; vAlbums["(" + (*j)->GetYear() + ") " + *it] = *it;
written = 1;
break; break;
} }
} }
if (!written)
vAlbums[*it] = *it;
FreeSongList(l); FreeSongList(l);
} }
sort(list.begin(), list.end()); for (std::map<string, string>::const_iterator it = vAlbums.begin(); it != vAlbums.end(); it++)
for (TagList::const_iterator it = list.begin(); it != list.end(); it++) mLibAlbums->AddOption(it->first);
mLibAlbums->AddOption(*it);
mLibAlbums->Window::Clear(); mLibAlbums->Window::Clear();
mLibAlbums->Refresh(); mLibAlbums->Refresh();
} }
@@ -534,17 +539,8 @@ int main(int argc, char *argv[])
mLibSongs->Clear(0); mLibSongs->Clear(0);
Mpd->StartSearch(1); Mpd->StartSearch(1);
Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetOption()); Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetOption());
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, mLibAlbums->GetOption()); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, vAlbums[mLibAlbums->GetOption()]);
Mpd->CommitSearch(list); Mpd->CommitSearch(list);
if (list.empty())
{
const int year_length = 7;
const string &album = mLibAlbums->GetOption();
Mpd->StartSearch(1);
Mpd->AddSearch(MPD_TAG_ITEM_ARTIST, mLibArtists->GetOption());
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, album.substr(year_length));
Mpd->CommitSearch(list);
}
} }
sort(list.begin(), list.end(), SortSongsByTrack); sort(list.begin(), list.end(), SortSongsByTrack);
bool bold = 0; bool bold = 0;
@@ -1164,7 +1160,7 @@ int main(int argc, char *argv[])
Mpd->QueueAddSong(mLibSongs->at(i)); Mpd->QueueAddSong(mLibSongs->at(i));
if (Mpd->CommitQueue()) if (Mpd->CommitQueue())
{ {
ShowMessage("Adding songs from: " + mLibArtists->GetOption() + " \"" + mLibAlbums->GetOption() + "\""); ShowMessage("Adding songs from: " + mLibArtists->GetOption() + " \"" + vAlbums[mLibAlbums->GetOption()] + "\"");
Song *s = &mPlaylist->at(mPlaylist->Size()-mLibSongs->Size()); Song *s = &mPlaylist->at(mPlaylist->Size()-mLibSongs->Size());
if (s->GetHash() == mLibSongs->at(0).GetHash()) if (s->GetHash() == mLibSongs->at(0).GetHash())
{ {

View File

@@ -41,6 +41,7 @@ const bool UNICODE = 0;
#include <clocale> #include <clocale>
#include <ctime> #include <ctime>
#include <unistd.h> #include <unistd.h>
#include <map>
#include <vector> #include <vector>
#include "window.h" #include "window.h"