34 #ifndef __JACK_FFADO_DRIVER_H__
35 #define __JACK_FFADO_DRIVER_H__
37 #include <libffado/ffado.h>
45 #include <netinet/in.h>
49 #include <semaphore.h>
58 #define DEBUG_LEVEL_BUFFERS (1<<0)
59 #define DEBUG_LEVEL_HANDLERS (1<<1)
60 #define DEBUG_LEVEL_XRUN_RECOVERY (1<<2)
61 #define DEBUG_LEVEL_WAIT (1<<3)
63 #define DEBUG_LEVEL_RUN_CYCLE (1<<8)
65 #define DEBUG_LEVEL_PACKETCOUNTER (1<<16)
66 #define DEBUG_LEVEL_STARTUP (1<<17)
67 #define DEBUG_LEVEL_THREADS (1<<18)
73 #define DEBUG_LEVEL ( DEBUG_LEVEL_RUN_CYCLE | \
74 (DEBUG_LEVEL_XRUN_RECOVERY)| DEBUG_LEVEL_STARTUP | DEBUG_LEVEL_WAIT | DEBUG_LEVEL_PACKETCOUNTER)
76 #warning Building debug build!
78 #define printMessage(format, args...) jack_error( "firewire MSG: %s:%d (%s): " format, __FILE__, __LINE__, __FUNCTION__, ##args )
79 #define printError(format, args...) jack_error( "firewire ERR: %s:%d (%s): " format, __FILE__, __LINE__, __FUNCTION__, ##args )
81 #define printEnter() jack_error( "FWDRV ENTERS: %s (%s)\n", __FUNCTION__, __FILE__)
82 #define printExit() jack_error( "FWDRV EXITS: %s (%s)\n", __FUNCTION__, __FILE__)
86 #define debugError(format, args...) jack_error( "firewire ERR: %s:%d (%s): " format, __FILE__, __LINE__, __FUNCTION__, ##args )
87 #define debugPrint(Level, format, args...) if(DEBUG_LEVEL & (Level)) jack_error("DEBUG %s:%d (%s) :" format, __FILE__, __LINE__, __FUNCTION__, ##args );
88 #define debugPrintShort(Level, format, args...) if(DEBUG_LEVEL & (Level)) jack_error( format,##args );
89 #define debugPrintWithTimeStamp(Level, format, args...) if(DEBUG_LEVEL & (Level)) jack_error( "%16lu: "format, debugGetCurrentUTime(),##args );
90 #define SEGFAULT int *test=NULL; *test=1;
94 #define printMessage(format, args...) if(g_verbose) \
95 jack_error("firewire MSG: " format, ##args )
96 #define printError(format, args...) jack_error("firewire ERR: " format, ##args )
101 #define debugError(format, args...)
102 #define debugPrint(Level, format, args...)
103 #define debugPrintShort(Level, format, args...)
104 #define debugPrintWithTimeStamp(Level, format, args...)
108 #define FFADO_RT_PRIORITY_PACKETIZER_RELATIVE 5
122 jack_nframes_t period_size;
128 jack_nframes_t buffer_size;
133 jack_nframes_t capture_frame_latency;
134 jack_nframes_t playback_frame_latency;
144 ffado_streaming_stream_type stream_type;
145 uint32_t *midi_buffer;
152 ffado_streaming_stream_type stream_type;
153 uint32_t *midi_buffer;
165 jack_nframes_t sample_rate;
166 jack_nframes_t period_size;
167 unsigned long wait_time;
169 jack_time_t wait_last;
170 jack_time_t wait_next;
173 jack_client_t *client;
186 channel_t playback_nchannels;
187 channel_t capture_nchannels;
191 ffado_sample_t *nullbuffer;
192 ffado_sample_t *scratchbuffer;
194 jack_nframes_t playback_frame_latency;
195 jack_nframes_t capture_frame_latency;
197 ffado_device_info_t device_info;
198 ffado_options_t device_options;