diff options
author | Eugene Sandulenko | 2009-02-15 11:39:07 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2009-02-15 11:39:07 +0000 |
commit | e241843bec22600ab4ef98e7a085e82aac73fc93 (patch) | |
tree | 61a793884d3462e1feb80e80f202d8816d0c8ec4 /engines/sci/sfx/timer/sigalrm.c | |
parent | e9f742806362a84ffdb176a7414318dd2ab4df89 (diff) | |
download | scummvm-rg350-e241843bec22600ab4ef98e7a085e82aac73fc93.tar.gz scummvm-rg350-e241843bec22600ab4ef98e7a085e82aac73fc93.tar.bz2 scummvm-rg350-e241843bec22600ab4ef98e7a085e82aac73fc93.zip |
- Remove some unneeded files
- Mass rename .c to .cpp
svn-id: r38227
Diffstat (limited to 'engines/sci/sfx/timer/sigalrm.c')
-rw-r--r-- | engines/sci/sfx/timer/sigalrm.c | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/engines/sci/sfx/timer/sigalrm.c b/engines/sci/sfx/timer/sigalrm.c deleted file mode 100644 index 40cc2872e1..0000000000 --- a/engines/sci/sfx/timer/sigalrm.c +++ /dev/null @@ -1,157 +0,0 @@ -/*************************************************************************** - sigalrm.c Copyright (C) 2002 Christoph Reichenbach - - - This program may be modified and copied freely according to the terms of - the GNU general public license (GPL), as long as the above copyright - notice and the licensing information contained herein are preserved. - - Please refer to www.gnu.org for licensing details. - - This work is provided AS IS, without warranty of any kind, expressed or - implied, including but not limited to the warranties of merchantibility, - noninfringement, and fitness for a specific purpose. The author will not - be held liable for any damage caused by this work or derivatives of it. - - By using this source code, you agree to the licensing terms as stated - above. - - - Please contact the maintainer for bug reports or inquiries. - - Current Maintainer: - - Christoph Reichenbach (CR) <jameson@linuxgames.com> - -***************************************************************************/ - -#include <sfx_timer.h> - -#ifdef HAVE_SETITIMER - -#include <sys/time.h> -#include <signal.h> -#include <stdio.h> - -#ifdef HAVE_PTHREAD -#include <pthread.h> -#define sigprocmask pthread_sigmask -#endif - -static void (*sig_callback)(void *) = NULL; -static void *sig_callback_data = NULL; -static sigset_t current_sigset; - -static void -timer_handler(int i) -{ - if (sig_callback) - sig_callback(sig_callback_data); -} - -static int -sigalrm_set_option(char *name, char *value) -{ - return SFX_ERROR; -} - - -static int -sigalrm_start(void) -{ - struct itimerval itimer; - - itimer.it_value.tv_sec = 0; - itimer.it_value.tv_usec = 1000000/60; - itimer.it_interval = itimer.it_value; - - signal(SIGALRM, timer_handler); /* Re-instate timer handler, to make sure */ - setitimer(ITIMER_REAL, &itimer, NULL); - - return SFX_OK; -} - - -static int -sigalrm_init(void (*callback)(void *), void *data) -{ - if (sig_callback) { - fprintf(stderr, "Error: Attempt to initialize sigalrm timer more than once\n"); - return SFX_ERROR; - } - - if (!callback) { - fprintf(stderr, "Error: Attempt to initialize sigalrm timer w/o callback\n"); - return SFX_ERROR; - } - - sig_callback = callback; - sig_callback_data = data; - - sigalrm_start(); - - sigemptyset(¤t_sigset); - sigaddset(¤t_sigset, SIGALRM); - - return SFX_OK; -} - - -static int -sigalrm_stop(void) -{ - struct itimerval itimer; - - if (!sig_callback) { - fprintf(stderr, "Error: Attempt to stop sigalrm timer when not running\n"); - return SFX_ERROR; - } - - itimer.it_value.tv_sec = 0; - itimer.it_value.tv_usec = 0; - itimer.it_interval = itimer.it_value; - - setitimer(ITIMER_REAL, &itimer, NULL); /* Stop timer */ - signal(SIGALRM, SIG_DFL); - - return SFX_OK; -} - - -static int -sigalrm_block(void) -{ - if (sigprocmask(SIG_BLOCK, ¤t_sigset, NULL) != 0) { - fprintf(stderr, "Error: Failed to block sigalrm\n"); - return SFX_ERROR; - } - - return SFX_OK; -} - - -static int -sigalrm_unblock(void) -{ - if (sigprocmask(SIG_UNBLOCK, ¤t_sigset, NULL) != 0) { - fprintf(stderr, "Error: Failed to unblock sigalrm\n"); - return SFX_ERROR; - } - - return SFX_OK; -} - - -sfx_timer_t sfx_timer_sigalrm = { - "sigalrm", - "0.1", - 17, /* 1000 / 60 */ - 0, - &sigalrm_set_option, - &sigalrm_init, - &sigalrm_stop, - &sigalrm_block, - &sigalrm_unblock -}; - -#endif /* HAVE_SETITIMER */ |