isndsys/ss_filter.h
Go to the documentation of this file.00001 /* 00002 Copyright (C) 2005 by Andrew Mann 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public 00015 License along with this library; if not, write to the Free 00016 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 */ 00018 00019 #ifndef __CS_SNDSYS_FILTER_H__ 00020 #define __CS_SNDSYS_FILTER_H__ 00021 00026 #include "csutil/scf.h" 00027 #include "isndsys/ss_structs.h" 00028 00032 class csSourceParameters3D; 00033 class csListenerProperties; 00034 struct iReporter; 00035 00036 struct iSndSysSoftwareFilter3DProperties 00037 { 00038 csSoundSample *clean_buffer; 00039 csSoundSample *work_buffer; 00040 size_t buffer_samples; 00041 csSourceParameters3D *source_parameters; 00042 csListenerProperties *listener_parameters; 00043 csSndSysSoundFormat *sound_format; 00044 00045 float closest_speaker_distance; 00046 float *speaker_distance; 00047 float *speaker_direction_cos; 00048 size_t channel; 00049 }; 00050 00051 SCF_VERSION (iSndSysSoftwareFilter3D, 0, 1, 0); 00052 00057 struct iSndSysSoftwareFilter3D : public iBase 00058 { 00068 virtual void Apply(iSndSysSoftwareFilter3DProperties &properties) = 0; 00069 00070 virtual bool AddSubFilter(iSndSysSoftwareFilter3D *filter, 00071 int chain_idx=0) = 0; 00072 00073 virtual iSndSysSoftwareFilter3D *GetSubFilter(int chain_idx=0) = 0; 00074 00079 virtual iSndSysSoftwareFilter3D *GetPtr() = 0; 00080 }; 00081 00082 SCF_VERSION (iSndSysSoftwareFilterOutput, 0, 1, 0); 00083 00087 struct iSndSysSoftwareFilterOutput : public iBase 00088 { 00098 virtual void Apply(iSndSysSoftwareFilter3DProperties &properties) = 0; 00099 00100 virtual bool AddSubFilter(iSndSysSoftwareFilter3D *filter, 00101 int chain_idx=0) = 0; 00102 00103 virtual iSndSysSoftwareFilter3D *GetSubFilter(int chain_idx=0) = 0; 00104 00109 virtual iSndSysSoftwareFilter3D *GetPtr() = 0; 00110 }; 00111 00114 #endif // __CS_SNDSYS_FILTER_H__
Generated for Crystal Space by doxygen 1.4.6