From 86303ab2561c8f53ee41a7a71d673da2086f9833 Mon Sep 17 00:00:00 2001 From: iovar Date: Sun, 2 Dec 2007 09:07:24 +0000 Subject: include/rmdfunc.h: removed SetExpired & CancelTimer, added rmdTimer include/rmdtypes.h: pdata->timer_alive src/Makefile.am: added rmd_timer in sources src/rmd_timer.c: new thread that handles timing src/register_callbacks.c: removed SetExpired & CancelTimer src/rmdthreads.c: new timing setup(signal-sleep-loop thread, instead of setitimer &sigaction) git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@452 f606c939-3180-4ac9-a4b8-4b8779d57d0a --- recordmydesktop/src/register_callbacks.c | 41 ++------------------------------ 1 file changed, 2 insertions(+), 39 deletions(-) (limited to 'recordmydesktop/src/register_callbacks.c') diff --git a/recordmydesktop/src/register_callbacks.c b/recordmydesktop/src/register_callbacks.c index 8db5d5d..cd6efe4 100644 --- a/recordmydesktop/src/register_callbacks.c +++ b/recordmydesktop/src/register_callbacks.c @@ -26,25 +26,6 @@ #include -void SetExpired(int signum){ - if(!Paused){ - frames_total++; - if(capture_busy){ - frames_lost++; - } -/*FIXME */ -//This is not safe. -//cond_var signaling must move away from signal handlers -//alltogether (JackCapture, SetExpired, SetPaused). -//Better would be a set of pipes for each of these. -//The callback should write on the pipe and the main thread -//should perform a select over the fd's, signaling afterwards the -//appropriate cond_var. - pthread_mutex_lock(&time_mutex); - pthread_cond_broadcast(time_cond); - pthread_mutex_unlock(&time_mutex); - } -} void SetPaused(int signum){ if(!Paused){ @@ -75,34 +56,16 @@ void SetRunning(int signum){ Aborted=1; } -void CancelTimer(void){ - struct itimerval value; - value.it_interval.tv_sec= - value.it_value.tv_sec= - value.it_interval.tv_usec= - value.it_value.tv_usec=0; - - setitimer(ITIMER_REAL,&value,NULL); -} void RegisterCallbacks(ProgArgs *args){ - struct itimerval value; - struct sigaction time_act,pause_act,end_act; - + struct sigaction pause_act,end_act; - value.it_interval.tv_sec=value.it_value.tv_sec=1/args->fps; - value.it_interval.tv_usec=value.it_value.tv_usec=(1000000)/args->fps-value.it_value.tv_sec*1000000; - - setitimer(ITIMER_REAL,&value,NULL); - time_act.sa_handler=SetExpired; pause_act.sa_handler=SetPaused; end_act.sa_handler=SetRunning; - sigfillset(&(time_act.sa_mask)); sigfillset(&(pause_act.sa_mask)); sigfillset(&(end_act.sa_mask)); - time_act.sa_flags=pause_act.sa_flags=end_act.sa_flags=0; - sigaction(SIGALRM,&time_act,NULL); + pause_act.sa_flags=end_act.sa_flags=0; sigaction(SIGUSR1,&pause_act,NULL); sigaction(SIGINT,&end_act,NULL); sigaction(SIGTERM,&end_act,NULL); -- cgit v1.2.1