Filter for selecting trace and tracefile
[lttv.git] / ltt / branches / poly / lttv / modules / gui / mainWin / src / lttvfilter.c
1
2 #include <lttv/lttvfilter.h>
3 #include <stdio.h>
4
5 struct _LttvTracesetSelector {
6 char * traceset_name;
7 GPtrArray *traces;
8 };
9
10
11 struct _LttvTraceSelector {
12 char * trace_name;
13 GPtrArray * tracefiles;
14 gboolean selected;
15 };
16
17 struct _LttvTracefileSelector {
18 char * tracefile_name;
19 gboolean selected;
20 };
21
22
23 LttvTracesetSelector *lttv_traceset_selector_new(char * name)
24 {
25 LttvTracesetSelector *s;
26
27 s = g_new(LttvTracesetSelector, 1);
28 if(name)
29 s->traceset_name = g_strdup(name);
30 else
31 s->traceset_name = NULL;
32 s->traces = g_ptr_array_new();
33 return s;
34 }
35
36 LttvTraceSelector *lttv_trace_selector_new(LttTrace *t)
37 {
38 LttvTraceSelector * trace;
39
40 trace = g_new(LttvTraceSelector, 1);
41 trace->trace_name = g_strdup(ltt_trace_name(t));
42 trace->tracefiles = g_ptr_array_new();
43 trace->selected = TRUE;
44 return trace;
45 }
46
47 LttvTracefileSelector *lttv_tracefile_selector_new(LttTracefile *t)
48 {
49 LttvTracefileSelector * tracefile;
50
51 tracefile = g_new(LttvTracefileSelector, 1);
52 tracefile->tracefile_name = g_strdup(ltt_tracefile_name(t));
53 tracefile->selected = TRUE;
54 return tracefile;
55 }
56
57
58 void lttv_traceset_selector_destroy(LttvTracesetSelector *s)
59 {
60 int i;
61 LttvTraceSelector * t;
62
63 for(i=0;i<s->traces->len;i++){
64 t = (LttvTraceSelector*)s->traces->pdata[i];
65 lttv_trace_selector_destroy(t);
66 }
67 g_ptr_array_free(s->traces, TRUE);
68 if(s->traceset_name) g_free(s->traceset_name);
69 g_free(s);
70 }
71
72 void lttv_trace_selector_destroy(LttvTraceSelector *s)
73 {
74 int i;
75 LttvTracefileSelector * t;
76
77 for(i=0;i<s->tracefiles->len;i++){
78 t = (LttvTracefileSelector*)s->tracefiles->pdata[i];
79 lttv_tracefile_selector_destroy(t);
80 }
81 if(s->trace_name) g_free(s->trace_name);
82 g_free(s);
83 }
84
85 void lttv_tracefile_selector_destroy(LttvTracefileSelector *t)
86 {
87 if(t->tracefile_name) g_free(t->tracefile_name);
88 g_free(t);
89 }
90
91 void lttv_traceset_selector_add(LttvTracesetSelector *s, LttvTraceSelector *t)
92 {
93 g_ptr_array_add(s->traces, t);
94 }
95
96 void lttv_trace_selector_add(LttvTraceSelector *s, LttvTracefileSelector *t)
97 {
98 g_ptr_array_add(s->tracefiles, t);
99 }
100
101
102 unsigned lttv_traceset_selector_number(LttvTracesetSelector *s)
103 {
104 return s->traces->len;
105 }
106
107 unsigned lttv_trace_selector_number(LttvTraceSelector *s)
108 {
109 return s->tracefiles->len;
110 }
111
112 LttvTraceSelector *lttv_traceset_selector_get(LttvTracesetSelector *s, unsigned i)
113 {
114 g_assert(s->traces->len > i);
115 return ((LttvTraceSelector *)s->traces->pdata[i]);
116 }
117
118 LttvTracefileSelector *lttv_trace_selector_get(LttvTraceSelector *s, unsigned i)
119 {
120 g_assert(s->tracefiles->len > i);
121 return ((LttvTracefileSelector *)s->tracefiles->pdata[i]);
122 }
123
124 void lttv_traceset_selector_remove(LttvTracesetSelector *s, unsigned i)
125 {
126 g_assert(s->traces->len > i);
127 g_ptr_array_remove_index(s->traces, i);
128 }
129
130 void lttv_trace_selector_remove(LttvTraceSelector *s, unsigned i)
131 {
132 g_assert(s->tracefiles->len > i);
133 g_ptr_array_remove_index(s->tracefiles, i);
134 }
135
136
137 void lttv_trace_selector_set_selected(LttvTraceSelector *s, gboolean g)
138 {
139 s->selected = g;
140 }
141
142 void lttv_tracefile_selector_set_selected(LttvTracefileSelector *s, gboolean g)
143 {
144 s->selected = g;
145 }
146
147 gboolean lttv_trace_selector_get_selected(LttvTraceSelector *s)
148 {
149 return s->selected;
150 }
151
152 gboolean lttv_tracefile_selector_get_selected(LttvTracefileSelector *s)
153 {
154 return s->selected;
155 }
156
157 char * lttv_trace_selector_get_name(LttvTraceSelector *s)
158 {
159 return s->trace_name;
160 }
161
162 char * lttv_tracefile_selector_get_name(LttvTracefileSelector *s)
163 {
164 return s->tracefile_name;
165 }
This page took 0.032328 seconds and 4 git commands to generate.