aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2008-09-23screen_play: use list_window_check_selected()Max Kellermann1-5/+1
Instead of manually adjusting the selection, let list_window.c do it.
2008-09-23list_window: converted several public functions to staticMax Kellermann2-12/+6
There are lots of functions not being used outside of list_window.c. Make them static to make it easier for gcc to optimize.
2008-09-23lyrics: configurable global plugin directoryMax Kellermann1-4/+19
The lyrics library loads all plugins from the directory configured with "--with-lyrics-plugin-dir".
2008-09-23lyrics: added callbackMax Kellermann3-69/+56
Instead of letting our caller poll lyrics_result(), call it back as soon as we have the result.
2008-09-23lyrics: reimplemented with aynchronous I/OMax Kellermann1-69/+98
Instead of creating a thread for handling lyrics plugin data, register a channel at the glib main loop.
2008-09-23screen_lyrics: set current.songMax Kellermann1-2/+2
The variable current.song was never set, thus the cache did not work. Don't reset it in screen_lyrics_clear() (which is called from screen_lyrics_set()).
2008-09-22options: added constant option_table_sizeMax Kellermann1-7/+7
Instead of checking for the sentinel at the end of the option table, check the option_table_size constant.
2008-09-22options: constant options_tableMax Kellermann1-3/+3
Make the options_table constant, since it is never modified.
2008-09-22screen_utils: simplified call to wreadln_masked()Max Kellermann1-3/+2
If prompt is NULL, do not add a second call to wreadln_masked() with a literal string, but assign this literal string to the variable "prompt". This saves several bytes in the compiled binary.
2008-09-22screen_utils: hide cursor after screen_read_password()Max Kellermann1-2/+5
The call to curs_set(0) in screen_read_password() was dead code, because it was after the function return. Repair that.
2008-09-22screen: unsigned integers for screen dimensionsMax Kellermann2-5/+5
Store screen width and height as unsigned integer.
2008-09-22code style, indent with tabs IXMax Kellermann2-309/+301
Follow the same code style als MPD itself.
2008-09-22screen: simplified CMD_SCREEN_UPDATE handlersMax Kellermann3-8/+4
Since screen.c has default code for CMD_SCREEN_UPDATE, return 0 from the command handlers and let screen.c do the rest.
2008-09-22screen: don't set list_window->repaintMax Kellermann3-9/+1
Several screens ignore the attribute list_window->repaint. Don't set it there. It will be replaced with a more intelligent repaint algorithm later.
2008-09-22screen: removed window.cur_action_idMax Kellermann1-1/+0
The variable cur_action_id is not used at all.
2008-09-22screen: last_cmd should be a command_tMax Kellermann1-1/+2
last_cmd stores the previous command sent to the screen. It is not a timestamp, and its type should be command_t.
2008-09-22screen: moved input_timestamp to screen_play.cMax Kellermann3-4/+6
Since the input_timestamp is only used by screen_play, move it there.
2008-09-22screen: moved list_window mouse code to list_window.cMax Kellermann6-28/+47
Move the portion of screen_get_mouse_event() which handles list_window clicks to list_window.c. The code contained a NULL pointer dereference, which is now fixed.
2008-09-22screen: moved code to ncu.cMax Kellermann6-35/+97
Moved basic libncurses initialization to ncu.c and ncu.h. Keep generic code out of screen.c.
2008-09-22main: free keyboard IO channelMax Kellermann1-2/+7
Before terminating ncmpc, free the keyboard GIOChannel object.
2008-09-22added option "welcome-screen-list"David Shakaryan4-1/+9
"welcome-screen-list" shows the screen list in the top row shortly after startup, and is enabled by default.
2008-09-21browse: ensure that filelist!=NULLMax Kellermann2-4/+18
There are several places where browser.filelist can become NULL. Catch that everywhere and generate an empty filelist in this case.
2008-09-21browser: check if the selection is validMax Kellermann2-1/+8
Don't call filelist_get() with an invalid index.
2008-09-21support: added assertionsMax Kellermann1-0/+16
Check the function parameters.
2008-09-21screen_artist: check if anything is selectedMax Kellermann1-0/+8
Don't try to call add_query() with no valid selection, this causes a segfault. This usually happens when ncmpc isn't connected.
2008-09-21libmpdclient: added another connection->sock checkMax Kellermann1-0/+6
Check if connection->sock is valid in mpd_executeCommand().
2008-09-21mpdclient: check errorCode only if MPD_ERROR_ACK is setMax Kellermann1-1/+2
connection->errorCode has an undefined value when connection->error is not MPD_ERROR_ACK. Read it only if MPD_ERROR_ACK is set, to make valgrind happy.
2008-09-21mpdclient: fix memory leak in mpdclient_finish_command()Max Kellermann1-4/+5
During authentication, the message pointer was allocated, but never freed. Allocate it only if it is really used (and freed).
2008-09-21code style, indent with tabs VIIIMax Kellermann1-171/+143
Follow the same code style als MPD itself.
2008-09-21libmpdclient: check connection->sock >= 0Max Kellermann1-0/+10
mpd_wait() must not be called when the socket is dead; add an assertion there. In mpd_recv(), add a run-time check.
2008-09-21added optional bitrate display to status barJ. Alexander Treuman3-4/+20
If visible-bitrate is enabled, then the current bitrate will be drawn next to the song time in the status bar. By default it will not be displayed.
2008-09-21wreadln: adding additional line editing bindsJ. Alexander Treuman1-1/+9
Adding some GNU readline-style binds. These are ^B/^F to move the cursor back/forward, and ^N/^P to go to the next/previous line.
2008-09-21mpdclient: don't call screen_status_message()Max Kellermann1-2/+0
The caller should decide how to display error messages.
2008-09-21Adding crop feature in ncmpcYannick LM6-0/+44
The "crop" command deletes all songs from the playlist, except the one currently being played.
2008-09-21screen_help: removed update() methodMax Kellermann1-13/+6
Why redraw the help screen when nothing has changed? Redraw it only after help_cmd(), and when explicitly requested (help_paint()).
2008-09-19filelist: fix segfault during filelist_sort()Max Kellermann1-1/+13
When I converted the filelist from GList to GPtrArray, I missed that the GCompareFunc does not actually get the pointers from g_ptr_array_sort(), but pointers to the pointers... run g_ptr_array_sort_with_data() instead with a wrapper function.
2008-09-19filelist: free entries with g_slice_free()Max Kellermann1-2/+2
Somehow I forgot about changing free() to g_slice_free() in the previous patch...
2008-09-19filelist: allocate entries with g_slice_alloc()Max Kellermann1-4/+2
In this case, slices are faster. Also fix a memory leak in filelist_prepend() which I simply forgot about in the last patch set.
2008-09-19filelist: use GPtrArray instead of GListMax Kellermann5-63/+57
Since we do a lot of indexed accesses to the filelist, a linked list doesn't seem appropriate. Use GPtrArray instead.
2008-09-19browser: added function browser_get_selected()Max Kellermann1-9/+11
browser_get_selected() checks if there is a file list and a valid selection, and returns the selected entry.
2008-09-19screen_search: free second file listMax Kellermann1-0/+1
Fix a memory leak: the concatened list was never freed.
2008-09-19filelist: provide more functions for working with a filelistMax Kellermann7-58/+124
Avoid direct accesses to the filelist struct, provide an API for that.
2008-09-19filelist: drop "mpdclient" prefixMax Kellermann8-18/+16
The separate filelist library does not depend on mpdclient, so the prefix is superfluous.
2008-09-19browser: use mpdclient_filelist_find_song() in set_highlight()Max Kellermann1-18/+9
A song should not be twice in the browser. Simplify set_highlight() by finding the entry with mpdclient_filelist_find_song().
2008-09-19browser: song must not be NULL in set_highlight()Max Kellermann1-2/+1
The caller must not pass NULL to set_highlight(). Replaced check with assertion.
2008-09-19filelist: song must not be NULLMax Kellermann1-1/+4
A caller must not pass NULL to mpdclient_filelist_find_song(). Replace the check with an assertion.
2008-09-19mpdclient: moved code to filelist.cMax Kellermann5-77/+126
Move everything which is solely filelist related to filelist.c and filelist.h. Fix the indentation of that file, and provide the struct name "filelist". Don't clear data in mpdclient_filelist_free() before calling g_free(). Constify the "song" parameter to mpdclient_filelist_find_song().
2008-09-19code style, indent with tabs VIIMax Kellermann1-23/+16
Follow the same code style als MPD itself.
2008-09-19fix terminal resizing (SIGWINCH)Max Kellermann1-0/+33
When I replaced ncmpc's old main loop with g_main_loop from libglib, SIGWINCH (i.e. window resizing) stopped working. This regression was caused by the fact that ncurses' wgetch() function was only called when there was actually data on STDIN. wgetch() has several side effects besides reading data from STDIN, for example it checks whether there has been a window resize. Fix this with a custom SIGWINCH handler.
2008-09-18removed the clock screenMax Kellermann8-250/+0
Why should an audio player display a large clock?