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

remix.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_H__
00034 #define __REMIX_H__
00035 
00162 #include <remix/remix_types.h>
00163 
00164 #if defined(__cplusplus)
00165 extern "C" {
00166 #endif
00167 
00168 extern CDSet * REMIX_MONO;
00169 extern CDSet * REMIX_STEREO;
00170 
00171 
00172 /* RemixEnv */
00173 RemixEnv * remix_init (void);
00174 RemixEnv * remix_init_clone (RemixEnv * env);
00175 void remix_purge (RemixEnv * env);
00176 RemixError remix_last_error (RemixEnv * env);
00177 char * remix_error_string (RemixEnv * env, RemixError error);
00178 RemixSamplerate remix_set_samplerate (RemixEnv * env, RemixSamplerate samplerate);
00179 RemixSamplerate remix_get_samplerate (RemixEnv * env);
00180 RemixTempo remix_set_tempo (RemixEnv * env, RemixTempo tempo);
00181 RemixTempo remix_get_tempo (RemixEnv * env);
00182 CDSet * remix_set_channels (RemixEnv * env, CDSet * channelset);
00183 CDSet * remix_get_channels (RemixEnv * env);
00184 
00185 #if 0
00186   /* XXX */
00187 /* Sources: Plugins, Samples etc. */
00188 CDList * remix_open (SOUNDRENDER env, char * filename);
00189 void remix_close (SOUNDRENDER env, RemixPlugin plugin);
00190 #endif
00191 
00192 /* Base objects */
00193 
00194 RemixPlugin * remix_find_plugin (RemixEnv * env, char * identifier);
00195 
00196 RemixBase * remix_new (RemixEnv * env, RemixPlugin * plugin, CDSet * parameters);
00197 CDSet * remix_suggest (RemixEnv * env, RemixPlugin * plugin, CDSet * parameters);
00198 
00199 int remix_get_init_parameter_key (RemixEnv * env, RemixPlugin * plugin, char * name);
00200 int remix_get_parameter_key (RemixEnv * env, RemixBase * base, char * name);
00201 
00202 RemixParameter remix_set_parameter (RemixEnv * env, RemixBase * base, int key,
00203                                   RemixParameter parameter);
00204 RemixParameter remix_get_parameter (RemixEnv * env, RemixBase * base, int key);
00205 RemixParameterType remix_get_parameter_type (RemixEnv * env, RemixBase * base, int key);
00206 
00207 
00208 RemixBase * remix_clone_subclass (RemixEnv * env, RemixBase * base);
00209 int remix_destroy (RemixEnv * env, RemixBase * base);
00210 int remix_destroy_list (RemixEnv * env, CDList * list);
00211 RemixBase * remix_prepare (RemixEnv * env, RemixBase * base);
00212 RemixCount remix_process (RemixEnv * env, RemixBase * base, RemixCount count,
00213                     RemixStream * input, RemixStream * output);
00214 RemixCount remix_length (RemixEnv * env, RemixBase * base);
00215 RemixCount remix_seek (RemixEnv * env, RemixBase * base, RemixCount offset, int whence);
00216 RemixCount remix_tell (RemixEnv * env, RemixBase * base);
00217 int remix_flush (RemixEnv * env, RemixBase * base);
00218 
00219 RemixCount remix_set_mixlength (RemixEnv * env, RemixCount mixlength);
00220 RemixCount remix_get_mixlength (RemixEnv * env);
00221 
00222 
00223 int remix_is_writeable (RemixEnv * env, RemixBase * base);
00224 int remix_is_seekable (RemixEnv * env, RemixBase * base);
00225 int remix_is_cacheable (RemixEnv * env, RemixBase * base);
00226 int remix_is_causal (RemixEnv * env, RemixBase * base);
00227 
00228 char * remix_set_name (RemixEnv * env, RemixBase * base, char * name);
00229 char * remix_get_name (RemixEnv * env, RemixBase * base);
00230 
00231 #include <remix/remix_deck.h>
00232 #include <remix/remix_envelope.h>
00233 #include <remix/remix_stream.h>
00234 
00235 /* SquareTone */
00236 RemixSquareTone * remix_squaretone_new (RemixEnv * env, float frequency);
00237 float remix_squaretone_set_frequency (RemixEnv * env,
00238                                       RemixSquareTone * squaretone,
00239                                       float frequency);
00240 float remix_squaretone_get_frequency (RemixEnv * env,
00241                                       RemixSquareTone * squaretone);
00242 
00243 /* Monitor */
00244 RemixMonitor * remix_monitor_new (RemixEnv * env);
00245 
00246 #include <remix/remix_time.h>
00247 
00248 #include <remix/remix_meta.h>
00249 
00250 #if defined(__cplusplus)
00251 }
00252 #endif
00253 
00254 #endif /* __REMIX_H__ */

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