| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Due to a missing sync_highlights() call, highlights were gone when the
user pressed the "update" hot key.
|
|
|
|
|
|
| |
"metalist" can have different meanings, depending on the mode.
Replace it with two separate variables "artist_list" and "album_list".
This way, we can optimize screen updates later.
|
|
|
|
|
| |
Replaced update_metalist() with three specialized functions for mode
switching.
|
|
|
|
|
|
| |
Some callers of update_metalist() want to reload the list contents.
Add an optimized function reload_lists() which does not modify the
global variables "mode", "artist", "album".
|
|
|
|
|
| |
Moved special cases for loading artist, album, song lists to separate
functions.
|
|
|
|
|
|
|
|
|
| |
A linked list is quite uncomfortable here because there is a lot of
indexed access to the list. Use a GPtrArray of strings instead.
Note that mpdclient_get_artists_utf8() and mpdclient_get_albums_utf8()
return a linked list, and sorting is also performed on the linked
list. This will be optimized later.
|
|
|
|
| |
Generate these special list entries on the fly.
|
|
|
|
|
| |
To unify the code, wrap list_window_cmd() in artist_lw_cmd(), which
properly checks the current mode.
|
|
|
|
|
|
| |
"prev_song_id" and "current_song_id" had value 0 if MPD was not
playing at all. This way, ncmpc cannot see the difference between
"song 0 playing" and "not playing". Change "not playing" to -1.
|
|
|
|
|
| |
When deciding whether to repaint the current highlight, test if MPD is
actually playing. If MPD starts playing, repaint.
|
|
|
|
|
|
|
|
| |
The play_update() function was reduced too much: it didn't repaint the
screen when the current song changed. Add check for that.
Don't repaint the screen in center_playing_item(), make the caller do
it.
|
|
|
|
| |
Ignore SIGPIPE, and handle errno==EPIPE instead.
|
|
|
|
|
| |
If the lyrics screen is disabled at compile time, don't initialize the
lyrics library in main().
|
|
|
|
|
| |
CMD_ADD ('a') appends a song to the playlist, no matter if it is
already there, i.e. unlike CMD_SELECT, it does not toggle the song.
|
|
|
|
| |
Static variables, pointers vs integers, void function returning, ...
|
| |
|
|
|
|
|
| |
Everything is now managed with a pointer to the screen_functions
struct.
|
|
|
|
| |
Finally remove all screen ids, they are not used anymore.
|
|
|
|
|
| |
Trying to get rid of the screen ids. A pointer to screen_functions is
better for identifying a screen.
|
|
|
|
|
|
| |
Screen code shouldn't know anything about the screen ids (which will
be eliminated completely later). Instead of comparing ids, compare
the screen_functions pointer.
|
|
|
|
|
| |
Move the hard-coded screen list and everything which works with this
array to screen_list.c.
|
|
|
|
|
| |
Instead of evaluating macros from config.h in the disabled source,
don't start the compiler on it at all.
|
|
|
|
|
| |
The second wmove() is redundant, because the cursor is already there
after waddstr(). This also repairs wide characters in the prompt.
|
|
|
|
|
| |
Since all screen updating is now on demand, we don't need this flag
anymore.
|
|
|
|
|
| |
play_update() is the only update() implementation left, and it does
not use the screen pointer. Remove it from the method signature.
|
|
|
|
|
| |
Instead of hiding the cursor in the update() callback, hide it with a
glib main loop timeout.
|
|
|
|
|
| |
Repaint the search screen on demand. No need for the update() method
anymore.
|
|
|
|
|
| |
The check wasn't actually doing anything, except leaking memory.
Remove it.
|
|
|
|
| |
New automake options are "gnu 1.6 dist-bzip2". Sync with Makefile.am.
|
|
|
|
| |
Replace the "hd" plugin with a trivial shell script.
|
|
|
|
|
| |
Repaint the file screen on demand. No need for the update() method
anymore.
|
|
|
|
|
| |
Repaint the artist screen on demand. No need for the update() method
anymore.
|
|
|
|
|
| |
Repaint the playlist window on demand. Don't repaint it
unconditionally in play_update().
|
|
|
|
|
| |
The property "repaint" is never read, since all callers repaint the
list window on demand.
|
|
|
|
| |
Automatically redraw the screen on demand, whenever data has changed.
|
|
|
|
|
| |
lyrics_repaint() or lyrics_repaint_if_active() are called after data
has changed, and the screen needs an update.
|
|
|
|
| |
Automatically redraw the list on demand, whenever data has changed.
|
|
|
|
|
| |
None of the paint() implementations actually use the screen pointer -
remove it from the method signature.
|
|
|
|
|
|
| |
screen_paint() and screen_update() are responsible for refreshing the
screen. We can remove all wrefresh() and wnoutrefresh() invocations
from all paint() and update() method implementations.
|
|
|
|
|
| |
Without clearing previous screen contents, there may be corruptions,
make this mandatory and optimize screen clearing.
|
|
|
|
| |
Follow the same code style als MPD itself.
|
|
|
|
| |
Don't install the lyrics plugins if the lyrics screen is disabled.
|
|
|
|
|
|
|
| |
When the user does not specify "--prefix", ${prefix} is "NONE". This
breaks the default lyrics plugin directory, which was
"${prefix}/lib/ncmpc/lyrics". Fall back to ${ac_default_prefix} if
${prefix} is NONE.
|
|
|
|
| |
When installing lyrics plugins, I forgot to honor $(DESTDIR) if set.
|
|
|
|
|
|
|
|
| |
Python defaults to sending ASCII characters, and aborts if there are
non-ASCII characters in the string. Unfortunately, due to "C.UTF-8"
being not defined, we cannot reliably make Python use UTF-8, without
further locale settings. Thus, work around this mess by manually
encoding the result to UTF-8 in the script.
|
|
|
|
| |
Instead of manually adjusting the selection, let list_window.c do it.
|
|
|
|
|
| |
There are lots of functions not being used outside of list_window.c.
Make them static to make it easier for gcc to optimize.
|
|
|
|
|
| |
The lyrics library loads all plugins from the directory configured
with "--with-lyrics-plugin-dir".
|
|
|
|
|
| |
Removed the commented checks for libraries which aren't being used
anymore by the new lyrics code.
|
|
|
|
|
| |
Threading has been disabled when I overhauled lyrics support. Remove
all libgthread checks from configure.ac.
|