00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _AFLIBAUDIOMIXER_H_
00024 #define _AFLIBAUDIOMIXER_H_
00025
00026 #include "aflibAudio.h"
00027 #include "aflibMixerItem.h"
00028 #include <set>
00029
00030
00051 class aflibAudioMixer : public aflibAudio {
00052
00053 public:
00054
00055
00056 aflibAudioMixer(
00057 aflibAudio& audio);
00058
00059 aflibAudioMixer();
00060
00061 ~aflibAudioMixer();
00062
00063 aflibStatus
00064 addMix(
00065 int input,
00066 int in_chan,
00067 int out_chan,
00068 int amp);
00069
00070 aflibStatus
00071 delMix(
00072 int input,
00073 int in_chan,
00074 int out_chan);
00075
00076 void
00077 delAllMix();
00078
00079 int
00080 getNumOfMixs();
00081
00082 aflibStatus
00083 getMix(
00084 int mix_num,
00085 int& input,
00086 int& in_chan,
00087 int& out_chan,
00088 int& amp);
00089
00090 void
00091 setInputConfig(const aflibConfig& cfg);
00092
00093 aflibStatus
00094 compute_segment(
00095 list<aflibData *>& data,
00096 long long position = -1) ;
00097
00099 const char *
00100 getName() const { return "aflibAudioMixer";};
00101
00102 bool
00103 isDataSizeSupported(aflib_data_size size);
00104
00105 bool
00106 isEndianSupported(aflib_data_endian end);
00107
00108 bool
00109 isSampleRateSupported(int& rate);
00110
00111
00112 private:
00113
00114 aflibAudioMixer(const aflibAudioMixer& op);
00115
00116 const aflibAudioMixer&
00117 operator=(const aflibAudioMixer& op);
00118
00119 void
00120 parentWasDestroyed(int parent_id);
00121
00122
00123 set < aflibMixerItem, less<aflibMixerItem> > _mix_item;
00124
00125 };
00126
00127 #endif