00001 /* 00002 diskin.h: 00003 00004 Copyright (C) 1998, 2001 matt ingalls, Richard Dobson, John ffitch 00005 (C) 2005 Istvan Varga 00006 00007 This file is part of Csound. 00008 00009 The Csound Library is free software; you can redistribute it 00010 and/or modify it under the terms of the GNU Lesser General Public 00011 License as published by the Free Software Foundation; either 00012 version 2.1 of the License, or (at your option) any later version. 00013 00014 Csound is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public 00020 License along with Csound; if not, write to the Free Software 00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 00022 02111-1307 USA 00023 */ 00024 00025 #ifndef CSOUND_DISKIN_H 00026 #define CSOUND_DISKIN_H 00027 00028 #include "diskin2.h" 00029 00030 typedef struct { 00031 OPDS h; 00032 MYFLT *aOut[DISKIN2_MAXCHN]; 00033 MYFLT *iFileCode; 00034 MYFLT *kTranspose; 00035 MYFLT *iSkipTime; 00036 MYFLT *iWrapMode; 00037 MYFLT *iSampleFormat; 00038 MYFLT *iSkipInit; 00039 MYFLT *ibufsize; 00040 /* ------------------------------------- */ 00041 int initDone; 00042 int nChannels; 00043 int bufSize; /* in sample frames, power of two */ 00044 int wrapMode; 00045 long fileLength; /* in sample frames */ 00046 long bufStartPos; 00047 int64_t pos_frac; /* type should be defined in sysdep.h */ 00048 int64_t pos_frac_inc; 00049 SNDFILE *sf; 00050 MYFLT prv_kTranspose; 00051 MYFLT scaleFac; 00052 float *buf; /* variable */ 00053 AUXCH auxch; 00054 FDCH fdch; 00055 } SOUNDINEW; 00056 00057 #define SNDOUTSMPS (1024) 00058 00059 typedef struct { 00060 SNDFILE *sf; 00061 void *fd; 00062 MYFLT *outbufp, *bufend; 00063 MYFLT outbuf[SNDOUTSMPS]; 00064 } SNDCOM; 00065 00066 typedef struct { 00067 OPDS h; 00068 MYFLT *asig, *ifilcod, *iformat; 00069 SNDCOM c; 00070 } SNDOUT; 00071 00072 typedef struct { 00073 OPDS h; 00074 MYFLT *asig1, *asig2, *ifilcod, *iformat; 00075 SNDCOM c; 00076 } SNDOUTS; 00077 00078 #endif /* CSOUND_DISKIN_H */ 00079