Main Page | Modules | Data Structures | File List | Data Fields | Globals

remix_envelope.h

Go to the documentation of this file.
00001 /*
00002  * libremix -- An audio mixing and sequencing library.
00003  *
00004  * Copyright (C) 2001 Commonwealth Scientific and Industrial Research
00005  * Organisation (CSIRO), Australia.
00006  * Copyright (C) 2003 Conrad Parker
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Lesser General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2 of the License, or (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Lesser General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU Lesser General Public
00019  * License along with this library; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021  *
00022  */
00023 
00029 /*
00030  * Conrad Parker <conrad@metadecks.org>, August 2001
00031  */
00032 
00033 #ifndef __REMIX_ENVELOPE_H__
00034 #define __REMIX_ENVELOPE_H__
00035 
00047 #include <remix/remix_types.h>
00048 
00049 #if defined(__cplusplus)
00050 extern "C" {
00051 #endif
00052 
00053 /* Envelopes */
00054 RemixEnvelope * remix_envelope_new (RemixEnv * env, RemixEnvelopeType type);
00055 RemixEnvelopeType remix_envelope_set_type (RemixEnv * env,
00056                                            RemixEnvelope * envelope,
00057                                            RemixEnvelopeType type);
00058 RemixEnvelopeType remix_envelope_get_type (RemixEnv * env, RemixEnvelope * envelope);
00059 RemixTimeType remix_envelope_set_timetype (RemixEnv * env,
00060                                            RemixEnvelope * envelope,
00061                                            RemixTimeType timetype);
00062 RemixTimeType remix_envelope_get_timetype (RemixEnv * env,
00063                                            RemixEnvelope * envelope);
00064 RemixPCM remix_envelope_get_value (RemixEnv * env, RemixEnvelope * envelope,
00065                                    RemixTime time);
00066 RemixTime remix_envelope_get_duration (RemixEnv * env,
00067                                        RemixEnvelope * envelope);
00068 RemixPCM remix_envelope_get_integral (RemixEnv * env, RemixEnvelope * envelope,
00069                                       RemixTime t1, RemixTime t2);
00070 RemixPoint * remix_envelope_add_point (RemixEnv * env,
00071                                        RemixEnvelope * envelope,
00072                                        RemixTime time, RemixPCM value);
00073 RemixEnvelope * remix_envelope_remove_point (RemixEnv * env,
00074                                              RemixEnvelope * envelope,
00075                                              RemixPoint * point);
00076 RemixEnvelope * remix_envelope_scale (RemixEnv * env, RemixEnvelope * envelope,
00077                                       RemixPCM gain);
00078 RemixEnvelope * remix_envelope_shift (RemixEnv * env, RemixEnvelope * envelope,
00079                                       RemixTime delta);
00080 
00081 #if defined(__cplusplus)
00082 }
00083 #endif
00084 
00085 #endif /* __REMIX_H__ */

Generated on Fri Jan 9 08:44:15 2004 for remix by doxygen 1.3.4