summaryrefslogtreecommitdiff
path: root/recordmydesktop/src/register_callbacks.c
diff options
context:
space:
mode:
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