49bf71b5 |
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 | } |