Referência ao ficheiro src/interface/vapiGtkImages.h

#include <gtk/gtk.h>
#include <cxcore.h>
#include "vapiImages.h"

Diagrama de dependências de inclusão para vapiGtkImages.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  _vGtkImagesIdle
struct  _vGtkImagesIdleFast

Definições de tipos

typedef _vGtkImagesIdle vGtkImagesIdle
typedef _vGtkImagesIdleFast vGtkImagesIdleFast

Enumerações

enum  imWidgets { gtkImWork, gtkImActual, gtkImOriginal }

Funções

void vapiGtkImagesFastUpdateInterface (IplImage *Image, int GtkImageWidget)
GtkFileFilter * vapiGtkImagesFilter ()
void vapiGtkImagesThreadsInit (GtkWidget *imOriginal, GtkWidget *imActual, GtkWidget *imWork, vImages *Images)
gboolean vapiGtkImagesUpdateIdle (vGtkImagesIdle *GtkImagesIdle)
void vapiGtkImagesUpdateInterface (vImages *Images, int GtkImageWidget)
void vGtkImagesIdleChangeImage (vGtkImagesIdle *GtkImagesIdle, int GtkImageWidget)
void vGtkImagesIdleFastFree (vGtkImagesIdleFast *vFree)
vGtkImagesIdleFastvGtkImagesIdleFastNew (IplImage *Image, int GtkImageWidget)
void vGtkImagesIdleFree (vGtkImagesIdle *vFree)
vGtkImagesIdlevGtkImagesIdleNew (IplImage *Image, int GtkImageWidget)


Documentação dos tipos

typedef struct _vGtkImagesIdle vGtkImagesIdle

typedef struct _vGtkImagesIdleFast vGtkImagesIdleFast


Documentação dos valores da enumeração

enum imWidgets

Valores da enumeração:
gtkImWork 
gtkImActual 
gtkImOriginal 

Definido na linha 7 do ficheiro vapiGtkImages.h.


Documentação das funções

void vapiGtkImagesFastUpdateInterface ( IplImage *  Image,
int  GtkImageWidget 
)

Definido na linha 241 do ficheiro vapiGtkImages.c.

Referências v_debug, vapiGtkImagesFastUpdateIdle() e vGtkImagesIdleFastNew().

Referenciado por vapiApplyMacro(), vapiApplyMacroUntil() e vapiRefreshImage().

00242 {
00243         vGtkImagesIdleFast *GtkImagesIdleFast;
00244         GtkImagesIdleFast = vGtkImagesIdleFastNew (Image, GtkImageWidget);
00245 
00246         v_debug ("ImagesUpdateFast inicio");
00247         g_idle_add ((GSourceFunc) & vapiGtkImagesFastUpdateIdle,
00248                     GtkImagesIdleFast);
00249 }

Grafo de chamadas desta função:

Here is the caller graph for this function:

GtkFileFilter* vapiGtkImagesFilter (  ) 

Definido na linha 269 do ficheiro vapiGtkImages.c.

Referenciado por vapiGtkSetOriginWindowLaunchImageLoad().

00270 {
00271         GtkFileFilter *filter;
00272         filter = gtk_file_filter_new ();
00273         gtk_file_filter_set_name (filter, "Imagens");
00274         gtk_file_filter_add_pattern (filter, "*.jpg");
00275         gtk_file_filter_add_pattern (filter, "*.bmp");
00276         gtk_file_filter_add_pattern (filter, "*.gif");
00277         gtk_file_filter_add_pattern (filter, "*.png");
00278         gtk_file_filter_add_pattern (filter, "*.tif");
00279         gtk_file_filter_add_pattern (filter, "*.tiff");
00280         gtk_file_filter_add_pattern (filter, "*.pcx");
00281         gtk_file_filter_add_pattern (filter, "*.JPG");
00282         return filter;
00283 }

Here is the caller graph for this function:

void vapiGtkImagesThreadsInit ( GtkWidget *  imOriginal,
GtkWidget *  imActual,
GtkWidget *  imWork,
vImages Images 
)

Definido na linha 18 do ficheiro vapiGtkImages.c.

Referências GtkImages, _vGtkImages::imActual, _vGtkImages::Images, _vGtkImages::imOriginal, _vGtkImages::imWork, _vGtkImages::mutexActual, _vGtkImages::mutexOriginal e _vGtkImages::mutexWork.

Referenciado por interface_os_linux().

