diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2020-02-01 13:07:46 +0100 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2020-02-01 13:07:46 +0100 |
commit | 0ce4e8d52fd491268a56c10dbb32fd5c996e2589 (patch) | |
tree | afe5defc2a845f0b65936a1874e4658412eff2cd /src/ufo-roof-plane-task.c | |
parent | 44cef2cb16dd2bc55ad34d0b8313f7f314b0107a (diff) | |
download | ufo-roof-0ce4e8d52fd491268a56c10dbb32fd5c996e2589.tar.gz ufo-roof-0ce4e8d52fd491268a56c10dbb32fd5c996e2589.tar.bz2 ufo-roof-0ce4e8d52fd491268a56c10dbb32fd5c996e2589.tar.xz ufo-roof-0ce4e8d52fd491268a56c10dbb32fd5c996e2589.zip |
Initial Python infrastructure to build more complex processing pipelines and the corresponding changes in ROOF filters
Diffstat (limited to 'src/ufo-roof-plane-task.c')
-rw-r--r-- | src/ufo-roof-plane-task.c | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/src/ufo-roof-plane-task.c b/src/ufo-roof-plane-task.c deleted file mode 100644 index 25c2bfa..0000000 --- a/src/ufo-roof-plane-task.c +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Copyright (C) 2011-2015 Karlsruhe Institute of Technology - * - * This file is part of Ufo. - * - * This library is free software: you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation, either - * version 3 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <stdio.h> - -#ifdef __APPLE__ -#include <OpenCL/cl.h> -#else -#include <CL/cl.h> -#endif - -#include "ufo-roof-plane-task.h" - - -struct _UfoRoofPlaneTaskPrivate { - gboolean ready; // Indicates if data is ready for generation - guint plane; // Selected plane (0 - pass everything trough) -}; - -static void ufo_task_interface_init (UfoTaskIface *iface); - -G_DEFINE_TYPE_WITH_CODE (UfoRoofPlaneTask, ufo_roof_plane_task, UFO_TYPE_TASK_NODE, - G_IMPLEMENT_INTERFACE (UFO_TYPE_TASK, - ufo_task_interface_init)) - -#define UFO_ROOF_PLANE_TASK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), UFO_TYPE_ROOF_PLANE_TASK, UfoRoofPlaneTaskPrivate)) - -enum { - PROP_0, - PROP_PLANE, - N_PROPERTIES -}; - -static GParamSpec *properties[N_PROPERTIES] = { NULL, }; - -UfoNode * -ufo_roof_plane_task_new (void) -{ - return UFO_NODE (g_object_new (UFO_TYPE_ROOF_PLANE_TASK, NULL)); -} - -static void -ufo_roof_plane_task_setup (UfoTask *task, - UfoResources *resources, - GError **error) -{ -} - -static void -ufo_roof_plane_task_get_requisition (UfoTask *task, - UfoBuffer **inputs, - UfoRequisition *requisition, - GError **error) -{ - ufo_buffer_get_requisition (inputs[0], requisition); -/* int i; -// UfoRoofPlaneTaskPrivate *priv; - UfoRequisition in_req; - -// priv = UFO_ROOF_PLANE_TASK_GET_PRIVATE (task); - ufo_buffer_get_requisition (inputs[0], &in_req); - - requisition->n_dims = in_req.n_dims; - for (i = 0; i < in_req.n_dims; i++) - requisition->dims[i] = in_req.dims[i];*/ -} - -static guint -ufo_roof_plane_task_get_num_inputs (UfoTask *task) -{ - return 1; -} - -static guint -ufo_roof_plane_task_get_num_dimensions (UfoTask *task, - guint input) -{ - return 2; -} - -static UfoTaskMode -ufo_roof_plane_task_get_mode (UfoTask *task) -{ - return UFO_TASK_MODE_CPU|UFO_TASK_MODE_REDUCTOR; -} - -static gboolean -ufo_roof_plane_task_process (UfoTask *task, - UfoBuffer **inputs, - UfoBuffer *output, - UfoRequisition *requisition) -{ - UfoRoofPlaneTaskPrivate *priv; - - priv = UFO_ROOF_PLANE_TASK_GET_PRIVATE (task); - - if (priv->plane) { - int buf_plane; - GValue *value; - - value = ufo_buffer_get_metadata(inputs[0], "plane"); - buf_plane = g_value_get_uint(value); - if (buf_plane != priv->plane) - return TRUE; - } - - ufo_buffer_copy(inputs[0], output); - ufo_buffer_copy_metadata (inputs[0], output); - priv->ready = TRUE; - - return FALSE; -} - -static gboolean -ufo_roof_plane_task_generate (UfoTask *task, - UfoBuffer *output, - UfoRequisition *requisition) -{ - UfoRoofPlaneTaskPrivate *priv; - - priv = UFO_ROOF_PLANE_TASK_GET_PRIVATE (task); - if (!priv->ready) return FALSE; - -/* - GValue *value = ufo_buffer_get_metadata(output, "plane"); - guint buf_plane = g_value_get_uint(value); - printf("Passing buffer for plane %u\n", buf_plane); -*/ - - priv->ready = FALSE; - - return TRUE; -} - - -static void -ufo_roof_plane_task_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - UfoRoofPlaneTaskPrivate *priv = UFO_ROOF_PLANE_TASK_GET_PRIVATE (object); - - switch (property_id) { - case PROP_PLANE: - priv->plane = g_value_get_uint (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -ufo_roof_plane_task_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - UfoRoofPlaneTaskPrivate *priv = UFO_ROOF_PLANE_TASK_GET_PRIVATE (object); - - switch (property_id) { - case PROP_PLANE: - g_value_set_uint (value, priv->plane); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - -static void -ufo_roof_plane_task_finalize (GObject *object) -{ - G_OBJECT_CLASS (ufo_roof_plane_task_parent_class)->finalize (object); -} - -static void -ufo_task_interface_init (UfoTaskIface *iface) -{ - iface->setup = ufo_roof_plane_task_setup; - iface->get_num_inputs = ufo_roof_plane_task_get_num_inputs; - iface->get_num_dimensions = ufo_roof_plane_task_get_num_dimensions; - iface->get_mode = ufo_roof_plane_task_get_mode; - iface->get_requisition = ufo_roof_plane_task_get_requisition; - iface->process = ufo_roof_plane_task_process; - iface->generate = ufo_roof_plane_task_generate; - -} - -static void -ufo_roof_plane_task_class_init (UfoRoofPlaneTaskClass *klass) -{ - GObjectClass *oclass = G_OBJECT_CLASS (klass); - - oclass->set_property = ufo_roof_plane_task_set_property; - oclass->get_property = ufo_roof_plane_task_get_property; - oclass->finalize = ufo_roof_plane_task_finalize; - - properties[PROP_PLANE] = - g_param_spec_uint ("plane", - "Detector planes", - "Only passes trough the data for the selecte plane", - 0, G_MAXUINT, 0, - G_PARAM_READWRITE); - - for (guint i = PROP_0 + 1; i < N_PROPERTIES; i++) - g_object_class_install_property (oclass, i, properties[i]); - - g_type_class_add_private (oclass, sizeof(UfoRoofPlaneTaskPrivate)); -} - -static void -ufo_roof_plane_task_init(UfoRoofPlaneTask *self) -{ - self->priv = UFO_ROOF_PLANE_TASK_GET_PRIVATE(self); -} |