1 /*****
2  *       Xnee's Not an Event Emulator
3  *
4  * Xnee enables recording and replaying of X protocol data
5  *
6  *   Copyright (C) 2003, 2004, 2005,
7  *                 2011 Henrik Sandklef and Jon-Erling Dahl
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation; either version 3
12  * of the License, or any later version.
13  *
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Boston,
23  * MA  02110-1301, USA.
24  ****/
25 
26 #ifndef  GNEE_XNEE__H
27 #define  GNEE_XNEE__H
28 
29 #include "config.h"
30 #include <recordables.h>
31 #include <libxnee/xnee.h>
32 #include <libxnee/print.h>
33 #include <libxnee/xnee_record.h>
34 #include <libxnee/xnee_replay.h>
35 #include <libxnee/xnee_setget.h>
36 #include <libxnee/datastrings.h>
37 #include <libxnee/xnee_range.h>
38 #include <libxnee/xnee_threshold.h>
39 #include <libxnee/xnee_setget.h>
40 #include <libxnee/xnee_resource.h>
41 #include <libxnee/xnee_utils.h>
42 
43 #ifdef USE_GNEE_DEBUG
44 #define GNEE_DEBUG(a) printf a ; fflush(stdout);
45 #else
46 #define GNEE_DEBUG(a)
47 #endif
48 
49 
50 #define GNEE_OK 0
51 #define XNEE_GUI "gnee"
52 
53 typedef struct
54 {
55   int use_rec_display ;
56   int use_rep_display ;
57 
58   int use_speed ;
59   int speed ;
60 
61 } gnee_xnee ;
62 
63 
64 #define GNEE_IF_ERROR_RETURN(ret, wind) \
65   if (ret != XNEE_OK)				\
66     {						\
67       gtk_widget_show_all(ext_gnee_window);	\
68       gx_display_errror(ret);			\
69       return ret;				\
70     }
71 
72 
73 
74 int
75 gnee_set_cb(char * cb_name, int on_or_off);
76 
77 void
78 gnee_set_sb(char *sb_name, int val);
79 
80 int
81 gx_set_replay_display(xnee_data *xd, gnee_xnee *gx);
82 
83 int
84 gx_set_record_display(xnee_data *xd, gnee_xnee *gx);
85 
86 int
87 gx_set_variable_data(xnee_data *xd, gnee_xnee *gx);
88 
89 #define gx_set_xosd_feedback()   xnee_set_xosd_feedback(ext_xd)
90 #define gx_set_no_feedback()     xnee_set_no_feedback(ext_xd)
91 #define gx_set_stderr_feedback() xnee_set_stderr_feedback(ext_xd)
92 
93 
94 #define gnee_set_record_display()  gnee_set_various_display(0)
95 #define gnee_set_replay_display()  gnee_set_various_display(1)
96 
97 
98 #define gnee_set_verbose()   gnee_set_verbosity(1)
99 #define gnee_unset_verbose() gnee_set_verbosity(0)
100 
101 #define gnee_set_sync()      gnee_set_cb("skip_sync_cb",1)
102 #define gnee_unset_sync()    gnee_set_cb("skip_sync_cb",0)
103 
104 #define gnee_set_force()     gnee_set_cb("force_rep_cb",1)
105 #define gnee_unset_force()   gnee_set_cb("force_rep_cb",0)
106 #define gx_set_all_clients()       xnee_set_all_clients(ext_xd)
107 #define gx_unset_all_clients()     xnee_unset_all_clients(ext_xd)
108 
109 #define gx_set_human_printout()    xnee_set_human_printout(ext_xd)
110 #define gx_set_xnee_printout()     xnee_set_human_printout(ext_xd)
111 
112 #define gx_add_event(gw, ev)  \
113       gnee_move_recordable(gw, ev, \
114 		      "exclude_event_store","include_event_store", \
115 		      XNEE_EVENT, XNEE_FALSE)
116 
117 #define gx_del_event(gw, ev)  \
118       gnee_move_recordable(gw, ev, \
119 		      "include_event_store", "exclude_event_store",\
120 		      XNEE_EVENT, XNEE_TRUE)
121 
122 
123 #define gx_add_reply(gw, rep)  \
124       gnee_move_recordable(gw, rep, \
125 		      "exclude_reply_store","include_reply_store", \
126 		      XNEE_REPLY, XNEE_FALSE)
127 
128 #define gx_del_reply(gw, rep)  \
129       gnee_move_recordable(gw, rep, \
130 		      "exclude_reply_store","include_reply_store", \
131 		      XNEE_REPLY, XNEE_TRUE)
132 
133 #define gx_add_request(gw, req)  \
134       gnee_move_recordable(gw, req, \
135 	              "exclude_request_store","include_request_store", \
136 		      XNEE_REQUEST, XNEE_FALSE)
137 
138 #define gx_del_request(gw, req)  \
139       gnee_move_recordable(gw, req, \
140 	              "exclude_request_store","include_request_store", \
141 		      XNEE_REQUEST, XNEE_TRUE)
142 
143 #define gx_add_error(gw, err)  \
144       gnee_move_recordable(gw, err, \
145       "exclude_error_store","include_error_store" ,\
146       XNEE_ERROR, XNEE_FALSE)
147 
148 #define gx_del_error(gw, err)  \
149       gnee_move_recordable(gw, err, \
150       "exclude_error_store","include_error_store" ,\
151       XNEE_ERROR, XNEE_TRUE)
152 
153 
154 
155 #define gx_set_replay_speed(xd,s)        xnee_set_replay_speed(xd,s)
156 
157 #define gx_set_replay_offset_x(xd,val)   xnee_set_replay_offset_x(xd,val)
158 #define gx_set_replay_offset_y(xd,val)   xnee_set_replay_offset_y(xd,val)
159 
160 #define gx_set_recall_window_pos(xd)     xnee_set_recall_window_pos (xd)
161 #define gx_unset_recall_window_pos(xd)   xnee_unset_recall_window_pos (xd)
162 #define gx_set_interval(xd,i)            xnee_set_interval(xd,i)
163 #define gx_set_verbose(xd)               xnee_set_verbose(xd)
164 #define gx_unset_verbose(xd)             xnee_unset_verbose(xd)
165 #define gx_set_rc_byname(xd,f)           xnee_set_rc_byname(xd,f)
166 #define gx_get_rc_file(xd)               xnee_get_rc_file(xd)
167 #define gx_add_resource(xd)              xnee_add_resource (xd)
168 #define gx_set_out_byname(xd,f)          xnee_set_out_byname(xd,f)
169 #define gx_get_rc_name(xd)               xnee_get_rc_name(xd)
170 #define gx_write_settings_to_file(xd,f)  xnee_write_settings_to_file(xd,f)
171 #define gx_set_key(xd,km,mode)           xnee_set_key(xd,km,mode)
172 #define gx_get_key(ext_xd,mode)          xnee_get_key(ext_xd,mode)
173 
174 #define gx_set_events_max(ext_xd,loops) xnee_set_events_max(ext_xd, loops);
175 #define gx_get_events_max(ext_xd)       xnee_get_events_max(ext_xd)
176 #define gx_get_events_left(ext_xd)      xnee_get_events_left(ext_xd)
177 
178 #define gx_set_data_max(ext_xd,loops)   xnee_set_data_max(ext_xd, loops);
179 #define gx_get_data_max(ext_xd)         xnee_get_data_max(ext_xd)
180 #define gx_get_data_left(ext_xd)        xnee_get_data_left(ext_xd)
181 
182 #define gx_set_time_max(ext_xd,time)    xnee_set_time_max(ext_xd,time);
183 #define gx_get_time_max(ext_xd)         xnee_get_time_max(ext_xd)
184 #define gx_get_time_left(ext_xd)        xnee_get_time_left(ext_xd)
185 
186 
187 
188 #define gx_set_max_threshold(xd,thresh) xnee_set_max_threshold(xd,thresh); gnee_set_max_thresh(thresh);
189 #define gx_set_min_threshold(xd,thresh) xnee_set_min_threshold(xd,thresh); gnee_set_min_thresh(thresh);
190 #define gx_set_tot_threshold(xd,thresh) xnee_set_tot_threshold(xd,thresh); gnee_set_tot_thresh(thresh);
191 
192 #define gnee_get_max_threshold(xd) xnee_get_max_threshold(xd)
193 #define gnee_get_min_threshold(xd) xnee_get_min_threshold(xd)
194 #define gnee_get_tot_threshold(xd) xnee_get_tot_threshold(xd)
195 
196 #define gx_set_using_rec_display(gx)   gx->use_rec_display=1
197 #define gx_unset_using_rec_display(gx) gx->use_rec_display=0
198 #define gx_set_using_rep_display(gx)   gx->use_rep_display=1
199 #define gx_unset_using_rep_display(gx) gx->use_rep_display=0
200 
201 #define gx_set_sync(ext_xd)            xnee_set_sync(ext_xd)
202 #define gx_unset_sync(ext_xd)          xnee_unset_sync(ext_xd)
203 #define gx_set_force_replay(ext_xd)    xnee_set_force_replay(ext_xd)
204 #define gx_unset_force_replay(ext_xd)  xnee_unset_force_replay(ext_xd)
205 
206 
207 void
208 gx_save(void);
209 
210 void
211 gx_init_gx(gnee_xnee *gx);
212 
213 int
214 gx_init_value(xnee_data* xd);
215 
216 int
217 gx_start_recording(xnee_data* xd);
218 
219 int
220 gx_stop_recording(xnee_data* xd);
221 
222 int
223 gx_start_replaying(xnee_data* xd);
224 
225 int
226 gx_stop_replaying(xnee_data* xd);
227 
228 
229 
230 
231 
232 void
233 gx_display_errror(int err_nr);
234 
235 void
236 gx_undisplay_errror(void);
237 
238 void
239 gnee_set_events_max(int val);
240 
241 void
242 gnee_set_data_max(int val);
243 
244 void
245 gnee_set_time_max(int val);
246 
247 void
248 gnee_set_max_thresh(int val);
249 
250 void
251 gnee_set_min_thresh(int val);
252 
253 void
254 gnee_set_tot_thresh(int val);
255 
256 void
257 gnee_set_rec_file(char *filename);
258 
259 void
260 gnee_set_rep_file(char *filename);
261 
262 char *
263 gx_get_default_filename();
264 
265 void
266 gx_create_km_lists();
267 
268 void
269 gnee_close_down();
270 
271 int
272 gx_set_speed (int val);
273 
274 void
275 gx_set_xd_settings();
276 
277 int
278 gx_set_use_speed (int val) ;
279 
280 int
281 gnee_set_xosd_feedback();
282 
283 #endif /* GNEE_XNEE__H */
284