aboutsummaryrefslogtreecommitdiff
path: root/gem2pdp/pdp-light.h
diff options
context:
space:
mode:
Diffstat (limited to 'gem2pdp/pdp-light.h')
-rw-r--r--gem2pdp/pdp-light.h216
1 files changed, 0 insertions, 216 deletions
diff --git a/gem2pdp/pdp-light.h b/gem2pdp/pdp-light.h
deleted file mode 100644
index f121078..0000000
--- a/gem2pdp/pdp-light.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Pure Data Packet header file.
- * Copyright (c) by Tom Schouten <pdp@zzz.kotnet.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-
-
-#ifndef PDP_H
-#define PDP_H
-
-/* header and subheader size in bytes */
-#define PDP_HEADER_SIZE 256
-
-#include <string.h>
-#include <stdlib.h>
-
-/* some typedefs */
-#include "pdp_types.h"
-
-/* PDP_IMAGE COMPONENTS */
-
-/* header and methods for the built in image packet type */
-#include "pdp_image.h"
-
-/* low level image processing and high level dispatching routines */
-#include "pdp_imageproc.h"
-
-/* low level image conversion routines */
-#include "pdp_llconv.h"
-
-/* low level image resampling routines */
-#include "pdp_resample.h"
-
-
-
-/* PDP_BITMAP COMPONENTS */
-
-/* header and methods for the built in bitmap packet type */
-#include "pdp_bitmap.h"
-
-
-/* PDP_MATRIX COMPONENTS */
-#include "pdp_matrix.h"
-
-
-// packet class
-#include "pdp_list.h"
-
-typedef struct _pdp_list* (*t_pdp_attribute_method)(int, struct _pdp_list*);
-
-/* packet class attribute (method) */
-typedef struct _pdp_attribute
-{
- t_pdp_symbol *name;
- t_pdp_attribute_method method;
-
- /* problem: do we support argument type checking ??
- this seems to be better solved in a "spec doc" or a central place
- where "reserved" methods can be defined. */
-
- /* if null this means the input or output list can be anything */
- struct _pdp_list *in_spec; // template for the input list (including default arguments)
- struct _pdp_list *out_spec; // template for the output list
-} t_pdp_attribute;
-
-
-/* packet class header */
-typedef struct _pdp_class
-{
- /* packet manips: non-pure data packets (using external resources) must define these */
- t_pdp_packet_method1 reinit; /* reuse method for pdp_packet_new() */
- t_pdp_packet_method2 clone; /* init from template for pdp_packet_clone_rw() */
- t_pdp_packet_method2 copy; /* init & copy from template for pdp_packet_copy_rw() */
- t_pdp_packet_method1 cleanup; /* free packet's resources (to be used by the garbage collector) */
-
- t_pdp_symbol *type; /* type template for packet class */
- struct _pdp_list *attributes; /* list of attributes (packet methods) */
-}t_pdp_class;
-
-
-/* packet object header */
-struct _pdp
-{
- /* meta info */
- unsigned int type; /* main datatype of this object */
- t_pdp_symbol *desc; /* high level type description (sort of a mime type) */
- unsigned int size; /* datasize including header */
- unsigned int flags; /* packet flags */
-
- /* reference count */
- unsigned int users; /* nb users of this object, readonly if > 1 */
- unsigned int *refloc; /* location of reference to packet for passing packets */
-
- /* class object */
- t_pdp_class *pclass; /* if zero, the packet is a pure packet (just data, no member functions) */
-
- /* class */
- //struct _pdp_class *class; /* the packet class */
-
- u32 pad[9]; /* reserved to provide binary compatibility for future extensions */
-
- union /* each packet type has a unique subheader */
- {
- t_raw raw; /* raw subheader (for extensions unkown to pdp core system) */
- t_image image; /* (nonstandard internal) 16 bit signed planar bitmap image format */
- t_bitmap bitmap; /* (standard) bitmap image (fourcc coded) */
- //t_ca ca; /* cellular automaton state data */
- //t_ascii ascii; /* ascii packet */
- } info;
-
-};
-
-
-/* pdp data packet type id */
-#define PDP_IMAGE 1 /* 16bit signed planar scanline encoded image packet */
-//RESERVED: #define PDP_CA 2 /* 1bit toroidial shifted scanline encoded cellular automaton */
-//RESERVED: #define PDP_ASCII 3 /* ascii packet */
-//RESERVED: #define PDP_TEXTURE 4 /* opengl texture object */
-//RESERVED: #define PDP_3DCONTEXT 5 /* opengl render context */
-#define PDP_BITMAP 6 /* 8bit image packet (fourcc coded??) */
-//RESERVED: #define PDP_MATRIX 7 /* floating point/double matrix/vector packet (from gsl) */
-
-/* PACKET FLAGS */
-
-#define PDP_FLAG_DONOTCOPY (1<<0) /* don't copy the packet on register_rw, instead return an invalid packet */
-
-
-/* PDP SYSTEM COMPONENTS */
-
-/* packet class and pool manager */
-#include "pdp_packet.h"
-
-/* processing queue manager */
-#include "pdp_queue.h"
-
-/* several communication helper methods (pd specific) */
-#include "pdp_comm.h"
-
-/* type handling subsystem */
-#include "pdp_type.h"
-
-/* dpd command stuff */
-#include "pdp_dpd_command.h"
-
-
-/* BACKWARDS COMPAT STUFF */
-#include "pdp_compat.h"
-
-
-
-
-#endif
-
-/*
-
- PDP CORE API OVERVIEW
-
- pdp_packet_* : packet methods, first argument is packet id
-
- new: construct a raw packet (depreciated)
- new_*: construct packet of specific type/subtype/...
- mark_unused: release
- mark_passing: conditional release (release on first copy ro/rw)
- copy_ro: readonly (shared) copy
- copy_rw: private copy
- clone_rw: private copy (copies only meta data, not the content)
- header: get the raw header (t_pdp *)
- data: get the raw data (void *)
- pass_if_valid: send a packet to pd outlet, if it is valid
- replace_if_valid delete packet and replace with new one, if new is valid
- copy_ro_or_drop: copy readonly, or don't copy if dest slot is full + send drop notify
- copy_rw_or_drop: same, but private copy
- get_description: retrieve type info
- convert_ro: same as copy_ro, but with an automatic conversion matching a type template
- convert_rw: same as convert_ro, but producing a private copy
-
- pdp_pool_* : packet pool methods
-
- collect_garbage: manually free all unused resources in packet pool
-
- pdp_queue_* : processing queue methods
-
- add: add a process method + callback
- finish: wait until a specific task is done
- wait: wait until processing queue is done
-
- pdp_control_* : central pdp control hub methods
-
- notify_drop: notify that a packet has been dropped
-
- pdp_type_* : packet type mediator methods
-
- description_match: check if two type templates match
- register_conversion: register a type conversion program
-
-
-
- NOTE: it is advised to derive your module from the pdp base class defined in pdp_base.h
- instead of communicating directly with the pdp core
-
-*/