GEAudioOut.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. *
  3. * GE::GA Qt Audio out
  4. * tuomo.hirvonen@digia.com
  5. *
  6. */
  7. #ifndef __GE_QTAUDIOOUT__
  8. #define __GE_QTAUDIOOUT__
  9. #include <QtCore/qobject.h>
  10. #include <QtCore/qfile.h>
  11. #include <QtMultimedia/qaudio.h>
  12. #include <QtMultimedia/qaudiodeviceinfo.h>
  13. #include <QtCore/qtimer.h>
  14. #include <QtCore/qstring.h>
  15. #include <QThread>
  16. #include "GEInterfaces.h"
  17. class QAudioOutput;
  18. namespace GE {
  19. class AudioOut : public QThread {
  20. Q_OBJECT
  21. public:
  22. AudioOut(QObject *parent, GE::IAudioSource *source);
  23. virtual ~AudioOut();
  24. private slots:
  25. void audioNotify(); // for internal notify "solution"
  26. protected:
  27. void tick();
  28. virtual void run(); // this is for the threaded mode only
  29. qint64 m_samplesMixed;
  30. QAudioOutput *m_audioOutput;
  31. QIODevice *m_outTarget;
  32. GE::IAudioSource *m_source;
  33. int m_runstate;
  34. AUDIO_SAMPLE_TYPE *m_sendBuffer;
  35. int m_sendBufferSize;
  36. };
  37. }
  38. #endif