Async  0.18.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.
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.