| Commit message (Collapse) | Author | Files | Lines |
|
Don't pass "noconvert" to charset_init(). Let charset_init()
determine that with g_get_charset() and return its name.
|
|
my_strlen() is a bad name for the function, since the return value is
not a length, but a visible width on the screen. Rename it to
utf8_width() and change its return type to "unsigned".
|
|
Move everything which deals with UTF-8 strings and character set
conversion to charset.c, header charset.h.
|
|
Moved constants which are only used in one source file. Remove
several unused macros.
|
|
Use options.list_format and options.status_format directly instead of
these two macros.
|
|
Don't make everybody include ncmpc.h just to have generic features.
Move generic i18n macros to a separate header.
|
|
Use the standard "bool" type instead of glib's "gboolean". This way,
options.h doesn't have to include the fat glib.h.
|
|
This library isn't being used anymore, delete it.
|
|
These macros are only used by options.c and conf.c. Move them to a
common internal header.
|
|
Instead of checking whether options.list_format is set in the
LIST_FORMAT macro, initialize it once with options.list_format. Same
for options.status_format / STATUS_FORMAT.
|
|
gdb is for debugging. We don't need D() calls littered all over.
|
|
When we created created browser_cmd(), several functions of the
screen_browser API weren't used by other sources anymore. We can now
unexport them.
|
|
screen_lyrics_switch() opens the lyrics screen and displays the lyrics
of the specified song. This way, the user may view the lyrics of any
song in the database browser.
|
|
Provide an API for switching the currently displayed screen. Rename
switch_screen_mode() to screen_switch().
|
|
Since the method types are used only once, we do not need typedefs for
that. Declare the method types within struct screen_functions.
|
|
Merge a lot of code from the 3 browser screen into browser_cmd().
|
|
By calling artist_lw_cmd() after the big switch, we can override
behaviour, and we can modify the command.
|
|
artist_repaint() calls wrefresh(), don't call it again after
that.
|
|
Pass constant pointers to strfsong() and screen_lyrics_load().
|
|
Since screen.h checks the macros from config.h, we have to include it.
|
|
Everybody who uses the ENABLE_ macros has to include ncmpc.h. We're
better off defining those in config.h via configure.ac.
|
|
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.
|
|
Repaint the file screen on demand. No need for the update() method
anymore.
|