From 010723cb02b26c608537fc537d5e963ff6402f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 23 Mar 2010 11:54:21 +0000 Subject: forked mrpeach's "net" svn path=/trunk/externals/iem/iemnet/; revision=13240 --- udpsend~.h | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 udpsend~.h (limited to 'udpsend~.h') 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 . */ +/* 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 */ -- cgit v1.2.1