00020 {
00021         GtkImages.mutexOriginal = g_mutex_new ();
00022         GtkImages.mutexActual = g_mutex_new ();
00023         GtkImages.mutexWork = g_mutex_new ();
00024         GtkImages.Images = Images;
00025         GtkImages.imOriginal = imOriginal;
00026         GtkImages.imActual = imActual;
00027         GtkImages.imWork = imWork;
00028 }

Here is the caller graph for this function:

gboolean vapiGtkImagesUpdateIdle ( vGtkImagesIdle GtkImagesIdle  ) 

Definido na linha 31 do ficheiro vapiGtkImages.c.

Referências gtkImActual, GtkImages, _vGtkImagesIdle::GtkImageWidget, gtkImOriginal, gtkImWork, _vGtkImages::imActual, _vGtkImagesIdle::Image, _vGtkImages::Images, _vGtkImages::imOriginal, _vGtkImages::imWork, _vGtkImages::mutexActual, _vGtkImages::mutexOriginal, _vGtkImages::mutexWork, v_debug, vapiGtkPutImage(), vapiImagesSetActual(), vapiImagesSetOriginal(), vFALSE, vGtkImagesIdleFree() e vTRUE.

Referenciado por vapiGtkImagesUpdateInterface().

00032 {
00033         GMutex *tempMutex;
00034         GtkWidget *tempWidget;
00035         vBoolean FreeImage = vTRUE;
00036         switch (GtkImagesIdle->GtkImageWidget)
00037         {
00038         case gtkImActual:
00039         {
00040                 v_debug ("ImagesUpdateIdle: Seleccionado o imActual");
00041                 tempMutex = GtkImages.mutexActual;
00042                 tempWidget = GtkImages.imActual;
00043                 if (!g_mutex_trylock (tempMutex))
00044                 {
00045 
00046 
00047                         cvReleaseImage (&GtkImagesIdle->Image);
00048 
00049                         vGtkImagesIdleFree (GtkImagesIdle);
00050                         v_debug ("ImagesUpdateIdle: trylock false");
00051                         return TRUE;
00052                 }
00053                 vapiImagesSetActual (GtkImages.Images, GtkImagesIdle->Image);
00054                 break;
00055         }
00056         case gtkImWork:
00057         {
00058                 v_debug ("ImagesUpdateIdle: Seleccionado o imWork");
00059                 tempMutex = GtkImages.mutexWork;
00060                 tempWidget = GtkImages.imWork;
00061                 if (!g_mutex_trylock (tempMutex))
00062                 {
00063                         cvReleaseImage (&GtkImagesIdle->Image);
00064                         vGtkImagesIdleFree (GtkImagesIdle);
00065                         v_debug ("ImagesUpdateIdle: trylock false in work mutex");
00066                         return TRUE;
00067                 }
00068                 if (!g_mutex_trylock (GtkImages.mutexActual))
00069                 {
00070                         cvReleaseImage (&GtkImagesIdle->Image);
00071                         vGtkImagesIdleFree (GtkImagesIdle);
00072                         g_mutex_unlock (tempMutex);
00073                         v_debug ("ImagesUpdateIdle: trylock false in Actual mutex");
00074                         return TRUE;
00075                 }
00076                 break;
00077         }
00078         case gtkImOriginal:
00079         {
00080                 v_debug ("ImagesUpdateIdle: Seleccionado o imOriginal");
00081                 tempMutex = GtkImages.mutexOriginal;
00082                 tempWidget = GtkImages.imOriginal;
00083                 if (!g_mutex_trylock (tempMutex))
00084                 {
00085                         cvReleaseImage (&GtkImagesIdle->Image);
00086                         vGtkImagesIdleFree (GtkImagesIdle);
00087                         v_debug ("ImagesUpdateIdle: trylock false in work mutex");
00088                         return TRUE;
00089                 }
00090                 vapiImagesSetOriginal (GtkImages.Images,
00091                                        GtkImagesIdle->Image);
00092                 FreeImage = vFALSE;
00093                 v_debug ("ImagesUpdateIdle: trylock true");
00094                 break;
00095         }
00096         default:
00097         {
00098                 cvReleaseImage (&GtkImagesIdle->Image);
00099                 vGtkImagesIdleFree (GtkImagesIdle);
00100                 return FALSE;
00101                 break;
00102         }
00103         }
00104         vapiGtkPutImage (tempWidget, GtkImagesIdle->Image);
00105         v_debug ("ImagesUpdateIdle: trylock actualizou");
00106         g_mutex_unlock (tempMutex);
00107         if (GtkImagesIdle->GtkImageWidget == gtkImWork)
00108         {
00109                 g_mutex_unlock (GtkImages.mutexActual);
00110         }
00111         v_debug ("ImagesUpdateIdle: trylock desbloqueou");
00112         vGtkImagesIdleFree (GtkImagesIdle);
00113         return FALSE;
00114 }

