Async  1.4.0
AsyncAudioSelector.h
Go to the documentation of this file.
1 
28 #ifndef ASYNC_AUDIO_SELECTOR_INCLUDED
29 #define ASYNC_AUDIO_SELECTOR_INCLUDED
30 
31 
32 /****************************************************************************
33  *
34  * System Includes
35  *
36  ****************************************************************************/
37 
38 #include <map>
39 
40 
41 /****************************************************************************
42  *
43  * Project Includes
44  *
45  ****************************************************************************/
46 
47 #include <AsyncAudioSource.h>
48 
49 
50 /****************************************************************************
51  *
52  * Local Includes
53  *
54  ****************************************************************************/
55 
56 
57 
58 /****************************************************************************
59  *
60  * Forward declarations
61  *
62  ****************************************************************************/
63 
64 
65 
66 /****************************************************************************
67  *
68  * Namespace
69  *
70  ****************************************************************************/
71 
72 namespace Async
73 {
74 
75 
76 /****************************************************************************
77  *
78  * Forward declarations of classes inside of the declared namespace
79  *
80  ****************************************************************************/
81 
82 
83 
84 /****************************************************************************
85  *
86  * Defines & typedefs
87  *
88  ****************************************************************************/
89 
90 
91 
92 /****************************************************************************
93  *
94  * Exported Global Variables
95  *
96  ****************************************************************************/
97 
98 
99 
100 /****************************************************************************
101  *
102  * Class definitions
103  *
104  ****************************************************************************/
105 
115 {
116  public:
120  AudioSelector(void);
121 
125  ~AudioSelector(void);
126 
131  void addSource(AudioSource *source);
132 
137  void removeSource(AudioSource *source);
138 
144  void setSelectionPrio(AudioSource *source, int prio);
145 
151  void enableAutoSelect(AudioSource *source, int prio);
152 
157  void disableAutoSelect(AudioSource *source);
158 
165  bool autoSelectEnabled(AudioSource *source);
166 
171  void selectSource(AudioSource *source);
172 
173 
174  protected:
175 
176  private:
177  class Branch;
178  typedef std::map<Async::AudioSource *, Branch *> BranchMap;
179  class NullBranch;
180 
181  BranchMap branch_map;
182  NullBranch *null_branch;
183 
185  AudioSelector& operator=(const AudioSelector&);
186  void selectBranch(Branch *branch);
187 
188  friend class Branch;
189 
190 }; /* class AudioSelector */
191 
192 
193 } /* namespace */
194 
195 #endif /* ASYNC_AUDIO_SELECTOR_INCLUDED */
196 
197 
198 
199 /*
200  * This file has not been truncated
201  */
202 
void addSource(AudioSource *source)
Add an audio source to the selector.
AudioSelector(void)
Default constuctor.
void removeSource(AudioSource *source)
Remove a previously added audio source from the selector.
bool autoSelectEnabled(AudioSource *source)
Find out if auto select is enabled or not for the given source.
This file contains the base class for an audio source.
~AudioSelector(void)
Destructor.
void disableAutoSelect(AudioSource *source)
Disable autoselection on the given source.
void selectSource(AudioSource *source)
Select one of the previously added audio sources.
void setSelectionPrio(AudioSource *source, int prio)
Set the prio to be used for selection.
Namespace for the asynchronous programming classes.
The base class for an audio source.
This class is used to select one of many audio streams.
void enableAutoSelect(AudioSource *source, int prio)
Enable autoselection on the given source.