aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* lirc: refactored event handlerThomas Jansen2008-11-101-45/+28
| | | | | | | * moved lirc_event to lirc.c and split out the parts that depend on variables in main.c into three separate functions * changed keyboard_event accordingly to avoid duplicate code * merged lirc_event with ncmpc_lirc_get_command
* mpdclient: expect UTF-8 stringsMax Kellermann2008-11-071-1/+5
| | | | | | 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.
* main: optimized error_msg()Max Kellermann2008-11-071-1/+2
| | | | The pointer has already been checked for NULL, eliminate that check.
* disable more features with --enable-miniMax Kellermann2008-11-071-3/+22
| | | | | | | | | | | | | | 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
* native LIRC support for ncmpcThomas Jansen2008-11-071-0/+57
| | | | | | | | | | | | | | | | | | | | | | | | | The attachment includes the patch and a sample .lircrc config for testing purposes (i. e. only a few commands are mapped to IR events). The config is rather simple to write: For each button add a block like this to ~/.lircrc: begin button = <button name from /etc/lircd.conf> prog = ncmpc config = <command name from src/command.c> end The patch is not finished, there are several problems that still need to be solved: 1. the configure.ac modifications are just for testing purposes and should be made optional with a parameter like --enable-lirc for ./configure. Unfortunately I'm not an expert on autoconfig tools. 2. LIRC example code [1] suggests looping over lirc_code2char, probably to have multiple actions that can be triggered from one button. Perhaps lirc_event(...) should be moved to lirc.c and be heavily modified, no longer being a mere copy of keyboard_event(...).
* disable ncurses raw modeMax Kellermann2008-10-061-4/+0
| | | | | We're better off doing our own signal handling, instead of switching ncurses to raw mode. Anyway, it was commented out and didn't work...
* store MPD_UPDATE_TIME as guintMax Kellermann2008-10-031-3/+3
| | | | | | The glib function g_timeout_add() wants the interval as guint in milliseconds. Store the update interval in this form, instead of having to multiply MPD_UPDATE_TIME with 1000.
* don't initialize sigaction struct twiceMax Kellermann2008-10-031-6/+3
| | | | | Don't reset sa_mask and sa_flags after every sigaction() call. Do it once.
* restart system call after SIGWINCHMax Kellermann2008-10-031-1/+1
| | | | | | Set option SA_RESTART for the SIGWINCH handler. The screen resizer function is called by the glib main loop anyway, no need to interrupt any random system call here.
* typo: ignore SIGPIPE instead of SIGWINCHMax Kellermann2008-10-031-2/+2
| | | | | | | Somehow the "ignore SIGPIPE" patch had a fatal typo: instead of ignoring SIGPIPE, it ignored SIGWINCH. Somehow ncurses managed to hide the bug's symptoms, but a recent patch finally broke it. Repair the typo.
* screen: removed "painted" flagMax Kellermann2008-10-031-2/+4
| | | | Repaint immediately instead of setting "painted=0".
* options: don't pass the "options" pointer aroundMax Kellermann2008-10-031-1/+1
| | | | | Just make everybody use the global "options" variable. This eliminates namespace confusion and the NO_GLOBAL_OPTIONS hack.
* code style, indent with tabs XIMax Kellermann2008-10-031-3/+1
| | | | Follow the same code style als MPD itself.
* fix compiler errors without locale.hMax Kellermann2008-10-021-1/+3
| | | | | The code did not compile when HAVE_LOCALE_H was not set. Also don't compile all that code in charset.c, when there is no locale.h.
* charset: charset_init() returns character setMax Kellermann2008-10-021-1/+1
| | | | | Don't pass "noconvert" to charset_init(). Let charset_init() determine that with g_get_charset() and return its name.
* moved code to charset.cMax Kellermann2008-10-021-1/+1
| | | | | Move everything which deals with UTF-8 strings and character set conversion to charset.c, header charset.h.
* moved macros from ncmpc.h to main.c and screen.cMax Kellermann2008-10-021-0/+3
| | | | | Moved constants which are only used in one source file. Remove several unused macros.
* moved i18n macros to i18n.hMax Kellermann2008-10-021-0/+1
| | | | | Don't make everybody include ncmpc.h just to have generic features. Move generic i18n macros to a separate header.
* removed the debugging function D()Max Kellermann2008-10-021-21/+0
| | | | gdb is for debugging. We don't need D() calls littered all over.
* ignore SIGPIPEMax Kellermann2008-09-261-0/+9
| | | | Ignore SIGPIPE, and handle errno==EPIPE instead.
* don't call lyrics_init if plugin is disabledMax Kellermann2008-09-251-1/+6
| | | | | If the lyrics screen is disabled at compile time, don't initialize the lyrics library in main().
* fix miscellaneous sparse warningsMax Kellermann2008-09-251-0/+2
| | | | Static variables, pointers vs integers, void function returning, ...
* screen: moved code to ncu.cMax Kellermann2008-09-221-1/+3
| | | | | Moved basic libncurses initialization to ncu.c and ncu.h. Keep generic code out of screen.c.
* main: free keyboard IO channelMax Kellermann2008-09-221-2/+7
| | | | Before terminating ncmpc, free the keyboard GIOChannel object.
* fix terminal resizing (SIGWINCH)Max Kellermann2008-09-191-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.
* quit with g_main_loop_quit()Max Kellermann2008-09-181-3/+5
| | | | | Call g_main_loop_quit() on CMD_QUIT, instead of exit() with an atexit() handler.
* use the glib main event loopMax Kellermann2008-09-181-72/+154
| | | | | | | | | | This big patch replaces our custom main loop with the event based glib main loop. This has several advantages: we can make all the tiny code bits in the main loop independent from each others, we can add additional file descriptors for polling (e.g. the mpdclient socket). We don't need the ncurses timeout() anymore, because glib will poll stdin for us.
* main: connect while UI is displayedMax Kellermann2008-09-181-39/+21
| | | | | | | | Display the UI always, and show connection errors there. This fixes a lot of consistency problems: error messages used to be printed to stderr, but afterwards, the atexit() handlers deinitialized ncurses and the screen was cleared. This patch is still problematic, but constitutes a good step forward.
* code style, indent with tabs IVMax Kellermann2008-09-171-56/+56
| | | | Follow the same code style als MPD itself.
* make several functions return voidMax Kellermann2008-09-171-1/+1
|
* lyrics: converted in-process plugins to external programsMax Kellermann2008-09-161-2/+2
| | | | | | | | | | | | | 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
* code style, indent with tabs IIMax Kellermann2008-09-161-14/+11
| | | | Follow the same code style als MPD itself.
* fix unused parameter warningsMax Kellermann2008-09-151-6/+5
| | | | | Add the "unused" attribute to all function parameters which are indeed going to be ignored.
* don't declare local variable "options"Max Kellermann2008-09-151-13/+12
| | | | | | | | | 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).
* include cleanupMax Kellermann2008-09-151-8/+5
| | | | | | 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.
* fix function prototypesMax Kellermann2008-09-151-3/+4
| | | | | | Add missing prototypes, and fix wrong prototypes. Convert lots of functions to "static" when they are only used within the current source file.
* const pointersMax Kellermann2008-09-151-4/+4
| | | | | Convert pointers to const whenever it is possible. Fixes all those -Wconst warnings.
* use !NDEBUG instead of DEBUGMax Kellermann2008-09-151-1/+1
| | | | | NDEBUG is more commonly used than DEBUG, e.g. in assert.h. Convert all macros to NDEBUG, and declare NDEBUG when debugging is disabled.
* code style, indent with tabsMax Kellermann2008-09-151-195/+184
| | | | | | | 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.
* remove unused static functionsMax Kellermann2008-09-151-7/+0
| | | | Also remove some commented code and unused function parameters.
* splash: removed the useless splash screenMax Kellermann2008-09-151-2/+0
| | | | | The code looks strange and spews lots of warnings. Since it does nothing useful, and wastes the user's precious time, simply remove it.
* way too much stuff to describe hereAndreas Obergrusberger2007-02-161-0/+1
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@5346 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* lyrics updates, leoslyrics fixesAndreas Obergrusberger2007-02-011-0/+1
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@5314 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix user plugin dir; code cleanupAndreas Obergrusberger2007-01-051-1/+1
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@5220 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* added a plugin system for lyrics sourcesAndreas Obergrusberger2007-01-031-0/+3
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@5217 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* filelist sorting improvedAndreas Obergrusberger2006-10-281-0/+2
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@4953 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* due to bensonk's demand i added a splash screen.Andreas Obergrusberger2006-09-071-3/+10
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@4741 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* the updated sourcesAndreas Obergrusberger2006-08-041-1/+18
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/branches/tradiaz@4543 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fixes #0000406, segfault if mpd wants a passwort but ncmpc connects withoutKalle Wallin2005-06-011-0/+7
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/trunk@3304 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fixes bug #0000360Kalle Wallin2005-02-131-1/+1
| | | | git-svn-id: https://svn.musicpd.org/ncmpc/trunk@2948 09075e82-0dd4-0310-85a5-a0d7c8717e4f