screen_interface: add method mouse(), replacing CMD_MOUSE_EVENT
screen_queue: use mpdclient_settings_name() for the title
Simplifies commit 23041f39c7c7e1d119ffe2f6239cc3a2f1248e1a
Simplifies commit 23041f39c7c7e1d119ffe2f6239cc3a2f1248e1a
screen_queue: no typedef for completion_callback_data_t
screen_queue: move the completion_callback_data_t type down
options: don't override the libmpdclient default timeout
libmpdclient's default is 30s, which is just as good as our 5s
timeout. Why change that with extra code?
libmpdclient's default is 30s, which is just as good as our 5s
timeout. Why change that with extra code?
screen_queue: hide the MPD password in the screen title
Closes #2
Closes #2
initial travis file
meson_options.txt: add missing default values
meson.build: fix build with meson > 0.38.1
Fixes the error "Tried to form an absolute path to a source dir. You
should not do that but use relative paths instead."
Fixes the error "Tried to form an absolute path to a source dir. You
should not do that but use relative paths instead."
build with Meson instead of autotools
README.rst: reformat the "Links" section
README.rst: bug tracking now on GitHub
README.rst: use double backticks
README.rst: remove unnecessary text
README: convert to reStructuredText
conf: merge two translatable strings
conf: extract name and value from the input line in-place
No copies to a stack buffer.
No copies to a stack buffer.
conf: cheap replacement for g_strchug()
screen_song: fix memory leak
plugin: fix crash
increment version number to 0.28
release v0.27
aconnect: remove redundant #include, fixes windows build
net/async_connect: add missing include for socklen_t
wreadln: fix #ifdef for WIN32
mpdclient: try IP connect if default local socket path fails
This is what libmpdclient does internally, and when ncmpc copied some
code from libmpdclient, it did not replicate this implementation
detail.
https://bugs.musicpd.org/view.php?id=4672
This is what libmpdclient does internally, and when ncmpc copied some
code from libmpdclient, it did not replicate this implementation
detail.
https://bugs.musicpd.org/view.php?id=4672
mpdclient: move aconnect_start() call to a separate function
main: move default_settings_name() to mpdclient.c
aconnect: assign variable first, then start connect
Fixes bogus assertion failure.
Fixes bogus assertion failure.
utils: move format_duration_*() to time_format.c
db_completion: use g_strconcat()
utils: move gcmp_list_from_path() to db_completion.c
wreadln: call g_list_length() only once
colors, utils: use g_list_free_full(g_free)
colors: return bool instead of int
colors: colors_update_pair(), colors_start() and colors_use() return void
list_window: convert comments to doxygen
save_playlist: move NULL check up
screen_queue: move playlist_save() to save_playlist.c
po: update ncmpc.pot
screen_utils: automatically append "[y/n]"
po: update ncmpc.pot
po/POTFILES.in: add new source files
po/POTFILES.in: sort
colors: simplify i18n strings
screen: move code to screen_init.c
screen: move screen_paint() to screen_paint.c
screen: move mode_fn into struct screen
screen: make cols and rows local
screen: rename screen_refresh() to screen_paint()
screen: move code to paint_top_window()
plugin: use g_idle_add() instead of g_timeout_add(0)
use g_timeout_add_seconds() where appropriate
keyboard: no begin/end_input_event() on unknown key codes
keyboard: move code to ignore_key()
screen_interface: make cols/rows unsigned
screen_utils: move KEY_MOUSE check to ignore_key(), avoid recursion
screen_utils: move check to ignore_key()
xterm_title: use getenv() instead of g_getenv()
xterm_title: simplify if/else chains
main: improve strfsong() error check
main: check for strfsong() failure, add fallback
xterm_title: pass string, no format
screen_utils: move set_xterm_title() to xterm_title.c
status_bar: remove the status bar clock (option "display-time")
This is a pretty useless feature which is only available when not
playing something - a state in which ncmpc isn't useful either. What
the clock does is require a timer which wakes up ncmpc every second,
when it should better be completely idle (and swapped out).
This is a pretty useless feature which is only available when not
playing something - a state in which ncmpc isn't useful either. What
the clock does is require a timer which wakes up ncmpc every second,
when it should better be completely idle (and swapped out).
main: no delay for initial collect
screen: remove redundant #ifndef
screen: remove unnecessary paint calls from screen_resize()
This will be done again by the following screen_paint() call.
This will be done again by the following screen_paint() call.
screen: remove unnecessary paint calls from screen_init()
This will be painted right before entering the main loop.
This will be painted right before entering the main loop.
increment version number to 0.27
release v0.26
po: update ncmpc.pot
screen_song: don't translate printf formats
Makefile.am: use CURSES_LIBS instead of CURSES_LIB
screen_*: eliminate redundant wrefresh() calls
This is already called by screen_refresh().
This is already called by screen_refresh().
screen: merge duplicate code from screen_paint() and screen_update()
screen_browser: include cleanup
screen: remove unnecessary doupdate() call from screen_init()
main() will call screen_paint() before entering the main loop, so this
saves a few bytes of stdout transfer.
main() will call screen_paint() before entering the main loop, so this
saves a few bytes of stdout transfer.
screen_utils: remove redundant doupdate() call
wrefresh() implies doupdate().
wrefresh() implies doupdate().
keyboard: call wgetch() on main window
This erases all the windows, and requires them to repaint. Strangely,
ncurses does this only in color mode. Anyway, this greatly reduces
the amount of data transferred to stdout, and fixes the flickering
problems.
This erases all the windows, and requires them to repaint. Strangely,
ncurses does this only in color mode. Anyway, this greatly reduces
the amount of data transferred to stdout, and fixes the flickering
problems.
keyboard: implement keyboard_unread() without ungetch()
keyboard: move code to translate_key()
keyboard: add keyboard_unread()
command: move get_keyboard_command() to keyboard.c
command: remove "pure" attribute from get_keyboard_command()
command: include cleanup
mpdclient: connect to MPD asynchronously
This way, the user can really cancel the connection attempt at any
time, and does not need to wait for a timeout.
This duplicates some code from libmpdclient, but unfortunately
libmpdclient doesn't expose a usable API for connecting asynchronously
yet.
This way, the user can really cancel the connection attempt at any
time, and does not need to wait for a timeout.
This duplicates some code from libmpdclient, but unfortunately
libmpdclient doesn't expose a usable API for connecting asynchronously
yet.
mpdclient: move code to mpdclient_connected()
configure.ac: remove redundant variable assignments
These are implied by autoconf.
These are implied by autoconf.
mpdclient: eliminate redundant mpd_status_get_volume() calls
Return early from mpdclient_cmd_volume_*(), without calling
mpdclient_get_connection(), if we already know the operation would
have no effect.
Return early from mpdclient_cmd_volume_*(), without calling
mpdclient_get_connection(), if we already know the operation would
have no effect.
main: remove check_reconnect()
Assume that mpdclient_lost_callback() is everything we need to
implement.
Assume that mpdclient_lost_callback() is everything we need to
implement.
mpdclient: call mpdclient_lost_callback() after failed error recovery
mpdclient: no mpdclient_handle_error() after connect failure
Invoke the error callback, but don't attempt to recover.
Invoke the error callback, but don't attempt to recover.
mpdclient: automatically re-enter idle mode, eliminate mpdclient_put_connection()
main: remove redundant mpdclient_disconnect() call
mpdclient: pass host, port etc. to constructor
main: move signal handlers to signals.c
main: use g_unix_signal_add() for SIGTERM, SIGINT and SIGHUP
Unfortunately, GLib doesn't support SIGWINCH and SIGCONT, for whatever
reasons.
Unfortunately, GLib doesn't support SIGWINCH and SIGCONT, for whatever
reasons.