Commit 9881ad084225feec6b6921ff823e43cbc01ad0d6

Authored by Perry Werneck
1 parent aefafc4e
Exists in master and in 1 other branch develop

Updating timer enging to match lib3270 update.

Showing 1 changed file with 5 additions and 4 deletions   Show diff stats
src/terminal/iocallback.c
@@ -37,7 +37,7 @@ static void * static_AddSource(H3270 *session, int fd, LIB3270_IO_FLAG flag, @@ -37,7 +37,7 @@ static void * static_AddSource(H3270 *session, int fd, LIB3270_IO_FLAG flag,
37 static void static_RemoveSource(H3270 *session, void *id); 37 static void static_RemoveSource(H3270 *session, void *id);
38 static void static_SetSourceState(H3270 *session, void *id, int enabled); 38 static void static_SetSourceState(H3270 *session, void *id, int enabled);
39 39
40 -static void * static_AddTimer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)); 40 +static void * static_AddTimer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata);
41 static void static_RemoveTimer(H3270 *session, void * timer); 41 static void static_RemoveTimer(H3270 *session, void * timer);
42 static int static_Sleep(H3270 *hSession, int seconds); 42 static int static_Sleep(H3270 *hSession, int seconds);
43 static int static_RunPendingEvents(H3270 *hSession, int wait); 43 static int static_RunPendingEvents(H3270 *hSession, int wait);
@@ -48,7 +48,7 @@ static int static_RunPendingEvents(H3270 *hSession, int wait); @@ -48,7 +48,7 @@ static int static_RunPendingEvents(H3270 *hSession, int wait);
48 { 48 {
49 unsigned char remove; 49 unsigned char remove;
50 void * userdata; 50 void * userdata;
51 - int (*call)(H3270 *session); 51 + int (*call)(H3270 *session, void *userdata);
52 H3270 * session; 52 H3270 * session;
53 } TIMER; 53 } TIMER;
54 54
@@ -74,17 +74,18 @@ static void static_SetSourceState(G_GNUC_UNUSED H3270 *session, void *id, int en @@ -74,17 +74,18 @@ static void static_SetSourceState(G_GNUC_UNUSED H3270 *session, void *id, int en
74 static gboolean do_timer(TIMER *t) 74 static gboolean do_timer(TIMER *t)
75 { 75 {
76 if(!t->remove) 76 if(!t->remove)
77 - return t->call(t->session) != 0; 77 + return t->call(t->session,t->userdata);
78 78
79 return FALSE; 79 return FALSE;
80 } 80 }
81 81
82 -static void * static_AddTimer(H3270 *session, unsigned long interval, int (*call)(H3270 *session)) 82 +static void * static_AddTimer(H3270 *session, unsigned long interval, int (*call)(H3270 *session, void *userdata), void *userdata)
83 { 83 {
84 TIMER *t = g_malloc0(sizeof(TIMER)); 84 TIMER *t = g_malloc0(sizeof(TIMER));
85 85
86 t->call = call; 86 t->call = call;
87 t->session = session; 87 t->session = session;
  88 + t->userdata = userdata;
88 89
89 g_timeout_add_full(G_PRIORITY_DEFAULT, (guint) interval, (GSourceFunc) do_timer, t, g_free); 90 g_timeout_add_full(G_PRIORITY_DEFAULT, (guint) interval, (GSourceFunc) do_timer, t, g_free);
90 91