49 lines
834 B
C++
49 lines
834 B
C++
/* $Id$ */
|
|
|
|
#ifndef JACK_H
|
|
#define JACK_H
|
|
|
|
#include <jack/jack.h>
|
|
#include "loop.h"
|
|
#include "ringbuffer.h"
|
|
|
|
#define NUM_LOOPS 9
|
|
|
|
class Jack {
|
|
private:
|
|
bool m_connected;
|
|
jack_client_t *m_client;
|
|
jack_port_t *m_input;
|
|
jack_port_t *m_output;
|
|
jack_port_t *m_control;
|
|
|
|
Loop m_loops[NUM_LOOPS];
|
|
RingBuffer *m_buffer;
|
|
|
|
bool m_recording;
|
|
int m_recording_loop;
|
|
jack_nframes_t m_recording_time;
|
|
|
|
static void ShutdownCallbackHandler(void *arg)
|
|
{
|
|
((Jack *)arg)->ShutdownCallback();
|
|
}
|
|
static int ProcessCallbackHandler(jack_nframes_t nframes, void *arg)
|
|
{
|
|
return ((Jack *)arg)->ProcessCallback(nframes);
|
|
}
|
|
|
|
void ShutdownCallback();
|
|
int ProcessCallback(jack_nframes_t nframes);
|
|
|
|
public:
|
|
Jack();
|
|
~Jack();
|
|
|
|
bool Connect();
|
|
void Disconnect();
|
|
void Run();
|
|
};
|
|
|
|
#endif /* JACK_H */
|