root/trunk/libffado/config.h.in

Revision 1254, 6.8 kB (checked in by ppalmers, 13 years ago)

split config.h into config/version/debug_config to allow for faster compilation (splits dependencies)

Line 
1 /* config.h.in. */
2 #ifndef CONFIG_H
3 #define CONFIG_H
4
5 #define BINDIR "$BINDIR"
6 #define LIBDIR "$LIBDIR"
7 #define SHAREDIR "$SHAREDIR"
8
9 /* Define indicating availability of lrint() */
10 #define HAVE_LRINT $HAVE_LRINT
11
12 /* Define indicatin availability of lrintf() */
13 #define HAVE_LRINTF $HAVE_LRINTF
14
15 // serialization
16 #define SERIALIZE_USE_EXPAT $SERIALIZE_USE_EXPAT
17
18 #define CACHEDIR "$CACHEDIR"
19
20 // discovery
21 #define ENABLE_DISCOVERY_CACHE               1
22
23 // watchdog
24 #define WATCHDOG_DEFAULT_CHECK_INTERVAL_USECS   (1000*1000*4)
25 #define WATCHDOG_DEFAULT_RUN_REALTIME           1
26 #define WATCHDOG_DEFAULT_PRIORITY               98
27
28 // threading
29 #define THREAD_MAX_RTPRIO                   98
30 #define THREAD_MIN_RTPRIO                   1
31
32 // time
33
34 // we should be using absolute clock_nanosleep
35 // but on my system it causes a problem on shutdown.
36 #define USE_ABSOLUTE_NANOSLEEP              1
37
38 // 1394 service constants
39 #define IEEE1394SERVICE_USE_CYCLETIMER_DLL                         1
40 #define IEEE1394SERVICE_CYCLETIMER_DLL_UPDATE_INTERVAL_USEC   200000
41 #define IEEE1394SERVICE_MAX_FIREWIRE_PORTS                         4
42
43 #define IEEE1394SERVICE_CYCLETIMER_HELPER_RUN_REALTIME       1
44 #define IEEE1394SERVICE_CYCLETIMER_HELPER_PRIO_INCREASE    -10
45
46 // config rom read wait interval
47 #define IEEE1394SERVICE_CONFIGROM_READ_WAIT_USECS         1000
48
49
50 // The current version of libiec61883 doesn't seem to calculate
51 // the bandwidth correctly. Defining this to non-zero skips
52 // bandwidth allocation when doing CMP connections.
53 #define IEEE1394SERVICE_SKIP_IEC61883_BANDWIDTH_ALLOCATION   1
54
55 #define MINIMUM_INTERRUPTS_PER_PERIOD                       2U
56
57 // These are the result of a lot of trial and error
58 // due to weirdness in the kernel layer
59 #define MAX_XMIT_PACKET_SIZE                         (2048-16)
60 #define MAX_XMIT_NB_BUFFERS                                200
61
62 #define ISOHANDLER_FLUSH_BEFORE_ITERATE                      0
63
64 #define ISOHANDLER_DEATH_DETECT_TIMEOUT_USECS        1000000LL
65
66 #define ISOHANDLER_CHECK_CTR_RECONSTRUCTION                  0
67
68 #define ISOHANDLERMANAGER_MAX_ISO_HANDLERS_PER_PORT         16
69 #define ISOHANDLERMANAGER_MAX_STREAMS_PER_ISOTHREAD         16
70
71 // The best setup is if the receive handlers have lower priority
72 // than the client thread since that ensures that as soon as we
73 // received sufficient frames, the client thread runs.
74 // The transmit thread should have higher priority to ensure that
75 // all available data is flushed to the ISO kernel buffers as
76 // soon as possible
77 // At this moment, the jack backend uses base+5 to init ffado
78 // prio
79 #define ISOHANDLERMANAGER_ISO_PRIO_INCREASE                  0
80 #define ISOHANDLERMANAGER_ISO_PRIO_INCREASE_RECV            -6
81 #define ISOHANDLERMANAGER_ISO_PRIO_INCREASE_XMIT             1
82
83 // the timeout for ISO activity on any thread
84 // NOTE: don't make this 0
85 #define ISOHANDLERMANAGER_ISO_TASK_WAIT_TIMEOUT_USECS        1000000LL
86
87 // allows to add some processing margin. This shifts the time
88 // at which the buffer is transfer()'ed, making things somewhat
89 // more robust. It should be noted though that shifting the transfer
90 // time to a later time instant also causes the xmit buffer fill to be
91 // lower on average.
92 #define STREAMPROCESSORMANAGER_SIGNAL_DELAY_TICKS           (3072*6)
93
94 // startup control
95 #define STREAMPROCESSORMANAGER_CYCLES_FOR_DRYRUN            40000
96 #define STREAMPROCESSORMANAGER_CYCLES_FOR_STARTUP           200
97 #define STREAMPROCESSORMANAGER_PRESTART_CYCLES_FOR_XMIT     20
98 #define STREAMPROCESSORMANAGER_PRESTART_CYCLES_FOR_RECV     0
99 #define STREAMPROCESSORMANAGER_SYNCSTART_TRIES              10
100 #define STREAMPROCESSORMANAGER_SYNC_WAIT_TIME_MSEC          200
101 #define STREAMPROCESSORMANAGER_ALIGN_AVERAGE_TIME_MSEC      400
102 #define STREAMPROCESSORMANAGER_NB_ALIGN_TRIES               40
103
104 #define STREAMPROCESSORMANAGER_DYNAMIC_SYNC_DELAY           0
105
106 // FIXME: note that it will probably be better to use a DLL bandwidth that is
107 //        dependant on the sample rate
108 #define TIMESTAMPEDBUFFER_DLL_BANDWIDTH                     (0.01)
109
110 // -- AMDTP options -- //
111
112 // in ticks
113 // as per AMDTP2.1:
114 // 354.17us + 125us @ 24.576ticks/usec = 11776.08192 ticks
115 #define AMDTP_TRANSMIT_TRANSFER_DELAY   (11776U)
116
117 // the absolute minimum number of cycles we want to transmit
118 // a packet ahead of the presentation time. The nominal time
119 // the packet is transmitted ahead of the presentation time is
120 // given by AMDTP_TRANSMIT_TRANSFER_DELAY (in ticks), but in case we
121 // are too late for that, this constant defines how late we can
122 // be.
123 #define AMDTP_MIN_CYCLES_BEFORE_PRESENTATION                1
124
125 // the absolute maximum number of cycles we want to transmit
126 // a packet ahead of the ideal transmit time. The nominal time
127 // the packet is transmitted ahead of the presentation time is
128 // given by AMDTP_TRANSMIT_TRANSFER_DELAY (in ticks), but we can send
129 // packets early if we want to. (not completely according to spec)
130 // (for spec compliance you need to specify a value of 0)
131 #define AMDTP_MAX_CYCLES_TO_TRANSMIT_EARLY                  0
132
133 // ensure that the AMDTP SP clips all float values to [-1.0..1.0]
134 #define AMDTP_CLIP_FLOATS                                   1
135
136 // Allow that devices request that the AMDTP transmit SP adds
137 // payload to the NO-DATA packets.
138 #define AMDTP_ALLOW_PAYLOAD_IN_NODATA_XMIT                  1
139
140 // Default setting for the payload setting if
141 // AMDTP_ALLOW_PAYLOAD_IN_NODATA_XMIT is enabled. Devices can
142 // explicity override this
143 #define AMDTP_SEND_PAYLOAD_IN_NODATA_XMIT_BY_DEFAULT     true
144
145 // -- MOTU options -- //
146
147 // the transfer delay is substracted from the ideal presentation
148 // time to obtain a corrected presentation time. This values is
149 // then used to stamp the packet and determine the transmission
150 // time instant.
151 #define MOTU_TRANSMIT_TRANSFER_DELAY    (0U)
152
153 // the absolute minimum number of cycles we want to transmit
154 // a packet ahead of the presentation time. The nominal time
155 // the packet is transmitted ahead of the presentation time is
156 // given by MOTU_TRANSMIT_TRANSFER_DELAY (in ticks), but in case we
157 // are too late for that, this constant defines how late we can
158 // be.
159 #define MOTU_MIN_CYCLES_BEFORE_PRESENTATION                0
160
161 // the absolute maximum number of cycles we want to transmit
162 // a packet ahead of the ideal transmit time. The nominal time
163 // the packet is transmitted ahead of the presentation time is
164 // given by MOTU_TRANSMIT_TRANSFER_DELAY (in ticks), but we can send
165 // packets early if we want to.
166 #define MOTU_MAX_CYCLES_TO_TRANSMIT_EARLY                  2
167
168 // ensure that the MOTU tx SP clips all float values to [-1.0..1.0]
169 #define MOTU_CLIP_FLOATS                                   1
170
171 /// The unavoidable device specific hacks
172
173 // Use the information in the music plug instead of that in the
174 // cluster info block for the stream configuration. Should not
175 // be necessary
176 #define AVC_STREAMCONFIG_USE_MUSICPLUG                     0
177
178 #endif // CONFIG_H
Note: See TracBrowser for help on using the browser.