Sync to upstream r4036.
Adrian Knoth
13 years ago
0 | Description: Sync with upstream SVN trunk revision 4024 | |
0 | Description: Sync with upstream SVN trunk revision 4036 | |
1 | 1 | From: Jonas Smedegaard <dr@jones.dk> |
2 | 2 | Forwarded: yes |
3 | Last-Update: 2010-06-17 | |
3 | Last-Update: 2010-07-30 | |
4 | 4 | --- a/ChangeLog |
5 | 5 | +++ b/ChangeLog |
6 | @@ -19,194 +19,263 @@ | |
6 | @@ -19,194 +19,274 @@ | |
7 | 7 | Florian Faber |
8 | 8 | Michael Voigt |
9 | 9 | Torben Hohn |
16 | 16 | +Devin Anderson |
17 | 17 | +Josh Green |
18 | 18 | Mario Lang |
19 | +Arnold Krille | |
19 | +Arnold Krille | |
20 | +Jan Engelhardt | |
21 | +Adrian Knoth | |
20 | 22 | |
21 | 23 | --------------------------- |
22 | 24 | Jackdmp changes log |
24 | 26 | +--------------------------- |
25 | 27 | |
26 | 28 | -2010-01-29 Gabriel M. Beddingfield <gabriel@teuton.org> |
29 | +2010-07-07 Stephane Letz <letz@grame.fr> | |
30 | ||
31 | - * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts to output SVG instead of PDF. | |
32 | + * Jan Engelhardt patch for get_cycles on SPARC. | |
33 | + * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch from ticket 177. | |
34 | ||
35 | -2009-12-15 Stephane Letz <letz@grame.fr> | |
36 | +2010-06-29 Stephane Letz <letz@grame.fr> | |
37 | ||
38 | - * Shared memory manager was calling abort in case of fatal error, now return an error in caller. | |
39 | + * Arnold Krille firewire snooping patch. | |
40 | ||
41 | -2009-12-13 Stephane Letz <letz@grame.fr> | |
27 | 42 | +2010-06-16 Stephane Letz <letz@grame.fr> |
28 | 43 | |
29 | - * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts to output SVG instead of PDF. | |
44 | - * Mario Lang alsa_io time calculation overflow patch. | |
30 | 45 | + * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch. |
31 | 46 | |
32 | -2009-12-15 Stephane Letz <letz@grame.fr> | |
47 | -2009-12-10 Stephane Letz <letz@grame.fr> | |
33 | 48 | +2010-06-13 Stephane Letz <letz@grame.fr> |
34 | 49 | |
35 | - * Shared memory manager was calling abort in case of fatal error, now return an error in caller. | |
50 | - * Use a QUIT notification to properly quit the server channel, the server channel thread can then be 'stopped' instead of 'canceled'. | |
36 | 51 | + * Fix JackPosixSemaphore::TimedWait : same behavior as JackPosixSemaphore::Wait regarding EINTR. |
37 | 52 | |
38 | -2009-12-13 Stephane Letz <letz@grame.fr> | |
53 | -2009-12-09 Stephane Letz <letz@grame.fr> | |
39 | 54 | +2010-05-31 Stephane Letz <letz@grame.fr> |
40 | 55 | |
41 | - * Mario Lang alsa_io time calculation overflow patch. | |
56 | - * When threads are cancelled, the exception has to be rethrown. | |
42 | 57 | + * Fix from Fernando Lopez-Lezcano for compilation on fc13. |
43 | 58 | |
44 | -2009-12-10 Stephane Letz <letz@grame.fr> | |
59 | -2009-12-08 Stephane Letz <letz@grame.fr> | |
45 | 60 | +2010-05-30 Stephane Letz <letz@grame.fr> |
46 | 61 | |
47 | - * Use a QUIT notification to properly quit the server channel, the server channel thread can then be 'stopped' instead of 'canceled'. | |
62 | - * Josh Green ALSA driver capture only patch. | |
48 | 63 | + * David Garcia Garzon netone patch. |
49 | 64 | |
50 | 65 | +2010-05-27 Stephane Letz <letz@grame.fr> |
115 | 130 | + |
116 | 131 | + * Use a QUIT notification to properly quit the server channel, the server channel thread can then be 'stopped' instead of 'canceled'. |
117 | 132 | + |
118 | 2009-12-09 Stephane Letz <letz@grame.fr> | |
119 | ||
120 | - * When threads are cancelled, the exception has to be rethrown. | |
121 | - | |
133 | +2009-12-09 Stephane Letz <letz@grame.fr> | |
134 | + | |
122 | 135 | + * When threads are cancelled, the exception has to be rethrown. |
123 | 136 | + |
124 | 2009-12-08 Stephane Letz <letz@grame.fr> | |
125 | ||
126 | - * Josh Green ALSA driver capture only patch. | |
127 | - | |
137 | +2009-12-08 Stephane Letz <letz@grame.fr> | |
138 | + | |
128 | 139 | + * Josh Green ALSA driver capture only patch. |
129 | 140 | + |
130 | 141 | 2009-12-03 Stephane Letz <letz@grame.fr> |
370 | 381 | * Fix issues in JackNetDriver::DecodeTransportData and JackNetDriver::Initialize. |
371 | 382 | |
372 | 383 | 2009-08-28 Stephane Letz <letz@grame.fr> |
373 | @@ -557,7 +626,7 @@ | |
384 | @@ -557,7 +637,7 @@ | |
374 | 385 | 2008-11-21 Stephane Letz <letz@grame.fr> |
375 | 386 | |
376 | 387 | * Report ringbuffer.c fixes from JACK1. |
1269 | 1280 | } |
1270 | 1281 | --- a/linux/firewire/JackFFADODriver.cpp |
1271 | 1282 | +++ b/linux/firewire/JackFFADODriver.cpp |
1272 | @@ -429,7 +429,7 @@ | |
1283 | @@ -338,6 +338,7 @@ | |
1284 | driver->device_options.verbose = params->verbose_level; | |
1285 | driver->capture_frame_latency = params->capture_frame_latency; | |
1286 | driver->playback_frame_latency = params->playback_frame_latency; | |
1287 | + driver->device_options.snoop_mode = params->snoop_mode; | |
1288 | ||
1289 | debugPrint(DEBUG_LEVEL_STARTUP, " Driver compiled on %s %s", __DATE__, __TIME__); | |
1290 | debugPrint(DEBUG_LEVEL_STARTUP, " Created driver %s", name); | |
1291 | @@ -429,7 +430,7 @@ | |
1273 | 1292 | |
1274 | 1293 | driver->capture_channels[chn].stream_type = ffado_streaming_get_capture_stream_type(driver->dev, chn); |
1275 | 1294 | if (driver->capture_channels[chn].stream_type == ffado_stream_type_audio) { |
1278 | 1297 | printMessage ("Registering audio capture port %s", buf); |
1279 | 1298 | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, |
1280 | 1299 | JACK_DEFAULT_AUDIO_TYPE, |
1281 | @@ -455,7 +455,7 @@ | |
1300 | @@ -455,7 +456,7 @@ | |
1282 | 1301 | fCaptureChannels++; |
1283 | 1302 | |
1284 | 1303 | } else if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) { |
1287 | 1306 | printMessage ("Registering midi capture port %s", buf); |
1288 | 1307 | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, |
1289 | 1308 | JACK_DEFAULT_MIDI_TYPE, |
1290 | @@ -502,7 +502,7 @@ | |
1309 | @@ -502,7 +503,7 @@ | |
1291 | 1310 | driver->playback_channels[chn].stream_type = ffado_streaming_get_playback_stream_type(driver->dev, chn); |
1292 | 1311 | |
1293 | 1312 | if (driver->playback_channels[chn].stream_type == ffado_stream_type_audio) { |
1296 | 1315 | printMessage ("Registering audio playback port %s", buf); |
1297 | 1316 | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, |
1298 | 1317 | JACK_DEFAULT_AUDIO_TYPE, |
1299 | @@ -530,7 +530,7 @@ | |
1318 | @@ -530,7 +531,7 @@ | |
1300 | 1319 | jack_log("JackFFADODriver::Attach fPlaybackPortList[i] %ld ", port_index); |
1301 | 1320 | fPlaybackChannels++; |
1302 | 1321 | } else if (driver->playback_channels[chn].stream_type == ffado_stream_type_midi) { |
1305 | 1324 | printMessage ("Registering midi playback port %s", buf); |
1306 | 1325 | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, |
1307 | 1326 | JACK_DEFAULT_MIDI_TYPE, |
1308 | @@ -753,12 +753,20 @@ | |
1327 | @@ -753,12 +754,20 @@ | |
1309 | 1328 | strcpy (desc->name, "firewire"); // size MUST be less then JACK_DRIVER_NAME_MAX + 1 |
1310 | 1329 | strcpy(desc->desc, "Linux FFADO API based audio backend"); // size MUST be less then JACK_DRIVER_PARAM_DESC + 1 |
1311 | 1330 | |
1312 | 1331 | - desc->nparams = 11; |
1313 | + desc->nparams = 12; | |
1332 | + desc->nparams = 13; | |
1314 | 1333 | |
1315 | 1334 | params = (jack_driver_param_desc_t *)calloc (desc->nparams, sizeof (jack_driver_param_desc_t)); |
1316 | 1335 | desc->params = params; |
1327 | 1346 | strcpy (params[i].name, "period"); |
1328 | 1347 | params[i].character = 'p'; |
1329 | 1348 | params[i].type = JackDriverParamUInt; |
1330 | @@ -881,7 +889,7 @@ | |
1349 | @@ -846,6 +855,14 @@ | |
1350 | strcpy (params[i].short_desc, "libffado verbose level"); | |
1351 | strcpy (params[i].long_desc, params[i].short_desc); | |
1352 | ||
1353 | + i++; | |
1354 | + strcpy (params[i].name, "snoop"); | |
1355 | + params[i].character = 'X'; | |
1356 | + params[i].type = JackDriverParamBool; | |
1357 | + params[i].value.i = 0; | |
1358 | + strcpy (params[i].short_desc, "Snoop firewire traffic"); | |
1359 | + strcpy (params[i].long_desc, params[i].short_desc); | |
1360 | + | |
1361 | return desc; | |
1362 | } | |
1363 | ||
1364 | @@ -855,7 +872,7 @@ | |
1365 | ||
1366 | ffado_jack_settings_t cmlparams; | |
1367 | ||
1368 | - char *device_name="hw:0"; | |
1369 | + char *device_name=(char*)"hw:0"; | |
1370 | ||
1371 | cmlparams.period_size_set = 0; | |
1372 | cmlparams.sample_rate_set = 0; | |
1373 | @@ -881,7 +898,7 @@ | |
1331 | 1374 | |
1332 | 1375 | switch (param->character) { |
1333 | 1376 | case 'd': |
1336 | 1379 | break; |
1337 | 1380 | case 'p': |
1338 | 1381 | cmlparams.period_size = param->value.ui; |
1382 | @@ -911,7 +928,7 @@ | |
1383 | cmlparams.slave_mode = param->value.ui; | |
1384 | break; | |
1385 | case 'X': | |
1386 | - cmlparams.snoop_mode = param->value.ui; | |
1387 | + cmlparams.snoop_mode = param->value.i; | |
1388 | break; | |
1389 | case 'v': | |
1390 | cmlparams.verbose_level = param->value.ui; | |
1339 | 1391 | --- a/macosx/Jack-Info.plist |
1340 | 1392 | +++ b/macosx/Jack-Info.plist |
1341 | 1393 | @@ -7,7 +7,7 @@ |
9586 | 9638 | opt.add_option('--dbus', action='store_true', default=False, help='Enable D-Bus JACK (jackdbus)') |
9587 | 9639 | opt.add_option('--classic', action='store_true', default=False, help='Force enable standard JACK (jackd) even if D-Bus JACK (jackdbus) is enabled too') |
9588 | 9640 | opt.add_option('--doxygen', action='store_true', default=False, help='Enable build of doxygen documentation') |
9589 | @@ -69,7 +70,10 @@ | |
9641 | @@ -69,13 +70,16 @@ | |
9590 | 9642 | opt.add_option('--mixed', action='store_true', default=False, help='Build with 32/64 bits mixed mode') |
9591 | 9643 | opt.add_option('--clients', default=64, type="int", dest="clients", help='Maximum number of JACK clients') |
9592 | 9644 | opt.add_option('--ports-per-application', default=768, type="int", dest="application_ports", help='Maximum number of ports per application') |
9598 | 9650 | opt.sub_options('dbus') |
9599 | 9651 | |
9600 | 9652 | def configure(conf): |
9653 | platform = Utils.detect_platform() | |
9654 | conf.env['IS_MACOSX'] = platform == 'darwin' | |
9655 | - conf.env['IS_LINUX'] = platform == 'linux' | |
9656 | + conf.env['IS_LINUX'] = platform == 'linux' or platform == 'posix' | |
9657 | conf.env['IS_SUN'] = platform == 'sunos' | |
9658 | ||
9659 | if conf.env['IS_LINUX']: | |
9601 | 9660 | @@ -110,6 +114,15 @@ |
9602 | 9661 | conf.sub_config('common') |
9603 | 9662 | if conf.env['IS_LINUX']: |
9685 | 9744 | * @see jack_port_name_size(), jack_port_type_size() |
9686 | 9745 | --- a/dbus/sigsegv.c |
9687 | 9746 | +++ b/dbus/sigsegv.c |
9688 | @@ -99,7 +99,13 @@ | |
9747 | @@ -98,8 +98,18 @@ | |
9748 | jack_error("info.si_errno = %d", info->si_errno); | |
9689 | 9749 | jack_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); |
9690 | 9750 | jack_error("info.si_addr = %p", info->si_addr); |
9751 | +#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) | |
9691 | 9752 | for(i = 0; i < NGREG; i++) |
9692 | 9753 | - jack_error("reg[%02d] = 0x" REGFORMAT, i, ucontext->uc_mcontext.gregs[i]); |
9693 | 9754 | + jack_error("reg[%02d] = 0x" REGFORMAT, i, |
9694 | 9755 | +#if defined(__powerpc__) |
9695 | 9756 | + ucontext->uc_mcontext.uc_regs[i] |
9757 | +#elif defined(__sparc__) && defined(__arch64__) | |
9758 | + ucontext->uc_mcontext.mc_gregs[i] | |
9696 | 9759 | +#else |
9697 | 9760 | + ucontext->uc_mcontext.gregs[i] |
9698 | 9761 | +#endif |
9699 | 9762 | + ); |
9763 | +#endif /* alpha, ia64, kFreeBSD, arm, hppa */ | |
9700 | 9764 | |
9701 | 9765 | #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) |
9702 | 9766 | # if defined(SIGSEGV_STACK_IA64) |
10684 | 10748 | *status = (jack_status_t)my_status1; |
10685 | 10749 | --- a/linux/cycles.h |
10686 | 10750 | +++ b/linux/cycles.h |
10687 | @@ -103,6 +103,20 @@ | |
10751 | @@ -53,6 +53,16 @@ | |
10688 | 10752 | |
10689 | 10753 | #endif |
10690 | 10754 | |
10755 | +#ifdef __sparc_v9__ | |
10756 | +/* rd is V9 only */ | |
10757 | +static inline unsigned long long get_cycles(void) | |
10758 | +{ | |
10759 | + unsigned long long res; | |
10760 | + __asm__ __volatile__("rd %%tick, %0" : "=r"(res)); | |
10761 | + return res; | |
10762 | +} | |
10763 | +#endif | |
10764 | + | |
10765 | #ifdef __PPC__ | |
10766 | ||
10767 | /* PowerPC */ | |
10768 | @@ -102,6 +112,33 @@ | |
10769 | } | |
10770 | ||
10771 | #endif | |
10772 | + | |
10773 | +#if defined(__FreeBSD_kernel__) | |
10774 | + | |
10775 | +#warning No suitable get_cycles() implementation. Returning 0 instead | |
10776 | + | |
10777 | +typedef unsigned long long cycles_t; | |
10778 | + | |
10779 | +static inline cycles_t get_cycles(void) | |
10780 | +{ | |
10781 | + return 0; | |
10782 | +} | |
10783 | + | |
10784 | +#endif | |
10785 | + | |
10691 | 10786 | +/* everything else but x86, amd64 or ppc */ |
10692 | 10787 | +#if !defined (__PPC__) && !defined (__x86_64__) && !defined (__i386__) |
10693 | 10788 | + |
10701 | 10796 | +} |
10702 | 10797 | + |
10703 | 10798 | +#endif |
10704 | + | |
10799 | ||
10705 | 10800 | #endif |
10706 | 10801 | |
10707 | #endif /* __jack_cycles_h__ */ | |
10708 | 10802 | --- a/macosx/coremidi/JackCoreMidiDriver.cpp |
10709 | 10803 | +++ b/macosx/coremidi/JackCoreMidiDriver.cpp |
10710 | 10804 | @@ -40,11 +40,13 @@ |
10726 | 10820 | |
10727 | 10821 | --- a/common/JackClient.cpp |
10728 | 10822 | +++ b/common/JackClient.cpp |
10823 | @@ -1012,7 +1012,7 @@ | |
10824 | if (va->load_name && (strlen(va->load_name) >= JACK_PATH_MAX)) { | |
10825 | jack_error("\"%s\" is too long for a shared object name.\n" | |
10826 | "Please use %lu characters or less.", | |
10827 | - va->load_name, PATH_MAX); | |
10828 | + va->load_name, JACK_PATH_MAX); | |
10829 | int my_status1 = *status | (JackFailure | JackInvalidOption); | |
10830 | *status = (jack_status_t)my_status1; | |
10831 | return 0; | |
10729 | 10832 | @@ -1027,7 +1027,8 @@ |
10730 | 10833 | return 0; |
10731 | 10834 | } |
12246 | 12349 | if (sem_close(fSemaphore) != 0) { |
12247 | 12350 | jack_error("Disconnect: can't disconnect named semaphore name = %s err = %s", fName, strerror(errno)); |
12248 | 12351 | return false; |
12352 | --- a/common/jack/systemdeps.h | |
12353 | +++ b/common/jack/systemdeps.h | |
12354 | @@ -53,7 +53,7 @@ | |
12355 | ||
12356 | #endif /* WIN32 */ | |
12357 | ||
12358 | -#if defined(__APPLE__) || defined(__linux__) || defined(__sun__) || defined(sun) | |
12359 | +#if defined(__APPLE__) || defined(__linux__) || defined(__sun__) || defined(sun) || defined(__unix__) | |
12360 | #include <inttypes.h> | |
12361 | #include <pthread.h> | |
12362 | #include <sys/types.h> |