00001 /** 00002 * @file SoundControl.h 00003 * 00004 * Implementation of class SoundControl. 00005 * 00006 * @author <a href="mailto:Oliver.Giese@uni-dortmund.de">Oliver Giese</a> 00007 * @author <a href="mailto:matthias.hebbel@uni-dortmund.de">Matthias Hebbel</a> 00008 */ 00009 00010 #ifndef __SoundControl_h_ 00011 #define __SoundControl_h_ 00012 00013 #include "Tools/Module/Module.h" 00014 00015 #include "Representations/Sound/SoundRequest.h" 00016 #include "Representations/Sound/SoundData.h" 00017 00018 /** 00019 * @class SoundControlInterfaces 00020 * 00021 * Interfaces of the SoundControl module. 00022 */ 00023 class SoundControlInterfaces 00024 { 00025 public: 00026 /** Constructor */ 00027 SoundControlInterfaces(const SoundRequest& soundRequest, 00028 SoundData& soundData) 00029 : soundRequest(soundRequest), 00030 soundData(soundData) 00031 {}; 00032 protected: 00033 /** A request from the behavior control to play a specific sound */ 00034 const SoundRequest& soundRequest; 00035 00036 /** The sound data to be generated */ 00037 SoundData& soundData; 00038 }; 00039 00040 /** 00041 * @class SoundControl 00042 * 00043 * A generic class for SoundControl modules. 00044 * 00045 * SoundControl is responsible for generating audio data. 00046 */ 00047 class SoundControl : public Module, public SoundControlInterfaces 00048 { 00049 public: 00050 /* 00051 * Constructor. 00052 * @param interfaces The paramters of the SoundControl module. 00053 */ 00054 SoundControl(const SoundControlInterfaces& interfaces) 00055 : SoundControlInterfaces(interfaces) 00056 {} 00057 00058 /** Destructor */ 00059 virtual ~SoundControl() {} 00060 }; 00061 00062 #endif //__SoundControl_h_ 00063 00064 /* 00065 * Change log : 00066 * 00067 * $Log: SoundControl.h,v $ 00068 * Revision 1.1.1.1 2004/05/22 17:21:31 cvsadm 00069 * created new repository GT2004_WM 00070 * 00071 * Revision 1.2 2004/03/08 02:11:52 roefer 00072 * Interfaces should be const 00073 * 00074 * Revision 1.1 2003/10/06 14:10:14 cvsadm 00075 * Created GT2004 (M.J.) 00076 * 00077 * Revision 1.2 2003/09/26 15:27:49 juengel 00078 * Renamed DataTypes to representations. 00079 * 00080 * Revision 1.1.1.1 2003/07/02 09:40:24 cvsadm 00081 * created new repository for the competitions in Padova from the 00082 * tamara CVS (Tuesday 2:00 pm) 00083 * 00084 * removed unused solutions 00085 * 00086 * Revision 1.4 2002/09/12 13:17:27 loetzsch 00087 * made member variables of module interfaces protected 00088 * 00089 * Revision 1.3 2002/09/11 20:06:19 loetzsch 00090 * continued experiments with modules/solutions 00091 * 00092 * Revision 1.2 2002/09/11 00:06:58 loetzsch 00093 * continued change of module/solution mechanisms 00094 * 00095 * Revision 1.1 2002/09/10 15:36:16 cvsadm 00096 * Created new project GT2003 (M.L.) 00097 * - Cleaned up the /Src/DataTypes directory 00098 * - Removed challenge related source code 00099 * - Removed processing of incoming audio data 00100 * - Renamed AcousticMessage to SoundRequest 00101 * 00102 * Revision 1.5 2002/07/23 13:33:43 loetzsch 00103 * new streaming classes 00104 * 00105 * removed many #include statements 00106 * 00107 * Revision 1.4 2002/05/27 15:39:04 fischer 00108 * Added SoundState (Sender and Receiver) 00109 * 00110 * Revision 1.3 2002/05/15 07:28:18 hebbel 00111 * Removed mute, uses Soundprotocol instead, plays wave for patternchallenge 00112 * 00113 * Revision 1.2 2002/05/14 18:52:58 hebbel 00114 * Added variable mute 00115 * 00116 * Revision 1.1.1.1 2002/05/10 12:40:16 cvsadm 00117 * Moved GT2002 Project from ute to tamara. 00118 * 00119 * Revision 1.1 2002/04/28 19:14:12 giese 00120 * SoundPlay added... 00121 * 00122 * 00123 * 00124 */