filter for selecting eventtype
[lttv.git] / ltt / branches / poly / lttv / modules / gui / mainWin / src / lttvfilter.c
CommitLineData
49bf71b5 1
2#include <lttv/lttvfilter.h>
3#include <stdio.h>
a5dcde2f 4#include <ltt/trace.h>
ed3b99b6 5#include <ltt/type.h>
49bf71b5 6
7struct _LttvTracesetSelector {
8 char * traceset_name;
ed3b99b6 9 GPtrArray * traces;
49bf71b5 10};
11
12
13struct _LttvTraceSelector {
14 char * trace_name;
15 GPtrArray * tracefiles;
ed3b99b6 16 GPtrArray * eventtypes;
49bf71b5 17 gboolean selected;
18};
19
20struct _LttvTracefileSelector {
21 char * tracefile_name;
ed3b99b6 22 GPtrArray * eventtypes;
23 gboolean selected;
24};
25
26struct _LttvEventtypeSelector {
27 char * eventtype_name;
49bf71b5 28 gboolean selected;
29};
30
31
32LttvTracesetSelector *lttv_traceset_selector_new(char * name)
33{
34 LttvTracesetSelector *s;
35
36 s = g_new(LttvTracesetSelector, 1);
37 if(name)
38 s->traceset_name = g_strdup(name);
39 else
40 s->traceset_name = NULL;
41 s->traces = g_ptr_array_new();
42 return s;
43}
44
45LttvTraceSelector *lttv_trace_selector_new(LttTrace *t)
46{
47 LttvTraceSelector * trace;
48
49 trace = g_new(LttvTraceSelector, 1);
50 trace->trace_name = g_strdup(ltt_trace_name(t));
51 trace->tracefiles = g_ptr_array_new();
ed3b99b6 52 trace->eventtypes = g_ptr_array_new();
49bf71b5 53 trace->selected = TRUE;
54 return trace;
55}
56
57LttvTracefileSelector *lttv_tracefile_selector_new(LttTracefile *t)
58{
59 LttvTracefileSelector * tracefile;
60
61 tracefile = g_new(LttvTracefileSelector, 1);
62 tracefile->tracefile_name = g_strdup(ltt_tracefile_name(t));
ed3b99b6 63 tracefile->eventtypes = g_ptr_array_new();
49bf71b5 64 tracefile->selected = TRUE;
65 return tracefile;
66}
67
ed3b99b6 68LttvEventtypeSelector *lttv_eventtype_selector_new(LttEventType * et)
69{
70 LttvEventtypeSelector * ev;
71 ev = g_new(LttvEventtypeSelector, 1);
72 ev->eventtype_name = g_strdup(ltt_eventtype_name(et));
73 ev->selected = TRUE;
74 return ev;
75}
49bf71b5 76
77void lttv_traceset_selector_destroy(LttvTracesetSelector *s)
78{
79 int i;
80 LttvTraceSelector * t;
81
82 for(i=0;i<s->traces->len;i++){
83 t = (LttvTraceSelector*)s->traces->pdata[i];
84 lttv_trace_selector_destroy(t);
85 }
86 g_ptr_array_free(s->traces, TRUE);
87 if(s->traceset_name) g_free(s->traceset_name);
88 g_free(s);
89}
90
91void lttv_trace_selector_destroy(LttvTraceSelector *s)
92{
93 int i;
94 LttvTracefileSelector * t;
ed3b99b6 95 LttvEventtypeSelector * e;
49bf71b5 96
97 for(i=0;i<s->tracefiles->len;i++){
98 t = (LttvTracefileSelector*)s->tracefiles->pdata[i];
99 lttv_tracefile_selector_destroy(t);
100 }
ed3b99b6 101 for(i=0;i<s->eventtypes->len;i++){
102 e = (LttvEventtypeSelector*)s->eventtypes->pdata[i];
103 lttv_eventtype_selector_destroy(e);
104 }
49bf71b5 105 if(s->trace_name) g_free(s->trace_name);
106 g_free(s);
107}
108
109void lttv_tracefile_selector_destroy(LttvTracefileSelector *t)
110{
ed3b99b6 111 int i;
112 LttvEventtypeSelector * e;
113
114 for(i=0;i<t->eventtypes->len;i++){
115 e = (LttvEventtypeSelector*)t->eventtypes->pdata[i];
116 lttv_eventtype_selector_destroy(e);
117 }
118
49bf71b5 119 if(t->tracefile_name) g_free(t->tracefile_name);
120 g_free(t);
121}
122
ed3b99b6 123void lttv_eventtype_selector_destroy(LttvEventtypeSelector *e)
124{
125 if(e->eventtype_name) g_free(e->eventtype_name);
126 free(e);
127}
128
129void lttv_traceset_selector_trace_add(LttvTracesetSelector *s,
130 LttvTraceSelector *t)
49bf71b5 131{
132 g_ptr_array_add(s->traces, t);
133}
134
ed3b99b6 135void lttv_trace_selector_tracefile_add(LttvTraceSelector *s,
136 LttvTracefileSelector *t)
49bf71b5 137{
138 g_ptr_array_add(s->tracefiles, t);
139}
140
ed3b99b6 141void lttv_trace_selector_eventtype_add(LttvTraceSelector *s,
142 LttvEventtypeSelector *et)
143{
144 g_ptr_array_add(s->eventtypes, et);
145}
146
147void lttv_tracefile_selector_eventtype_add(LttvTracefileSelector *s,
148 LttvEventtypeSelector *et)
149{
150 g_ptr_array_add(s->eventtypes, et);
151}
49bf71b5 152
ed3b99b6 153unsigned lttv_traceset_selector_trace_number(LttvTracesetSelector *s)
49bf71b5 154{
155 return s->traces->len;
156}
157
ed3b99b6 158unsigned lttv_trace_selector_tracefile_number(LttvTraceSelector *s)
49bf71b5 159{
160 return s->tracefiles->len;
161}
162
ed3b99b6 163unsigned lttv_trace_selector_eventtype_number(LttvTraceSelector *s)
164{
165 return s->eventtypes->len;
166}
167
168unsigned lttv_tracefile_selector_eventtype_number(LttvTracefileSelector *s)
169{
170 return s->eventtypes->len;
171}
172
173LttvTraceSelector *lttv_traceset_selector_trace_get(LttvTracesetSelector *s,
174 unsigned i)
49bf71b5 175{
176 g_assert(s->traces->len > i);
177 return ((LttvTraceSelector *)s->traces->pdata[i]);
178}
179
ed3b99b6 180LttvTracefileSelector *lttv_trace_selector_tracefile_get(LttvTraceSelector *s,
181 unsigned i)
49bf71b5 182{
183 g_assert(s->tracefiles->len > i);
184 return ((LttvTracefileSelector *)s->tracefiles->pdata[i]);
185}
186
ed3b99b6 187LttvEventtypeSelector *lttv_trace_selector_eventtype_get(LttvTraceSelector *s,
188 unsigned i)
189{
190 g_assert(s->eventtypes->len > i);
191 return ((LttvEventtypeSelector *)s->eventtypes->pdata[i]);
192}
193
194LttvEventtypeSelector *lttv_tracefile_selector_eventtype_get(LttvTracefileSelector *s,
195 unsigned i)
196{
197 g_assert(s->eventtypes->len > i);
198 return ((LttvEventtypeSelector *)s->eventtypes->pdata[i]);
199}
200
201void lttv_traceset_selector_trace_remove(LttvTracesetSelector *s, unsigned i)
49bf71b5 202{
203 g_assert(s->traces->len > i);
204 g_ptr_array_remove_index(s->traces, i);
205}
206
ed3b99b6 207void lttv_trace_selector_tracefile_remove(LttvTraceSelector *s, unsigned i)
49bf71b5 208{
209 g_assert(s->tracefiles->len > i);
210 g_ptr_array_remove_index(s->tracefiles, i);
211}
212
ed3b99b6 213void lttv_trace_selector_eventtype_remove(LttvTraceSelector *s, unsigned i)
214{
215 g_assert(s->eventtypes->len > i);
216 g_ptr_array_remove_index(s->eventtypes, i);
217}
218
219void lttv_tracefile_selector_eventtype_remove(LttvTracefileSelector *s, unsigned i)
220{
221 g_assert(s->eventtypes->len > i);
222 g_ptr_array_remove_index(s->eventtypes, i);
223}
49bf71b5 224
225void lttv_trace_selector_set_selected(LttvTraceSelector *s, gboolean g)
226{
227 s->selected = g;
228}
229
230void lttv_tracefile_selector_set_selected(LttvTracefileSelector *s, gboolean g)
231{
232 s->selected = g;
233}
234
ed3b99b6 235void lttv_eventtype_selector_set_selected(LttvEventtypeSelector *s, gboolean g)
236{
237 s->selected = g;
238}
239
49bf71b5 240gboolean lttv_trace_selector_get_selected(LttvTraceSelector *s)
241{
242 return s->selected;
243}
244
245gboolean lttv_tracefile_selector_get_selected(LttvTracefileSelector *s)
246{
247 return s->selected;
248}
249
ed3b99b6 250gboolean lttv_eventtype_selector_get_selected(LttvEventtypeSelector *s)
251{
252 return s->selected;
253}
254
255char * lttv_traceset_selector_get_name(LttvTracesetSelector *s)
256{
257 return s->traceset_name;
258}
259
49bf71b5 260char * lttv_trace_selector_get_name(LttvTraceSelector *s)
261{
262 return s->trace_name;
263}
264
265char * lttv_tracefile_selector_get_name(LttvTracefileSelector *s)
266{
267 return s->tracefile_name;
268}
ed3b99b6 269
270char * lttv_eventtype_selector_get_name(LttvEventtypeSelector *s)
271{
272 return s->eventtype_name;
273}
274
275LttvEventtypeSelector * lttv_eventtype_selector_clone(LttvEventtypeSelector * s)
276{
277 LttvEventtypeSelector * ev = g_new(LttvEventtypeSelector, 1);
278 ev->eventtype_name = g_strdup(s->eventtype_name);
279 ev->selected = s->selected;
280 return ev;
281}
282
283void lttv_eventtype_selector_copy(LttvTraceSelector * s, LttvTracefileSelector * d)
284{
285 int i, len;
286 LttvEventtypeSelector * ev, *ev1;
287
288 len = s->eventtypes->len;
289 for(i=0;i<len;i++){
290 ev = lttv_trace_selector_eventtype_get(s,i);
291 ev1 = lttv_eventtype_selector_clone(ev);
292 lttv_tracefile_selector_eventtype_add(d,ev1);
293 }
294}
This page took 0.060004 seconds and 4 git commands to generate.