From 5a06f2a4fc702e96914f5e128f1de7f8018d5b08 Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Sat, 14 Feb 2009 17:38:39 +0100 Subject: [PATCH] change namespace MediaLibrary into class --- src/global.h | 8 +- src/info.cpp | 14 +-- src/lyrics.cpp | 6 +- src/media_library.cpp | 263 ++++++++++++++++++++++++----------------- src/media_library.h | 46 ++++--- src/ncmpcpp.cpp | 136 ++++++++------------- src/status_checker.cpp | 5 +- src/tag_editor.cpp | 2 +- 8 files changed, 254 insertions(+), 226 deletions(-) diff --git a/src/global.h b/src/global.h index 8134e70b..37affe67 100644 --- a/src/global.h +++ b/src/global.h @@ -39,10 +39,10 @@ namespace Global // extern Menu *myBrowser->Main(); // extern Menu< std::pair > *mSearcher; - extern Window *wLibActiveCol; - extern Menu *mLibArtists; - extern Menu *mLibAlbums; - extern Menu *mLibSongs; +// extern Window *wLibActiveCol; +// extern Menu *myLibrary->Artists; +// extern Menu *myLibrary->Albums; +// extern Menu *myLibrary->Songs; # ifdef HAVE_TAGLIB_H extern Window *wTagEditorActiveCol; diff --git a/src/info.cpp b/src/info.cpp index 97731e13..371d1827 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -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(); diff --git a/src/lyrics.cpp b/src/lyrics.cpp index 512a468a..cf95d2f9 100644 --- a/src/lyrics.cpp +++ b/src/lyrics.cpp @@ -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); diff --git a/src/media_library.cpp b/src/media_library.cpp index 28730a9b..98e95df6 100644 --- a/src/media_library.cpp +++ b/src/media_library.cpp @@ -34,76 +34,70 @@ using namespace MPD; using namespace Global; using std::string; -Window *Global::wLibActiveCol; -Menu *Global::mLibArtists; -Menu *Global::mLibAlbums; -Menu *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(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(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(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(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(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(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 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("", "")); + Albums->AddOption(std::make_pair("", "")); 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::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 AddSearch(Config.media_lib_primary_tag, locale_to_utf_cpy(Artists->Current())); + if (Albums->Empty()) // left for compatibility with 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); } } diff --git a/src/media_library.h b/src/media_library.h index 6f49bd5e..254803ca 100644 --- a/src/media_library.h +++ b/src/media_library.h @@ -22,23 +22,41 @@ #define _H_MEDIA_LIBRARY #include "ncmpcpp.h" +#include "screen.h" -namespace MediaLibrary +class MediaLibrary : public Screen { - 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 *Artists; + Menu *Albums; + Menu *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 diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp index a09888f9..bd7263d1 100644 --- a/src/ncmpcpp.cpp +++ b/src/ncmpcpp.cpp @@ -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 *)wCurrent)->Choice() >= (myBrowser->CurrentDir() != "/" ? 1 : 0)) || (wCurrent == mySearcher->Main() && !mySearcher->Main()->Current().first) - || wCurrent == mLibSongs + || wCurrent == myLibrary->Songs || wCurrent == mPlaylistEditor) { List *mList = (Menu *)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)) { diff --git a/src/status_checker.cpp b/src/status_checker.cpp index 762be375..8d9fe28c 100644 --- a/src/status_checker.cpp +++ b/src/status_checker.cpp @@ -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) diff --git a/src/tag_editor.cpp b/src/tag_editor.cpp index aef073d0..3660d4b7 100644 --- a/src/tag_editor.cpp +++ b/src/tag_editor.cpp @@ -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) {