| Commit message (Collapse) | Author | Files | Lines |
|
Return true/false instead of 1/0.
|
|
Pressing 'l' switches to the file browser (screen_file) and locates
the previously selected song in the server's database.
|
|
Don't repaint the screen after browser_cmd() if another screen has
been selected meanwhile.
|
|
All functions must receive UTF-8 file names. Delete all which still
work with locale strings, and remove the _utf8 suffix from the others.
|
|
Don't convert the character set of strings to and from the current
locale. This library cannot know what the strings are going to be
used for, so it should not mess with them.
|
|
Don't allocate and copy memory.
|
|
Disable lots of smaller features which don't have a separate configure
option:
- xterm title
- screen list
- horizontal scrolling
- MPD version number check
- key binding checks
- character set conversion
- bitrate display
- highlighting in the file browser
- completion / history
|
|
When compiling with libncursesw, include <ncursesw/ncurses.h> instead
of <ncurses.h> (if available).
|
|
screen_t is a singleton. We do not have to pass it around
everywhere. Export the one global variable.
|
|
None of the paint() implementations acutally uses the mpdclient
pointer. Remove it from the method signature.
|
|
Since we are handling SIGWINCH, we do not need to handle KEY_RESIZE
from ncurses. Remove it.
|
|
We do not need to save a stack of list window states. When we return
to a parent directory, we just have to find the directory which we
come from in the parent list. Note that this patch resets the cursor
when going to the root directory, but I think it's not that important,
and I will deal with that later.
|
|
g_basename() is always available, no need to implement a fallback.
Also use g_path_get_dirname(), g_path_get_basename().
|
|
Move everything which deals with UTF-8 strings and character set
conversion to charset.c, header charset.h.
|
|
Don't make everybody include ncmpc.h just to have generic features.
Move generic i18n macros to a separate header.
|
|
gdb is for debugging. We don't need D() calls littered all over.
|
|
Merge a lot of code from the 3 browser screen into browser_cmd().
|
|
Due to a missing sync_highlights() call, highlights were gone when the
user pressed the "update" hot key.
|
|
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.
|
|
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.
|
|
Repaint the file screen on demand. No need for the update() method
anymore.
|
|
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.
|
|
Since screen.c has default code for CMD_SCREEN_UPDATE, return 0 from
the command handlers and let screen.c do the rest.
|
|
Several screens ignore the attribute list_window->repaint. Don't set
it there. It will be replaced with a more intelligent repaint
algorithm later.
|
|
Don't call filelist_get() with an invalid index.
|
|
Avoid direct accesses to the filelist struct, provide an API for that.
|
|
The separate filelist library does not depend on mpdclient, so the
prefix is superfluous.
|
|
Merge code from all 3 browser screens into one generic browser
function.
|
|
Isolate the generic browser code from the directory browser.
|
|
We are going to separate the browser functions from screen_file.c.
Move all variables which are going to be needed by this code.
|
|
|
|
Follow the same code style als MPD itself.
|
|
Fix several segmentation faults: when the connection to the MPD server
is lost, there were NULL pointer dereferences because
client->status==NULL. Check before accessing it.
|
|
Declaring empty methods is of no use. If a method is empty, we should
set it to NULL in the screen_functions struct.
|
|
When deselecting a song in the file browser, the local variable "idx"
was initialized and overwritten. Remove the initialization.
|
|
|
|
Since the list_window code sets highlight to 0 before it calls the
list_callback, the callback itself doesn't have to reset the flag.
|
|
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.
|
|
Compile time initialization saves resources, compared to run-time
initialization. Declare all screen_function structs as global
variables, and remove all get functions.
|
|
Add the "unused" attribute to all function parameters which are indeed
going to be ignored.
|
|
|
|
Rename local variables and function parameters, so they don't shadow
global variables.
|
|
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.
|
|
Add missing prototypes, and fix wrong prototypes. Convert lots of
functions to "static" when they are only used within the current
source file.
|
|
Convert pointers to const whenever it is possible. Fixes all those
-Wconst warnings.
|
|
Follow the same code style als MPD itself. This patch only fixes
parts of the code which are going to be touched in the following bunch
of patches, i.e. there will be more "code style" patches in the
future.
|
|
Also remove some commented code and unused function parameters.
|