コード例 #1
0
ファイル: pref_grep.c プロジェクト: fujii/ebview
static gint clear_cache(GtkWidget *widget,gpointer *data)
{

	LOG(LOG_DEBUG, "IN : clear_cache()");

	remove_recursive(cache_dir);

	LOG(LOG_DEBUG, "OUT : clear_cache()");
	return(TRUE);
}
コード例 #2
0
ファイル: pref_grep.c プロジェクト: fujii/ebview
static void remove_recursive(gchar *dirname)
{
	GDir *dir;
	const gchar *name;
	gchar fullpath[512];
	gint r;

	LOG(LOG_DEBUG, "IN : remove_recursive(%s)", dirname);
	
	if((dir = g_dir_open(dirname, 0, NULL)) == NULL){
		LOG(LOG_ERROR, "Failed to open directory %s", dirname);
		LOG(LOG_DEBUG, "OUT : list_file_recursive()");
		return;
	}

	while((name = g_dir_read_name(dir)) != NULL){
		if(strcmp(dirname,"/")==0){
			sprintf(fullpath,"/%s",name);
		} else {
			sprintf(fullpath,"%s%s%s",dirname, DIR_DELIMITER, name);
		}

		if(g_file_test(fullpath, G_FILE_TEST_IS_REGULAR) == TRUE){
			r = unlink(fullpath);
			if(r != 0){
				LOG(LOG_ERROR, "unlink : %s", strerror(errno));
			}
		} else if(g_file_test(fullpath, G_FILE_TEST_IS_DIR) == TRUE){
			remove_recursive(fullpath);
			r = rmdir(fullpath);
			if(r != 0){
				LOG(LOG_ERROR, "rmdir: %s", strerror(errno));
			}
		}
	}
	g_dir_close(dir);

	LOG(LOG_DEBUG, "OUT : remove_recursive()");
}
コード例 #3
0
void
kms_pointer_detector_finalize (GObject * object)
{
  KmsPointerDetector *pointerdetector = KMS_POINTER_DETECTOR (object);

  GST_DEBUG_OBJECT (pointerdetector, "finalize");

  /* clean up object here */

  if (pointerdetector->buttonsLayoutList != NULL) {
    kms_pointer_detector_dispose_buttons_layout_list (pointerdetector);
  }
  if (pointerdetector->buttonsLayout != NULL) {
    gst_structure_free (pointerdetector->buttonsLayout);
  }

  if (pointerdetector->cvImage != NULL) {
    cvReleaseImageHeader (&pointerdetector->cvImage);
  }
  if (pointerdetector->cvImageAux1 != NULL) {
    cvReleaseImage (&pointerdetector->cvImageAux1);
  }
  cvReleaseHist (&pointerdetector->histCompare);
  cvReleaseHist (&pointerdetector->histModel);
  cvReleaseHist (&pointerdetector->histSetUp1);
  cvReleaseHist (&pointerdetector->histSetUp2);
  cvReleaseHist (&pointerdetector->histSetUpRef);

  remove_recursive (pointerdetector->images_dir);
  g_free (pointerdetector->images_dir);

  if (pointerdetector->previousButtonClickedId != NULL) {
    g_free (pointerdetector->previousButtonClickedId);
  }

  G_OBJECT_CLASS (kms_pointer_detector_parent_class)->finalize (object);
}
コード例 #4
0
static void
kms_image_overlay_finalize (GObject * object)
{
  KmsImageOverlay *imageoverlay = KMS_IMAGE_OVERLAY (object);

  if (imageoverlay->priv->cvImage != NULL)
    cvReleaseImage (&imageoverlay->priv->cvImage);

  if (imageoverlay->priv->costume != NULL)
    cvReleaseImage (&imageoverlay->priv->costume);

  if (imageoverlay->priv->image_to_overlay != NULL)
    gst_structure_free (imageoverlay->priv->image_to_overlay);

  if (imageoverlay->priv->dir_created) {
    remove_recursive (imageoverlay->priv->dir);
    g_free (imageoverlay->priv->dir);
  }

  g_queue_free_full (imageoverlay->priv->events_queue, dispose_queue_element);
  imageoverlay->priv->events_queue = NULL;

  G_OBJECT_CLASS (kms_image_overlay_parent_class)->finalize (object);
}