| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Travis error:
20:43:59 runner ['clang++', '-flax-vector-conversions', '-Wall', '-std=gnu++11', '-fPIC', '-Imacosx', '-I../macosx', '-Imacosx/RPC', '-I../macosx/RPC', '-Iposix', '-I../posix', '-Icommon', '-I../common', '-Icommon/jack', '-I../common/jack', '-I.', '-I..', '-I/usr/local/Cellar/opus/1.3/include/opus', '-DAFTEN=1', '-DHAVE_DOXYGEN=0', '-DHAVE_ALSA=0', '-DHAVE_FIREWIRE=0', '-DHAVE_IIO=0', '-DHAVE_PORTAUDIO=0', '-DHAVE_WINMME=0', '-DHAVE_CELT_API_0_11=0', '-DHAVE_CELT_API_0_8=0', '-DHAVE_CELT_API_0_7=0', '-DHAVE_CELT_API_0_5=0', '-DHAVE_CELT=0', '-DHAVE_OPUS_PKG=1', '-DHAVE_OPUS=0', '-DHAVE_SAMPLERATE=1', '-DHAVE_SNDFILE=1', '-DHAVE_STDIO_H=1', '-DHAVE_READLINE=1', '-DHAVE_SYSTEMD=0', '-DHAVE_DB_H=1', '-DHAVE_DB=0', '-DHAVE_ALLOCA_H=1', '-DHAVE_EXECINFO_H=1', '-DUSE_CLASSIC_AUTOLAUNCH=1', '-DCLIENT_NUM=64', '-DPORT_NUM_FOR_CLIENT=768', '-DADDON_DIR="/usr/local/lib/jack"', '-DJACK_LOCATION="/usr/local/bin"', '-DUSE_POSIX_SHM=1', '-DJACKMP=1', '-DHAVE_CONFIG_H', '-DSERVER_SIDE', '../posix/JackPosixThread.cpp', '-c', '-o/Users/travis/build/jackaudio/jack2/build/posix/JackPosixThread.cpp.2.o', '-fvisibility=hidden']
../posix/JackNetUnixSocket.cpp:455:26: error: use of undeclared identifier 'IPV6_ADD_MEMBERSHIP'
option = IPV6_ADD_MEMBERSHIP;
^
1 error generated.
Waf: Leaving directory `/Users/travis/build/jackaudio/jack2/build'
Build failed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Branch netjack_squashed_interface_selection_plus_ipv6
Original PR:
https://github.com/jackaudio/jack2/pull/27
by rufferson, first comment Mar 3, 2013
Commits on Mar 12, 2017
Add interface selection for NetJack components
@rufferson
rufferson committed on Mar 3, 2013
* Multicast interface selection to UnixSocket - added methods
Bind and JoinMCastGroup with <char *if_name> argument
* Interface handling to NetInterface class tree - new field and
its initialization/usage in Slave branch.
* Multicast interface selection to NetSlaves (Adapter/Driver)
and NetMaster, where master can now listen all interfaces.
Commits on Mar 15, 2017
Add IPv6 support to UnixSocket and NetInterfaces
@rufferson
rufferson committed on Feb 21, 2013
* Cleaned up direct references to sockaddr_in
* Changed fRecvAddr & fSendAddr to sockaddr_storage
* Added field fFamily indicating current probed AF.
* Added protected method ProbeAF accepting IP to probe
and addr to fill in. As well as final call to test
which should be either connect or bind.
* Reworked protocol specific methods to act on fFamily
* IsLocal now checks assigned interface addresses
* Introduced internal state tracker to avoid double bind
* Workaround for GLIBC bug returning wrong order of AFs
http://sourceware.org/bugzilla/show_bug.cgi?id=14967
* Corrected interface selection for Slaves - only one
interface could be used to multicast the packet
* Retab changes
This branch has conflicts that must be resolved
to resolve conflicts before continuing.
Conflicting files
common/JackNetDriver.h
posix/JackNetUnixSocket.cpp
wget https://github.com/jackaudio/jack2/pull/27.diff
$ patch -p 1 < 27.diff
patching file common/JackNetAdapter.cpp
patching file common/JackNetDriver.cpp
patching file common/JackNetDriver.h
Hunk #1 FAILED at 79.
1 out of 1 hunk FAILED -- saving rejects to file common/JackNetDriver.h.rej
patching file common/JackNetInterface.cpp
patching file common/JackNetInterface.h
patching file common/JackNetManager.cpp
patching file common/JackNetManager.h
patching file common/JackNetTool.h
patching file posix/JackNetUnixSocket.cpp
Hunk #4 FAILED at 229.
Hunk #5 succeeded at 281 (offset -8 lines).
Hunk #6 succeeded at 303 (offset -8 lines).
Hunk #7 succeeded at 325 (offset -8 lines).
Hunk #8 succeeded at 363 (offset -8 lines).
Hunk #9 succeeded at 486 (offset -8 lines).
Hunk #10 succeeded at 508 (offset -8 lines).
Hunk #11 succeeded at 537 (offset -8 lines).
Hunk #12 succeeded at 586 (offset -8 lines).
Hunk #13 succeeded at 607 (offset -8 lines).
Hunk #14 succeeded at 615 (offset -8 lines).
Hunk #15 succeeded at 644 (offset -8 lines).
Hunk #16 succeeded at 673 (offset -8 lines).
1 out of 16 hunks FAILED -- saving rejects to file posix/JackNetUnixSocket.cpp.rej
find|grep rej
./posix/JackNetUnixSocket.cpp.rej
./common/JackNetDriver.h.rej
--- posix/JackNetUnixSocket.cpp
+++ posix/JackNetUnixSocket.cpp
@@ -229,58 +311,117 @@
{
if (strcmp(ip, "127.0.0.1") == 0) {
return true;
- }
+ } else if(!strcmp(ip,"::1"))
+ return true;
- char host_name[32];
- gethostname(host_name, sizeof(host_name));
+ struct ifaddrs *ifas, *ifa;
+ socklen_t len;
- struct hostent* host = gethostbyname(host_name);
- if (host) {
- for (int i = 0; host->h_addr_list[i] != 0; ++i) {
- struct in_addr addr;
- memcpy(&addr, host->h_addr_list[i], sizeof(struct in_addr));
- if (strcmp(inet_ntoa(addr), ip) == 0) {
- return true;
- }
- }
- return false;
- } else {
- return false;
+ if (getifaddrs(&ifas) == -1) {
+ jack_error("JackNetUnixSocket::IsLocal error in getifaddrs");
+ return false;
}
+ for (ifa = ifas; ifa != NULL; ifa = ifa->ifa_next) {
+ if (ifa->ifa_addr == NULL)
+ continue; // Address is mandatory
+ len = (ifa->ifa_addr->sa_family==AF_INET)?sizeof(struct sockaddr_in):sizeof(struct sockaddr_in6);
+ if(!getnameinfo(ifa->ifa_addr, len, f_addr_buff, INET6_ADDRSTRLEN, NULL,0, NI_NUMERICSERV | NI_DGRAM | NI_NUMERICHOST))
+ if(!strcmp(f_addr_buff,ip))
+ break;
+ }
+ freeifaddrs(ifas);
+ return (ifa != NULL);
}
int JackNetUnixSocket::Bind()
{
- return bind(fSockfd, reinterpret_cast<socket_address_t*>(&fRecvAddr), sizeof(socket_address_t));
+ int yes=1;
+ if(fState & JNS_BOUND) return 0;
+ // Multicast is incompatible with V4MAPPED or V4COMPAT addresses, if probe detected MC we need V6ONLY
+ if(fFamily == AF_INET6 && IN6_IS_ADDR_UNSPECIFIED(&_sock6(fRecvAddr).sin6_addr) && fState & JNS_MCAST)
+ if(SetOption(IPPROTO_IPV6, IPV6_V6ONLY, &yes, sizeof(yes))) return SOCKET_ERROR;
+ if(bind(fSockfd, reinterpret_cast<struct sockaddr*>(&fRecvAddr), sizeof(fRecvAddr))) return SOCKET_ERROR;
+ fState |= JNS_BOUND;
+ return 0;
+ }
+ int JackNetUnixSocket::Bind(const char *if_name)
+ {
+ int ret = Bind();
+ if(!ret && strcmp(if_name,"any")) {
+ if(fFamily == AF_INET) {
+ // 'all' for this case will lead to 'last valid interface', which is not that one might expect
+ if(strcmp(if_name,"all"))
+ ret = BindMCastIface(if_name, IP_MULTICAST_IF, &_sock4(fSendAddr).sin_addr);
+ else
+ jack_error("Multicast Interface all not found, sending from default");
+ } else if(fFamily == AF_INET6) {
+ struct if_nameindex *if_ni = if_nameindex(); // In V6 world we do everything differently.
+ if(if_ni) {
+ int i;
+ for (i=0; if_ni[i].if_index > 0; i++) {
+ if(if_ni[i].if_index == 1)
+ continue; // Skip loopback
+ if(!strcmp(if_ni[i].if_name,if_name)) {
+ ret = SetOption(IPPROTO_IPV6, IPV6_MULTICAST_IF, &if_ni[i].if_index, sizeof(if_ni[i].if_index));
+ jack_log("JackNetUnixSocket::Bind Multicasting from %s",if_ni[i].if_name);
+ break;
+ }
+ }
+ if(if_ni[i].if_index == 0) jack_error("Multicast Interface %s not found, sending from default",if_name);
+ if_freenameindex(if_ni);
+ }
+ }
+ }
+ return ret;
}
int JackNetUnixSocket::BindWith(const char* ip)
{
- int addr_conv = inet_aton(ip, &fRecvAddr.sin_addr);
- if (addr_conv < 0) {
- return addr_conv;
+ if(fFamily == AF_UNSPEC) {
+ if(!fPort) return SOCKET_ERROR;
+ if(ProbeAF(ip,&fRecvAddr,&bind)<0) return SOCKET_ERROR;
+ fState |= JNS_BOUND;
+ return 0;
+ } else {
+ if(SetRecvIP(ip)==-1) return SOCKET_ERROR;
+ return Bind();
}
- return Bind();
}
int JackNetUnixSocket::BindWith(int port)
{
- fRecvAddr.sin_port = htons(port);
- return Bind();
+ if(fFamily == AF_UNSPEC) {
+ fPort = port;
+ if(ProbeAF(NULL,&fRecvAddr,&bind)<0) return SOCKET_ERROR;
+ fState |= JNS_BOUND;
+ return 0;
+ } else {
+ SetPort(port);
+ return Bind();
+ }
}
int JackNetUnixSocket::Connect()
{
- return connect(fSockfd, reinterpret_cast<socket_address_t*>(&fSendAddr), sizeof(socket_address_t));
+ if(fFamily != AF_UNSPEC)
+ return connect(fSockfd, (struct sockaddr*)&fSendAddr,sizeof(fSendAddr));
+ jack_error("JackNetUnixSocket::Connect Family not initialized");
+ return SOCKET_ERROR;
}
int JackNetUnixSocket::ConnectTo(const char* ip)
{
- int addr_conv = inet_aton(ip, &fSendAddr.sin_addr);
- if (addr_conv < 0) {
- return addr_conv;
+ socklen_t l=sizeof(fRecvAddr);
+ if(fPort==0) return SOCKET_ERROR;
+ if(fState & JNS_PROBED) {
+ Reset();
+ fFamily=AF_UNSPEC;
}
- return Connect();
+ if(fSockfd)
+ Close();
+ if(ProbeAF(ip,&fSendAddr,&connect)<0) return SOCKET_ERROR;
+ fState |= JNS_CONNCD;
+ return getsockname(fSockfd, (struct sockaddr *)&fRecvAddr, &l);
}
void JackNetUnixSocket::Close()
--- common/JackNetDriver.h
+++ common/JackNetDriver.h
@@ -79,7 +79,7 @@
public:
JackNetDriver(const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table,
- const char* ip, int port, int mtu, int midi_input_ports, int midi_output_ports,
+ const char* ip, int port, const char* mcif, int mtu, int midi_input_ports, int midi_output_ports,
char* net_name, uint transport_sync, int network_latency, int celt_encoding,
int opus_encoding, bool auto_save);
virtual ~JackNetDriver();
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
#set two properties for UUID 4294967296
$ jack_property -s 4294967296 "a" 1
$ jack_property -s 4294967296 b "2"
#-l lists them
$ jack_property -l
4294967296
key: b value: 2
key: a value: 1
#-l for UUID doesn't list them <<<<<<
$ jack_property -l 4294967296
$ jack_property -l 4294967296 a
Value not found for a of 4294967296
$ jack_property -l 4294967296 b
Value not found for b of 4294967296
#it seems that 3 chars is the minimum length for value when querying for UUID
$ jack_property -s 4294967296 a 123
$ jack_property -l 4294967296
key: a value: 123
$ jack_property -l 4294967296 a
123
In example-clients/property.c:
/* list all properties for a given UUID */
if ((cnt = jack_get_properties (uuid, &description)) < 0) {
fprintf (stderr, "could not retrieve properties for %s\n", subject);
exit (1);
}
cnt is always 0 for values < 3 chars. Why?
In common/JackMetadata.cpp:
int JackMetadata::GetProperty(jack_uuid_t subject, const char* key, char** value, char** type)
int JackMetadata::GetProperties(jack_uuid_t subject, jack_description_t* desc)
This loop gets results:
while ((ret = cursor->get (cursor, &key, &data, DB_NEXT)) == 0) {
but are dropped because of this check:
/* result must have at least 2 chars plus 2 nulls to be valid
if (data.size < 4) {
This rule isn't understood. Explanations are welcome!
Reducing the check to 2 (1 char + null) will consider single char values.
This makes listing properties for a given UUID the same keys as when listing all UUIDs and keys.
No side-effects of lowering the value has been detected (yet).
Note: there is no problem getting "short" values in this method:
int JackMetadata::GetAllProperties(jack_description_t** descriptions)
(as used by jack_property -l without UUID)
jack_property output after change to (data.size < 2):
$ jack_property -s 4294967296 "a" 1
$ jack_property -s 4294967296 b "2"
$ jack_property -l
4294967296
key: b value: 2
key: a value: 1
$ jack_property -l 4294967296
key: b value: 2
key: a value: 1
$ jack_property -l 4294967296 a
1
$ jack_property -l 4294967296 b
2
Note: This change should be considered also for JACK1 (libjack/metadata.c)
to keep implementations in sync.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
For OSX travis builds:
Since recently, brew install --c++11 stops the build.
Error: invalid option: --c++11
The command "./.ci/install-deps.sh" failed and exited with 1 during .
Your build has been stopped.
|
|
|
|
| |
See https://github.com/jackaudio/jack2/issues/413
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notes:
The name length test still fails.
jack_client_open() will only allow 63 printable chars (unlike expected 64 == JACK_CLIENT_NAME_SIZE).
This difference isn't explained by the terminating NULL character. jack_client_name_size() takes care of that (returns JACK_CLIENT_NAME_SIZE + 1).
char arrays are initialized like arr[JACK_CLIENT_NAME_SIZE + 1] in many files und truncated like arr[JACK_CLIENT_NAME_SIZE].
Probable reason for 63: ':' is part of the client name and implicitely added later.
Name used by caller does not include ':' thus jack_client_open() will allow only JACK_CLIENT_NAME_SIZE - 1 printable chars.
This line in common/JackConstants.h gives a hint that ':' might be counted in for JACK_CLIENT_NAME_SIZE
#define REAL_JACK_PORT_NAME_SIZE JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE // full name like "client_name:short_port_name"
Currently many char arguments are described like
@param client_name of at most jack_client_name_size() characters
This can be confusing in two ways:
-jack_client_name_size() does include the NULL so it's one less 'payload' character
-if the returned size is used exactly as described for function jack_client_name_size() including NULL,
it won't work with jack_client_open() or jack_port_register() etc. because of another reduction (eventually for the ":").
!! This needs to be verified and documentation needs to be reviewed. !!
|
|
|
|
| |
Note: the client name length test still fails, this is a different issue.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The newly added persons have contributed code to JACK in the past.
(mentioned in at least one file header)
tests/cpu.c: Copyright (C) 2005 Samuel TRACOL
linux/alsa/usx2y.c: Copyright (C) 2005 Karsten Wiese, Rui Nuno Capela
linux/alsa/ice1712.h: Copyright (C) 2000 by Jaroslav Kysela <perex@suse.cz>
example-clients/metro.c: Copyright (C) 2002 Anthony Van Groningen
dbus/controller_iface_transport.c: Copyright (C) 2008 Juuso Alasuutari
common/netjack.h: Copyright (C) 2003 Robert Ham <rah@bash.sh>
common/jack/ringbuffer.h: Copyright (C) 2003 Rohan Drape
common/jack/metadata.h: Copyright (C) 2011 David Robillard
common/JackMidiPort.cpp:Original JACK MIDI implementation Copyright (C) 2004 Ian Esten
linux/firewire/JackFFADODriver.cpp:Copyright (C) 2012 Jonathan Woithe
common/jack/statistics.h: Copyright (C) 2004 Rui Nuno Capela, Lee Revell
The authors list should be up-to-date now.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Add "new" alumni authors according to jackd manpage listed under "Programming"
+Andy Wingo
+Jack O'Quin
+Jeremy Hall
+Johnny Petrantoni
+Jussi Laako
+Kai Vehmanen
+Melanie Thielker
+Steve Harris
+Taybin Rutkin
+Tilman Linneweh
+Stefan Schwandter
+Alexandre Prokoudine
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Add new authors according to https://github.com/jackaudio/jack2/graphs/contributors
-Order alphabetically by FIRST NAME (this is simple for |sort)
Karl Lindén (karllinden)
Timo Wischer (twischer-adit)
Thomas Brand (7890)
Cédric Schieli (sdrik)
Markus Seeber (mseeber)
Alba Mendez (jmendeth)
David Runge (dvzrv)
Olivier Humbert (trebmuh)
Yasuhiro Fujii (y-fujii)
Gaël Portay (gportay)
James P. Thomas (jamespthomas)
Andreas Müller (schnitzeltony)
Holger Dehnhardt (dehnhardt)
Rui Nuno Capela (rncbc)
Michał Szymański (smiszym)
Francis Pinteric (fjapinteric)
Bruno Vernay (BrunoVernay)
Hunter L. Allen (allenh1)
Edward Betts (EdwardBetts)
Thomas Petazzoni (tpetazzoni)
James Cowgill (jcowgill)
Samuel Martin (tSed)
Bernhard M. Wiedemann (bmwiedemann)
Jacek Konieczny (Jajcus)
Andrew Kelley (andrewrk)
Maks Naumov (maksqwe)
Julien Acroute (Vampouille)
Youri Westerman (4c0n)
Olaf Hering (olafhering)
Ricardo Crudo (ricardocrudo)
Maxim Grishin (Igevorse)
Valentin David (valentindavid)
Joshua Moyerman (jmoyerman)
Arnaud Rebillout (elboulangero)
Alexander Graf (agraf)
Eliot Blennerhassett (eliotb)
Deven Lahoti (dlahoti)
Not added (need more info) github handles
fps
mojofunk
e9925248
farwayer
l1n
stratakis
m-grabner
bkuhls
escitalopram
|
| |
|
| |
|
|
|
|
| |
version from README, incorporating release dates (where found).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The FreeBoB project was renamed to FFADO in 2007.
All users should use the FFADO backend by now (2019).
Backend name to be removed: "freebob"
Alternative backend to use: "firewire"
Please check the jackd manpage for details about "firewire" backend.
This commit is part of legacy cleanup.
closes issue #365.
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
Fixes #410
|
|
|
|
|
|
|
|
| |
sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
| |
sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
| |
sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
| |
Due to inlining and enabled optimization the compiler will not create
machine instructions for the if-clauses and left shift for
sample_move_dS_s32s() and sample_move_dS_s32().
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
| |
Due to the optimization of the compiler this commit does not introduce any
differences in the machine instructions.
Tested with GCC version 6.2.0 on ARM64 and x86_64.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
ALSA expects right-aligned samples (0x00******) as mentioned in the
source code for SND_PCM_FORMAT_S24_LE:
Signed 24 bit Little Endian using low three bytes in 32-bit word
See http://git.alsa-project.org/?p=alsa-
lib.git;a=blob;f=include/pcm.h;h=5b0782315585de1d5ab82c9f2036b62c168f5a48;hb=HEAD#l140
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
ALSA expects right-aligned samples (0x00******) as mentioned in the
source code for SND_PCM_FORMAT_S24_LE:
Signed 24 bit Little Endian using low three bytes in 32-bit word
See http://git.alsa-project.org/?p=alsa-
lib.git;a=blob;f=include/pcm.h;h=5b0782315585de1d5ab82c9f2036b62c168f5a48;hb=HEAD#l140
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
| |
GCC defines __ARM_NEON__ for asimd on ARMv7 and __ARM_NEON for simd on
ARMv8. Therefore also check for __ARM_NEON.
Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building with MXE, the macro expansion of PRIu64 fails:
../common/JackAPI.cpp: In function 'int jack_uuid_parse(const char*, jack_uuid_t*)':
../common/JackAPI.cpp:2119:24: error: expected ')' before 'PRIu64'
if (sscanf (b, "%" PRIu64, u) == 1) {
^
../common/JackAPI.cpp:2119:33: warning: spurious trailing '%' in format [-Wformat=]
if (sscanf (b, "%" PRIu64, u) == 1) {
^
../common/JackAPI.cpp:2119:33: warning: too many arguments for format [-Wformat-extra-args]
../common/JackAPI.cpp: In function 'void jack_uuid_unparse(jack_uuid_t, char*)':
../common/JackAPI.cpp:2134:45: error: expected ')' before 'PRIu64'
snprintf (b, JACK_UUID_STRING_SIZE, "%" PRIu64, u);
^
../common/JackAPI.cpp:2134:54: warning: spurious trailing '%' in format [-Wformat=]
snprintf (b, JACK_UUID_STRING_SIZE, "%" PRIu64, u);
^
../common/JackAPI.cpp:2134:54: warning: too many arguments for format [-Wformat-extra-args]
This could be resolved by adding those two lines:
#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
References:
https://stackoverflow.com/questions/14535556/why-doesnt-priu64-work-in-this-code
https://stackoverflow.com/questions/8132399/how-to-printf-uint64-t-fails-with-spurious-trailing-in-format
|
| |
|
|\
| |
| | |
alsa_in.c alsa_out.c (add option -S)
|
| |
| |
| | |
Added -S option and supporting code to permit attaching to a named jack2 server.
|