change namespace MediaLibrary into class

This commit is contained in:
Andrzej Rybczak
2009-02-14 17:38:39 +01:00
parent 111652e2d6
commit 5a06f2a4fc
8 changed files with 254 additions and 226 deletions

View File

@@ -39,10 +39,10 @@ namespace Global
// extern Menu<MPD::Item> *myBrowser->Main();
// extern Menu< std::pair<Buffer *, MPD::Song *> > *mSearcher;
extern Window *wLibActiveCol;
extern Menu<std::string> *mLibArtists;
extern Menu<string_pair> *mLibAlbums;
extern Menu<MPD::Song> *mLibSongs;
// extern Window *wLibActiveCol;
// extern Menu<std::string> *myLibrary->Artists;
// extern Menu<string_pair> *myLibrary->Albums;
// extern Menu<MPD::Song> *myLibrary->Songs;
# ifdef HAVE_TAGLIB_H
extern Window *wTagEditorActiveCol;

View File

@@ -81,7 +81,7 @@ void Info::GetSong()
redraw_header = 1;
if (current_screen == csLibrary)
{
MediaLibrary::Refresh();
myLibrary->Refresh();
}
else if (current_screen == csPlaylistEditor)
{
@@ -98,7 +98,7 @@ void Info::GetSong()
(wCurrent == myPlaylist->Main() && !myPlaylist->Main()->Empty())
|| (wCurrent == myBrowser->Main() && myBrowser->Main()->Current().type == MPD::itSong)
|| (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| (wCurrent == mLibSongs && !mLibSongs->Empty())
|| (wCurrent == myLibrary->Songs && !myLibrary->Songs->Empty())
|| (wCurrent == mPlaylistEditor && !mPlaylistEditor->Empty())
# ifdef HAVE_TAGLIB_H
|| (wCurrent == mEditorTags && !mEditorTags->Empty())
@@ -119,7 +119,7 @@ void Info::GetSong()
s = mySearcher->Main()->at(id).second;
break;
case csLibrary:
s = &mLibSongs->at(id);
s = &myLibrary->Songs->at(id);
break;
case csPlaylistEditor:
s = &mPlaylistEditor->at(id);
@@ -168,7 +168,7 @@ void Info::GetArtist()
redraw_header = 1;
if (current_screen == csLibrary)
{
MediaLibrary::Refresh();
myLibrary->Refresh();
}
else if (current_screen == csPlaylistEditor)
{
@@ -185,8 +185,8 @@ void Info::GetArtist()
(wCurrent == myPlaylist->Main() && !myPlaylist->Main()->Empty())
|| (wCurrent == myBrowser->Main() && myBrowser->Main()->Current().type == MPD::itSong)
|| (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| (wCurrent == mLibArtists && !mLibArtists->Empty())
|| (wCurrent == mLibSongs && !mLibSongs->Empty())
|| (wCurrent == myLibrary->Artists && !myLibrary->Artists->Empty())
|| (wCurrent == myLibrary->Songs && !myLibrary->Songs->Empty())
|| (wCurrent == mPlaylistEditor && !mPlaylistEditor->Empty())
# ifdef HAVE_TAGLIB_H
|| (wCurrent == mEditorTags && !mEditorTags->Empty())
@@ -213,7 +213,7 @@ void Info::GetArtist()
*artist = mySearcher->Main()->at(id).second->GetArtist();
break;
case csLibrary:
*artist = mLibArtists->at(id);
*artist = myLibrary->Artists->at(id);
break;
case csPlaylistEditor:
*artist = mPlaylistEditor->at(id).GetArtist();

View File

@@ -93,7 +93,7 @@ void Lyrics::Get()
redraw_header = 1;
if (current_screen == csLibrary)
{
MediaLibrary::Refresh();
myLibrary->Refresh();
}
else if (current_screen == csPlaylistEditor)
{
@@ -111,7 +111,7 @@ void Lyrics::Get()
|| (wCurrent == myPlaylist->Main() && !myPlaylist->Main()->Empty())
|| (wCurrent == myBrowser->Main() && myBrowser->Main()->Current().type == MPD::itSong)
|| (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| (wCurrent == mLibSongs && !mLibSongs->Empty())
|| (wCurrent == myLibrary->Songs && !myLibrary->Songs->Empty())
|| (wCurrent == mPlaylistEditor && !mPlaylistEditor->Empty())
# ifdef HAVE_TAGLIB_H
|| (wCurrent == mEditorTags && !mEditorTags->Empty())
@@ -151,7 +151,7 @@ void Lyrics::Get()
s = mySearcher->Main()->at(id).second;
break;
case csLibrary:
s = &mLibSongs->at(id);
s = &myLibrary->Songs->at(id);
break;
case csPlaylistEditor:
s = &mPlaylistEditor->at(id);

View File

@@ -34,76 +34,70 @@ using namespace MPD;
using namespace Global;
using std::string;
Window *Global::wLibActiveCol;
Menu<string> *Global::mLibArtists;
Menu<string_pair> *Global::mLibAlbums;
Menu<Song> *Global::mLibSongs;
MediaLibrary *myLibrary = new MediaLibrary;
namespace MediaLibrary
{
size_t left_col_width;
size_t middle_col_width;
size_t middle_col_startx;
size_t right_col_width;
size_t right_col_startx;
}
size_t MediaLibrary::itsLeftColWidth;
size_t MediaLibrary::itsMiddleColWidth;
size_t MediaLibrary::itsMiddleColStartX;
size_t MediaLibrary::itsRightColWidth;
size_t MediaLibrary::itsRightColStartX;
void MediaLibrary::Init()
{
left_col_width = COLS/3-1;
middle_col_width = COLS/3;
middle_col_startx = left_col_width+1;
right_col_width = COLS-COLS/3*2-1;
right_col_startx = left_col_width+middle_col_width+2;
itsLeftColWidth = COLS/3-1;
itsMiddleColWidth = COLS/3;
itsMiddleColStartX = itsLeftColWidth+1;
itsRightColWidth = COLS-COLS/3*2-1;
itsRightColStartX = itsLeftColWidth+itsMiddleColWidth+2;
mLibArtists = new Menu<string>(0, main_start_y, left_col_width, main_height, IntoStr(Config.media_lib_primary_tag) + "s", Config.main_color, brNone);
mLibArtists->HighlightColor(Config.active_column_color);
mLibArtists->SetTimeout(ncmpcpp_window_timeout);
mLibArtists->SetItemDisplayer(Display::Generic);
Artists = new Menu<string>(0, main_start_y, itsLeftColWidth, main_height, IntoStr(Config.media_lib_primary_tag) + "s", Config.main_color, brNone);
Artists->HighlightColor(Config.active_column_color);
Artists->SetTimeout(ncmpcpp_window_timeout);
Artists->SetItemDisplayer(Display::Generic);
mLibAlbums = new Menu<string_pair>(middle_col_startx, main_start_y, middle_col_width, main_height, "Albums", Config.main_color, brNone);
mLibAlbums->HighlightColor(Config.main_highlight_color);
mLibAlbums->SetTimeout(ncmpcpp_window_timeout);
mLibAlbums->SetItemDisplayer(Display::StringPairs);
Albums = new Menu<string_pair>(itsMiddleColStartX, main_start_y, itsMiddleColWidth, main_height, "Albums", Config.main_color, brNone);
Albums->HighlightColor(Config.main_highlight_color);
Albums->SetTimeout(ncmpcpp_window_timeout);
Albums->SetItemDisplayer(Display::StringPairs);
mLibSongs = new Menu<Song>(right_col_startx, main_start_y, right_col_width, main_height, "Songs", Config.main_color, brNone);
mLibSongs->HighlightColor(Config.main_highlight_color);
mLibSongs->SetTimeout(ncmpcpp_window_timeout);
mLibSongs->SetSelectPrefix(&Config.selected_item_prefix);
mLibSongs->SetSelectSuffix(&Config.selected_item_suffix);
mLibSongs->SetItemDisplayer(Display::Songs);
mLibSongs->SetItemDisplayerUserData(&Config.song_library_format);
Songs = new Menu<Song>(itsRightColStartX, main_start_y, itsRightColWidth, main_height, "Songs", Config.main_color, brNone);
Songs->HighlightColor(Config.main_highlight_color);
Songs->SetTimeout(ncmpcpp_window_timeout);
Songs->SetSelectPrefix(&Config.selected_item_prefix);
Songs->SetSelectSuffix(&Config.selected_item_suffix);
Songs->SetItemDisplayer(Display::Songs);
Songs->SetItemDisplayerUserData(&Config.song_library_format);
wLibActiveCol = mLibArtists;
w = Artists;
}
void MediaLibrary::Resize()
{
left_col_width = COLS/3-1;
middle_col_startx = left_col_width+1;
middle_col_width = COLS/3;
right_col_startx = left_col_width+middle_col_width+2;
right_col_width = COLS-COLS/3*2-1;
itsLeftColWidth = COLS/3-1;
itsMiddleColStartX = itsLeftColWidth+1;
itsMiddleColWidth = COLS/3;
itsRightColStartX = itsLeftColWidth+itsMiddleColWidth+2;
itsRightColWidth = COLS-COLS/3*2-1;
mLibArtists->Resize(left_col_width, main_height);
mLibAlbums->Resize(middle_col_width, main_height);
mLibSongs->Resize(right_col_width, main_height);
Artists->Resize(itsLeftColWidth, main_height);
Albums->Resize(itsMiddleColWidth, main_height);
Songs->Resize(itsRightColWidth, main_height);
mLibAlbums->MoveTo(middle_col_startx, main_start_y);
mLibSongs->MoveTo(right_col_startx, main_start_y);
Albums->MoveTo(itsMiddleColStartX, main_start_y);
Songs->MoveTo(itsRightColStartX, main_start_y);
}
void MediaLibrary::Refresh()
{
mLibArtists->Display();
mvvline(main_start_y, middle_col_startx-1, 0, main_height);
mLibAlbums->Display();
mvvline(main_start_y, right_col_startx-1, 0, main_height);
mLibSongs->Display();
if (mLibAlbums->Empty())
Artists->Display();
mvvline(main_start_y, itsMiddleColStartX-1, 0, main_height);
Albums->Display();
mvvline(main_start_y, itsRightColStartX-1, 0, main_height);
Songs->Display();
if (Albums->Empty())
{
mLibAlbums->WriteXY(0, 0, 0, "No albums found.");
mLibAlbums->Refresh();
Albums->WriteXY(0, 0, 0, "No albums found.");
Albums->Refresh();
}
}
@@ -122,22 +116,27 @@ void MediaLibrary::SwitchTo()
// redraw_screen = 1;
redraw_header = 1;
MediaLibrary::Refresh();
wCurrent = wLibActiveCol;
wCurrent = w;
current_screen = csLibrary;
UpdateSongList(mLibSongs);
UpdateSongList(Songs);
}
}
std::string MediaLibrary::Title()
{
return "Media library";
}
void MediaLibrary::Update()
{
if (mLibArtists->Empty())
if (Artists->Empty())
{
CLEAR_FIND_HISTORY;
TagList list;
mLibAlbums->Clear(0);
mLibSongs->Clear(0);
Albums->Clear(0);
Songs->Clear(0);
Mpd->GetList(list, Config.media_lib_primary_tag);
sort(list.begin(), list.end(), CaseInsensitiveSorting());
for (TagList::iterator it = list.begin(); it != list.end(); it++)
@@ -145,25 +144,25 @@ void MediaLibrary::Update()
if (!it->empty())
{
utf_to_locale(*it);
mLibArtists->AddOption(*it);
Artists->AddOption(*it);
}
}
mLibArtists->Window::Clear();
mLibArtists->Refresh();
Artists->Window::Clear();
Artists->Refresh();
}
if (!mLibArtists->Empty() && mLibAlbums->Empty() && mLibSongs->Empty())
if (!Artists->Empty() && Albums->Empty() && Songs->Empty())
{
mLibAlbums->Reset();
Albums->Reset();
TagList list;
std::map<string, string, CaseInsensitiveSorting> maplist;
locale_to_utf(mLibArtists->Current());
locale_to_utf(Artists->Current());
if (Config.media_lib_primary_tag == MPD_TAG_ITEM_ARTIST)
Mpd->GetAlbums(mLibArtists->Current(), list);
Mpd->GetAlbums(Artists->Current(), list);
else
{
Mpd->StartSearch(1);
Mpd->AddSearch(Config.media_lib_primary_tag, mLibArtists->Current());
Mpd->AddSearch(Config.media_lib_primary_tag, Artists->Current());
Mpd->StartFieldSearch(MPD_TAG_ITEM_ALBUM);
Mpd->CommitSearch(list);
}
@@ -173,11 +172,11 @@ void MediaLibrary::Update()
{
SongList noalbum_list;
Mpd->StartSearch(1);
Mpd->AddSearch(Config.media_lib_primary_tag, mLibArtists->Current());
Mpd->AddSearch(Config.media_lib_primary_tag, Artists->Current());
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, "");
Mpd->CommitSearch(noalbum_list);
if (!noalbum_list.empty())
mLibAlbums->AddOption(std::make_pair("<no album>", ""));
Albums->AddOption(std::make_pair("<no album>", ""));
FreeSongList(noalbum_list);
}
@@ -185,7 +184,7 @@ void MediaLibrary::Update()
{
SongList l;
Mpd->StartSearch(1);
Mpd->AddSearch(Config.media_lib_primary_tag, mLibArtists->Current());
Mpd->AddSearch(Config.media_lib_primary_tag, Artists->Current());
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it);
Mpd->CommitSearch(l);
if (!l.empty() && !l[0]->GetAlbum().empty())
@@ -196,35 +195,35 @@ void MediaLibrary::Update()
}
FreeSongList(l);
}
utf_to_locale(mLibArtists->Current());
utf_to_locale(Artists->Current());
for (std::map<string, string>::const_iterator it = maplist.begin(); it != maplist.end(); it++)
mLibAlbums->AddOption(make_pair(it->first, it->second));
mLibAlbums->Window::Clear();
mLibAlbums->Refresh();
Albums->AddOption(make_pair(it->first, it->second));
Albums->Window::Clear();
Albums->Refresh();
}
if (!mLibArtists->Empty() && wCurrent == mLibAlbums && mLibAlbums->Empty())
if (!Artists->Empty() && wCurrent == Albums && Albums->Empty())
{
mLibAlbums->HighlightColor(Config.main_highlight_color);
mLibArtists->HighlightColor(Config.active_column_color);
wCurrent = wLibActiveCol = mLibArtists;
Albums->HighlightColor(Config.main_highlight_color);
Artists->HighlightColor(Config.active_column_color);
wCurrent = w = Artists;
}
if (!mLibArtists->Empty() && mLibSongs->Empty())
if (!Artists->Empty() && Songs->Empty())
{
mLibSongs->Reset();
Songs->Reset();
SongList list;
mLibSongs->Clear(0);
Songs->Clear(0);
Mpd->StartSearch(1);
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(mLibArtists->Current()));
if (mLibAlbums->Empty()) // left for compatibility with <mpd-0.14
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(Artists->Current()));
if (Albums->Empty()) // left for compatibility with <mpd-0.14
{
mLibAlbums->WriteXY(0, 0, 0, "No albums found.");
mLibAlbums->Refresh();
Albums->WriteXY(0, 0, 0, "No albums found.");
Albums->Refresh();
}
else
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, locale_to_utf_cpy(mLibAlbums->Current().second));
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, locale_to_utf_cpy(Albums->Current().second));
Mpd->CommitSearch(list);
sort(list.begin(), list.end(), SortSongsByTrack);
@@ -240,23 +239,67 @@ void MediaLibrary::Update()
break;
}
}
mLibSongs->AddOption(**it, bold);
Songs->AddOption(**it, bold);
bold = 0;
}
FreeSongList(list);
mLibSongs->Window::Clear();
mLibSongs->Refresh();
Songs->Window::Clear();
Songs->Refresh();
}
}
void MediaLibrary::EnterPressed(bool add_n_play)
void MediaLibrary::NextColumn()
{
CLEAR_FIND_HISTORY;
if (w == Artists)
{
if (Songs->Empty())
return;
Artists->HighlightColor(Config.main_highlight_color);
w->Refresh();
wCurrent = w = Albums;
Albums->HighlightColor(Config.active_column_color);
if (!Albums->Empty())
return;
}
if (w == Albums && !Songs->Empty())
{
Albums->HighlightColor(Config.main_highlight_color);
w->Refresh();
wCurrent = w = Songs;
Songs->HighlightColor(Config.active_column_color);
}
}
void MediaLibrary::PrevColumn()
{
CLEAR_FIND_HISTORY;
if (w == Songs)
{
Songs->HighlightColor(Config.main_highlight_color);
w->Refresh();
wCurrent = w = Albums;
Albums->HighlightColor(Config.active_column_color);
if (!Albums->Empty())
return;
}
if (w == Albums)
{
Albums->HighlightColor(Config.main_highlight_color);
w->Refresh();
wCurrent = w = Artists;
Artists->HighlightColor(Config.active_column_color);
}
}
void MediaLibrary::AddToPlaylist(bool add_n_play)
{
SongList list;
if (!mLibArtists->Empty() && wCurrent == mLibArtists)
if (!Artists->Empty() && wCurrent == Artists)
{
Mpd->StartSearch(1);
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(mLibArtists->Current()));
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(Artists->Current()));
Mpd->CommitSearch(list);
for (SongList::const_iterator it = list.begin(); it != list.end(); it++)
Mpd->QueueAddSong(**it);
@@ -264,7 +307,7 @@ void MediaLibrary::EnterPressed(bool add_n_play)
{
string tag_type = IntoStr(Config.media_lib_primary_tag);
ToLower(tag_type);
ShowMessage("Adding songs of %s \"%s\"", tag_type.c_str(), mLibArtists->Current().c_str());
ShowMessage("Adding songs of %s \"%s\"", tag_type.c_str(), Artists->Current().c_str());
Song *s = &myPlaylist->Main()->at(myPlaylist->Main()->Size()-list.size());
if (s->GetHash() == list[0]->GetHash())
{
@@ -275,15 +318,15 @@ void MediaLibrary::EnterPressed(bool add_n_play)
ShowMessage("%s", message_part_of_songs_added);
}
}
else if (wCurrent == mLibAlbums)
else if (wCurrent == Albums)
{
for (size_t i = 0; i < mLibSongs->Size(); i++)
Mpd->QueueAddSong(mLibSongs->at(i));
for (size_t i = 0; i < Songs->Size(); i++)
Mpd->QueueAddSong(Songs->at(i));
if (Mpd->CommitQueue())
{
ShowMessage("Adding songs from album \"%s\"", mLibAlbums->Current().second.c_str());
Song *s = &myPlaylist->Main()->at(myPlaylist->Main()->Size()-mLibSongs->Size());
if (s->GetHash() == mLibSongs->at(0).GetHash())
ShowMessage("Adding songs from album \"%s\"", Albums->Current().second.c_str());
Song *s = &myPlaylist->Main()->at(myPlaylist->Main()->Size()-Songs->Size());
if (s->GetHash() == Songs->at(0).GetHash())
{
if (add_n_play)
Mpd->PlayID(s->GetID());
@@ -292,14 +335,14 @@ void MediaLibrary::EnterPressed(bool add_n_play)
ShowMessage("%s", message_part_of_songs_added);
}
}
else if (wCurrent == mLibSongs)
else if (wCurrent == Songs)
{
if (!mLibSongs->Empty())
if (!Songs->Empty())
{
block_item_list_update = 1;
if (Config.ncmpc_like_songs_adding && mLibSongs->isBold())
if (Config.ncmpc_like_songs_adding && Songs->isBold())
{
long long hash = mLibSongs->Current().GetHash();
long long hash = Songs->Current().GetHash();
if (add_n_play)
{
for (size_t i = 0; i < myPlaylist->Main()->Size(); i++)
@@ -324,19 +367,19 @@ void MediaLibrary::EnterPressed(bool add_n_play)
}
}
Mpd->CommitQueue();
mLibSongs->BoldOption(mLibSongs->Choice(), 0);
Songs->BoldOption(Songs->Choice(), 0);
}
}
else
{
Song &s = mLibSongs->Current();
Song &s = Songs->Current();
int id = Mpd->AddSong(s);
if (id >= 0)
{
ShowMessage("Added to playlist: %s", s.toString(Config.song_status_format).c_str());
if (add_n_play)
Mpd->PlayID(id);
mLibSongs->BoldOption(mLibSongs->Choice(), 1);
Songs->BoldOption(Songs->Choice(), 1);
}
}
}
@@ -345,13 +388,13 @@ void MediaLibrary::EnterPressed(bool add_n_play)
if (!add_n_play)
{
wCurrent->Scroll(wDown);
if (wCurrent == mLibArtists)
if (wCurrent == Artists)
{
mLibAlbums->Clear(0);
mLibSongs->Clear(0);
Albums->Clear(0);
Songs->Clear(0);
}
else if (wCurrent == mLibAlbums)
mLibSongs->Clear(0);
else if (wCurrent == Albums)
Songs->Clear(0);
}
}

