1 /***************************************************************************
2 * Copyright (C) 2008-2017 by Andrzej Rybczak *
3 * electricityispower@gmail.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
21 #ifndef NCMPCPP_ACTIONS_H
22 #define NCMPCPP_ACTIONS_H
24 #include <boost/date_time/posix_time/posix_time_types.hpp>
25 #include <boost/format.hpp>
28 #include "curses/window.h"
29 #include "interfaces.h"
31 // forward declarations
53 JumpToParentDirectory
,
76 MoveSelectedItemsDown
,
82 ToggleSeparatorsBetweenAlbums
,
83 ToggleLyricsUpdateOnSongChange
,
85 ToggleFetchingLyricsInBackground
,
86 TogglePlayingSongCentering
,
108 JumpToPlaylistEditor
,
111 JumpToPositionInSong
,
132 ToggleReplayGainMode
,
135 ToggleBitrateVisibility
,
137 ToggleBrowserSortMode
,
138 ToggleLibraryTagType
,
139 ToggleMediaLibrarySortMode
,
140 FetchLyricsInBackground
,
142 SetSelectedItemsPriority
,
144 ToggleVisualizationType
,
158 ToggleMediaLibraryColumnsMode
,
165 _numberOfActions
// needed to dynamically calculate size of action array
168 void validateScreenSize();
169 void initializeScreens();
170 void setResizeFlags();
171 void resizeScreen(bool reload_main_window
);
172 void setWindowsDimensions();
174 void confirmAction(const boost::format
&description
);
175 inline void confirmAction(const std::string
&description
)
177 confirmAction(boost::format(description
));
180 bool isMPDMusicDirSet();
182 extern bool OriginalStatusbarVisibility
;
183 extern bool ExitMainLoop
;
185 extern size_t HeaderHeight
;
186 extern size_t FooterHeight
;
187 extern size_t FooterStartY
;
191 BaseAction(Type type_
, const char *name_
): m_name(name_
), m_type(type_
) { }
193 const std::string
&name() const { return m_name
; }
194 Type
type() const { return m_type
; }
196 virtual bool canBeRun() { return true; }
212 virtual void run() = 0;
217 BaseAction
&get(Type at
);
219 std::shared_ptr
<BaseAction
> get_(Type at
);
220 std::shared_ptr
<BaseAction
> get_(const std::string
&name
);
222 struct Dummy
: BaseAction
224 Dummy(): BaseAction(Type::Dummy
, "dummy") { }
227 virtual void run() override
{ }
230 struct UpdateEnvironment
: BaseAction
234 void run(bool update_status
, bool refresh_window
, bool mpd_sync
);
237 boost::posix_time::ptime m_past
;
239 virtual void run() override
;
242 struct MouseEvent
: BaseAction
244 MouseEvent(): BaseAction(Type::MouseEvent
, "mouse_event")
246 m_old_mouse_event
.bstate
= 0;
247 m_mouse_event
.bstate
= 0;
251 virtual bool canBeRun() override
;
252 virtual void run() override
;
254 MEVENT m_mouse_event
;
255 MEVENT m_old_mouse_event
;
258 struct ScrollUp
: BaseAction
260 ScrollUp(): BaseAction(Type::ScrollUp
, "scroll_up") { }
263 virtual void run() override
;
266 struct ScrollDown
: BaseAction
268 ScrollDown(): BaseAction(Type::ScrollDown
, "scroll_down") { }
271 virtual void run() override
;
274 struct ScrollUpArtist
: BaseAction
276 ScrollUpArtist(): BaseAction(Type::ScrollUpArtist
, "scroll_up_artist") { }
279 virtual bool canBeRun() override
;
280 virtual void run() override
;
283 const SongList
*m_songs
;
286 struct ScrollUpAlbum
: BaseAction
288 ScrollUpAlbum(): BaseAction(Type::ScrollUpAlbum
, "scroll_up_album") { }
291 virtual bool canBeRun() override
;
292 virtual void run() override
;
295 const SongList
*m_songs
;
298 struct ScrollDownArtist
: BaseAction
300 ScrollDownArtist(): BaseAction(Type::ScrollDownArtist
, "scroll_down_artist") { }
303 virtual bool canBeRun() override
;
304 virtual void run() override
;
307 const SongList
*m_songs
;
310 struct ScrollDownAlbum
: BaseAction
312 ScrollDownAlbum(): BaseAction(Type::ScrollDownAlbum
, "scroll_down_album") { }
315 virtual bool canBeRun() override
;
316 virtual void run() override
;
319 const SongList
*m_songs
;
322 struct PageUp
: BaseAction
324 PageUp(): BaseAction(Type::PageUp
, "page_up") { }
327 virtual void run() override
;
330 struct PageDown
: BaseAction
332 PageDown(): BaseAction(Type::PageDown
, "page_down") { }
335 virtual void run() override
;
338 struct MoveHome
: BaseAction
340 MoveHome(): BaseAction(Type::MoveHome
, "move_home") { }
343 virtual void run() override
;
346 struct MoveEnd
: BaseAction
348 MoveEnd(): BaseAction(Type::MoveEnd
, "move_end") { }
351 virtual void run() override
;
354 struct ToggleInterface
: BaseAction
356 ToggleInterface(): BaseAction(Type::ToggleInterface
, "toggle_interface") { }
359 virtual void run() override
;
362 struct JumpToParentDirectory
: BaseAction
364 JumpToParentDirectory(): BaseAction(Type::JumpToParentDirectory
, "jump_to_parent_directory") { }
367 virtual bool canBeRun() override
;
368 virtual void run() override
;
371 struct RunAction
: BaseAction
373 RunAction(): BaseAction(Type::RunAction
, "run_action") { }
376 virtual bool canBeRun() override
;
377 virtual void run() override
;
382 struct PreviousColumn
: BaseAction
384 PreviousColumn(): BaseAction(Type::PreviousColumn
, "previous_column") { }
387 virtual bool canBeRun() override
;
388 virtual void run() override
;
393 struct NextColumn
: BaseAction
395 NextColumn(): BaseAction(Type::NextColumn
, "next_column") { }
398 virtual bool canBeRun() override
;
399 virtual void run() override
;
404 struct MasterScreen
: BaseAction
406 MasterScreen(): BaseAction(Type::MasterScreen
, "master_screen") { }
409 virtual bool canBeRun() override
;
410 virtual void run() override
;
413 struct SlaveScreen
: BaseAction
415 SlaveScreen(): BaseAction(Type::SlaveScreen
, "slave_screen") { }
418 virtual bool canBeRun() override
;
419 virtual void run() override
;
422 struct VolumeUp
: BaseAction
424 VolumeUp(): BaseAction(Type::VolumeUp
, "volume_up") { }
427 virtual void run() override
;
430 struct VolumeDown
: BaseAction
432 VolumeDown(): BaseAction(Type::VolumeDown
, "volume_down") { }
435 virtual void run() override
;
438 struct AddItemToPlaylist
: BaseAction
440 AddItemToPlaylist(): BaseAction(Type::AddItemToPlaylist
, "add_item_to_playlist") { }
443 virtual bool canBeRun() override
;
444 virtual void run() override
;
449 struct PlayItem
: BaseAction
451 PlayItem(): BaseAction(Type::PlayItem
, "play_item") { }
454 virtual bool canBeRun() override
;
455 virtual void run() override
;
460 struct DeletePlaylistItems
: BaseAction
462 DeletePlaylistItems(): BaseAction(Type::DeletePlaylistItems
, "delete_playlist_items") { }
465 virtual bool canBeRun() override
;
466 virtual void run() override
;
469 struct DeleteStoredPlaylist
: BaseAction
471 DeleteStoredPlaylist(): BaseAction(Type::DeleteStoredPlaylist
, "delete_stored_playlist") { }
474 virtual bool canBeRun() override
;
475 virtual void run() override
;
478 struct DeleteBrowserItems
: BaseAction
480 DeleteBrowserItems(): BaseAction(Type::DeleteBrowserItems
, "delete_browser_items") { }
483 virtual bool canBeRun() override
;
484 virtual void run() override
;
487 struct ReplaySong
: BaseAction
489 ReplaySong(): BaseAction(Type::ReplaySong
, "replay_song") { }
492 virtual void run() override
;
495 struct PreviousSong
: BaseAction
497 PreviousSong(): BaseAction(Type::Previous
, "previous") { }
500 virtual void run() override
;
503 struct NextSong
: BaseAction
505 NextSong(): BaseAction(Type::Next
, "next") { }
508 virtual void run() override
;
511 struct Pause
: BaseAction
513 Pause(): BaseAction(Type::Pause
, "pause") { }
516 virtual void run() override
;
519 struct Stop
: BaseAction
521 Stop(): BaseAction(Type::Stop
, "stop") { }
524 virtual void run() override
;
527 struct ExecuteCommand
: BaseAction
529 ExecuteCommand(): BaseAction(Type::ExecuteCommand
, "execute_command") { }
532 virtual void run() override
;
535 struct SavePlaylist
: BaseAction
537 SavePlaylist(): BaseAction(Type::SavePlaylist
, "save_playlist") { }
540 virtual void run() override
;
543 struct MoveSortOrderUp
: BaseAction
545 MoveSortOrderUp(): BaseAction(Type::MoveSortOrderUp
, "move_sort_order_up") { }
548 virtual bool canBeRun() override
;
549 virtual void run() override
;
552 struct MoveSortOrderDown
: BaseAction
554 MoveSortOrderDown(): BaseAction(Type::MoveSortOrderDown
, "move_sort_order_down") { }
557 virtual bool canBeRun() override
;
558 virtual void run() override
;
561 struct MoveSelectedItemsUp
: BaseAction
563 MoveSelectedItemsUp(): BaseAction(Type::MoveSelectedItemsUp
, "move_selected_items_up") { }
566 virtual bool canBeRun() override
;
567 virtual void run() override
;
570 struct MoveSelectedItemsDown
: BaseAction
572 MoveSelectedItemsDown(): BaseAction(Type::MoveSelectedItemsDown
, "move_selected_items_down") { }
575 virtual bool canBeRun() override
;
576 virtual void run() override
;
579 struct MoveSelectedItemsTo
: BaseAction
581 MoveSelectedItemsTo(): BaseAction(Type::MoveSelectedItemsTo
, "move_selected_items_to") { }
584 virtual bool canBeRun() override
;
585 virtual void run() override
;
588 struct Add
: BaseAction
590 Add(): BaseAction(Type::Add
, "add") { }
593 virtual bool canBeRun() override
;
594 virtual void run() override
;
597 struct SeekForward
: BaseAction
599 SeekForward(): BaseAction(Type::SeekForward
, "seek_forward") { }
602 virtual bool canBeRun() override
;
603 virtual void run() override
;
606 struct SeekBackward
: BaseAction
608 SeekBackward(): BaseAction(Type::SeekBackward
, "seek_backward") { }
611 virtual bool canBeRun() override
;
612 virtual void run() override
;
615 struct ToggleDisplayMode
: BaseAction
617 ToggleDisplayMode(): BaseAction(Type::ToggleDisplayMode
, "toggle_display_mode") { }
620 virtual bool canBeRun() override
;
621 virtual void run() override
;
624 struct ToggleSeparatorsBetweenAlbums
: BaseAction
626 ToggleSeparatorsBetweenAlbums()
627 : BaseAction(Type::ToggleSeparatorsBetweenAlbums
, "toggle_separators_between_albums") { }
630 virtual bool canBeRun() override
;
631 virtual void run() override
;
634 struct ToggleLyricsUpdateOnSongChange
: BaseAction
636 ToggleLyricsUpdateOnSongChange()
637 : BaseAction(Type::ToggleLyricsUpdateOnSongChange
, "toggle_lyrics_update_on_song_change") { }
640 virtual bool canBeRun() override
;
641 virtual void run() override
;
644 struct ToggleLyricsFetcher
: BaseAction
646 ToggleLyricsFetcher(): BaseAction(Type::ToggleLyricsFetcher
, "toggle_lyrics_fetcher") { }
649 virtual void run() override
;
652 struct ToggleFetchingLyricsInBackground
: BaseAction
654 ToggleFetchingLyricsInBackground()
655 : BaseAction(Type::ToggleFetchingLyricsInBackground
, "toggle_fetching_lyrics_in_background") { }
658 virtual void run() override
;
661 struct TogglePlayingSongCentering
: BaseAction
663 TogglePlayingSongCentering()
664 : BaseAction(Type::TogglePlayingSongCentering
, "toggle_playing_song_centering") { }
667 virtual void run() override
;
670 struct UpdateDatabase
: BaseAction
672 UpdateDatabase(): BaseAction(Type::UpdateDatabase
, "update_database") { }
675 virtual void run() override
;
678 struct JumpToPlayingSong
: BaseAction
680 JumpToPlayingSong(): BaseAction(Type::JumpToPlayingSong
, "jump_to_playing_song") { }
683 virtual bool canBeRun() override
;
684 virtual void run() override
;
689 struct ToggleRepeat
: BaseAction
691 ToggleRepeat(): BaseAction(Type::ToggleRepeat
, "toggle_repeat") { }
694 virtual void run() override
;
697 struct Shuffle
: BaseAction
699 Shuffle(): BaseAction(Type::Shuffle
, "shuffle") { }
702 virtual bool canBeRun() override
;
703 virtual void run() override
;
705 NC::Menu
<MPD::Song
>::ConstIterator m_begin
;
706 NC::Menu
<MPD::Song
>::ConstIterator m_end
;
709 struct ToggleRandom
: BaseAction
711 ToggleRandom(): BaseAction(Type::ToggleRandom
, "toggle_random") { }
714 virtual void run() override
;
717 struct StartSearching
: BaseAction
719 StartSearching(): BaseAction(Type::StartSearching
, "start_searching") { }
722 virtual bool canBeRun() override
;
723 virtual void run() override
;
726 struct SaveTagChanges
: BaseAction
728 SaveTagChanges(): BaseAction(Type::SaveTagChanges
, "save_tag_changes") { }
731 virtual bool canBeRun() override
;
732 virtual void run() override
;
735 struct ToggleSingle
: BaseAction
737 ToggleSingle(): BaseAction(Type::ToggleSingle
, "toggle_single") { }
740 virtual void run() override
;
743 struct ToggleConsume
: BaseAction
745 ToggleConsume(): BaseAction(Type::ToggleConsume
, "toggle_consume") { }
748 virtual void run() override
;
751 struct ToggleCrossfade
: BaseAction
753 ToggleCrossfade(): BaseAction(Type::ToggleCrossfade
, "toggle_crossfade") { }
756 virtual void run() override
;
759 struct SetCrossfade
: BaseAction
761 SetCrossfade(): BaseAction(Type::SetCrossfade
, "set_crossfade") { }
764 virtual void run() override
;
767 struct SetVolume
: BaseAction
769 SetVolume(): BaseAction(Type::SetVolume
, "set_volume") { }
772 virtual void run() override
;
775 struct EnterDirectory
: BaseAction
777 EnterDirectory(): BaseAction(Type::EnterDirectory
, "enter_directory") { }
780 virtual bool canBeRun() override
;
781 virtual void run() override
;
785 struct EditSong
: BaseAction
787 EditSong(): BaseAction(Type::EditSong
, "edit_song") { }
790 virtual bool canBeRun() override
;
791 virtual void run() override
;
794 const MPD::Song
*m_song
;
795 #endif // HAVE_TAGLIB_H
798 struct EditLibraryTag
: BaseAction
800 EditLibraryTag(): BaseAction(Type::EditLibraryTag
, "edit_library_tag") { }
803 virtual bool canBeRun() override
;
804 virtual void run() override
;
807 struct EditLibraryAlbum
: BaseAction
809 EditLibraryAlbum(): BaseAction(Type::EditLibraryAlbum
, "edit_library_album") { }
812 virtual bool canBeRun() override
;
813 virtual void run() override
;
816 struct EditDirectoryName
: BaseAction
818 EditDirectoryName(): BaseAction(Type::EditDirectoryName
, "edit_directory_name") { }
821 virtual bool canBeRun() override
;
822 virtual void run() override
;
825 struct EditPlaylistName
: BaseAction
827 EditPlaylistName(): BaseAction(Type::EditPlaylistName
, "edit_playlist_name") { }
830 virtual bool canBeRun() override
;
831 virtual void run() override
;
834 struct EditLyrics
: BaseAction
836 EditLyrics(): BaseAction(Type::EditLyrics
, "edit_lyrics") { }
839 virtual bool canBeRun() override
;
840 virtual void run() override
;
843 struct JumpToBrowser
: BaseAction
845 JumpToBrowser(): BaseAction(Type::JumpToBrowser
, "jump_to_browser") { }
848 virtual bool canBeRun() override
;
849 virtual void run() override
;
851 const MPD::Song
*m_song
;
854 struct JumpToMediaLibrary
: BaseAction
856 JumpToMediaLibrary(): BaseAction(Type::JumpToMediaLibrary
, "jump_to_media_library") { }
859 virtual bool canBeRun() override
;
860 virtual void run() override
;
862 const MPD::Song
*m_song
;
865 struct JumpToPlaylistEditor
: BaseAction
867 JumpToPlaylistEditor(): BaseAction(Type::JumpToPlaylistEditor
, "jump_to_playlist_editor") { }
870 virtual bool canBeRun() override
;
871 virtual void run() override
;
874 struct ToggleScreenLock
: BaseAction
876 ToggleScreenLock(): BaseAction(Type::ToggleScreenLock
, "toggle_screen_lock") { }
879 virtual void run() override
;
882 struct JumpToTagEditor
: BaseAction
884 JumpToTagEditor(): BaseAction(Type::JumpToTagEditor
, "jump_to_tag_editor") { }
887 virtual bool canBeRun() override
;
888 virtual void run() override
;
891 const MPD::Song
*m_song
;
892 #endif // HAVE_TAGLIB_H
895 struct JumpToPositionInSong
: BaseAction
897 JumpToPositionInSong(): BaseAction(Type::JumpToPositionInSong
, "jump_to_position_in_song") { }
900 virtual bool canBeRun() override
;
901 virtual void run() override
;
904 struct SelectItem
: BaseAction
906 SelectItem(): BaseAction(Type::SelectItem
, "select_item") { }
909 virtual bool canBeRun() override
;
910 virtual void run() override
;
915 struct SelectRange
: BaseAction
917 SelectRange(): BaseAction(Type::SelectRange
, "select_range") { }
920 virtual bool canBeRun() override
;
921 virtual void run() override
;
924 NC::List::Iterator m_begin
;
925 NC::List::Iterator m_end
;
928 struct ReverseSelection
: BaseAction
930 ReverseSelection(): BaseAction(Type::ReverseSelection
, "reverse_selection") { }
933 virtual bool canBeRun() override
;
934 virtual void run() override
;
939 struct RemoveSelection
: BaseAction
941 RemoveSelection(): BaseAction(Type::RemoveSelection
, "remove_selection") { }
944 virtual bool canBeRun() override
;
945 virtual void run() override
;
950 struct SelectAlbum
: BaseAction
952 SelectAlbum(): BaseAction(Type::SelectAlbum
, "select_album") { }
955 virtual bool canBeRun() override
;
956 virtual void run() override
;
962 struct SelectFoundItems
: BaseAction
964 SelectFoundItems(): BaseAction(Type::SelectFoundItems
, "select_found_items") { }
967 virtual bool canBeRun() override
;
968 virtual void run() override
;
971 Searchable
*m_searchable
;
974 struct AddSelectedItems
: BaseAction
976 AddSelectedItems(): BaseAction(Type::AddSelectedItems
, "add_selected_items") { }
979 virtual bool canBeRun() override
;
980 virtual void run() override
;
983 struct CropMainPlaylist
: BaseAction
985 CropMainPlaylist(): BaseAction(Type::CropMainPlaylist
, "crop_main_playlist") { }
988 virtual void run() override
;
991 struct CropPlaylist
: BaseAction
993 CropPlaylist(): BaseAction(Type::CropPlaylist
, "crop_playlist") { }
996 virtual bool canBeRun() override
;
997 virtual void run() override
;
1000 struct ClearMainPlaylist
: BaseAction
1002 ClearMainPlaylist(): BaseAction(Type::ClearMainPlaylist
, "clear_main_playlist") { }
1005 virtual void run() override
;
1008 struct ClearPlaylist
: BaseAction
1010 ClearPlaylist(): BaseAction(Type::ClearPlaylist
, "clear_playlist") { }
1013 virtual bool canBeRun() override
;
1014 virtual void run() override
;
1017 struct SortPlaylist
: BaseAction
1019 SortPlaylist(): BaseAction(Type::SortPlaylist
, "sort_playlist") { }
1022 virtual bool canBeRun() override
;
1023 virtual void run() override
;
1026 struct ReversePlaylist
: BaseAction
1028 ReversePlaylist(): BaseAction(Type::ReversePlaylist
, "reverse_playlist") { }
1031 virtual bool canBeRun() override
;
1032 virtual void run() override
;
1034 NC::Menu
<MPD::Song
>::ConstIterator m_begin
;
1035 NC::Menu
<MPD::Song
>::ConstIterator m_end
;
1038 struct ApplyFilter
: public BaseAction
1040 ApplyFilter(): BaseAction(Type::ApplyFilter
, "apply_filter") { }
1043 virtual bool canBeRun() override
;
1044 virtual void run() override
;
1046 Filterable
*m_filterable
;
1049 struct Find
: BaseAction
1051 Find(): BaseAction(Type::Find
, "find") { }
1054 virtual bool canBeRun() override
;
1055 virtual void run() override
;
1058 struct FindItemForward
: BaseAction
1060 FindItemForward(): BaseAction(Type::FindItemForward
, "find_item_forward") { }
1063 virtual bool canBeRun() override
;
1064 virtual void run() override
;
1067 struct FindItemBackward
: BaseAction
1069 FindItemBackward(): BaseAction(Type::FindItemBackward
, "find_item_backward") { }
1072 virtual bool canBeRun() override
;
1073 virtual void run() override
;
1076 struct NextFoundItem
: BaseAction
1078 NextFoundItem(): BaseAction(Type::NextFoundItem
, "next_found_item") { }
1081 virtual bool canBeRun() override
;
1082 virtual void run() override
;
1085 struct PreviousFoundItem
: BaseAction
1087 PreviousFoundItem(): BaseAction(Type::PreviousFoundItem
, "previous_found_item") { }
1090 virtual bool canBeRun() override
;
1091 virtual void run() override
;
1094 struct ToggleFindMode
: BaseAction
1096 ToggleFindMode(): BaseAction(Type::ToggleFindMode
, "toggle_find_mode") { }
1099 virtual void run() override
;
1102 struct ToggleReplayGainMode
: BaseAction
1104 ToggleReplayGainMode(): BaseAction(Type::ToggleReplayGainMode
, "toggle_replay_gain_mode") { }
1107 virtual void run() override
;
1110 struct ToggleAddMode
: BaseAction
1112 ToggleAddMode(): BaseAction(Type::ToggleAddMode
, "toggle_add_mode") { }
1115 virtual void run() override
;
1118 struct ToggleMouse
: BaseAction
1120 ToggleMouse(): BaseAction(Type::ToggleMouse
, "toggle_mouse") { }
1123 virtual void run() override
;
1126 struct ToggleBitrateVisibility
: BaseAction
1128 ToggleBitrateVisibility(): BaseAction(Type::ToggleBitrateVisibility
, "toggle_bitrate_visibility") { }
1131 virtual void run() override
;
1134 struct AddRandomItems
: BaseAction
1136 AddRandomItems(): BaseAction(Type::AddRandomItems
, "add_random_items") { }
1139 virtual void run() override
;
1142 struct ToggleBrowserSortMode
: BaseAction
1144 ToggleBrowserSortMode(): BaseAction(Type::ToggleBrowserSortMode
, "toggle_browser_sort_mode") { }
1147 virtual bool canBeRun() override
;
1148 virtual void run() override
;
1151 struct ToggleLibraryTagType
: BaseAction
1153 ToggleLibraryTagType(): BaseAction(Type::ToggleLibraryTagType
, "toggle_library_tag_type") { }
1156 virtual bool canBeRun() override
;
1157 virtual void run() override
;
1160 struct ToggleMediaLibrarySortMode
: BaseAction
1162 ToggleMediaLibrarySortMode()
1163 : BaseAction(Type::ToggleMediaLibrarySortMode
, "toggle_media_library_sort_mode") { }
1166 virtual bool canBeRun() override
;
1167 virtual void run() override
;
1170 struct FetchLyricsInBackground
: BaseAction
1172 FetchLyricsInBackground()
1173 : BaseAction(Type::FetchLyricsInBackground
, "fetch_lyrics_in_background") { }
1176 virtual bool canBeRun() override
;
1177 virtual void run() override
;
1182 struct RefetchLyrics
: BaseAction
1184 RefetchLyrics(): BaseAction(Type::RefetchLyrics
, "refetch_lyrics") { }
1187 virtual bool canBeRun() override
;
1188 virtual void run() override
;
1191 struct SetSelectedItemsPriority
: BaseAction
1193 SetSelectedItemsPriority()
1194 : BaseAction(Type::SetSelectedItemsPriority
, "set_selected_items_priority") { }
1197 virtual bool canBeRun() override
;
1198 virtual void run() override
;
1201 struct ToggleOutput
: BaseAction
1203 ToggleOutput(): BaseAction(Type::ToggleOutput
, "toggle_output") { }
1206 virtual bool canBeRun() override
;
1207 virtual void run() override
;
1210 struct ToggleVisualizationType
: BaseAction
1212 ToggleVisualizationType()
1213 : BaseAction(Type::ToggleVisualizationType
, "toggle_visualization_type") { }
1217 virtual bool canBeRun() override
;
1218 virtual void run() override
;
1221 struct ShowSongInfo
: BaseAction
1223 ShowSongInfo(): BaseAction(Type::ShowSongInfo
, "show_song_info") { }
1226 virtual void run() override
;
1229 struct ShowArtistInfo
: BaseAction
1231 ShowArtistInfo(): BaseAction(Type::ShowArtistInfo
, "show_artist_info") { }
1234 virtual bool canBeRun() override
;
1235 virtual void run() override
;
1238 struct ShowLyrics
: BaseAction
1240 ShowLyrics(): BaseAction(Type::ShowLyrics
, "show_lyrics") { }
1243 virtual bool canBeRun() override
;
1244 virtual void run() override
;
1246 const MPD::Song
*m_song
;
1249 struct Quit
: BaseAction
1251 Quit(): BaseAction(Type::Quit
, "quit") { }
1254 virtual void run() override
;
1257 struct NextScreen
: BaseAction
1259 NextScreen(): BaseAction(Type::NextScreen
, "next_screen") { }
1262 virtual void run() override
;
1265 struct PreviousScreen
: BaseAction
1267 PreviousScreen(): BaseAction(Type::PreviousScreen
, "previous_screen") { }
1270 virtual void run() override
;
1273 struct ShowHelp
: BaseAction
1275 ShowHelp(): BaseAction(Type::ShowHelp
, "show_help") { }
1278 virtual bool canBeRun() override
;
1279 virtual void run() override
;
1282 struct ShowPlaylist
: BaseAction
1284 ShowPlaylist(): BaseAction(Type::ShowPlaylist
, "show_playlist") { }
1287 virtual bool canBeRun() override
;
1288 virtual void run() override
;
1291 struct ShowBrowser
: BaseAction
1293 ShowBrowser(): BaseAction(Type::ShowBrowser
, "show_browser") { }
1296 virtual bool canBeRun() override
;
1297 virtual void run() override
;
1300 struct ChangeBrowseMode
: BaseAction
1302 ChangeBrowseMode(): BaseAction(Type::ChangeBrowseMode
, "change_browse_mode") { }
1305 virtual bool canBeRun() override
;
1306 virtual void run() override
;
1309 struct ShowSearchEngine
: BaseAction
1311 ShowSearchEngine(): BaseAction(Type::ShowSearchEngine
, "show_search_engine") { }
1314 virtual bool canBeRun() override
;
1315 virtual void run() override
;
1318 struct ResetSearchEngine
: BaseAction
1320 ResetSearchEngine(): BaseAction(Type::ResetSearchEngine
, "reset_search_engine") { }
1323 virtual bool canBeRun() override
;
1324 virtual void run() override
;
1327 struct ShowMediaLibrary
: BaseAction
1329 ShowMediaLibrary(): BaseAction(Type::ShowMediaLibrary
, "show_media_library") { }
1332 virtual bool canBeRun() override
;
1333 virtual void run() override
;
1336 struct ToggleMediaLibraryColumnsMode
: BaseAction
1338 ToggleMediaLibraryColumnsMode()
1339 : BaseAction(Type::ToggleMediaLibraryColumnsMode
, "toggle_media_library_columns_mode") { }
1342 virtual bool canBeRun() override
;
1343 virtual void run() override
;
1346 struct ShowPlaylistEditor
: BaseAction
1348 ShowPlaylistEditor(): BaseAction(Type::ShowPlaylistEditor
, "show_playlist_editor") { }
1351 virtual bool canBeRun() override
;
1352 virtual void run() override
;
1355 struct ShowTagEditor
: BaseAction
1357 ShowTagEditor(): BaseAction(Type::ShowTagEditor
, "show_tag_editor") { }
1360 virtual bool canBeRun() override
;
1361 virtual void run() override
;
1364 struct ShowOutputs
: BaseAction
1366 ShowOutputs(): BaseAction(Type::ShowOutputs
, "show_outputs") { }
1369 virtual bool canBeRun() override
;
1370 virtual void run() override
;
1373 struct ShowVisualizer
: BaseAction
1375 ShowVisualizer(): BaseAction(Type::ShowVisualizer
, "show_visualizer") { }
1378 virtual bool canBeRun() override
;
1379 virtual void run() override
;
1382 struct ShowClock
: BaseAction
1384 ShowClock(): BaseAction(Type::ShowClock
, "show_clock") { }
1387 virtual bool canBeRun() override
;
1388 virtual void run() override
;
1391 struct ShowServerInfo
: BaseAction
1393 ShowServerInfo(): BaseAction(Type::ShowServerInfo
, "show_server_info") { }
1396 # ifdef HAVE_TAGLIB_H
1397 virtual bool canBeRun() override
;
1398 # endif // HAVE_TAGLIB_H
1399 virtual void run() override
;
1404 #endif // NCMPCPP_ACTIONS_H