diff options
author | Kalle Wallin <kaw@linux.se> | 2004-06-05 11:21:43 +0000 |
---|---|---|
committer | Kalle Wallin <kaw@linux.se> | 2004-06-05 11:21:43 +0000 |
commit | f55a67b3f882641abe5a9b14b045d7ce71964af7 (patch) | |
tree | 181c15b1c59df30b2e28058f2648e5e701e57c4f /main.c | |
parent | 677eb1ad30321d83f6196672ea1798c0e1712870 (diff) | |
download | mpd-f55a67b3f882641abe5a9b14b045d7ce71964af7.tar.gz mpd-f55a67b3f882641abe5a9b14b045d7ce71964af7.tar.xz mpd-f55a67b3f882641abe5a9b14b045d7ce71964af7.zip |
Changed directory layout (for future use of gettext)
git-svn-id: https://svn.musicpd.org/ncmpc/trunk@1342 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/main.c b/main.c deleted file mode 100644 index bb3740b62..000000000 --- a/main.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - * (c) 2004 by Kalle Wallin (kaw@linux.se) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <signal.h> -#include <glib.h> - -#include "config.h" -#include "libmpdclient.h" -#include "support.h" -#include "mpc.h" -#include "options.h" -#include "command.h" -#include "screen.h" -#include "conf.h" - -/* time in seconds between mpd updates (double) */ -#define MPD_UPDATE_TIME 0.5 - -/* timout in seconds before trying to reconnect (int) */ -#define MPD_RECONNECT_TIMEOUT 3 - - -static mpd_client_t *mpc = NULL; -static GTimer *timer = NULL; - -void -exit_and_cleanup(void) -{ - screen_exit(); - printf("\n"); - charset_close(); - if( mpc ) - { - if( mpc_error(mpc) ) - fprintf(stderr,"Error: %s\n", mpc_error_str(mpc)); - mpc_close(mpc); - } - g_free(options.host); - g_free(options.password); - if( timer ) - g_timer_destroy(timer); -} - -void -catch_sigint( int sig ) -{ - printf( "\nExiting...\n"); - exit(EXIT_SUCCESS); -} - -int -main(int argc, const char *argv[]) -{ - options_t *options; - struct sigaction act; - gboolean connected; - - /* initialize options */ - options = options_init(); - - /* parse command line options - 1 pass get configuration files */ - options_parse(argc, argv); - - /* read configuration */ - read_configuration(options); - - /* check key bindings */ - if( check_key_bindings() ) - { - fprintf(stderr, "Confusing key bindings - exiting!\n"); - exit(EXIT_FAILURE); - } - - /* parse command line options - 2 pass */ - options_parse(argc, argv); - - /* initialize local charset */ - if( charset_init() ) - exit(EXIT_FAILURE); - - /* setup signal behavior - SIGINT */ - sigemptyset( &act.sa_mask ); - act.sa_flags = 0; - act.sa_handler = catch_sigint; - if( sigaction( SIGINT, &act, NULL )<0 ) - { - perror("signal"); - exit(EXIT_FAILURE); - } - /* setup signal behavior - SIGTERM */ - sigemptyset( &act.sa_mask ); - act.sa_flags = 0; - act.sa_handler = catch_sigint; - if( sigaction( SIGTERM, &act, NULL )<0 ) - { - perror("sigaction()"); - exit(EXIT_FAILURE); - } - - /* set xterm title */ - if( g_getenv("DISPLAY") ) - printf("%c]0;%s%c", '\033', PACKAGE " version " VERSION, '\007'); - - /* install exit function */ - atexit(exit_and_cleanup); - - /* connect to our music player daemon */ - mpc = mpc_connect(options->host, options->port, options->password); - if( mpc_error(mpc) ) - exit(EXIT_FAILURE); - - /* initialize curses */ - screen_init(); - - /* initialize timer */ - timer = g_timer_new(); - - connected = TRUE; - while( connected || options->reconnect ) - { - static gdouble t = G_MAXDOUBLE; - - if( connected && t>=MPD_UPDATE_TIME ) - { - mpc_update(mpc); - if( mpc_error(mpc) == MPD_ERROR_ACK ) - { - screen_status_printf("%s", mpc_error_str(mpc)); - mpd_clearError(mpc->connection); - mpd_finishCommand(mpc->connection); - } - else if( mpc_error(mpc) ) - { - screen_status_printf("Lost connection to %s", options->host); - connected = FALSE; - doupdate(); - mpd_clearError(mpc->connection); - mpd_closeConnection(mpc->connection); - mpc->connection = NULL; - } - else - mpd_finishCommand(mpc->connection); - g_timer_start(timer); - } - - if( connected ) - { - command_t cmd; - - screen_update(mpc); - if( (cmd=get_keyboard_command()) != CMD_NONE ) - { - screen_cmd(mpc, cmd); - if( cmd==CMD_VOLUME_UP || cmd==CMD_VOLUME_DOWN) - /* make shure we dont update the volume yet */ - g_timer_start(timer); - } - else - screen_idle(mpc); - } - else if( options->reconnect ) - { - sleep(MPD_RECONNECT_TIMEOUT); - screen_status_printf("Connecting to %s... [Press Ctrl-C to abort]", - options->host); - if( mpc_reconnect(mpc, - options->host, - options->port, - options->password) == 0 ) - { - screen_status_printf("Connected to %s!", options->host); - connected = TRUE; - } - doupdate(); - } - - t = g_timer_elapsed(timer, NULL); - } - - exit(EXIT_FAILURE); -} |