summaryrefslogtreecommitdiff
path: root/recordmydesktop/src/register_callbacks.c
diff options
context:
space:
mode:
authoriovar <iovar@f606c939-3180-4ac9-a4b8-4b8779d57d0a>2007-12-02 09:07:24 +0000
committeriovar <iovar@f606c939-3180-4ac9-a4b8-4b8779d57d0a>2007-12-02 09:07:24 +0000
commit86303ab2561c8f53ee41a7a71d673da2086f9833 (patch)
tree6db4801da5b29083e767c63182666f91d4394665 /recordmydesktop/src/register_callbacks.c
parent22ee15e51f6d72560af37fad744662161e284eb9 (diff)
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
Diffstat (limited to 'recordmydesktop/src/register_callbacks.c')
-rw-r--r--recordmydesktop/src/register_callbacks.c41
1 files changed, 2 insertions, 39 deletions
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 <recordmydesktop.h>
-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);
© All Rights Reserved