00001 /** 00002 * @file SoundControlSelector.h 00003 * 00004 * Definition of class SoundControlSelector 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 __SoundControlSelector_h_ 00011 #define __SoundControlSelector_h_ 00012 00013 #include "Tools/Module/ModuleSelector.h" 00014 #include "GT2004SoundControl.h" 00015 00016 /** 00017 * @class SoundControlSelector 00018 * 00019 * A module selector for sound control modules 00020 * 00021 * @author <a href="mailto:Oliver.Giese@uni-dortmund.de">Oliver Giese</a> 00022 * @author <a href="mailto:matthias.hebbel@uni-dortmund.de">Matthias Hebbel</a> 00023 */ 00024 class SoundControlSelector : public ModuleSelector, public SoundControlInterfaces 00025 { 00026 public: 00027 /** 00028 * Constructor. 00029 * @param handler The module handler of the process. 00030 * @param interfaces The paramters of the SoundControl module. 00031 */ 00032 SoundControlSelector(ModuleHandler &handler,const SoundControlInterfaces& interfaces) 00033 : ModuleSelector(SolutionRequest::soundControl), 00034 SoundControlInterfaces(interfaces) 00035 { 00036 handler.setModuleSelector(SolutionRequest::soundControl,this); 00037 } 00038 00039 /** 00040 * Is called on start and when the selected solution changes 00041 * to create a specific solution. 00042 * @param id The id of the solution to create 00043 * @return The created solution or 0 00044 */ 00045 virtual Module* createSolution(SolutionRequest::ModuleSolutionID id) 00046 { 00047 switch(id) 00048 { 00049 case SolutionRequest::gt2004SoundControl: 00050 return new GT2004SoundControl(*this); 00051 default: 00052 return 0; 00053 } 00054 } 00055 00056 }; 00057 00058 #endif //__SoundControlSelector_h_ 00059 00060 /* 00061 * Change log : 00062 * 00063 * $Log: SoundControlSelector.h,v $ 00064 * Revision 1.2 2004/07/10 00:13:53 spranger 00065 * renaming for coderelease and preparations for gt2005 00066 * 00067 * Revision 1.1.1.1 2004/05/22 17:21:31 cvsadm 00068 * created new repository GT2004_WM 00069 * 00070 * Revision 1.3 2004/03/08 02:11:52 roefer 00071 * Interfaces should be const 00072 * 00073 * Revision 1.2 2004/01/21 14:31:58 loetzsch 00074 * Module Selectors create only the selected solution. 00075 * When the solution changes, the old solution is erased and the new 00076 * one ist created using createSolution(..) 00077 * 00078 * Revision 1.1 2003/10/06 14:10:14 cvsadm 00079 * Created GT2004 (M.J.) 00080 * 00081 * Revision 1.1.1.1 2003/07/02 09:40:24 cvsadm 00082 * created new repository for the competitions in Padova from the 00083 * tamara CVS (Tuesday 2:00 pm) 00084 * 00085 * removed unused solutions 00086 * 00087 * Revision 1.5 2002/11/19 15:43:03 dueffert 00088 * doxygen comments corrected 00089 * 00090 * Revision 1.4 2002/10/14 13:14:25 dueffert 00091 * doxygen comments corrected 00092 * 00093 * Revision 1.3 2002/09/11 00:06:58 loetzsch 00094 * continued change of module/solution mechanisms 00095 * 00096 * Revision 1.2 2002/09/10 21:07:30 loetzsch 00097 * continued change of module/solution mechanisms 00098 * 00099 * Revision 1.1 2002/09/10 15:36:16 cvsadm 00100 * Created new project GT2003 (M.L.) 00101 * - Cleaned up the /Src/DataTypes directory 00102 * - Removed challenge related source code 00103 * - Removed processing of incoming audio data 00104 * - Renamed AcousticMessage to SoundRequest 00105 * 00106 * Revision 1.4 2002/05/27 15:39:04 fischer 00107 * Added SoundState (Sender and Receiver) 00108 * 00109 * Revision 1.3 2002/05/15 07:28:18 hebbel 00110 * Removed mute, uses Soundprotocol instead, plays wave for patternchallenge 00111 * 00112 * Revision 1.2 2002/05/14 18:52:58 hebbel 00113 * Added variable mute 00114 * 00115 * Revision 1.1.1.1 2002/05/10 12:40:16 cvsadm 00116 * Moved GT2002 Project from ute to tamara. 00117 * 00118 * Revision 1.1 2002/04/28 19:14:12 giese 00119 * SoundPlay added... 00120 * 00121 * 00122 * 00123 */