Update of /cvsroot/foo/foo/libfoo/FOO In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16719 Added Files: FOOBreakpointFunction.h FOOBuffer.h FOOBufferManager.h FOOContext.h FOOContextPart.h FOOEagerModule.h FOOEagerModuleManager.h FOOFileTable.h FOOGlobal.h FOOGlobalsManager.h FOOLookupTable.h FOOModule.h FOOModuleManager.h FOONilModule.h FOOObject.h FOOObjectManager.h FOOOutput.h FOOOutputManager.h FOORegion.h FOOSineTable.h FOOSineXoverXTable.h FOOSoundFile.h FOOSoundStream.h FOOSubstrate.h FOOSubstrateManager.h Makefile.am Log Message: moved headers to FOO directory to match with header install dir --- NEW FILE: FOOObject.h --- /* -*-Mode:objc-*- */ /* * FOOObject.h * * root object for FOO objects * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOObject.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOOBJECT_H_INCLUDED #define FOO_FOOOBJECT_H_INCLUDED #import <Foundation/NSObject.h> /* memory management macros for mac os x */ #ifndef RETAIN /** * Basic retain operation ... calls [NSObject-retain] */ #define RETAIN(object) [object retain] #endif #ifndef RELEASE /** * Basic release operation ... calls [NSObject-release] */ #define RELEASE(object) [object release] #endif #ifndef AUTORELEASE /** * Basic autorelease operation ... calls [NSObject-autorelease] */ #define AUTORELEASE(object) [object autorelease] #endif /* end: memory management macros for mac os x */ /* more tedious stuff for mac os x */ #ifndef NULL #define NULL (0) /* haha */ #endif /* end: more tedious stuff for mac os x */ @interface FOOObject : NSObject { } @end #endif /* #ifndef FOO_FOOOBJECT_H_INCLUDED */ --- NEW FILE: FOOSineXoverXTable.h --- /* -*-Mode:objc-*- */ /* * FOOSineXoverXTable.h * * sine x over x table * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOSineXoverXTable.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOSINEXOVERXTABLE_H_INCLUDED #define FOO_FOOSINEXOVERXTABLE_H_INCLUDED #include "FOOLookupTable.h" @interface FOOSineXoverXTable : FOOLookupTable { int _taps; } - (FOOSineXoverXTable *) initWithTaps: (int)n size: (int)size; - (int) getTaps; @end #endif /* #ifndef FOO_FOOSINEXOVERXTABLE_H_INCLUDED */ --- NEW FILE: FOOFileTable.h --- /* -*-Mode:objc-*- */ /* * FOOFileTable.h * * file table * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOFileTable.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOFILETABLE_H_INCLUDED #define FOO_FOOFILETABLE_H_INCLUDED #include "FOOGlobal.h" #include "FOOLookupTable.h" @interface FOOFileTable : FOOLookupTable { } - (FOOFileTable *) initWithFile: (NSString *)name; - (int) previousPowerOfTwo: (int)n; @end #endif /* #ifndef FOO_FOOFILETABLE_H_INCLUDED */ --- NEW FILE: FOOGlobalsManager.h --- /* -*-Mode:objc-*- */ /* * FOOGlobalsManager.h * * manage globals * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOGlobalsManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOGLOBALSMANAGER_H_INCLUDED #define FOO_FOOGLOBALSMANAGER_H_INCLUDED #import <Foundation/NSString.h> #include "FOOGlobal.h" #include "FOOObject.h" @class FOOLookupTable; #define SINXOVERX_POINTS_PER_TAP 500 #define SINE_TABLESIZE 8192 // has to be a power of two ! #define DEFAULT_SAMPLING_RATE 44100 #define MINIMUM_TAPS 4 #define MAXIMUM_TAPS 50 #define DEFAULT_TAPS 10 #define DEFAULT_BSIZE 1024 @interface FOOGlobalsManager : FOOObject { } /* since this is a class, i decided to use (void) as return value * rather than self for setter-functions * what we want is a 'singleton' instance for this */ + (BOOL) trace; + (void) setTrace: (BOOL)val; // this seems not to be used in foo // + (void) loadClass: (NSString *)path; // + (void) unloadLast; + (void) schemeOutput: (NSString *)string; + (FOOLookupTable *) getSineTable; + (FOOLookupTable *) getSineXoverXTable: (int)n; + (FOOLookupTable *) getFileTable: (NSString *)filename; + (int) getDefaultTaps; + (void) setDefaultTaps: (int)taps; + (int) getMinimumTaps; + (int) getMaximumTaps; + (double) getDefaultSamplingRate; + (void) setDefaultSamplingRate: (double)rate; + (int) getDefaultBlockSize; + (void) setDefaultBlockSize: (int)size; @end #endif /* #ifndef FOO_FOOGLOBALSMANAGER_H_INCLUDED */ --- NEW FILE: FOOSubstrateManager.h --- /* -*-Mode:objc-*- */ /* * FOOSubstrateManager.h * * manager for FOOSubstrates * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOSubstrateManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOSUBSTRATEMANAGER_H_INCLUDED #define FOO_FOOSUBSTRATEMANAGER_H_INCLUDED #include "FOOObjectManager.h" @interface FOOSubstrateManager : FOOObjectManager { } - (FOOSubstrateManager *) startUp; @end #endif /* #ifndef FOO_FOOSUBSTRATEMANAGER_H_INCLUDED */ --- NEW FILE: FOOBufferManager.h --- /* -*-Mode:objc-*- */ /* * FOOBufferManager.h * * manager for FOOBuffers * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOBufferManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOBUFFERMANAGER_H_INCLUDED #define FOO_FOOBUFFERMANAGER_H_INCLUDED #include "FOOGlobal.h" #include "FOOObjectManager.h" #define DEFAULT_BUFFER_SIZE 1024 @interface FOOBufferManager : FOOObjectManager { int _bufferSize; } - (FOOBufferManager *) setBufferSize: (int)size; - (int) getBufferSize; - (FOOBufferManager *) reset; @end #endif /* #ifndef FOO_FOOBUFFERMANAGER_H_INCLUDED */ --- NEW FILE: FOOGlobal.h --- /* -*-Mode:objc-*- */ /* * FOOGlobal.h * * global definitions * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOGlobal.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOGLOBAL_H_INCLUDED #define FOO_FOOGLOBAL_H_INCLUDED #include <assert.h> #include <math.h> #import <Foundation/NSString.h> #include "FOOGlobalsManager.h" typedef float sample_t; #define FOO_ERROR(ret, val) { \ NSString *_buffeR_; \ _buffeR_ = [NSString stringWithFormat: @"FOO ERROR: class: %@, file: %s, line: %d\n", \ [[self class] description], __FILE__, __LINE__]; \ AUTORELEASE(_buffeR_); \ [FOOGlobalsManager schemeOutput: _buffeR_]; \ if (ret) return val; } #define SAMPLERATE ([_context getSamplingRate]) #define SEC_TO_SAM(s) ((int) (rint((s) * SAMPLERATE))) #define SAM_TO_SEC(s) ((s) / SAMPLERATE) #endif /* #ifndef FOO_FOOGLOBAL_H_INCLUDED */ --- NEW FILE: FOOObjectManager.h --- /* -*-Mode:objc-*- */ /* * FOOObjectManager.h * * generic manager for FOOObjects * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOObjectManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOOBJECTMANAGER_H_INCLUDED #define FOO_FOOOBJECTMANAGER_H_INCLUDED #import <Foundation/NSArray.h> #include "FOOGlobal.h" #include "FOOObject.h" @interface FOOObjectManager : FOOObject { NSMutableArray* _objects; } - (FOOObjectManager *) addObject: (FOOObject *)anObject; - (FOOObjectManager *) removeObject: (FOOObject *)anObject; - (FOOObject *) objectAtIndex: (unsigned int)index; - (NSArray *) getObjects; - (Class) objectType; - (FOOObjectManager *) removeAllObjects; @end #endif /* #ifndef FOO_FOOOBJECTMANAGER_H_INCLUDED */ --- NEW FILE: FOOSubstrate.h --- /* -*-Mode:objc-*- */ /* * FOOSubstrate.h * * substrate * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOSubstrate.h,v 1.1 2004/08/04 05:15:48 rumori Exp $: FOOSubstrate.h,v 1.2 2004/06/30 10:38:14 voelkel Exp $ */ #ifndef FOO_FOOSUBSTRATE_H_INCLUDED #define FOO_FOOSUBSTRATE_H_INCLUDED #include "FOOGlobal.h" #include "FOOContextPart.h" @interface FOOSubstrate : FOOContextPart { } - (long) size; - (FOOSubstrate *) doInit; /* we need a protocol here for FOOSoundFile, -Stream and -Region */ - (double) getSamplingRate; - (BOOL) getSamples: (sample_t *)buffer offset: (long)fromFrame size: (long)frames; @end #endif /* #ifndef FOO_FOOSUBSTRATE_H_INCLUDED */ --- NEW FILE: FOOBreakpointFunction.h --- /* -*-Mode:objc-*- */ /* * FOOBreakpointFunction.h * * breakpoint function * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOBreakpointFunction.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOBREAKPOINTFUNCTION_H #define FOO_FOOBREAKPOINTFUNCTION_H #include "FOOGlobal.h" #include "FOOSubstrate.h" double transexp (double arg); typedef struct { sample_t value; sample_t delta; double alpha; double time; int count; } lineseg_t; @interface FOOBreakpointFunction : FOOSubstrate { lineseg_t *_segments; int _length; double _beginT; double _endT; double _firstV; double _firstA; } - (FOOBreakpointFunction *) setBpf: (lineseg_t *)seglist first: (double)f begin: (double)b end: (double)e; - (double) beginT; - (double) sizeT; - (FOOBreakpointFunction *) print; - (lineseg_t *) segments; - (FOOBreakpointFunction *) copyOffset: (double)off size: (double)siz; - (FOOBreakpointFunction *) reverse; - (lineseg_t *) restoreSegments; @end #endif /* #ifndef FOO_FOOBREAKPOINTFUNCTION_H */ --- NEW FILE: FOOModule.h --- /* -*-Mode:objc-*- */ /* * FOOModule.h * * module interface * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOModule.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOMODULE_H_INCLUDED #define FOO_FOOMODULE_H_INCLUDED #include "FOOGlobal.h" #include "FOOContextPart.h" #include "FOOBuffer.h" #include "FOOContext.h" #import <Foundation/NSArray.h> #import <Foundation/NSString.h> @class FOONilModule; @class FOOConstant; #define PRINT_BUFFER_SIZE 1024 #define MAX_CLASS_NAME_SIZE 128 enum { TI_BEG_END, TI_BEG, TI_END, TI_NONE }; #define COMPUTE_PROLOGUE \ if (_active == YES) { \ if (_valid == YES) \ return _active #define COMPUTE_EPILOGUE \ _valid = YES; \ } else \ memset([_buffer data], 0, sizeof(sample_t) * BLOCKSIZE); \ return _active #define INPUTS ([_inputs count]) #define INPUT(n) ([_inputs objectAtIndex: (n)]) #define DATA_OF_MOD(m) ([[(m) getBuffer] data]) #define SAMPLETIME [_context getSampleTime] #define BLOCKSIZE [_context getBlockSize] #define BLOCKEND (SAMPLETIME + BLOCKSIZE) #define TIMEFRAME [_context getTime] @interface FOOModule : FOOContextPart { NSMutableArray *_inputs; id _output; /* NOT USED !!! */ FOOBuffer *_buffer; int _active; int _valid; BOOL _printed; } - (FOOModule *) reset; - (FOOModule *) connectInput: (int)index to: (FOOModule *)module; - (FOOModule *) connectOutput: (FOOModule *)module; - (FOOModule *) defaultInput; - (BOOL) activate; - (BOOL) compute; - (FOOBuffer *) getBuffer; - (FOOModule *) invalidate; - (FOOModule *) assignBuffers: (int)lastBuffer; - (int) incrementBuffer; - (FOOModule *) print; - (FOOModule *) printSub: (int)level : (char *)buffer; - (FOOContext *) context; - (int) getTimeInterval: (double*)b : (double*)e; - (FOOModule *) invalidatePrint; @end #endif /* #ifndef FOO_FOOMODULE_H_INCLUDED */ --- NEW FILE: FOOContext.h --- /* -*-Mode:objc-*- */ /* * FOOContext.h * * execution environment for patches * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOContext.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOCONTEXT_H_INCLUDED #define FOO_FOOCONTEXT_H_INCLUDED #include "FOOGlobal.h" #include "FOOObject.h" @class FOOObjectManager; @class FOOGlobalsManager; @class FOOModuleManager; @class FOOEagerModuleManager; @class FOOSubstrateManager; @class FOOOutputManager; @class FOOBufferManager; @class FOONilModule; @class FOOEagerModule; @class FOOOutput; @class FOOModule; @class FOOSubstrate; @class FOOBuffer; // extern id getCurrentContext(); // exported by ../objc/context.m @interface FOOContext : FOOObject { double _time; double _samplingRate; int _sampleTime; int _bufferSize; int _blockSize; /* current computation block size */ BOOL _locked; int _numberOfSharedBuffers; int _numberOfChannels; int _debugFlag; FOOModuleManager *_moduleManager; FOOEagerModuleManager *_eagerModuleManager; FOOSubstrateManager *_substrateManager; FOOOutputManager *_outputManager; FOOBufferManager *_volatileBufferManager; FOOBufferManager *_sharedBufferManager; FOONilModule *_nilModule; } - (FOOContext *) initWithChans: (int)n; - (FOOContext *) setTime: (double)value; - (double) getTime; - (int) getSampleTime; - (FOOObjectManager *) addModule: (FOOObject *) aModule; - (FOOObjectManager *) addEagerModule: (FOOObject *) aModule; - (FOOObjectManager *) addSubstrate: (FOOObject *) aSubstrate; - (FOOObjectManager *) removeSubstrate: (FOOObject *) aSubstrate; - (FOOObjectManager *) addOutput: (FOOObject *) anOutput; - (FOOBuffer *) bufferAtIndex: (int)index; - (FOOBuffer *) nextSharedBuffer; - (FOOContext *) setBufferSize: (int)size; - (int) getBufferSize; - (int) getBlockSize; - (int) getNumberOfChannels; - (FOOContext *) setDebugFlag: (int)flag; - (int) getDebugFlag; - (FOOContext *) compile; - (FOOContext *) step; - (int) run: (int)samples factor: (double)factor; - (FOOContext *) reset; - (double) getMaximum: (int)chan; - (FOOContext *) openOutput: (NSString *)path addin: (int)flag at: (int)ref; - (FOOContext *) closeOutput; - (double) getSamplingRate; - (FOOContext *) setSamplingRate: (double)newRate; - (FOOContext *) setSampleTime: (int)offset; - (BOOL) isLocked; - (int) getTimeInterval: (double*)b : (double*)e; - (FOOContext *) invalidatePrint; - (FOONilModule *) getNilModule; @end #endif /* #ifndef FOO_FOOCONTEXT_H_INCLUDED */ --- NEW FILE: FOOContextPart.h --- /* -*-Mode:objc-*- */ /* * FOOContextPart.h * * part of a FOOContext * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOContextPart.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOCONTEXTPART_H_INCLUDED #define FOO_FOOCONTEXTPART_H_INCLUDED #include "FOOObject.h" @class FOOContext; @interface FOOContextPart : FOOObject { FOOContext *_context; } - (FOOContextPart *) initWithContext: (FOOContext *)aContext; - (FOOContextPart *) startUp; - (FOOContextPart *) reset; @end #endif /* #ifndef FOO_FOOCONTEXTPART_H_INCLUDED */ --- NEW FILE: Makefile.am --- # foo/libfoo/FOO/Makefile.am # 2004 rumori # $Id: Makefile.am,v 1.1 2004/08/04 05:15:48 rumori Exp $ NULL = pkgincludedir = $(includedir)/FOO pkginclude_HEADERS = \ FOOBreakpointFunction.h \ FOOBuffer.h \ FOOBufferManager.h \ FOOContext.h \ FOOContextPart.h \ FOOEagerModule.h \ FOOEagerModuleManager.h \ FOOFileTable.h \ FOOGlobal.h \ FOOGlobalsManager.h \ FOOLookupTable.h \ FOOModule.h \ FOOModuleManager.h \ FOONilModule.h \ FOOObject.h \ FOOObjectManager.h \ FOOOutput.h \ FOOOutputManager.h \ FOORegion.h \ FOOSineTable.h \ FOOSineXoverXTable.h \ FOOSoundFile.h \ FOOSoundStream.h \ FOOSubstrate.h \ FOOSubstrateManager.h \ $(NULL) nodist_pkginclude_HEADERS = \ $(NULL) --- NEW FILE: FOONilModule.h --- /* -*-Mode:objc-*- */ /* * FOONilModule.h * * * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOONilModule.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOONILMODULE_H_INCLUDED #define FOO_FOONILMODULE_H_INCLUDED #include "FOOObject.h" @interface FOONilModule : FOOObject { } @end #endif /* #ifndef FOO_FOONILMODULE_H_INCLUDED */ --- NEW FILE: FOOSoundFile.h --- /* -*-Mode:objc-*- */ /* * FOOSoundFile.h * * soundfile * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOSoundFile.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOSOUNDFILE_H_INCLUDED #define FOO_FOOSOUNDFILE_H_INCLUDED #include "FOOGlobal.h" #include "FOOSubstrate.h" #import <Foundation/NSString.h> #include <sndfile.h> typedef struct { double minValue; sf_count_t minFrame; double maxValue; sf_count_t maxFrame; } dynamics_t; typedef struct { sample_t *ptr; // pointer to cache start sample_t *pos; // current cache position sf_count_t capacityB; // capacity in bytes sf_count_t capacityS; // capacity in samples sf_count_t capacityF; // capacity in frames sf_count_t firstF; // first frame in cache (at start) is frame // firstF in sndfile sf_count_t lastF; // last frame in cache + 1 (at start + capacityB) sf_count_t firstDirtyF; // first dirty frame of file. -1: nothing to flush sf_count_t lastDirtyF; // last dirty frame of file } cache_t; enum {SND_READ, SND_WRITE, SND_ADDIN}; @interface FOOSoundFile : FOOSubstrate { NSString *_fileName; SNDFILE *_file; SF_INFO _fileInfo; sf_count_t _fileFrames; int _fileMode; cache_t _cache; dynamics_t *_dynamics; size_t _frameSizeB; // frame size in bytes BOOL _lazyWrite; // flush after every putSamples? BOOL _dynamicsValid; } - (FOOSoundFile *) initWithFile: (NSString *)name; - (BOOL) open: (NSString *)name mode: (int)sndmode; - (BOOL) isOpen; - (BOOL) close; - (BOOL) getSamples: (sample_t *)buffer offset: (long)fromFrame size: (long)frames channel: (int)channel rev: (BOOL)reversed; - (BOOL) getSamples: (sample_t *)buffer offset: (long)fromFrame size: (long)frames channel: (int)channel; - (BOOL) getSamples: (sample_t *)buffer offset: (long)fromFrame size: (long)frames rev: (BOOL)reversed; /* to be removed * no in FOOSubstrate.h * - (BOOL) getSamples: (sample_t *)buffer offset: (long)fromFrame size: (long)frames; */ - (BOOL) putSamples: (sample_t *)buffer offset: (long)fromFrame size: (long)frames channel: (int)channel; - (BOOL) lazyWrite; - setLazyWrite: (BOOL)flag; - (dynamics_t *) dynamics; - validateDynamics; - (double) getSamplingRate; - (int) getChannelCount; - (int) getDataFormat; - (int) getFileType; - (long) size; - setCacheCapacity: (sf_count_t)frames; - prepareCache: (sf_count_t)fromFrame; - (BOOL) flush; @end #endif /* #ifndef FOO_FOOSOUNDFILE_H_INCLUDED */ --- NEW FILE: FOOEagerModuleManager.h --- /* -*-Mode:objc-*- */ /* * FOOEagerModuleManager.h * * manager for FOOEagerModules * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOEagerModuleManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOEAGERMODULEMANAGER_H_INCLUDED #define FOO_FOOEAGERMODULEMANAGER_H_INCLUDED #include "FOOObjectManager.h" @interface FOOEagerModuleManager : FOOObjectManager { } - (FOOEagerModuleManager *) step; @end #endif /* #ifndef FOO_FOOEAGERMODULEMANAGER_H_INCLUDED */ --- NEW FILE: FOOOutputManager.h --- /* -*-Mode:objc-*- */ /* * FOOOutputManager.h * * manager for FOOOutputs * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOOutputManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOOUTPUTMANAGER_H_INCLUDED #define FOO_FOOOUTPUTMANAGER_H_INCLUDED #include "FOOGlobal.h" #include "FOOObjectManager.h" #import <Foundation/NSString.h> #import <Foundation/NSArray.h> @class FOOContext; @class FOOSoundFile; @class FOOBuffer; @interface FOOOutputManager : FOOObjectManager { FOOContext *_context; FOOSoundFile *_soundfile; NSMutableArray *_buffers; NSMutableArray *_caches; NSMutableArray *_outputs; BOOL _incremental; NSString *_filename; int _channels; int _bufferSize; int _cacheSize; int _outputSize; int _position; double _outputPosition; double _scaler; double _factor; int _taps; int _cacheOffset; } - (FOOOutputManager *) initWithContext: (FOOContext *)aContext; - (FOOOutputManager *) output: (FOOBuffer *)buffer channel: (int)chan; - (FOOOutputManager *) open: (NSString *)path addin: (BOOL)flag; - (FOOOutputManager *) setBufferSize: (int)s; - (FOOOutputManager *) setCacheSize: (int)s; - (FOOOutputManager *) setOutputSize: (int)s; - (FOOOutputManager *) write; - (int) resample:(sample_t*)i to:(sample_t*)o; - (BOOL) flush; - (BOOL) close; - (int) getNumberOfChannels; - (FOOOutputManager *) compile; - (FOOOutputManager *) step; - (FOOOutputManager *) setOutputTime: (int)offset; - (FOOOutputManager *) setScaler: (double)scal; - (FOOOutputManager *) reset; - (double) getMaximum: (int)chan; @end #endif /* #ifndef FOO_FOOOUTPUTMANAGER_H_INCLUDED */ --- NEW FILE: FOOOutput.h --- /* -*-Mode:objc-*- */ /* * FOOOutput.h * * output module * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOOutput.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOOUTPUT_H_INCLUDED #define FOO_FOOOUTPUT_H_INCLUDED #include "FOOGlobal.h" #include "FOOContextPart.h" @class FOOOutputManager; @class FOOModule; @interface FOOOutput : FOOContextPart { FOOModule *_input; int _channel; } - (FOOOutput *) initWithChannel: (int)chan; - (FOOOutput *) connect: (FOOModule *) aModule; - (FOOOutput *) output: (FOOOutputManager *) outputManager; - (FOOOutput *) assignBuffers; @end #endif /* #ifndef FOO_FOOOUTPUT_H_INCLUDED */ --- NEW FILE: FOOSoundStream.h --- /* -*-Mode:objc-*- */ /* * FOOSoundStream.h * * soundstream * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOSoundStream.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOSOUNDSTREAM_H_INCLUDED #define FOO_FOOSOUNDSTREAM_H_INCLUDED #include "FOOGlobal.h" #include "FOOSubstrate.h" @class FOOSoundFile; @class FOOGlobal; @interface FOOSoundStream : FOOSubstrate { FOOSoundFile *_soundFile; int _channelNumber; } - (FOOSoundStream *) initWithSubstrate: (FOOSubstrate *)substrate channel: (int) channel; /* to be removed * no in FOOSubstrate.h * - (BOOL) getSamples: (sample_t *)buffer offset: (long)off size: (long)size; */ - (long) size; - (double) getSamplingRate; @end #endif /* #ifndef FOO_FOOSOUNDSTREAM_H_INCLUDED */ --- NEW FILE: FOOSineTable.h --- /* -*-Mode:objc-*- */ /* * FOOSineTable.h * * sine table * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOSineTable.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOSINETABLE_H_INCLUDED #define FOO_FOOSINETABLE_H_INCLUDED #include "FOOLookupTable.h" @interface FOOSineTable : FOOLookupTable { } @end #endif /* #ifndef FOO_FOOSINETABLE_H_INCLUDED */ --- NEW FILE: FOOBuffer.h --- /* -*-Mode:objc-*- */ /* * FOOBuffer.h * * sample data bufer * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOBuffer.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOBUFFER_H_INCLUDED #define FOO_FOOBUFFER_H_INCLUDED #include "FOOGlobal.h" #include "FOOObject.h" #define BUFFER_NOT_ASSIGNED nil #define DATA_OF_BUF(b) ([(b) data]) // let's deprecate this in the future @interface FOOBuffer : FOOObject { unsigned int _size; sample_t *_data; BOOL _shared; } - (FOOBuffer *) initWithSize: (unsigned int)size; - (unsigned int) count; - (sample_t *) data; - (BOOL) isShared; - (FOOBuffer *) setShared: (BOOL)shared; - (FOOBuffer *) setSize: (unsigned int)samples; - (FOOBuffer *) set: (sample_t)value; - (FOOBuffer *) zero; - (FOOBuffer *) mov: (FOOBuffer *)b; - (FOOBuffer *) add: (FOOBuffer *)b; - (FOOBuffer *) sub: (FOOBuffer *)b; - (FOOBuffer *) mul: (FOOBuffer *)b; - (FOOBuffer *) scale: (double)scaler; - (FOOBuffer *) add: (FOOBuffer *)b scaled: (double)scaler; - (FOOBuffer *) div: (FOOBuffer *)b; @end #endif /* #ifndef FOO_FOOBUFFER_H_INCLUDED */ --- NEW FILE: FOOModuleManager.h --- /* -*-Mode:objc-*- */ /* * FOOModuleManager.h * * manager for FOOModules * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOModuleManager.h,v 1.1 2004/08/04 05:15:48 rumori Exp $: FOOModuleManager.h,v 1.2 2004/06/30 10:38:14 voelkel Exp $ */ #ifndef FOO_FOOMODULEMANAGER_H_INCLUDED #define FOO_FOOMODULEMANAGER_H_INCLUDED #include "FOOObjectManager.h" @interface FOOModuleManager : FOOObjectManager { } - (FOOModuleManager *) startUp; - (FOOModuleManager *) reset; - (FOOModuleManager *) invalidateModules; - (FOOModuleManager *) invalidatePrint; - (int) getTimeInterval: (double*)b : (double*)e; @end #endif /* #ifndef FOO_FOOMODULEMANAGER_H_INCLUDED */ --- NEW FILE: FOOLookupTable.h --- /* -*-Mode:objc-*- */ /* * FOOLookupTable.h * * generic lookup table * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOLookupTable.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOLOOKUPTABLE_H_INCLUDED #define FOO_FOOLOOKUPTABLE_H_INCLUDED #include "FOOGlobal.h" #include "FOOObject.h" @interface FOOLookupTable : FOOObject { int _size; double _origin; double _scaler; sample_t *_base; sample_t *_delta; } - (FOOLookupTable *) initWithOrigin: (double)origin extent: (double)extent size: (double)size; - (double) lookup: (double)x; - (double) function: (double)x; - (int) getSize; - (double) getOrigin; - (double) getExtent; - (double) getScaler; - (sample_t *) getBase; - (sample_t *) getDelta; @end #endif /* #ifndef FOO_FOOLOOKUPTABLE_H_INCLUDED */ --- NEW FILE: FOOEagerModule.h --- /* -*-Mode:objc-*- */ /* * FOOEagerModule.h * * eagerModule interface * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOOEagerModule.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOEAGERMODULE_H_INCLUDED #define FOO_FOOEAGERMODULE_H_INCLUDED #include "FOOModule.h" @interface FOOEagerModule : FOOModule { } - (FOOEagerModule *) step; @end #endif /* #ifndef FOO_FOOEAGERMODULE_H_INCLUDED */ --- NEW FILE: FOORegion.h --- /* -*-Mode:objc-*- */ /* * FOORegion.h * * sound region * */ /* * foo sound synthesis system * * (C)1993-2004 Gerhard Eckel, Ramon Gonzalez-Arroyo, IRCAM, ZKM * (C)2003-2004 Martin Rumori */ /* * This file is part of foo. * * foo is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * foo 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with foo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: FOORegion.h,v 1.1 2004/08/04 05:15:48 rumori Exp $ */ #ifndef FOO_FOOREGION_H_INCLUDED #define FOO_FOOREGION_H_INCLUDED #include "FOOGlobal.h" #include "FOOSubstrate.h" @interface FOORegion : FOOSubstrate { /* Substrate *substrate; // statically typed */ FOOSubstrate *_substrate; long _offset; long _size; BOOL _reverse; } - (FOORegion *) initWithSubstrate: (FOOSubstrate *)substrate offset: (double)off size: (double)siz rev: (BOOL)rev; /* to be removed * no in FOOSubstrate.h * - (BOOL) getSamples: (sample_t *)buffer offset: (long)off size: (long)size; */ - (long) size; - (double) getSamplingRate; @end #endif /* #ifndef FOO_FOOREGION_H_INCLUDED */ |