|
|
|
|
@@ -133,142 +133,138 @@ void CreateDir(const std::string &dir)
|
|
|
|
|
|
|
|
|
|
void KeyConfiguration::GenerateBindings()
|
|
|
|
|
{
|
|
|
|
|
# define BIND(key, type, action) Bindings.insert(std::make_pair(Action::Key(key, type), Action::Get(action)))
|
|
|
|
|
Bind_(KEY_MOUSE, ctNCurses, aMouseEvent);
|
|
|
|
|
Bind_(KEY_UP, ctNCurses, aScrollUp);
|
|
|
|
|
Bind_(KEY_DOWN, ctNCurses, aScrollDown);
|
|
|
|
|
Bind_('[', ctStandard, aScrollUpAlbum);
|
|
|
|
|
Bind_(']', ctStandard, aScrollDownAlbum);
|
|
|
|
|
Bind_('{', ctStandard, aScrollUpArtist);
|
|
|
|
|
Bind_('}', ctStandard, aScrollDownArtist);
|
|
|
|
|
Bind_(KEY_PPAGE, ctNCurses, aPageUp);
|
|
|
|
|
Bind_(KEY_NPAGE, ctNCurses, aPageDown);
|
|
|
|
|
Bind_(KEY_HOME, ctNCurses, aMoveHome);
|
|
|
|
|
Bind_(KEY_END, ctNCurses, aMoveEnd);
|
|
|
|
|
Bind_(KEY_SPACE, ctStandard, aPressSpace);
|
|
|
|
|
Bind_(KEY_ENTER, ctStandard, aPressEnter);
|
|
|
|
|
Bind_(KEY_DC, ctNCurses, aDelete);
|
|
|
|
|
Bind_(KEY_RIGHT, ctNCurses, aNextColumn);
|
|
|
|
|
Bind_(KEY_RIGHT, ctNCurses, aSlaveScreen);
|
|
|
|
|
Bind_(KEY_RIGHT, ctNCurses, aVolumeUp);
|
|
|
|
|
Bind_(KEY_LEFT, ctNCurses, aPreviousColumn);
|
|
|
|
|
Bind_(KEY_LEFT, ctNCurses, aMasterScreen);
|
|
|
|
|
Bind_(KEY_LEFT, ctNCurses, aVolumeDown);
|
|
|
|
|
Bind_(KEY_TAB, ctStandard, aNextScreen);
|
|
|
|
|
Bind_(KEY_SHIFT_TAB, ctNCurses, aPreviousScreen);
|
|
|
|
|
Bind_('1', ctStandard, aShowHelp);
|
|
|
|
|
Bind_('2', ctStandard, aShowPlaylist);
|
|
|
|
|
Bind_('3', ctStandard, aShowBrowser);
|
|
|
|
|
Bind_('4', ctStandard, aShowSearchEngine);
|
|
|
|
|
Bind_('5', ctStandard, aShowMediaLibrary);
|
|
|
|
|
Bind_('6', ctStandard, aShowPlaylistEditor);
|
|
|
|
|
Bind_('7', ctStandard, aShowTagEditor);
|
|
|
|
|
Bind_('8', ctStandard, aShowOutputs);
|
|
|
|
|
Bind_('9', ctStandard, aShowVisualizer);
|
|
|
|
|
Bind_('0', ctStandard, aShowClock);
|
|
|
|
|
Bind_('@', ctStandard, aShowServerInfo);
|
|
|
|
|
Bind_('s', ctStandard, aStop);
|
|
|
|
|
Bind_('P', ctStandard, aPause);
|
|
|
|
|
Bind_('>', ctStandard, aNextSong);
|
|
|
|
|
Bind_('<', ctStandard, aPreviousSong);
|
|
|
|
|
Bind_(KEY_CTRL_H, ctStandard, aJumpToParentDir);
|
|
|
|
|
Bind_(KEY_CTRL_H, ctStandard, aReplaySong);
|
|
|
|
|
Bind_(KEY_BACKSPACE, ctNCurses, aJumpToParentDir);
|
|
|
|
|
Bind_(KEY_BACKSPACE, ctNCurses, aReplaySong);
|
|
|
|
|
Bind_(KEY_BACKSPACE_2, ctStandard, aJumpToParentDir);
|
|
|
|
|
Bind_(KEY_BACKSPACE_2, ctStandard, aReplaySong);
|
|
|
|
|
Bind_('f', ctStandard, aSeekForward);
|
|
|
|
|
Bind_('b', ctStandard, aSeekBackward);
|
|
|
|
|
Bind_('r', ctStandard, aToggleRepeat);
|
|
|
|
|
Bind_('z', ctStandard, aToggleRandom);
|
|
|
|
|
Bind_('y', ctStandard, aSaveTagChanges);
|
|
|
|
|
Bind_('y', ctStandard, aStartSearching);
|
|
|
|
|
Bind_('y', ctStandard, aToggleSingle);
|
|
|
|
|
Bind_('R', ctStandard, aToggleConsume);
|
|
|
|
|
Bind_('Y', ctStandard, aToggleReplayGainMode);
|
|
|
|
|
Bind_('t', ctStandard, aToggleSpaceMode);
|
|
|
|
|
Bind_('T', ctStandard, aToggleAddMode);
|
|
|
|
|
Bind_('|', ctStandard, aToggleMouse);
|
|
|
|
|
Bind_('#', ctStandard, aToggleBitrateVisibility);
|
|
|
|
|
Bind_('Z', ctStandard, aShuffle);
|
|
|
|
|
Bind_('x', ctStandard, aToggleCrossfade);
|
|
|
|
|
Bind_('X', ctStandard, aSetCrossfade);
|
|
|
|
|
Bind_('u', ctStandard, aUpdateDatabase);
|
|
|
|
|
Bind_(KEY_CTRL_V, ctStandard, aSortPlaylist);
|
|
|
|
|
Bind_(KEY_CTRL_R, ctStandard, aReversePlaylist);
|
|
|
|
|
Bind_(KEY_CTRL_F, ctStandard, aApplyFilter);
|
|
|
|
|
Bind_(KEY_CTRL_G, ctStandard, aDisableFilter);
|
|
|
|
|
Bind_('/', ctStandard, aFind);
|
|
|
|
|
Bind_('/', ctStandard, aFindItemForward);
|
|
|
|
|
Bind_('?', ctStandard, aFind);
|
|
|
|
|
Bind_('?', ctStandard, aFindItemBackward);
|
|
|
|
|
Bind_('.', ctStandard, aNextFoundItem);
|
|
|
|
|
Bind_(',', ctStandard, aPreviousFoundItem);
|
|
|
|
|
Bind_('w', ctStandard, aToggleFindMode);
|
|
|
|
|
Bind_('e', ctStandard, aEditSong);
|
|
|
|
|
Bind_('e', ctStandard, aEditLibraryTag);
|
|
|
|
|
Bind_('e', ctStandard, aEditLibraryAlbum);
|
|
|
|
|
Bind_('e', ctStandard, aEditDirectoryName);
|
|
|
|
|
Bind_('e', ctStandard, aEditPlaylistName);
|
|
|
|
|
Bind_('e', ctStandard, aEditLyrics);
|
|
|
|
|
Bind_('i', ctStandard, aShowSongInfo);
|
|
|
|
|
Bind_('I', ctStandard, aShowArtistInfo);
|
|
|
|
|
Bind_('g', ctStandard, aJumpToPositionInSong);
|
|
|
|
|
Bind_('l', ctStandard, aShowLyrics);
|
|
|
|
|
Bind_('v', ctStandard, aReverseSelection);
|
|
|
|
|
Bind_('V', ctStandard, aDeselectItems);
|
|
|
|
|
Bind_('B', ctStandard, aSelectAlbum);
|
|
|
|
|
Bind_('a', ctStandard, aAddSelectedItems);
|
|
|
|
|
Bind_('c', ctStandard, aClearPlaylist);
|
|
|
|
|
Bind_('c', ctStandard, aClearMainPlaylist);
|
|
|
|
|
Bind_('C', ctStandard, aCropPlaylist);
|
|
|
|
|
Bind_('C', ctStandard, aCropMainPlaylist);
|
|
|
|
|
Bind_('m', ctStandard, aMoveSortOrderUp);
|
|
|
|
|
Bind_('m', ctStandard, aMoveSelectedItemsUp);
|
|
|
|
|
Bind_('n', ctStandard, aMoveSortOrderDown);
|
|
|
|
|
Bind_('n', ctStandard, aMoveSelectedItemsDown);
|
|
|
|
|
Bind_('M', ctStandard, aMoveSelectedItemsTo);
|
|
|
|
|
Bind_('A', ctStandard, aAdd);
|
|
|
|
|
Bind_('S', ctStandard, aSavePlaylist);
|
|
|
|
|
Bind_('o', ctStandard, aJumpToPlayingSong);
|
|
|
|
|
Bind_('G', ctStandard, aJumpToBrowser);
|
|
|
|
|
Bind_('G', ctStandard, aJumpToPlaylistEditor);
|
|
|
|
|
Bind_('~', ctStandard, aJumpToMediaLibrary);
|
|
|
|
|
Bind_('E', ctStandard, aJumpToTagEditor);
|
|
|
|
|
Bind_('U', ctStandard, aToggleAutoCenter);
|
|
|
|
|
Bind_('p', ctStandard, aToggleDisplayMode);
|
|
|
|
|
Bind_('\\', ctStandard, aToggleInterface);
|
|
|
|
|
Bind_('!', ctStandard, aToggleSeparatorsInPlaylist);
|
|
|
|
|
Bind_('L', ctStandard, aToggleLyricsFetcher);
|
|
|
|
|
Bind_('F', ctStandard, aToggleFetchingLyricsInBackground);
|
|
|
|
|
Bind_(KEY_CTRL_L, ctStandard, aToggleScreenLock);
|
|
|
|
|
Bind_('`', ctStandard, aToggleBrowserSortMode);
|
|
|
|
|
Bind_('`', ctStandard, aToggleLibraryTagType);
|
|
|
|
|
Bind_('`', ctStandard, aRefetchLyrics);
|
|
|
|
|
Bind_('`', ctStandard, aRefetchArtistInfo);
|
|
|
|
|
Bind_('`', ctStandard, aAddRandomItems);
|
|
|
|
|
Bind_(KEY_CTRL_P, ctStandard, aSetSelectedItemsPriority);
|
|
|
|
|
Bind_('q', ctStandard, aQuit);
|
|
|
|
|
|
|
|
|
|
BIND(KEY_MOUSE, ctNCurses, aMouseEvent);
|
|
|
|
|
BIND(KEY_UP, ctNCurses, aScrollUp);
|
|
|
|
|
BIND(KEY_DOWN, ctNCurses, aScrollDown);
|
|
|
|
|
BIND('[', ctStandard, aScrollUpAlbum);
|
|
|
|
|
BIND(']', ctStandard, aScrollDownAlbum);
|
|
|
|
|
BIND('{', ctStandard, aScrollUpArtist);
|
|
|
|
|
BIND('}', ctStandard, aScrollDownArtist);
|
|
|
|
|
BIND(KEY_PPAGE, ctNCurses, aPageUp);
|
|
|
|
|
BIND(KEY_NPAGE, ctNCurses, aPageDown);
|
|
|
|
|
BIND(KEY_HOME, ctNCurses, aMoveHome);
|
|
|
|
|
BIND(KEY_END, ctNCurses, aMoveEnd);
|
|
|
|
|
BIND(KEY_SPACE, ctStandard, aPressSpace);
|
|
|
|
|
BIND(KEY_ENTER, ctStandard, aPressEnter);
|
|
|
|
|
BIND(KEY_DC, ctNCurses, aDelete);
|
|
|
|
|
BIND(KEY_RIGHT, ctNCurses, aNextColumn);
|
|
|
|
|
BIND(KEY_RIGHT, ctNCurses, aSlaveScreen);
|
|
|
|
|
BIND(KEY_RIGHT, ctNCurses, aVolumeUp);
|
|
|
|
|
BIND(KEY_LEFT, ctNCurses, aPreviousColumn);
|
|
|
|
|
BIND(KEY_LEFT, ctNCurses, aMasterScreen);
|
|
|
|
|
BIND(KEY_LEFT, ctNCurses, aVolumeDown);
|
|
|
|
|
BIND(KEY_TAB, ctStandard, aNextScreen);
|
|
|
|
|
BIND(KEY_SHIFT_TAB, ctNCurses, aPreviousScreen);
|
|
|
|
|
BIND('1', ctStandard, aShowHelp);
|
|
|
|
|
BIND('2', ctStandard, aShowPlaylist);
|
|
|
|
|
BIND('3', ctStandard, aShowBrowser);
|
|
|
|
|
BIND('4', ctStandard, aShowSearchEngine);
|
|
|
|
|
BIND('5', ctStandard, aShowMediaLibrary);
|
|
|
|
|
BIND('6', ctStandard, aShowPlaylistEditor);
|
|
|
|
|
BIND('7', ctStandard, aShowTagEditor);
|
|
|
|
|
BIND('8', ctStandard, aShowOutputs);
|
|
|
|
|
BIND('9', ctStandard, aShowVisualizer);
|
|
|
|
|
BIND('0', ctStandard, aShowClock);
|
|
|
|
|
BIND('@', ctStandard, aShowServerInfo);
|
|
|
|
|
BIND('s', ctStandard, aStop);
|
|
|
|
|
BIND('P', ctStandard, aPause);
|
|
|
|
|
BIND('>', ctStandard, aNextSong);
|
|
|
|
|
BIND('<', ctStandard, aPreviousSong);
|
|
|
|
|
BIND(KEY_CTRL_H, ctStandard, aJumpToParentDir);
|
|
|
|
|
BIND(KEY_CTRL_H, ctStandard, aReplaySong);
|
|
|
|
|
BIND(KEY_BACKSPACE, ctNCurses, aJumpToParentDir);
|
|
|
|
|
BIND(KEY_BACKSPACE, ctNCurses, aReplaySong);
|
|
|
|
|
BIND(KEY_BACKSPACE_2, ctStandard, aJumpToParentDir);
|
|
|
|
|
BIND(KEY_BACKSPACE_2, ctStandard, aReplaySong);
|
|
|
|
|
BIND('f', ctStandard, aSeekForward);
|
|
|
|
|
BIND('b', ctStandard, aSeekBackward);
|
|
|
|
|
BIND('r', ctStandard, aToggleRepeat);
|
|
|
|
|
BIND('z', ctStandard, aToggleRandom);
|
|
|
|
|
BIND('y', ctStandard, aSaveTagChanges);
|
|
|
|
|
BIND('y', ctStandard, aStartSearching);
|
|
|
|
|
BIND('y', ctStandard, aToggleSingle);
|
|
|
|
|
BIND('R', ctStandard, aToggleConsume);
|
|
|
|
|
BIND('Y', ctStandard, aToggleReplayGainMode);
|
|
|
|
|
BIND('t', ctStandard, aToggleSpaceMode);
|
|
|
|
|
BIND('T', ctStandard, aToggleAddMode);
|
|
|
|
|
BIND('|', ctStandard, aToggleMouse);
|
|
|
|
|
BIND('#', ctStandard, aToggleBitrateVisibility);
|
|
|
|
|
BIND('Z', ctStandard, aShuffle);
|
|
|
|
|
BIND('x', ctStandard, aToggleCrossfade);
|
|
|
|
|
BIND('X', ctStandard, aSetCrossfade);
|
|
|
|
|
BIND('u', ctStandard, aUpdateDatabase);
|
|
|
|
|
BIND(KEY_CTRL_V, ctStandard, aSortPlaylist);
|
|
|
|
|
BIND(KEY_CTRL_R, ctStandard, aReversePlaylist);
|
|
|
|
|
BIND(KEY_CTRL_F, ctStandard, aApplyFilter);
|
|
|
|
|
BIND(KEY_CTRL_G, ctStandard, aDisableFilter);
|
|
|
|
|
BIND('/', ctStandard, aFind);
|
|
|
|
|
BIND('/', ctStandard, aFindItemForward);
|
|
|
|
|
BIND('?', ctStandard, aFind);
|
|
|
|
|
BIND('?', ctStandard, aFindItemBackward);
|
|
|
|
|
BIND('.', ctStandard, aNextFoundItem);
|
|
|
|
|
BIND(',', ctStandard, aPreviousFoundItem);
|
|
|
|
|
BIND('w', ctStandard, aToggleFindMode);
|
|
|
|
|
BIND('e', ctStandard, aEditSong);
|
|
|
|
|
BIND('e', ctStandard, aEditLibraryTag);
|
|
|
|
|
BIND('e', ctStandard, aEditLibraryAlbum);
|
|
|
|
|
BIND('e', ctStandard, aEditDirectoryName);
|
|
|
|
|
BIND('e', ctStandard, aEditPlaylistName);
|
|
|
|
|
BIND('e', ctStandard, aEditLyrics);
|
|
|
|
|
BIND('i', ctStandard, aShowSongInfo);
|
|
|
|
|
BIND('I', ctStandard, aShowArtistInfo);
|
|
|
|
|
BIND('g', ctStandard, aJumpToPositionInSong);
|
|
|
|
|
BIND('l', ctStandard, aShowLyrics);
|
|
|
|
|
BIND('v', ctStandard, aReverseSelection);
|
|
|
|
|
BIND('V', ctStandard, aDeselectItems);
|
|
|
|
|
BIND('B', ctStandard, aSelectAlbum);
|
|
|
|
|
BIND('a', ctStandard, aAddSelectedItems);
|
|
|
|
|
BIND('c', ctStandard, aClearPlaylist);
|
|
|
|
|
BIND('c', ctStandard, aClearMainPlaylist);
|
|
|
|
|
BIND('C', ctStandard, aCropPlaylist);
|
|
|
|
|
BIND('C', ctStandard, aCropMainPlaylist);
|
|
|
|
|
BIND('m', ctStandard, aMoveSortOrderUp);
|
|
|
|
|
BIND('m', ctStandard, aMoveSelectedItemsUp);
|
|
|
|
|
BIND('n', ctStandard, aMoveSortOrderDown);
|
|
|
|
|
BIND('n', ctStandard, aMoveSelectedItemsDown);
|
|
|
|
|
BIND('M', ctStandard, aMoveSelectedItemsTo);
|
|
|
|
|
BIND('A', ctStandard, aAdd);
|
|
|
|
|
BIND('S', ctStandard, aSavePlaylist);
|
|
|
|
|
BIND('o', ctStandard, aJumpToPlayingSong);
|
|
|
|
|
BIND('G', ctStandard, aJumpToBrowser);
|
|
|
|
|
BIND('G', ctStandard, aJumpToPlaylistEditor);
|
|
|
|
|
BIND('~', ctStandard, aJumpToMediaLibrary);
|
|
|
|
|
BIND('E', ctStandard, aJumpToTagEditor);
|
|
|
|
|
BIND('U', ctStandard, aToggleAutoCenter);
|
|
|
|
|
BIND('p', ctStandard, aToggleDisplayMode);
|
|
|
|
|
BIND('\\', ctStandard, aToggleInterface);
|
|
|
|
|
BIND('!', ctStandard, aToggleSeparatorsInPlaylist);
|
|
|
|
|
BIND('L', ctStandard, aToggleLyricsFetcher);
|
|
|
|
|
BIND('F', ctStandard, aToggleFetchingLyricsInBackground);
|
|
|
|
|
BIND(KEY_CTRL_L, ctStandard, aToggleScreenLock);
|
|
|
|
|
BIND('`', ctStandard, aToggleBrowserSortMode);
|
|
|
|
|
BIND('`', ctStandard, aToggleLibraryTagType);
|
|
|
|
|
BIND('`', ctStandard, aRefetchLyrics);
|
|
|
|
|
BIND('`', ctStandard, aRefetchArtistInfo);
|
|
|
|
|
BIND('`', ctStandard, aAddRandomItems);
|
|
|
|
|
BIND(KEY_CTRL_P, ctStandard, aSetSelectedItemsPriority);
|
|
|
|
|
BIND('q', ctStandard, aQuit);
|
|
|
|
|
|
|
|
|
|
BIND('k', ctStandard, aScrollUp);
|
|
|
|
|
BIND('j', ctStandard, aScrollDown);
|
|
|
|
|
BIND('d', ctStandard, aDelete);
|
|
|
|
|
BIND('+', ctStandard, aVolumeUp);
|
|
|
|
|
BIND('-', ctStandard, aVolumeDown);
|
|
|
|
|
BIND(KEY_F1, ctNCurses, aShowHelp);
|
|
|
|
|
BIND(KEY_F2, ctNCurses, aShowPlaylist);
|
|
|
|
|
BIND(KEY_F3, ctNCurses, aShowBrowser);
|
|
|
|
|
BIND(KEY_F4, ctNCurses, aShowSearchEngine);
|
|
|
|
|
BIND(KEY_F5, ctNCurses, aShowMediaLibrary);
|
|
|
|
|
BIND(KEY_F6, ctNCurses, aShowPlaylistEditor);
|
|
|
|
|
BIND(KEY_F7, ctNCurses, aShowTagEditor);
|
|
|
|
|
BIND(KEY_F8, ctNCurses, aShowOutputs);
|
|
|
|
|
BIND(KEY_F9, ctNCurses, aShowVisualizer);
|
|
|
|
|
BIND(KEY_F10, ctNCurses, aShowClock);
|
|
|
|
|
BIND('Q', ctStandard, aQuit);
|
|
|
|
|
|
|
|
|
|
# undef BIND
|
|
|
|
|
Bind_('k', ctStandard, aScrollUp);
|
|
|
|
|
Bind_('j', ctStandard, aScrollDown);
|
|
|
|
|
Bind_('d', ctStandard, aDelete);
|
|
|
|
|
Bind_('+', ctStandard, aVolumeUp);
|
|
|
|
|
Bind_('-', ctStandard, aVolumeDown);
|
|
|
|
|
Bind_(KEY_F1, ctNCurses, aShowHelp);
|
|
|
|
|
Bind_(KEY_F2, ctNCurses, aShowPlaylist);
|
|
|
|
|
Bind_(KEY_F3, ctNCurses, aShowBrowser);
|
|
|
|
|
Bind_(KEY_F4, ctNCurses, aShowSearchEngine);
|
|
|
|
|
Bind_(KEY_F5, ctNCurses, aShowMediaLibrary);
|
|
|
|
|
Bind_(KEY_F6, ctNCurses, aShowPlaylistEditor);
|
|
|
|
|
Bind_(KEY_F7, ctNCurses, aShowTagEditor);
|
|
|
|
|
Bind_(KEY_F8, ctNCurses, aShowOutputs);
|
|
|
|
|
Bind_(KEY_F9, ctNCurses, aShowVisualizer);
|
|
|
|
|
Bind_(KEY_F10, ctNCurses, aShowClock);
|
|
|
|
|
Bind_('Q', ctStandard, aQuit);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Configuration::SetDefaults()
|
|
|
|
|
|