#include <stdio.h>
#include "vapiTypes.h"
#include "vapiResult.h"
#include "vapiAux.h"
#include "vapiMacro.h"
Diagrama de dependências de inclusão para vapiResult.c:
Ir para o código fonte deste ficheiro.
Funções | |
vMacroResult * | vapiMacroResultInit () |
void | vapiResultAddChar (vMacroResult *PreviousResult, const char *string) |
void | vapiResultAddFloat (vMacroResult *PreviousResult, double value) |
void | vapiResultAddInt (vMacroResult *PreviousResult, int value) |
void | vapiResultAddPoint (vMacroResult *PreviousResult, int x, int y) |
char * | vapiResultCheckMacroTag (vMacroResult *PreviousResult) |
char * | vapiResultGetChar (vMacroResult *PreviousResult, int position) |
int | vapiResultGetCharsNumber (vMacroResult *PreviousResult) |
vBoolean | vapiResultGetDecision (vMacroResult *PreviousResult) |
double | vapiResultGetFloat (vMacroResult *PreviousResult, int position) |
int | vapiResultGetFloatsNumber (vMacroResult *PreviousResult) |
int | vapiResultGetInt (vMacroResult *PreviousResult, int position) |
int | vapiResultGetIntsNumber (vMacroResult *PreviousResult) |
int | vapiResultGetJumpTo (vMacroResult *PreviousResult) |
vPoint | vapiResultGetPoint (vMacroResult *PreviousResult, int position) |
int | vapiResultGetPointsNumber (vMacroResult *PreviousResult) |
char * | vapiResultPrintf (const char *inString, vMacroResult *PreviousResult) |
Detecta variaveis nas strings e substitui-as por variaveis internas do vapi. Utiliza a mesma sintaxe do printf, mas procura variáveis em memória. Por exemplo %rd0 indica o valor de Resultado (d) inteiro de indice 0. | |
void | vapiResultSetCurrentMacroTag (vMacroResult *PreviousResult, const char *previousMacroTag, int Operation) |
void | vapiResultSetDecision (vMacroResult *PreviousResult, vBoolean Decision) |
void | vapiResultSetEnd (vMacroResult *PreviousResult) |
void | vapiResultSetJumpTo (vMacroResult *PreviousResult, int OperationOrder) |
void | vResultFree (vMacroResult *PreviousResult) |
void | vResultReset (vMacroResult *PreviousResult) |
void | vResultResetChars (vMacroResult *PreviousResult) |
void | vResultResetInts (vMacroResult *PreviousResult) |
void | vResultResetPoints (vMacroResult *PreviousResult) |
vMacroResult* vapiMacroResultInit | ( | ) |
Definido na linha 7 do ficheiro vapiResult.c.
Referências _vMacroResult::charsNumber, _vMacroResult::Decision, _vMacroResult::End, _vMacroResult::floatsNumber, _vMacroResult::intsNumber, _vMacroResult::JumpTo, _vMacroResult::macroTag, _vMacroResult::pointsNumber e vFALSE.
Referenciado por vapiCalibrateCameraGetConstant(), vapiGtkOperationApply() e vapiMacroNew().
00008 { 00009 vMacroResult *PreviousResult; 00010 PreviousResult = malloc (sizeof (vMacroResult)); 00011 PreviousResult->Decision = vFALSE; 00012 PreviousResult->End = vFALSE; 00013 PreviousResult->JumpTo = -1; 00014 PreviousResult->intsNumber = 0; 00015 PreviousResult->floatsNumber = 0; 00016 PreviousResult->pointsNumber = 0; 00017 PreviousResult->charsNumber = 0; 00018 PreviousResult->macroTag = NULL; 00019 return PreviousResult; 00020 00021 }
Here is the caller graph for this function:
void vapiResultAddChar | ( | vMacroResult * | PreviousResult, | |
const char * | string | |||
) |
Definido na linha 100 do ficheiro vapiResult.c.
Referências _vChar::ch, _vMacroResult::chars, _vMacroResult::charsNumber e vapiReturnStringPointer().
Referenciado por vapiOCR().
00101 { 00102 vChar *charsPtr; 00103 00104 if (PreviousResult->charsNumber == 0) 00105 { 00106 PreviousResult->charsNumber++; 00107 PreviousResult->chars = 00108 malloc ((PreviousResult->charsNumber) * 00109 sizeof (vChar)); 00110 00111 } 00112 else 00113 { 00114 PreviousResult->charsNumber++; 00115 charsPtr = 00116 realloc (PreviousResult->chars, 00117 (PreviousResult->charsNumber) * 00118 sizeof (vChar)); 00119 00120 PreviousResult->chars = charsPtr; 00121 } 00122 PreviousResult->chars[PreviousResult->charsNumber - 1].ch = 00123 vapiReturnStringPointer (string); 00124 00125 }
Grafo de chamadas desta função:
Here is the caller graph for this function:
void vapiResultAddFloat | ( | vMacroResult * | PreviousResult, | |
double | value | |||
) |
Definido na linha 75 do ficheiro vapiResult.c.
Referências _vMacroResult::floats e _vMacroResult::floatsNumber.
00076 { 00077 double *floatsPtr; 00078 00079 if (PreviousResult->floatsNumber == 0) 00080 { 00081 PreviousResult->floats = 00082 malloc ((++PreviousResult->floatsNumber) * 00083 sizeof (double)); 00084 00085 } 00086 else 00087 { 00088 floatsPtr = 00089 realloc (PreviousResult->floats, 00090 (++PreviousResult->floatsNumber) * 00091 sizeof (double)); 00092 00093 PreviousResult->floats = floatsPtr; 00094 } 00095 PreviousResult->floats[PreviousResult->floatsNumber - 1] = value; 00096 00097 }
void vapiResultAddInt | ( | vMacroResult * | PreviousResult, | |
int | value | |||
) |
Definido na linha 24 do ficheiro vapiResult.c.
Referências _vMacroResult::ints e _vMacroResult::intsNumber.
Referenciado por vapiTemplateMatch().
00025 { 00026 int *intsPtr; 00027 00028 if (PreviousResult->intsNumber == 0) 00029 { 00030 PreviousResult->ints = 00031 malloc ((++PreviousResult->intsNumber) * 00032 sizeof (int)); 00033 00034 } 00035 else 00036 { 00037 intsPtr = 00038 realloc (PreviousResult->ints, 00039 (++PreviousResult->intsNumber) * 00040 sizeof (int)); 00041 00042 PreviousResult->ints = intsPtr; 00043 } 00044 PreviousResult->ints[PreviousResult->intsNumber - 1] = value; 00045 00046 }
Here is the caller graph for this function:
void vapiResultAddPoint | ( | vMacroResult * | PreviousResult, | |
int | x, | |||
int | y | |||
) |
Definido na linha 49 do ficheiro vapiResult.c.
Referências _vMacroResult::points e _vMacroResult::pointsNumber.
00050 { 00051 vPoint *PointPtr; 00052 00053 if (PreviousResult->pointsNumber == 0) 00054 { 00055 PreviousResult->pointsNumber++; 00056 00057 PreviousResult->points = 00058 malloc (PreviousResult->pointsNumber * 00059 sizeof (vPoint)); 00060 00061 } 00062 else 00063 { 00064 PointPtr = 00065 realloc (PreviousResult->points, 00066 (++PreviousResult->pointsNumber) * 00067 sizeof (vPoint)); 00068 PreviousResult->points = PointPtr; 00069 } 00070 PreviousResult->points[PreviousResult->pointsNumber - 1].x = x; 00071 PreviousResult->points[PreviousResult->pointsNumber - 1].y = y; 00072 }
char* vapiResultCheckMacroTag | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 432 do ficheiro vapiResult.c.
Referências _vMacroResult::macroTag e v_printf().
Referenciado por vapiApplyMacro() e vapiApplyMacroUntil().
00433 { 00434 if (PreviousResult->macroTag == NULL) 00435 { 00436 return v_printf ("0"); 00437 } 00438 else 00439 { 00440 return v_printf ("%s", PreviousResult->macroTag); 00441 } 00442 }
Grafo de chamadas desta função:
Here is the caller graph for this function:
char* vapiResultGetChar | ( | vMacroResult * | PreviousResult, | |
int | position | |||
) |
Definido na linha 128 do ficheiro vapiResult.c.
Referências _vChar::ch, _vMacroResult::chars e _vMacroResult::charsNumber.
00129 { 00130 if (PreviousResult->charsNumber > 0 00131 && position < PreviousResult->charsNumber) 00132 { 00133 return PreviousResult->chars[position].ch; 00134 } 00135 else 00136 { 00137 return " "; 00138 } 00139 }
int vapiResultGetCharsNumber | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 198 do ficheiro vapiResult.c.
Referências _vMacroResult::charsNumber.
00199 { 00200 return PreviousResult->charsNumber; 00201 }
vBoolean vapiResultGetDecision | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 234 do ficheiro vapiResult.c.
Referências _vMacroResult::Decision.
Referenciado por vapiJumpToConditional().
00235 { 00236 return PreviousResult->Decision; 00237 }
Here is the caller graph for this function:
double vapiResultGetFloat | ( | vMacroResult * | PreviousResult, | |
int | position | |||
) |
Definido na linha 156 do ficheiro vapiResult.c.
Referências _vMacroResult::floats e _vMacroResult::floatsNumber.
Referenciado por vapiCompareFloat().
00157 { 00158 if (PreviousResult->floatsNumber > 0 00159 && position < PreviousResult->floatsNumber) 00160 { 00161 return PreviousResult->floats[position]; 00162 } 00163 else 00164 { 00165 return 0.0; 00166 } 00167 }
Here is the caller graph for this function:
int vapiResultGetFloatsNumber | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 192 do ficheiro vapiResult.c.
Referências _vMacroResult::floatsNumber.
00193 { 00194 return PreviousResult->floatsNumber; 00195 }
int vapiResultGetInt | ( | vMacroResult * | PreviousResult, | |
int | position | |||
) |
Definido na linha 142 do ficheiro vapiResult.c.
Referências _vMacroResult::ints e _vMacroResult::intsNumber.
Referenciado por vapiCompareInt().
00143 { 00144 if (PreviousResult->intsNumber > 0 00145 && position < PreviousResult->intsNumber) 00146 { 00147 return PreviousResult->ints[position]; 00148 } 00149 else 00150 { 00151 return 0; 00152 } 00153 }
Here is the caller graph for this function:
int vapiResultGetIntsNumber | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 186 do ficheiro vapiResult.c.
Referências _vMacroResult::intsNumber.
00187 { 00188 return PreviousResult->intsNumber; 00189 }
int vapiResultGetJumpTo | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 222 do ficheiro vapiResult.c.
Referências _vMacroResult::JumpTo.
00223 { 00224 return PreviousResult->JumpTo; 00225 }
vPoint vapiResultGetPoint | ( | vMacroResult * | PreviousResult, | |
int | position | |||
) |
Definido na linha 170 do ficheiro vapiResult.c.
Referências _vMacroResult::points e _vMacroResult::pointsNumber.
Referenciado por vapiMarkPoints().
00171 { 00172 vPoint point = { 0, 0 }; 00173 00174 if (PreviousResult->pointsNumber > 0 00175 && position < PreviousResult->pointsNumber) 00176 { 00177 return PreviousResult->points[position]; 00178 } 00179 else 00180 { 00181 return point; 00182 } 00183 }
Here is the caller graph for this function:
int vapiResultGetPointsNumber | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 204 do ficheiro vapiResult.c.
Referências _vMacroResult::pointsNumber.
Referenciado por vapiMarkPoints().
00205 { 00206 return PreviousResult->pointsNumber; 00207 }
Here is the caller graph for this function:
char * vapiResultPrintf | ( | const char * | inString, | |
vMacroResult * | PreviousResult | |||
) |
Detecta variaveis nas strings e substitui-as por variaveis internas do vapi. Utiliza a mesma sintaxe do printf, mas procura variáveis em memória.
Por exemplo %rd0 indica o valor de Resultado (d) inteiro de indice 0.
inString | String a filtrar. | |
PreviousResult | A estrutura de resultado de onde retirar os valores. |
Fomato da String, exemplo: "o resultado é %rd0" significa o Resultado inteiro 0: PreviousResult->ints[0]
rd0 PreviousResult->ints[0] rs1 PreviousResult->chars[1] rf2 PreviousResult->floats[2]
Método de substituiçao i é a posição na string, o caracter a analisar.
Definido na linha 308 do ficheiro vapiResult.c.
Referências _vMacroResult::charsNumber, _vMacroResult::intsNumber e _vMacroResult::pointsNumber.
Referenciado por vapiMessage().
00309 { 00320 int inStringLen, i; 00321 char parsedString[255], *outString; 00322 inStringLen = strlen (inString); 00323 00324 00335 strcpy (parsedString, ""); 00336 for (i = 0; i < inStringLen; i++) 00337 { 00338 if (inString[i] == '\\') 00339 { 00340 i++; 00341 continue; 00342 } 00343 if (inString[i] == '%') 00344 { 00345 switch (inString[++i]) 00346 { 00347 case 'r': 00348 { 00349 switch (inString[++i]) 00350 { 00351 case 'd': 00352 { 00353 if (PreviousResult->intsNumber == 0) 00354 { 00355 ++i; 00356 continue; 00357 break; 00358 00359 } 00360 sprintf (parsedString, "%s%d", 00361 parsedString, 00362 PreviousResult-> 00363 ints[atoi (&inString[++i])]); 00364 continue; 00365 break; 00366 00367 } 00368 case 'p': 00369 { 00370 if (PreviousResult->pointsNumber == 0) 00371 { 00372 ++i; 00373 continue; 00374 break; 00375 00376 } 00377 ++i; 00378 sprintf (parsedString, 00379 "%s (%d,%d)", 00380 parsedString, 00381 PreviousResult-> 00382 points[atoi 00383 (&inString 00384 [i])].x, 00385 PreviousResult-> 00386 points[atoi (&inString[i])]. 00387 y); 00388 continue; 00389 break; 00390 00391 } 00392 case 's': 00393 { 00394 if (PreviousResult->charsNumber == 0) 00395 { 00396 ++i; 00397 continue; 00398 break; 00399 00400 } 00401 ++i; 00402 sprintf (parsedString, 00403 "%s (%d,%s)", 00404 parsedString, 00405 PreviousResult-> 00406 points[atoi 00407 (&inString 00408 [i])].x, 00409 PreviousResult-> 00410 chars[atoi (&inString[i])]. 00411 ch); 00412 continue; 00413 break; 00414 00415 } 00416 00417 } 00418 } 00419 00420 00421 } 00422 } 00423 sprintf (parsedString, "%s%c", parsedString, inString[i]); 00424 } 00425 00426 outString = vapiReturnStringPointer (parsedString); 00427 00428 return outString; 00429 }
Here is the caller graph for this function:
void vapiResultSetCurrentMacroTag | ( | vMacroResult * | PreviousResult, | |
const char * | previousMacroTag, | |||
int | Operation | |||
) |
Definido na linha 445 do ficheiro vapiResult.c.
Referências _vMacroResult::macroTag e vapiMacroTag().
Referenciado por vapiApplyMacro() e vapiApplyMacroUntil().
00447 { 00448 if (PreviousResult->macroTag != NULL) 00449 { 00450 free (PreviousResult->macroTag); 00451 } 00452 PreviousResult->macroTag = vapiMacroTag (previousMacroTag, Operation); 00453 }
Grafo de chamadas desta função:
Here is the caller graph for this function:
void vapiResultSetDecision | ( | vMacroResult * | PreviousResult, | |
vBoolean | Decision | |||
) |
Definido na linha 228 do ficheiro vapiResult.c.
Referências _vMacroResult::Decision.
Referenciado por vapiObjectExists().
00229 { 00230 PreviousResult->Decision = Decision; 00231 }
Here is the caller graph for this function:
void vapiResultSetEnd | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 210 do ficheiro vapiResult.c.
Referências _vMacroResult::End e vTRUE.
Referenciado por vapiEndExecution().
Here is the caller graph for this function:
void vapiResultSetJumpTo | ( | vMacroResult * | PreviousResult, | |
int | OperationOrder | |||
) |
Definido na linha 216 do ficheiro vapiResult.c.
Referências _vMacroResult::JumpTo.
Referenciado por vapiJumpToConditional().
00217 { 00218 PreviousResult->JumpTo = OperationOrder; 00219 }
Here is the caller graph for this function:
void vResultFree | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 292 do ficheiro vapiResult.c.
Referências vResultReset().
Referenciado por vapiCalibrateCameraGetConstant() e vapiGtkOperationApply().
00293 { 00294 vResultReset (PreviousResult); 00295 free (PreviousResult); 00296 }
Grafo de chamadas desta função:
Here is the caller graph for this function:
void vResultReset | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 276 do ficheiro vapiResult.c.
Referências _vMacroResult::Decision, _vMacroResult::End, _vMacroResult::JumpTo, _vMacroResult::macroTag, vFALSE, vResultResetChars(), vResultResetInts() e vResultResetPoints().
Referenciado por vapiApplyMacro(), vapiGtkMacroSelectItem(), vapiGtkMacroTablesApplyUntil() e vResultFree().
00277 { 00278 vResultResetInts (PreviousResult); 00279 vResultResetPoints (PreviousResult); 00280 vResultResetChars (PreviousResult); 00281 PreviousResult->Decision = vFALSE; 00282 PreviousResult->End = vFALSE; 00283 PreviousResult->JumpTo = -1; 00284 if (PreviousResult->macroTag != NULL) 00285 { 00286 free (PreviousResult->macroTag); 00287 PreviousResult->macroTag = NULL; 00288 } 00289 }
Grafo de chamadas desta função:
Here is the caller graph for this function:
void vResultResetChars | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 251 do ficheiro vapiResult.c.
Referências _vChar::ch, _vMacroResult::chars e _vMacroResult::charsNumber.
Referenciado por vResultReset().
00252 { 00253 int i; 00254 if (PreviousResult->charsNumber) 00255 { 00256 for (i = 0; i < PreviousResult->charsNumber; i++) 00257 { 00258 free (PreviousResult->chars[i].ch); 00259 } 00260 free (PreviousResult->chars); 00261 PreviousResult->charsNumber = 0; 00262 } 00263 }
Here is the caller graph for this function:
void vResultResetInts | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 241 do ficheiro vapiResult.c.
Referências _vMacroResult::ints e _vMacroResult::intsNumber.
Referenciado por vapiResultResetInts() e vResultReset().
00242 { 00243 if (PreviousResult->intsNumber) 00244 { 00245 free (PreviousResult->ints); 00246 PreviousResult->intsNumber = 0; 00247 } 00248 }
Here is the caller graph for this function:
void vResultResetPoints | ( | vMacroResult * | PreviousResult | ) |
Definido na linha 266 do ficheiro vapiResult.c.
Referências _vMacroResult::points e _vMacroResult::pointsNumber.
Referenciado por vapiResultResetPoints() e vResultReset().
00267 { 00268 if (PreviousResult->pointsNumber) 00269 { 00270 free (PreviousResult->points); 00271 PreviousResult->pointsNumber = 0; 00272 } 00273 }
Here is the caller graph for this function: