aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2008-09-17help: return early from list_callback()Max Kellermann1-25/+25
2008-09-17help: converted help_text_rows to a macroMax Kellermann1-10/+3
Why bother counting the elements of help_text[] (with sentinel) at runtime, when the compiler can do it at compile time?
2008-09-17lyrics: removed lyrics_text_rows, use current.lines->len insteadMax Kellermann1-2/+1
lyrics_text_rows wasn't set anyway, I somehow removed the code in a patch some time ago.
2008-09-17list_window: added list_window_center()Max Kellermann5-27/+25
Merge code which used to be duplicated in the screens "play", "help", "lyrics".
2008-09-17list_window: added list_window_scroll_cmd()Max Kellermann4-69/+62
It is similar to list_window_cmd(), but it scrolls the window instead of moving the selection. It is used by the "lyrics" and the "help" screen.
2008-09-17list_window: set repaint at the end of list_window_cmd()Max Kellermann1-6/+1
2008-09-17screen: return early in switch_screen_mode() on errorMax Kellermann1-7/+7
When the selected screen does not exist, return before calling close().
2008-09-17screen: added macro NUM_SCREENSMax Kellermann1-25/+16
Since the number of screens is known at compile time, define a macro which calculates this, instead of having a sentinel element.
2008-09-17screen: close only current screen in screen_exit()Max Kellermann1-2/+3
Screens which are not active have already been closed, or have never been opened. Don't call close again on them.
2008-09-17screen: don't store "screen" as a pointerMax Kellermann1-140/+135
There can only be onle screen struct instance at a time. Declare it as a static struct, instead of a pointer to the struct. This simplifies all accesses, and avoids the dynamic allocation.
2008-09-17screen: moved code to find_configured_screen()Max Kellermann1-10/+13
2008-09-17screen: mode_fn cannot be NULL, removed checksMax Kellermann1-17/+9
At startup, mode_fn is initialized with &screen_playlist, and it will never be reset to NULL. Remove all checks.
2008-09-17screen: before calling update(), check if it is definedMax Kellermann1-1/+1
That seems to be a fn->paint was checked, then the code called fn->update(). Fix this.
2008-09-17screen: removed screen_functions.get_lw()Max Kellermann8-53/+2
If it is really important to set the curser, we should think of a better way, instead of exporting one non-generic method. For now, just set the cursor to the origin.
2008-09-17replaced get_screen_X() with static screen_functions variableMax Kellermann10-208/+134
Compile time initialization saves resources, compared to run-time initialization. Declare all screen_function structs as global variables, and remove all get functions.
2008-09-17code style, indent with tabs IIIMax Kellermann3-112/+104
Follow the same code style als MPD itself.
2008-09-17mpdclient: call playlist_clear() in mpdclient_playlist_update()Max Kellermann1-2/+1
Instead of freeing the playlist with mpdclient_playlist_free(), call playlist_clear() to empty the song list. This fixes a segmentation fault which occured when you cleared the playlist.
2008-09-16initial draw without delayMax Kellermann1-0/+2
Due to a missing refresh() call, ncmpc painted the screen after one second. Add refresh(), make ncmpc display immediately.
2008-09-16screen: added struct namesMax Kellermann7-91/+95
Let us declare struct names in addition to typedef names, so we can forward-declare them.
2008-09-16lyrics: converted in-process plugins to external programsMax Kellermann9-677/+482
In-process plugins are very problematic. It is much easier and flexible to move the lyrics plugins to external programs, with a trivial protocol. This is work in progress, among the things missing: - protocol specification, including exit codes - plugin installation - plugin search directory - run-time configuration (currently hard coded) - automatic polling (using glib's main loop?) - better and more robust error handling
2008-09-16use GPtrArray instead of GArray for playlist songsMax Kellermann2-13/+10
2008-09-16playlist: hide direct accesses in inline functionsMax Kellermann3-37/+92
Added functions like playlist_length(), playlist_get(), playlist_replace(), playlist_remove(). Don't access the mpdclient_playlist struct directly.
2008-09-16mpdclient: added mpdclient_playlist_init(), mpdclient_playlist_clear()Max Kellermann3-6/+34
Moved code from mpdclient_new() and mpdclient_playlist_free(). In mpdclient_disconnect(), call mpdclient_playlist_clear() instead of mpdclient_playlist_free() (which is now called in mpdclient_free()).
2008-09-16mpdclient: moved code to playlist.cMax Kellermann5-111/+174
Move everything which manipulates the mpdclient_playlist struct to playlist.c. Many of the functions get a mpdclient pointer instead of a playlist; this will be changed later. The functions mpdclient_playlist_update() and mpdclient_playlist_update_changes() stay in mpdclient.c for now, since they are tightly connected to the client code.
2008-09-16song: allocate mpd_song from glib slicesMax Kellermann1-0/+15
Since we compile ncmpc with glib, we can use its slice allocator for efficient song allocation. I have added a way to disable this with a macro.
2008-09-16song: use struct mpd_songMax Kellermann4-44/+44
Use a forward declared struct mpd_song instead of the typedef mpd_Song.
2008-09-16libmpdclient: moved code to song.cMax Kellermann5-133/+231
Move everything which manipulates the mpd_Song struct to song.c. Thousands of lines of too much for libmpdclient.c!
2008-09-16mpdclient: add struct names, for forward declarationsMax Kellermann1-4/+4
To relax the include dependencies, give all structs real names, in addition to the typedef names. This way, other headers can forward-declare them, and do not need to include mpdclient.h. In the future, the typedefs will be removed.
2008-09-16libmpdclient: const pointersMax Kellermann2-2/+2
Pass const pointers whenever possible.
2008-09-16code style, indent with tabs IIMax Kellermann5-142/+128
Follow the same code style als MPD itself.
2008-09-16list_window: update variables without loopingMax Kellermann1-10/+14
Apparently, somebody was too lazy to derive the formulas for cursor movement, and wrote lots of while loops.
2008-09-16include cleanupMax Kellermann2-5/+5
Include only headers which are really used.
2008-09-15easy_download: fixed the type of write_data()Max Kellermann1-1/+3
Fix the type of write_data() to fit curl_write_callback.
2008-09-15use GArray for playlist instead of GListMax Kellermann3-101/+76
Using a doubly linked list for the local playlist copy is a huge waste of both memory and CPU cycles. Use GArray instead of GList, which is much faster in this case.
2008-09-15free info entity while iteratingMax Kellermann1-0/+2
Memory leak: the function mpdclient_playlist_update_changes() did not free the entity which was returned by mpd_getNextInfoEntity(). Add a mpd_freeInfoEntity() call at the end of each iteration.
2008-09-15manage tag string allocations in a poolMax Kellermann4-44/+200
There are many duplicated strings in the tag database, e.g. many songs having the same artist. Don't allocate such strings twice, manage all strings in a pool.
2008-09-15added support for unix domain socketsMax Kellermann1-1/+58
If a host name starts with a slash, it is assumed to be a unix domain socket path. The port is ignored. This code is disabled on WIN32, until someone tests it.
2008-09-15lyrics: missing "break"Max Kellermann1-1/+2
If get_text_line() fails, we should break from the loop.
2008-09-15lyrics: converted global variables to staticMax Kellermann2-6/+3
The variables "lyrics_text_rows" and "lw" were declared in src_lyrics.h as static, but they were only actually used in screen_lyrics.c. Move both there.
2008-09-15fix unused parameter warningsMax Kellermann8-47/+59
Add the "unused" attribute to all function parameters which are indeed going to be ignored.
2008-09-15imported gcc.h from mpdMax Kellermann2-1/+71
gcc.h contains a useful set of macros for setting attributes.
2008-09-15don't declare local variable "options"Max Kellermann3-13/+15
In main.c, the global variable "options" is used all over, except in main(), which contains a shadowing declaration of it. Remove this local variable, and use the global "options" instead. Also don't pollute conf.c's namespace with the global variable with a CPP hack (to be removed when we have fixed more of ncmpc's namespace pollution).
2008-09-15use size_t and unsigned integersMax Kellermann18-114/+130
2008-09-15fixed mixed declaration + codeMax Kellermann3-16/+19
Although they are allowedd in C99, try to avoid them. Move variable declarations to the top of the current scope.
2008-09-15fix shadow warningsMax Kellermann10-144/+148
Rename local variables and function parameters, so they don't shadow global variables.
2008-09-15include cleanupMax Kellermann36-167/+173
A header should include all headers which he needs. Move local includes on top, and let foo.c include foo.h in the first line, to automatically test its dependencies.
2008-09-15screen_auth() returns resultMax Kellermann1-1/+2
screen_auth() returns an int, and its result is actually being used. Only the "return" was missing in its implementation. Return _screen_auth()'s result.
2008-09-15fix function prototypesMax Kellermann15-39/+84
Add missing prototypes, and fix wrong prototypes. Convert lots of functions to "static" when they are only used within the current source file.
2008-09-15const pointersMax Kellermann33-134/+135
Convert pointers to const whenever it is possible. Fixes all those -Wconst warnings.
2008-09-15clock: don't initialize static variables with zeroMax Kellermann1-1/+1
Uninitialized static variables are put into BSS, which is automatically zeroed. Initializing doesn't hurt, but in this case, there were elements missing, emitting a gcc warning.