View File

@@ -22,23 +22,41 @@
#define _H_MEDIA_LIBRARY
#include "ncmpcpp.h"
#include "screen.h"
namespace MediaLibrary
class MediaLibrary : public Screen<Window>
{
void Init();
void Resize();
void Refresh();
void SwitchTo();
void Update();
void EnterPressed(bool = 1);
inline void SpacePressed();
}
public:
virtual void Init();
virtual void SwitchTo();
virtual void Resize();
virtual std::string Title();
virtual void Refresh();
virtual void Update();
virtual void EnterPressed() { AddToPlaylist(1); }
virtual void SpacePressed() { AddToPlaylist(0); }
void NextColumn();
void PrevColumn();
Menu<std::string> *Artists;
Menu<string_pair> *Albums;
Menu<MPD::Song> *Songs;
protected:
void AddToPlaylist(bool);
static size_t itsLeftColWidth;
static size_t itsMiddleColWidth;
static size_t itsMiddleColStartX;
static size_t itsRightColWidth;
static size_t itsRightColStartX;
};
void MediaLibrary::SpacePressed()
{
EnterPressed(0);
}
extern MediaLibrary *myLibrary;
#endif

View File

@@ -150,7 +150,7 @@ int main(int argc, char *argv[])
myPlaylist->Init();
myBrowser->Init();
mySearcher->Init();
MediaLibrary::Init();
myLibrary->Init();
PlaylistEditor::Init();
# ifdef HAVE_TAGLIB_H
@@ -258,7 +258,7 @@ int main(int argc, char *argv[])
screen_title = mySearcher->Title();
break;
case csLibrary:
screen_title = "Media library";
screen_title = myLibrary->Title();
break;
case csLyrics:
screen_title = "Lyrics: ";
@@ -319,7 +319,7 @@ int main(int argc, char *argv[])
|| current_screen == csBrowser);
else if (current_screen == csLibrary)
{
MediaLibrary::Update();
myLibrary->Update();
}
else if (current_screen == csPlaylistEditor)
{
@@ -374,14 +374,14 @@ int main(int argc, char *argv[])
{
if (Keypressed(input, Key.Up) || Keypressed(input, Key.Down) || Keypressed(input, Key.PageUp) || Keypressed(input, Key.PageDown) || Keypressed(input, Key.Home) || Keypressed(input, Key.End) || Keypressed(input, Key.FindForward) || Keypressed(input, Key.FindBackward) || Keypressed(input, Key.NextFoundPosition) || Keypressed(input, Key.PrevFoundPosition))
{
if (wCurrent == mLibArtists)
if (wCurrent == myLibrary->Artists)
{
mLibAlbums->Clear(0);
mLibSongs->Clear(0);
myLibrary->Albums->Clear(0);
myLibrary->Songs->Clear(0);
}
else if (wCurrent == mLibAlbums)
else if (wCurrent == myLibrary->Albums)
{
mLibSongs->Clear(0);
myLibrary->Songs->Clear(0);
}
else if (wCurrent == mPlaylistList)
{
@@ -412,7 +412,7 @@ int main(int argc, char *argv[])
)
{
if (!Config.fancy_scrolling
&& (wCurrent == mLibArtists
&& (wCurrent == myLibrary->Artists
|| wCurrent == mPlaylistList
# ifdef HAVE_TAGLIB_H
|| wCurrent == mEditorLeftCol
@@ -440,7 +440,7 @@ int main(int argc, char *argv[])
)
{
if (!Config.fancy_scrolling
&& (wCurrent == mLibArtists
&& (wCurrent == myLibrary->Artists
|| wCurrent == mPlaylistList
# ifdef HAVE_TAGLIB_H
|| wCurrent == mEditorLeftCol
@@ -509,7 +509,7 @@ int main(int argc, char *argv[])
myPlaylist->Resize();
myBrowser->Resize();
mySearcher->Resize();
MediaLibrary::Resize();
myLibrary->Resize();
PlaylistEditor::Resize();
Info::Resize();
Lyrics::Resize();
@@ -533,7 +533,7 @@ int main(int argc, char *argv[])
# ifdef HAVE_TAGLIB_H
if (current_screen == csLibrary)
{
MediaLibrary::Refresh();
myLibrary->Refresh();
}
else if (current_screen == csTagEditor)
{
@@ -592,7 +592,7 @@ int main(int argc, char *argv[])
}
case csLibrary:
{
MediaLibrary::EnterPressed();
myLibrary->EnterPressed();
break;
}
case csPlaylistEditor:
@@ -625,7 +625,7 @@ int main(int argc, char *argv[])
|| wCurrent == mEditorTags
# endif // HAVE_TAGLIB_H
|| (wCurrent == myBrowser->Main() && ((Menu<Song> *)wCurrent)->Choice() >= (myBrowser->CurrentDir() != "/" ? 1 : 0)) || (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| wCurrent == mLibSongs
|| wCurrent == myLibrary->Songs
|| wCurrent == mPlaylistEditor)
{
List *mList = (Menu<Song> *)wCurrent;
@@ -648,7 +648,7 @@ int main(int argc, char *argv[])
}
else if (current_screen == csLibrary)
{
MediaLibrary::SpacePressed();
myLibrary->SpacePressed();
}
else if (current_screen == csPlaylistEditor)
{
@@ -676,25 +676,7 @@ int main(int argc, char *argv[])
{
if (current_screen == csLibrary && input == Key.VolumeUp[0])
{
CLEAR_FIND_HISTORY;
if (wCurrent == mLibArtists)
{
if (mLibSongs->Empty())
continue;
mLibArtists->HighlightColor(Config.main_highlight_color);
wCurrent->Refresh();
wCurrent = wLibActiveCol = mLibAlbums;
mLibAlbums->HighlightColor(Config.active_column_color);
if (!mLibAlbums->Empty())
continue;
}
if (wCurrent == mLibAlbums && !mLibSongs->Empty())
{
mLibAlbums->HighlightColor(Config.main_highlight_color);
wCurrent->Refresh();
wCurrent = wLibActiveCol = mLibSongs;
mLibSongs->HighlightColor(Config.active_column_color);
}
myLibrary->NextColumn();
}
else if (current_screen == csPlaylistEditor && input == Key.VolumeUp[0])
{
@@ -734,23 +716,7 @@ int main(int argc, char *argv[])
{
if (current_screen == csLibrary && input == Key.VolumeDown[0])
{
CLEAR_FIND_HISTORY;
if (wCurrent == mLibSongs)
{
mLibSongs->HighlightColor(Config.main_highlight_color);
wCurrent->Refresh();
wCurrent = wLibActiveCol = mLibAlbums;
mLibAlbums->HighlightColor(Config.active_column_color);
if (!mLibAlbums->Empty())
continue;
}
if (wCurrent == mLibAlbums)
{
mLibAlbums->HighlightColor(Config.main_highlight_color);
wCurrent->Refresh();
wCurrent = wLibActiveCol = mLibArtists;
mLibArtists->HighlightColor(Config.active_column_color);
}
myLibrary->PrevColumn();
}
else if (current_screen == csPlaylistEditor && input == Key.VolumeDown[0])
{
@@ -1340,19 +1306,19 @@ int main(int argc, char *argv[])
{
CHECK_MPD_MUSIC_DIR;
# ifdef HAVE_TAGLIB_H
if (wCurrent == mLibArtists)
if (wCurrent == myLibrary->Artists)
{
LockStatusbar();
Statusbar() << fmtBold << IntoStr(Config.media_lib_primary_tag) << fmtBoldEnd << ": ";
string new_tag = wFooter->GetString(mLibArtists->Current());
string new_tag = wFooter->GetString(myLibrary->Artists->Current());
UnlockStatusbar();
if (!new_tag.empty() && new_tag != mLibArtists->Current())
if (!new_tag.empty() && new_tag != myLibrary->Artists->Current())
{
bool success = 1;
SongList list;
ShowMessage("Updating tags...");
Mpd->StartSearch(1);
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(mLibArtists->Current()));
Mpd->AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(myLibrary->Artists->Current()));
Mpd->CommitSearch(list);
SongSetFunction set = IntoSetFunction(Config.media_lib_primary_tag);
if (!set)
@@ -1378,39 +1344,39 @@ int main(int argc, char *argv[])
FreeSongList(list);
}
}
else if (wCurrent == mLibAlbums)
else if (wCurrent == myLibrary->Albums)
{
LockStatusbar();
Statusbar() << fmtBold << "Album: " << fmtBoldEnd;
string new_album = wFooter->GetString(mLibAlbums->Current().second);
string new_album = wFooter->GetString(myLibrary->Albums->Current().second);
UnlockStatusbar();
if (!new_album.empty() && new_album != mLibAlbums->Current().second)
if (!new_album.empty() && new_album != myLibrary->Albums->Current().second)
{
bool success = 1;
ShowMessage("Updating tags...");
for (size_t i = 0; i < mLibSongs->Size(); i++)
for (size_t i = 0; i < myLibrary->Songs->Size(); i++)
{
(*mLibSongs)[i].Localize();
ShowMessage("Updating tags in '%s'...", (*mLibSongs)[i].GetName().c_str());
string path = Config.mpd_music_dir + (*mLibSongs)[i].GetFile();
(*myLibrary->Songs)[i].Localize();
ShowMessage("Updating tags in '%s'...", (*myLibrary->Songs)[i].GetName().c_str());
string path = Config.mpd_music_dir + (*myLibrary->Songs)[i].GetFile();
TagLib::FileRef f(path.c_str());
if (f.isNull())
{
ShowMessage("Error opening file '%s'!", (*mLibSongs)[i].GetFile().c_str());
ShowMessage("Error opening file '%s'!", (*myLibrary->Songs)[i].GetFile().c_str());
success = 0;
break;
}
f.tag()->setAlbum(ToWString(new_album));
if (!f.save())
{
ShowMessage("Error writing tags in '%s'!", (*mLibSongs)[i].GetFile().c_str());
ShowMessage("Error writing tags in '%s'!", (*myLibrary->Songs)[i].GetFile().c_str());
success = 0;
break;
}
}
if (success)
{
Mpd->UpdateDirectory(FindSharedDir(mLibSongs));
Mpd->UpdateDirectory(FindSharedDir(myLibrary->Songs));
ShowMessage("Tags updated succesfully!");
}
}
@@ -1419,7 +1385,7 @@ int main(int argc, char *argv[])
(wCurrent == myPlaylist->Main() && !myPlaylist->Main()->Empty())
|| (wCurrent == myBrowser->Main() && myBrowser->Main()->Current().type == itSong)
|| (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| (wCurrent == mLibSongs && !mLibSongs->Empty())
|| (wCurrent == myLibrary->Songs && !myLibrary->Songs->Empty())
|| (wCurrent == mPlaylistEditor && !mPlaylistEditor->Empty())
|| (wCurrent == mEditorTags && !mEditorTags->Empty()))
{
@@ -1437,7 +1403,7 @@ int main(int argc, char *argv[])
edited_song = *mySearcher->Main()->at(id).second;
break;
case csLibrary:
edited_song = mLibSongs->at(id);
edited_song = myLibrary->Songs->at(id);
break;
case csPlaylistEditor:
edited_song = mPlaylistEditor->at(id);
@@ -1543,7 +1509,7 @@ int main(int argc, char *argv[])
{
if ((wCurrent == myPlaylist->Main() && !myPlaylist->Main()->Empty())
|| (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| (wCurrent == mLibSongs && !mLibSongs->Empty())
|| (wCurrent == myLibrary->Songs && !myLibrary->Songs->Empty())
|| (wCurrent == mPlaylistEditor && !mPlaylistEditor->Empty())
# ifdef HAVE_TAGLIB_H
|| (wCurrent == mEditorTags && !mEditorTags->Empty())
@@ -1561,7 +1527,7 @@ int main(int argc, char *argv[])
s = mySearcher->Main()->at(id).second;
break;
case csLibrary:
s = &mLibSongs->at(id);
s = &myLibrary->Songs->at(id);
break;
case csPlaylistEditor:
s = &mPlaylistEditor->at(id);
@@ -1627,7 +1593,7 @@ int main(int argc, char *argv[])
if (wCurrent == myPlaylist->Main()
|| wCurrent == myBrowser->Main()
|| (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first)
|| wCurrent == mLibSongs
|| wCurrent == myLibrary->Songs
|| wCurrent == mPlaylistEditor
# ifdef HAVE_TAGLIB_H
|| wCurrent == mEditorTags
@@ -1652,7 +1618,7 @@ int main(int argc, char *argv[])
if (wCurrent == myPlaylist->Main()
|| wCurrent == myBrowser->Main()
|| wCurrent == mySearcher->Main()
|| wCurrent == mLibSongs
|| wCurrent == myLibrary->Songs
|| wCurrent == mPlaylistEditor
# ifdef HAVE_TAGLIB_H
|| wCurrent == mEditorTags
@@ -1673,7 +1639,7 @@ int main(int argc, char *argv[])
if (wCurrent != myPlaylist->Main()
&& wCurrent != myBrowser->Main()
&& wCurrent != mySearcher->Main()
&& wCurrent != mLibSongs
&& wCurrent != myLibrary->Songs
&& wCurrent != mPlaylistEditor)
continue;
@@ -1729,7 +1695,7 @@ int main(int argc, char *argv[])
}
case csLibrary:
{
Song *s = new Song(mLibSongs->at(*it));
Song *s = new Song(myLibrary->Songs->at(*it));
result.push_back(s);
break;
}
@@ -1800,7 +1766,7 @@ int main(int argc, char *argv[])
// redraw_screen = 1;
if (current_screen == csLibrary)
{
MediaLibrary::Refresh();
myLibrary->Refresh();
}
else if (current_screen == csPlaylistEditor)
{
@@ -1953,12 +1919,12 @@ int main(int argc, char *argv[])
name = mySearcher->Main()->at(i).second->toString(Config.song_list_format);
break;
case csLibrary:
if (wCurrent == mLibArtists)
name = mLibArtists->at(i);
else if (wCurrent == mLibAlbums)
name = mLibAlbums->at(i).first;
if (wCurrent == myLibrary->Artists)
name = myLibrary->Artists->at(i);
else if (wCurrent == myLibrary->Albums)
name = myLibrary->Albums->at(i).first;
else
name = mLibSongs->at(i).toString(Config.song_library_format);
name = myLibrary->Songs->at(i).toString(Config.song_library_format);
break;
case csPlaylistEditor:
if (wCurrent == mPlaylistList)
@@ -2105,7 +2071,7 @@ int main(int argc, char *argv[])
{
myBrowser->ChangeBrowseMode();
}
else if (wCurrent == mLibArtists)
else if (wCurrent == myLibrary->Artists)
{
LockStatusbar();
Statusbar() << "Tag type ? [" << fmtBold << 'a' << fmtBoldEnd << "rtist/" << fmtBold << 'y' << fmtBoldEnd << "ear/" << fmtBold << 'g' << fmtBoldEnd << "enre/" << fmtBold << 'c' << fmtBoldEnd << "omposer/" << fmtBold << 'p' << fmtBoldEnd << "erformer] ";
@@ -2124,10 +2090,10 @@ int main(int argc, char *argv[])
{
Config.media_lib_primary_tag = new_tagitem;
string item_type = IntoStr(Config.media_lib_primary_tag);
mLibArtists->SetTitle(item_type + "s");
mLibArtists->Reset();
mLibArtists->Clear(0);
mLibArtists->Display();
myLibrary->Artists->SetTitle(item_type + "s");
myLibrary->Artists->Reset();
myLibrary->Artists->Clear(0);
myLibrary->Artists->Display();
ToLower(item_type);
ShowMessage("Switched to list of %s tag", item_type.c_str());
}
@@ -2172,7 +2138,7 @@ int main(int argc, char *argv[])
}
else if (Keypressed(input, Key.MediaLibrary))
{
MediaLibrary::SwitchTo();
myLibrary->SwitchTo();
}
else if (Keypressed(input, Key.PlaylistEditor))
{

View File

@@ -25,6 +25,7 @@
#include "charset.h"
#include "global.h"
#include "helpers.h"
#include "media_library.h"
#include "playlist.h"
#include "search_engine.h"
#include "settings.h"
@@ -232,7 +233,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
}
else if (current_screen == csLibrary)
{
UpdateSongList(mLibSongs);
UpdateSongList(myLibrary->Songs);
}
else if (current_screen == csPlaylistEditor)
{
@@ -247,7 +248,7 @@ void NcmpcppStatusChanged(Connection *Mpd, StatusChanges changed, void *)
mEditorAlbums->Clear(0);
mEditorDirs->Clear(0);
# endif // HAVE_TAGLIB_H
mLibArtists->Clear(0);
myLibrary->Artists->Clear(0);
mPlaylistEditor->Clear(0);
}
if (changed.PlayerState)

View File

@@ -183,7 +183,7 @@ void TinyTagEditor::EnterPressed(Song &s)
redraw_header = 1;
if (current_screen == csLibrary)
{
MediaLibrary::Refresh();
myLibrary->Refresh();
}
else if (current_screen == csPlaylistEditor)
{