Referência ao ficheiro src/vapiResult.h

#include "vapiTypes.h"

Diagrama de dependências de inclusão para vapiResult.h:

Este grafo mostra quais são os ficheiros que incluem directamente ou indirectamente este ficheiro:

Ir para o código fonte deste ficheiro.

Estruturas de Dados

struct  _vMacroResult

Definições de tipos

typedef _vMacroResult vMacroResult

Funções

vMacroResultvapiMacroResultInit ()
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)


Documentação dos tipos

typedef struct _vMacroResult vMacroResult


Documentação das funções

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.

Parâmetros:
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().

00211 {
00212         PreviousResult->End = vTRUE;
00213 }

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:


Gerado em Tue Jul 24 10:39:41 2007 para Vapi por  doxygen 1.5.1