aboutsummaryrefslogtreecommitdiff
path: root/udpsend~.h
diff options
context:
space:
mode:
authorIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-23 11:54:21 +0000
committerIOhannes m zmölnig <zmoelnig@users.sourceforge.net>2010-03-23 11:54:21 +0000
commit010723cb02b26c608537fc537d5e963ff6402f9e (patch)
tree6cddfb30ce4d78777d45fabcda928cc1d88af458 /udpsend~.h
forked mrpeach's "net" svn2git-root
svn path=/trunk/externals/iem/iemnet/; revision=13240
Diffstat (limited to 'udpsend~.h')
-rw-r--r--udpsend~.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/udpsend~.h b/udpsend~.h
new file mode 100644
index 0000000..386b363
--- /dev/null
+++ b/udpsend~.h
@@ -0,0 +1,102 @@
+/* udpsend~.h modified by Martin Peach from netsend~.h: */
+/* ------------------------ netsend~ ------------------------------------------ */
+/* */
+/* Tilde object to send uncompressed audio data to netreceive~. */
+/* Written by Olaf Matthes <olaf.matthes@gmx.de>. */
+/* Based on streamout~ by Guenter Geiger. */
+/* Get source at http://www.akustische-kunst.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. */
+/* */
+/* See file LICENSE for further informations on licensing terms. */
+/* */
+/* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+/* */
+/* Based on PureData by Miller Puckette and others. */
+/* */
+/* This project was commissioned by the Society for Arts and Technology [SAT], */
+/* Montreal, Quebec, Canada, http://www.sat.qc.ca/. */
+/* */
+/* ---------------------------------------------------------------------------- */
+
+
+/* This file is based on and inspired by stream.h (C) Guenter Geiger 1999. */
+/* Some enhancements have been made with the goal of keeping compatibility */
+/* between the stream formats of streamout~/in~ and netsend~/receive~. */
+
+#define VERSION "0.34"
+
+#define DEFAULT_AUDIO_CHANNELS 32 /* nax. number of audio channels we support */
+#define DEFAULT_AUDIO_BUFFER_SIZE 2048 /*1024*/ /* number of samples in one audio block */
+#define DEFAULT_UDP_PACKT_SIZE 8192 /* number of bytes we send in one UDP datagram (OS X only) */
+#define DEFAULT_PORT 8000 /* default network port number */
+
+#ifdef _WIN32
+#ifndef HAVE_INT32_T
+typedef int int32_t;
+#define HAVE_INT32_T
+#endif
+#ifndef HAVE_INT16_T
+typedef short int16_t;
+#define HAVE_INT16_T
+#endif
+#ifndef HAVE_U_INT32_T
+typedef unsigned int u_int32_t;
+#define HAVE_U_INT32_T
+#endif
+#ifndef HAVE_U_INT16_T
+typedef unsigned short u_int16_t;
+#define HAVE_U_INT16_T
+#endif
+#endif
+
+typedef union _flint
+{
+ int i32;
+ t_float f32;
+} flint;
+
+/* format specific stuff */
+
+#define SF_FLOAT 1
+#define SF_DOUBLE 2 /* not implemented */
+#define SF_8BIT 10
+#define SF_16BIT 11
+#define SF_32BIT 12 /* not implemented */
+#define SF_ALAW 20 /* not implemented */
+#define SF_MP3 30 /* not implemented */
+#define SF_AAC 31 /* AAC encoding using FAAC */
+#define SF_VORBIS 40 /* not implemented */
+#define SF_FLAC 50 /* not implemented */
+
+#define SF_SIZEOF(a) (a == SF_FLOAT ? sizeof(t_float) : \
+ a == SF_16BIT ? sizeof(short) : 1)
+
+typedef struct _tag
+{ /* size (bytes) */
+ char tag[4]; /* 4 */ /*"TAG!"*/
+ char format; /* 1 */
+ long count; /* 4 */
+ char channels; /* 1 */
+ long framesize; /* 4 */
+ char reserved[2]; /* 2 */ /* pad to 16 bytes */
+} t_tag; /*-----*/
+ /* 16 */
+
+typedef struct _frame
+{
+ t_tag tag;
+ char *data;
+} t_frame;
+
+/* fin udpsend~.h */