AsyncAudioSelector.h

Go to the documentation of this file.
00001 
00028 #ifndef ASYNC_AUDIO_SELECTOR_INCLUDED
00029 #define ASYNC_AUDIO_SELECTOR_INCLUDED
00030 
00031 
00032 /****************************************************************************
00033  *
00034  * System Includes
00035  *
00036  ****************************************************************************/
00037 
00038 #include <map>
00039 
00040 
00041 /****************************************************************************
00042  *
00043  * Project Includes
00044  *
00045  ****************************************************************************/
00046 
00047 #include <AsyncAudioSource.h>
00048 
00049 
00050 /****************************************************************************
00051  *
00052  * Local Includes
00053  *
00054  ****************************************************************************/
00055 
00056 
00057 
00058 /****************************************************************************
00059  *
00060  * Forward declarations
00061  *
00062  ****************************************************************************/
00063 
00064 
00065 
00066 /****************************************************************************
00067  *
00068  * Namespace
00069  *
00070  ****************************************************************************/
00071 
00072 namespace Async
00073 {
00074 
00075 
00076 /****************************************************************************
00077  *
00078  * Forward declarations of classes inside of the declared namespace
00079  *
00080  ****************************************************************************/
00081 
00082   
00083 
00084 /****************************************************************************
00085  *
00086  * Defines & typedefs
00087  *
00088  ****************************************************************************/
00089 
00090 
00091 
00092 /****************************************************************************
00093  *
00094  * Exported Global Variables
00095  *
00096  ****************************************************************************/
00097 
00098 
00099 
00100 /****************************************************************************
00101  *
00102  * Class definitions
00103  *
00104  ****************************************************************************/
00105 
00114 class AudioSelector : public AudioSource
00115 {
00116   public:
00120     AudioSelector(void);
00121   
00125     ~AudioSelector(void);
00126   
00131     void addSource(AudioSource *source);
00132     
00137     void removeSource(AudioSource *source);
00138     
00144     void setSelectionPrio(AudioSource *source, int prio);
00145     
00151     void enableAutoSelect(AudioSource *source, int prio);
00152 
00157     void disableAutoSelect(AudioSource *source);
00158     
00165     bool autoSelectEnabled(AudioSource *source);
00166 
00171     void selectSource(AudioSource *source);
00172     
00173     
00174   protected:
00175     
00176   private:
00177     class Branch;
00178     typedef std::map<Async::AudioSource *, Branch *> BranchMap;
00179     class NullBranch;
00180     
00181     BranchMap   branch_map;
00182     NullBranch  *null_branch;
00183     
00184     AudioSelector(const AudioSelector&);
00185     AudioSelector& operator=(const AudioSelector&);
00186     void selectBranch(Branch *branch);
00187     
00188     friend class Branch;
00189     
00190 };  /* class AudioSelector */
00191 
00192 
00193 } /* namespace */
00194 
00195 #endif /* ASYNC_AUDIO_SELECTOR_INCLUDED */
00196 
00197 
00198 
00199 /*
00200  * This file has not been truncated
00201  */
00202 
Generated by  doxygen 1.6.2-20100208