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

remix_deck.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 
00024 /*
00025  * Conrad Parker <conrad@metadecks.org>, August 2001
00026  */
00027 
00028 #ifndef __REMIX_DECK_H__
00029 #define __REMIX_DECK_H__
00030 
00053 #include <remix/remix_types.h>
00054 
00055 #if defined(__cplusplus)
00056 extern "C" {
00057 #endif
00058 
00059 /* Decks */
00060 RemixDeck * remix_deck_new (RemixEnv * env);
00061 
00062 RemixCount remix_deck_set_mixlength (RemixEnv * env, RemixDeck * deck, RemixCount mixlength);
00063 RemixCount remix_deck_get_mixlength (RemixEnv * env, RemixDeck * deck);
00064 
00065 CDList * remix_deck_get_tracks (RemixEnv * env, RemixDeck * deck);
00066 
00067 /* Tracks */
00068 RemixTrack * remix_track_new (RemixEnv * env, RemixDeck * deck);
00069 RemixPCM remix_track_set_gain (RemixEnv * env, RemixTrack * track, RemixPCM gain);
00070 RemixPCM remix_track_get_gain (RemixEnv * env, RemixTrack * track);
00071 RemixCount remix_track_set_mixlength (RemixEnv * env, RemixTrack * track,
00072                                 RemixCount mixlength);
00073 RemixCount remix_track_get_mixlength (RemixEnv * env, RemixTrack * track);
00074 void remix_remove_track (RemixEnv * env, RemixTrack * track);
00075 
00076 RemixDeck * remix_track_get_deck (RemixEnv * env, RemixTrack * track);
00077 
00078 
00079 /* Layers */
00080 RemixLayer * remix_layer_new_ontop (RemixEnv * env, RemixTrack * track,
00081                                     RemixTimeType timetype);
00082 RemixLayer * remix_layer_new_above (RemixEnv * env, RemixLayer * above,
00083                                     RemixTimeType timetype);
00084 RemixLayer * remix_layer_move_ontop (RemixEnv * env, RemixLayer * layer, RemixTrack * track);
00085 RemixLayer * remix_layer_move_above (RemixEnv * env, RemixLayer * layer, RemixLayer * above);
00086 RemixLayer * remix_layer_raise (RemixEnv * env, RemixLayer * layer);
00087 RemixLayer * remix_layer_lower (RemixEnv * env, RemixLayer * layer);
00088 RemixTrack * remix_layer_get_track (RemixEnv * env, RemixLayer * layer);
00089 RemixDeck * remix_layer_get_deck (RemixEnv * env, RemixLayer * layer);
00090 RemixTimeType remix_layer_set_timetype (RemixEnv * env, RemixLayer * layer,
00091                                   RemixTimeType new_type);
00092 RemixTimeType remix_layer_get_timetype (RemixEnv * env, RemixLayer * layer);
00093 RemixSound * remix_layer_get_sound_before (RemixEnv * env, RemixLayer * layer,
00094                                      RemixTime time);
00095 RemixSound * remix_layer_get_sound_at (RemixEnv * env, RemixLayer * layer, RemixTime time);
00096 RemixSound * remix_layer_get_sound_after (RemixEnv * env, RemixLayer * layer, RemixTime time);
00097 RemixLayer * remix_layer_below (RemixEnv * env, RemixLayer * layer);
00098 RemixLayer * remix_layer_above (RemixEnv * env, RemixLayer * layer);
00099 
00100 /* Sounds */
00101 RemixSound * remix_sound_new (RemixEnv * env, RemixBase * source,
00102                               RemixLayer * layer,
00103                               RemixTime start_time, RemixTime duration);
00104 
00105 RemixBase * remix_sound_set_source (RemixEnv * env, RemixSound * sound,
00106                                     RemixBase * source);
00107 RemixBase * remix_sound_get_source (RemixEnv * env, RemixSound * sound);
00108 RemixLayer * remix_sound_get_layer (RemixEnv * env, RemixSound * sound);
00109 RemixTrack * remix_sound_get_track (RemixEnv * env, RemixSound * sound);
00110 RemixDeck * remix_sound_get_deck (RemixEnv * env, RemixSound * sound);
00111 
00112 RemixTime remix_sound_move (RemixEnv * env, RemixSound * sound,
00113                             RemixTime time);
00114 RemixSound * remix_sound_get_prev (RemixEnv * env, RemixSound * sound);
00115 RemixSound * remix_sound_get_next (RemixEnv * env, RemixSound * sound);
00116 
00117 RemixTime remix_sound_set_start_time (RemixEnv * env, RemixSound * sound,
00118                                       RemixTime time);
00119 RemixTime remix_sound_get_start_time (RemixEnv * env, RemixSound * sound);
00120 RemixTime remix_sound_set_duration (RemixEnv * env, RemixSound * sound,
00121                                     RemixTime time);
00122 RemixTime remix_sound_get_duration (RemixEnv * env, RemixSound * sound);
00123 
00124 RemixBase * remix_sound_set_rate_envelope (RemixEnv * env, RemixSound * sound,
00125                                            RemixBase * rate_envelope);
00126 RemixBase * remix_sound_get_rate_envelope (RemixEnv * env, RemixSound * sound);
00127 RemixBase * remix_sound_set_gain_envelope (RemixEnv * env, RemixSound * sound,
00128                                            RemixBase * gain_envelope);
00129 RemixBase * remix_sound_get_gain_envelope (RemixEnv * env, RemixSound * sound);
00130 RemixBase * remix_sound_set_blend_envelope (RemixEnv * env, RemixSound * sound,
00131                                             RemixBase * blend_envelope);
00132 RemixBase * remix_sound_get_blend_envelope (RemixEnv * env, RemixSound * sound);
00133 
00134 #if defined(__cplusplus)
00135 }
00136 #endif
00137 
00138 #endif /* __REMIX_DECK_H__ */

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