libmoldeo (Moldeo 1.0 Core)
1.0
libmoldeo is the group of objects and functions that executes the basic operations of Moldeo 1.0 Platform.
moXmlConfig.cpp
Ir a la documentación de este archivo.
1
/*******************************************************************************
2
3
moXmlConfig.cpp
4
5
****************************************************************************
6
* *
7
* This source is free software; you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation; either version 2 of the License, or *
10
* (at your option) any later version. *
11
* *
12
* This code is distributed in the hope that it will be useful, but *
13
* WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
15
* General Public License for more details. *
16
* *
17
* A copy of the GNU General Public License is available on the World *
18
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
19
* obtain it by writing to the Free Software Foundation, *
20
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21
* *
22
****************************************************************************
23
24
Copyright(C) 2006 Fabricio Costa
25
26
Authors:
27
Fabricio Costa
28
Andr� Colubri
29
30
*******************************************************************************/
31
32
#include "
moXmlConfig.h
"
33
34
35
//====================================================================================================================
36
//
37
//
38
// moXmlParam
39
//
40
//
41
//====================================================================================================================
42
43
/*
44
moXmlParam::moXmlParam()
45
{
46
//subcount = 0;
47
}
48
49
moXmlParam::moXmlParam( char *nvalue)
50
{
51
moXmlParam::SetValue( nvalue);
52
}
53
54
moXmlParam::~moXmlParam()
55
{
56
}
57
58
void moXmlParam::SetValue( char *nvalue)
59
{
60
moText tmp( nvalue);
61
62
value = nvalue;
63
subcount = 0;
64
tmp.Trim();
65
while( tmp!=moText("") && subcount<MO_MAX_SUBVALOR)
66
{
67
//subvalue[subcount] = tmp.Scan(" \t");
68
subvalue[subcount] = tmp.ScanEx(" \t");
69
subcount++;
70
71
}
72
73
moText moXmlParam::GetValue()
74
{
75
return value;
76
}
77
78
moText moXmlParam::GetValueStr( int i)
79
{
80
if(0<=i && i<subcount)
81
return subvalue[i];
82
else
83
return moText("");
84
}
85
86
87
char moXmlParam::GetValueChr( int i)
88
{
89
if(0<=i && i<subcount)
90
return subvalue[i][0];
91
else
92
return '\0';
93
}
94
95
96
long moXmlParam::GetValueInt( int i)
97
{
98
long tmp;
99
if(0<=i && i<subcount)
100
{
101
sscanf( subvalue[i], "%d", &tmp);
102
return tmp;
103
}
104
else
105
return 0;
106
}
107
108
109
double moXmlParam::GetValueFlt( int i)
110
{
111
//double tmp;
112
float tmp2;
113
114
if(0<=i && i<subcount)
115
{
116
sscanf( subvalue[i], "%f", &tmp2);
117
//return tmp;
118
return tmp2;
119
}
120
else
121
return 0.0;
122
}
123
124
//====================================================================================================================
125
//
126
//
127
// moXmlConfig
128
//
129
//
130
//====================================================================================================================
131
132
133
moXmlConfig::moXmlConfig()
134
{
135
m_ConfigLoaded = false;
136
137
param = NULL;
138
paramcount = 0;
139
currentparam = MO_PARAM_NOT_SEL;
140
141
emptyparam.SetValue("0");
142
}
143
144
moXmlConfig::~moXmlConfig()
145
{
146
DeleteConfig();
147
148
}
149
150
MOboolean
151
moXmlConfig::IsConfigLoaded() {
152
153
return m_ConfigLoaded;
154
155
}
156
157
int moXmlConfig::LoadConfig( char *fname)
158
{
159
m_ConfigLoaded = true;
160
161
return MO_CONFIG_OK;
162
}
163
164
int moXmlConfig::SaveConfig( char* fname)
165
{
166
167
return MO_CONFIG_OK;
168
}
169
170
void moXmlConfig::DeleteConfig()
171
{
172
paramcount = 0;
173
currentparam = MO_PARAM_NOT_SEL;
174
175
for( i=0; i<MO_MAX_PARAM; i++)
176
nameparam[i] = "";
177
178
memset( valuecount, 0, sizeof(valuecount));
179
memset( currentvalue, MO_PARAM_NOT_SEL, sizeof(currentvalue));
180
181
m_ConfigLoaded = false;
182
}
183
184
185
void moXmlConfig::AddParam( char* name)
186
{
187
if(paramcount == 0)
188
{
189
param = new moParam*[MO_MAX_PARAM];
190
if(!param)
191
{
192
printf("Insufficient memory for the configuration.\n");
193
exit(1);
194
}
195
else
196
for( int i=0; i<MO_MAX_PARAM; i++)
197
param[i] = NULL;
198
}
199
currentparam = paramcount;
200
paramcount++;
201
nameparam[currentparam] = name;
202
valuecount[currentparam] = 0;
203
204
}
205
206
moParam& moXmlConfig::GetParam( int nroparam, int nroopcion)
207
{
208
if(0<=nroparam && nroparam<paramcount &&
209
0<=nroopcion && nroopcion<valuecount[nroparam])
210
return param[nroparam][nroopcion];
211
else
212
{
213
printf("Parameter out of range.\n");
214
return emptyparam;
215
}
216
return emptyparam;
217
}
218
219
moParam& moXmlConfig::GetParam( int nroparam)
220
{
221
if(0<=nroparam && nroparam<paramcount &&
222
0<=currentvalue[nroparam] && currentvalue[nroparam]<valuecount[nroparam])
223
return param[nroparam][currentvalue[nroparam]];
224
else
225
{
226
printf("Parameter out of range.\n");
227
return emptyparam;
228
}
229
return emptyparam;
230
}
231
232
moParam& moXmlConfig::GetParam()
233
{
234
if(0<=currentparam && currentparam<paramcount &&
235
0<=currentvalue[currentparam] && currentvalue[currentparam]<valuecount[currentparam])
236
return param[currentparam][currentvalue[currentparam]];
237
else
238
{
239
printf("Parameter out of range.\n");
240
return emptyparam;
241
}
242
return emptyparam;
243
}
244
245
void moXmlConfig::SetParam( int nroparam, int nroopcion, moParam& nparam)
246
{
247
if(0<=nroparam && nroparam<paramcount && 0<=nroopcion && nroopcion<valuecount[nroparam])
248
param[nroparam][nroopcion] = nparam;
249
250
}
251
252
int moXmlConfig::GetParamCount()
253
{
254
return m_Params.Count();
255
}
256
257
int moXmlConfig::GetCurrentParam()
258
{
259
return m_ParamIndex;
260
}
261
262
void moXmlConfig::SetCurrentParam( int nactual)
263
{
264
if(0<=nactual && nactual<m_Params.Count())
265
m_ParamIndex = nactual;
266
}
267
268
void moXmlConfig::FirstParam()
269
{
270
if(m_ParamIndex!=MO_PARAM_NOT_SEL && m_Params.Count()>0)
271
m_ParamIndex=0;
272
}
273
274
void moXmlConfig::NextParam()
275
{
276
if(m_ParamIndex!=MO_PARAM_NOT_SEL && m_ParamIndex<m_Params.Count()-1)
277
m_ParamIndex++;
278
}
279
280
void moXmlConfig::PrevParam()
281
{
282
if(m_ParamIndex!=MO_PARAM_NOT_SEL && m_ParamIndex>0)
283
m_ParamIndex--;
284
}
285
286
int moXmlConfig::GetParamIndex( char* name)
287
{
288
for( int i=0; i<paramcount; i++)
289
{
290
if( nameparam[i]== name)
291
return i;
292
}
293
294
return MO_PARAM_NOT_FOUND;
295
}
296
297
moText moXmlConfig::GetParamName( int nroparam)
298
{
299
if(0<=nroparam && nroparam<paramcount)
300
return nameparam[nroparam];
301
else
302
{
303
printf("Par�etro fuera de rango.\n");
304
return moText("");
305
}
306
307
return moText("");
308
}
309
310
311
void moXmlConfig::AddValue( int nroparam, char* valueparam)
312
{
313
if(valuecount[nroparam] == 0)
314
{
315
param[nroparam] = new moParam[MO_MAX_VALOR];
316
if(!param[nroparam])
317
{
318
printf("Insuficiente memoria para la configuracion.\n");
319
exit(1);
320
}
321
}
322
currentvalue[nroparam] = valuecount[nroparam];
323
valuecount[nroparam]++;
324
param[nroparam][currentvalue[nroparam]].SetValue( valueparam);
325
326
}
327
328
int moXmlConfig::GetValueCount( int nroparam)
329
{
330
331
if(0<=nroparam && nroparam<paramcount)
332
return valuecount[nroparam];
333
else
334
return 0;
335
}
336
337
int moXmlConfig::GetCurrentValue( int nroparam)
338
{
339
if(0<=nroparam && nroparam<paramcount)
340
return currentvalue[nroparam];
341
else
342
return MO_PARAM_NOT_FOUND;
343
}
344
345
void moXmlConfig::SetCurrentValue( int nroparam, int nroopcion)
346
{
347
if(0<=nroparam && nroparam<paramcount && 0<=nroopcion && nroopcion<valuecount[nroparam])
348
currentvalue[nroparam]=nroopcion;
349
350
}
351
352
void moXmlConfig::FirstValue()
353
{
354
if(currentvalue[currentparam] != MO_PARAM_NOT_SEL && valuecount[currentparam] > 0)
355
currentvalue[currentparam]=0;
356
357
}
358
359
void moXmlConfig::NextValue()
360
{
361
if(currentvalue[currentparam] != MO_PARAM_NOT_SEL && currentvalue[currentparam] < valuecount[currentparam]-1)
362
currentvalue[currentparam]++;
363
364
}
365
366
void moXmlConfig::PreviousValue()
367
{
368
if(currentvalue[currentparam] != MO_PARAM_NOT_SEL && currentvalue[currentparam] > 0)
369
currentvalue[currentparam]--;
370
371
}
372
373
*/
moXmlConfig.h
libmoldeo
moXmlConfig.cpp
Generado el Martes, 10 de Septiembre de 2019 21:27:08 para libmoldeo (Moldeo 1.0 Core) por
1.8.13