Filter for selecting trace and tracefile
[lttv.git] / ltt / branches / poly / lttv / modules / gui / mainWin / src / lttvfilter.c
CommitLineData
49bf71b5 1
2#include <lttv/lttvfilter.h>
3#include <stdio.h>
4
5struct _LttvTracesetSelector {
6 char * traceset_name;
7 GPtrArray *traces;
8};
9
10
11struct _LttvTraceSelector {
12 char * trace_name;
13 GPtrArray * tracefiles;
14 gboolean selected;
15};
16
17struct _LttvTracefileSelector {
18 char * tracefile_name;
19 gboolean selected;
20};
21
22
23LttvTracesetSelector *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
36LttvTraceSelector *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
47LttvTracefileSelector *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
58void 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
72void 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
85void lttv_tracefile_selector_destroy(LttvTracefileSelector *t)
86{
87 if(t->tracefile_name) g_free(t->tracefile_name);
88 g_free(t);
89}
90
91void lttv_traceset_selector_add(LttvTracesetSelector *s, LttvTraceSelector *t)
92{
93 g_ptr_array_add(s->traces, t);
94}
95
96void lttv_trace_selector_add(LttvTraceSelector *s, LttvTracefileSelector *t)
97{
98 g_ptr_array_add(s->tracefiles, t);
99}
100
101
102unsigned lttv_traceset_selector_number(LttvTracesetSelector *s)
103{
104 return s->traces->len;
105}
106
107unsigned lttv_trace_selector_number(LttvTraceSelector *s)
108{
109 return s->tracefiles->len;
110}
111
112LttvTraceSelector *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
118LttvTracefileSelector *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
124void 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
130void 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
137void lttv_trace_selector_set_selected(LttvTraceSelector *s, gboolean g)
138{
139 s->selected = g;
140}
141
142void lttv_tracefile_selector_set_selected(LttvTracefileSelector *s, gboolean g)
143{
144 s->selected = g;
145}
146
147gboolean lttv_trace_selector_get_selected(LttvTraceSelector *s)
148{
149 return s->selected;
150}
151
152gboolean lttv_tracefile_selector_get_selected(LttvTracefileSelector *s)
153{
154 return s->selected;
155}
156
157char * lttv_trace_selector_get_name(LttvTraceSelector *s)
158{
159 return s->trace_name;
160}
161
162char * lttv_tracefile_selector_get_name(LttvTracefileSelector *s)
163{
164 return s->tracefile_name;
165}
This page took 0.033335 seconds and 4 git commands to generate.