Grafo de chamadas desta função:

Here is the caller graph for this function:

void vapiGtkImagesUpdateInterface ( vImages Images,
int  GtkImageWidget 
)

Definido na linha 117 do ficheiro vapiGtkImages.c.

Referências _vImages::Actual, gtkImActual, gtkImOriginal, gtkImWork, _vImages::Original, v_debug, vapiGtkImagesUpdateIdle() e vGtkImagesIdleNew().

Referenciado por vapiGtkMacroSelectNext() e vapiRefreshImage().

00118 {
00119         vGtkImagesIdle *GtkImagesIdle;
00120         IplImage *Image;
00121         switch (GtkImageWidget)
00122         {
00123         case gtkImWork:
00124         case gtkImActual:
00125         {
00126                 Image = Images->Actual;
00127                 break;
00128         }
00129         case gtkImOriginal:
00130         {
00131                 Image = Images->Original;
00132                 break;
00133         }
00134         default:
00135         {
00136                 Image = Images->Actual;
00137         }
00138         }
00139         GtkImagesIdle = vGtkImagesIdleNew (Image, GtkImageWidget);
00140         v_debug ("ImagesUpdate inicio");
00141         g_idle_add ((GSourceFunc) & vapiGtkImagesUpdateIdle, GtkImagesIdle);
00142 }

Grafo de chamadas desta função:

Here is the caller graph for this function:

void vGtkImagesIdleChangeImage ( vGtkImagesIdle GtkImagesIdle,
int  GtkImageWidget 
)

Definido na linha 160 do ficheiro vapiGtkImages.c.

Referências _vGtkImagesIdle::GtkImageWidget.

00161 {
00162         GtkImagesIdle->GtkImageWidget = GtkImageWidget;
00163 }

void vGtkImagesIdleFastFree ( vGtkImagesIdleFast vFree  ) 

Definido na linha 262 do ficheiro vapiGtkImages.c.

Referências _vGtkImagesIdleFast::Image.

Referenciado por vapiGtkImagesFastUpdateIdle().

00263 {
00264         cvReleaseImage (&vFree->Image);
00265         free (vFree);
00266 }

Here is the caller graph for this function:

vGtkImagesIdleFast* vGtkImagesIdleFastNew ( IplImage *  Image,
int  GtkImageWidget 
)

Definido na linha 252 do ficheiro vapiGtkImages.c.

Referências _vGtkImagesIdleFast::GtkImageWidget, _vGtkImagesIdleFast::Image e vapiImagesCopy().

Referenciado por vapiGtkImagesFastUpdateInterface().

00253 {
00254         vGtkImagesIdleFast *GtkImagesIdleFast =
00255                 malloc (sizeof (vGtkImagesIdleFast));
00256         GtkImagesIdleFast->Image = vapiImagesCopy (Image);
00257         GtkImagesIdleFast->GtkImageWidget = GtkImageWidget;
00258         return GtkImagesIdleFast;
00259 }

Grafo de chamadas desta função:

Here is the caller graph for this function:

void vGtkImagesIdleFree ( vGtkImagesIdle vFree  ) 

Definido na linha 154 do ficheiro vapiGtkImages.c.

Referenciado por vapiGtkImagesUpdateIdle().

00155 {
00156         free (vFree);
00157 }

Here is the caller graph for this function:

vGtkImagesIdle* vGtkImagesIdleNew ( IplImage *  Image,
int  GtkImageWidget 
)

Definido na linha 145 do ficheiro vapiGtkImages.c.

Referências _vGtkImagesIdle::GtkImageWidget, _vGtkImagesIdle::Image e vapiImagesCopy().

Referenciado por vapiGtkImagesUpdateInterface().

00146 {
00147         vGtkImagesIdle *GtkImagesIdle = malloc (sizeof (vGtkImagesIdle));
00148         GtkImagesIdle->Image = vapiImagesCopy (Image);
00149         GtkImagesIdle->GtkImageWidget = GtkImageWidget;
00150         return GtkImagesIdle;
00151 }

Grafo de chamadas desta função:

Here is the caller graph for this function:


Gerado em Tue Jul 24 10:35:56 2007 para Vapi por  doxygen 1.5.1