Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

25 lines
561B

  1. #ifndef mixer_h_
  2. #define mixer_h_
  3. #include "AudioStream.h"
  4. class AudioMixer4 : public AudioStream
  5. {
  6. public:
  7. AudioMixer4(void) : AudioStream(4, inputQueueArray) {
  8. for (int i=0; i<4; i++) multiplier[i] = 65536;
  9. }
  10. virtual void update(void);
  11. void gain(unsigned int channel, float gain) {
  12. if (channel >= 4) return;
  13. if (gain > 32767.0f) gain = 32767.0f;
  14. else if (gain < 0.0f) gain = 0.0f;
  15. multiplier[channel] = gain * 65536.0f; // TODO: proper roundoff?
  16. }
  17. private:
  18. int32_t multiplier[4];
  19. audio_block_t *inputQueueArray[4];
  20. };
  21. #endif