#include <gtk/gtk.h>
#include "vapiImagesAux.h"
#include "vapiGtkImages.h"
#include "vapiGtkInterface.h"
Diagrama de dependências de inclusão para vapiGtkImages.c:
Ir para o código fonte deste ficheiro.
Estruturas de Dados | |
struct | _vGtkImages |
Funções | |
gboolean | vapiGtkImagesFastUpdateIdle (vGtkImagesIdleFast *GtkImagesIdleFast) |
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) |
vGtkImagesIdleFast * | vGtkImagesIdleFastNew (IplImage *Image, int GtkImageWidget) |
void | vGtkImagesIdleFree (vGtkImagesIdle *vFree) |
vGtkImagesIdle * | vGtkImagesIdleNew (IplImage *Image, int GtkImageWidget) |
Variáveis | |
static struct _vGtkImages | GtkImages |
gboolean vapiGtkImagesFastUpdateIdle | ( | vGtkImagesIdleFast * | GtkImagesIdleFast | ) |
Definido na linha 166 do ficheiro vapiGtkImages.c.
Referências gtkImActual, GtkImages, _vGtkImagesIdleFast::GtkImageWidget, gtkImOriginal, gtkImWork, _vGtkImages::imActual, _vGtkImagesIdleFast::Image, _vGtkImages::imOriginal, _vGtkImages::imWork, _vGtkImages::mutexActual, _vGtkImages::mutexOriginal, _vGtkImages::mutexWork, v_debug, vapiGtkPutImage() e vGtkImagesIdleFastFree().
Referenciado por vapiGtkImagesFastUpdateInterface().
00167 { 00168 GMutex *tempMutex; 00169 GtkWidget *tempWidget; 00170 00171 switch (GtkImagesIdleFast->GtkImageWidget) 00172 { 00173 case gtkImActual: 00174 { 00175 v_debug ("ImagesUpdateIdle: Seleccionado o imActual"); 00176 tempMutex = GtkImages.mutexActual; 00177 tempWidget = GtkImages.imActual; 00178 if (!g_mutex_trylock (tempMutex)) 00179 { 00180 vGtkImagesIdleFastFree (GtkImagesIdleFast); 00181 v_debug ("ImagesUpdateIdle: trylock false"); 00182 return FALSE; 00183 } 00184 break; 00185 } 00186 case gtkImWork: 00187 { 00188 v_debug ("ImagesUpdateIdle: Seleccionado o imWork"); 00189 tempMutex = GtkImages.mutexWork; 00190 tempWidget = GtkImages.imWork; 00191 if (!g_mutex_trylock (tempMutex)) 00192 { 00193 vGtkImagesIdleFastFree (GtkImagesIdleFast); 00194 v_debug ("ImagesUpdateIdle: trylock false in work mutex"); 00195 return FALSE; 00196 } 00197 if (!g_mutex_trylock (GtkImages.mutexActual)) 00198 { 00199 vGtkImagesIdleFastFree (GtkImagesIdleFast); 00200 g_mutex_unlock (tempMutex); 00201 v_debug ("ImagesUpdateIdle: trylock false in Actual mutex"); 00202 return FALSE; 00203 } 00204 break; 00205 } 00206 case gtkImOriginal: 00207 { 00208 v_debug ("ImagesUpdateIdle: Seleccionado o imOriginal"); 00209 tempMutex = GtkImages.mutexOriginal; 00210 tempWidget = GtkImages.imOriginal; 00211 if (!g_mutex_trylock (tempMutex)) 00212 { 00213 vGtkImagesIdleFastFree (GtkImagesIdleFast); 00214 v_debug ("ImagesUpdateIdle: trylock false in work mutex"); 00215 return FALSE; 00216 } 00217 break; 00218 } 00219 default: 00220 { 00221 vGtkImagesIdleFastFree (GtkImagesIdleFast); 00222 return FALSE; 00223 break; 00224 } 00225 } 00226 v_debug ("ImagesUpdateIdle: trylock true"); 00227 vapiGtkPutImage (tempWidget, GtkImagesIdleFast->Image); 00228 v_debug ("ImagesUpdateIdle: trylock actualizou"); 00229 g_mutex_unlock (tempMutex); 00230 if (GtkImagesIdleFast->GtkImageWidget == gtkImWork) 00231 { 00232 g_mutex_unlock (GtkImages.mutexActual); 00233 } 00234 v_debug ("ImagesUpdateIdle: trylock desbloqueou"); 00235 vGtkImagesIdleFastFree (GtkImagesIdleFast); 00236 00237 return FALSE; 00238 }
Grafo de chamadas desta função:
Here is the caller graph for this function:
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().
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:
struct _vGtkImages GtkImages [static] |
Referenciado por vapiGtkImagesFastUpdateIdle(), vapiGtkImagesThreadsInit() e vapiGtkImagesUpdateIdle().