cannam@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@0: cannam@0: #ifndef _AUDIO_JACK_SOURCE_H_ cannam@0: #define _AUDIO_JACK_SOURCE_H_ cannam@0: cannam@0: #ifdef HAVE_JACK cannam@0: cannam@0: #include cannam@0: #include cannam@0: cannam@0: #include "AudioCallbackRecordSource.h" cannam@0: cannam@0: #include cannam@0: cannam@0: class AudioCallbackRecordTarget; cannam@0: cannam@0: class AudioJACKSource : public AudioCallbackRecordSource cannam@0: { cannam@0: public: cannam@0: AudioJACKSource(AudioCallbackRecordTarget *target); cannam@0: virtual ~AudioJACKSource(); cannam@0: cannam@0: virtual bool isOK() const; cannam@0: cannam@0: protected: cannam@0: int process(jack_nframes_t nframes); cannam@0: int xrun(); cannam@0: cannam@0: static int processStatic(jack_nframes_t, void *); cannam@0: static int xrunStatic(void *); cannam@0: cannam@0: jack_client_t *m_client; cannam@0: std::vector m_inputs; cannam@0: jack_nframes_t m_bufferSize; cannam@0: jack_nframes_t m_sampleRate; cannam@0: QMutex m_mutex; cannam@0: }; cannam@0: cannam@0: #endif /* HAVE_JACK */ cannam@0: cannam@0: #endif cannam@0: