Found via `codespell -q 3`tags/v1.9.13
@@ -13,13 +13,13 @@ Major changes and architecture | |||
------------------------------- | |||
The biggest difference between netjack1 and netjack2 is the way of slicing audio and midi streams into network packets. For one audio cycle, netjack1 used to take all audio and midi buffers (one per channel), put butt all of them, then send it over the network. The problem is that a network packet has a fixed maximum size, depending on the network infrastructure (for 100mb, it reaches 1500bytes - MTU of the network). The solution is then to slice those buffers into smaller ones, and then send as many packets as we need. This cutting up can be done by network equipments, but it's more efficient and secure to include it in the software data management. Still this slicing brings another issue : all the packets are not pleased with any emission order and are unfortunately received in a random order, thanks to UDP. So we can't deal with data as it comes, we need to re-bufferize incoming streams in order to rebuild complete audio buffers. | |||
The biggest difference between netjack1 and netjack2 is the way of slicing audio and midi streams into network packets. For one audio cycle, netjack1 used to take all audio and midi buffers (one per channel), put butt all of them, then send it over the network. The problem is that a network packet has a fixed maximum size, depending on the network infrastructure (for 100mb, it reaches 1500bytes - MTU of the network). The solution is then to slice those buffers into smaller ones, and then send as many packets as we need. This cutting up can be done by network equipment, but it's more efficient and secure to include it in the software data management. Still this slicing brings another issue : all the packets are not pleased with any emission order and are unfortunately received in a random order, thanks to UDP. So we can't deal with data as it comes, we need to re-bufferize incoming streams in order to rebuild complete audio buffers. | |||
In netjack2, the main idea is to make this slicing depending on the network capabilities. If we can put only 128 complete audio frames (128 samples for all audio channels) in a network packet, the elementary packet will so carry 128 frames, and in one cycle, we will transmit as many packet as we need. We take the example of 128 frames because it's the current value for 2 channels. This value is determined by taking the maximum 'power of 2' frames we can put in a packet. If we take 2 channels, 4 bytes per sample (float values), we get 8 bytes per frame, with 128 frames, we now have 1024 bytes, so we can put these 1024 bytes in one packet, and add a small header which identify the packet. This technique allows to separate the packets (in time) so they can be received in the order they have been emitted. If the master is running at 512 frames per second, four audio packets are sent per cycle and the slave deals with them as they arrive. With gigabytes networks, the MTU is larger, so we can put more data in one packet (in this example, we can even put the complete cycle in one packet). | |||
For midi data, netjack1 used to send the whole buffer, in this example, 512 frames * 4 bytes per sample and per midi port. Those 2048 bytes are in 99% of the time filled to a few bytes, but rarely more. This means that if we have 2 audio and 2 midi channels to transmit, everything happens as if we had 4 audio channels, which is quite a waste of bandwidth. In netjack2, the idea is to take into account that fact, by sending only the useful bytes, and not more. It's completely inappropriate to overload the network with useless data. So we now have : 99% of the time one midi packet (of a few dozen of bytes), followed by four audio packets (in this example). | |||
This way of separating audio and midi is quite important. We deal here with network transmissions, and also need to be 'realtime'. We need a system which allow to carry as many audio and midi data streams as we need and can, as if the distant computer was in fact a simple jack client. With all those constraints, we can't avoid packets loss. The better thing to do is to deal with it. But to loose an audio packet is different from skipping a midi one. Indeed, an audio loss leads to audio click, or undesirable, but very short side effect. Whereas a midi data loss can be completely disastrous. Imagine that we play some notes, with sustain, and we loose the sustain 0 value, which stops the effect. The sustain keeps going on on all following notes until the next 'sustain off' event. A simple missing byte can put all the midi system offside (that's the purpose of all the big PANIC buttons on midi softwares...). That's why we need to separate audio (more than one per cycle) from midi (one packet at 99% of the time). If we loose an audio packet, we probably still have an available midi packet, so we can use what we received, even if some audio is missing. | |||
This way of separating audio and midi is quite important. We deal here with network transmissions, and also need to be 'realtime'. We need a system which allow to carry as many audio and midi data streams as we need and can, as if the distant computer was in fact a simple jack client. With all those constraints, we can't avoid packets loss. The better thing to do is to deal with it. But to loose an audio packet is different from skipping a midi one. Indeed, an audio loss leads to audio click, or undesirable, but very short side effect. Whereas a midi data loss can be completely disastrous. Imagine that we play some notes, with sustain, and we loose the sustain 0 value, which stops the effect. The sustain keeps going on on all following notes until the next 'sustain off' event. A simple missing byte can put all the midi system offside (that's the purpose of all the big PANIC buttons on midi software...). That's why we need to separate audio (more than one per cycle) from midi (one packet at 99% of the time). If we loose an audio packet, we probably still have an available midi packet, so we can use what we received, even if some audio is missing. | |||
Those audio and midi packets are preceded by a synchronization packet, which will make the slave directly synchronized on the master's cycle rhythm. This packet also carries transport data. Thus it's actually possible to synchronize also transport. This feature goes a little further than in netjack1. The idea here is to make every computer of the network fully synchronized on the master's transport. That means the master needs to know the state of every slow sync clients of each of its slaves. The master can now manage the transport state (especially the 'rolling' state) of each slave thus the main transport waits for the last slow sync client before turning 'rolling'. By doing this, the transport can start (roll) in the same cycle for every computers managed by the master. | |||
@@ -60,7 +60,7 @@ As in a standard backend in Jack2, you can use '-S' (synchronous mode). The asyn | |||
Latency (-n) is the number of buffers added in network transmission. Zero is for cases when the audio buffers can be sent to the other size, transformed by the process and returned in the same cycle. By default latency is 5 buffers. | |||
For additional informations, you can go to the NetJack2 Wiki at : http://trac.jackaudio.org/wiki/WalkThrough/User/NetJack2. | |||
For additional information, you can go to the NetJack2 Wiki at : http://trac.jackaudio.org/wiki/WalkThrough/User/NetJack2. | |||
------------------------------- | |||
@@ -85,7 +85,7 @@ static void jack_format_and_log(int level, const char *prefix, const char *fmt, | |||
log_function = (jack_log_function_t)jack_tls_get(JackGlobals::fKeyLogFunction); | |||
/* if log function is not overriden for thread, use default one */ | |||
/* if log function is not overridden for thread, use default one */ | |||
if (log_function == NULL) | |||
{ | |||
log_function = jack_log_function; | |||
@@ -25,7 +25,7 @@ | |||
#include "../posix/JackSystemDeps_os.h" | |||
/** | |||
* bionic c dependant functions | |||
* bionic c dependent functions | |||
*/ | |||
#define pthread_setcanceltype(x,y) (0) | |||
@@ -66,7 +66,7 @@ class AutoOption: | |||
wrappers around their configuration context counterparts and behave | |||
identically. Note that adding dependencies is done in the options | |||
phase and not in the configure phase, although the checks are | |||
acutally executed during the configure phase. | |||
actually executed during the configure phase. | |||
Custom check functions can be added using the add_function method. | |||
As with the other checks the check function will be invoked during | |||
@@ -194,7 +194,7 @@ class AutoOption: | |||
Add a custom function to be invoked as part of the | |||
configuration. During the configuration the function will be | |||
invoked with the configuration context as first argument | |||
followed by the arugments to this method, except for the func | |||
followed by the arguments to this method, except for the func | |||
argument. The function must print a 'Checking for...' message, | |||
because it is referred to if the check fails and this option is | |||
requested. | |||
@@ -311,7 +311,7 @@ def opt(f): | |||
def add_auto_option(self, *k, **kw): | |||
""" | |||
This function adds an AutoOption to the options context. It takes | |||
the same arguments as the initializer funtion of the AutoOptions | |||
the same arguments as the initializer function of the AutoOptions | |||
class. | |||
""" | |||
option = AutoOption(self, *k, **kw) | |||
@@ -1893,7 +1893,7 @@ LIB_EXPORT void jack_get_version(int *major_ptr, | |||
{ | |||
JackGlobals::CheckContext("jack_get_version"); | |||
// FIXME: We need these comming from build system | |||
// FIXME: We need these coming from build system | |||
*major_ptr = 0; | |||
*minor_ptr = 0; | |||
*micro_ptr = 0; | |||
@@ -64,7 +64,7 @@ namespace Jack { | |||
copy_length = pos - copy_start; | |||
start = pos + 1; | |||
} | |||
//else there is someting before the quote, first copy that | |||
//else there is something before the quote, first copy that | |||
else { | |||
copy_start = start; | |||
copy_length = pos - copy_start; | |||
@@ -90,7 +90,7 @@ Requirement: | |||
- a WriteNextStartState(int state) returns a "pending" state to be written into | |||
- a WriteNextStartStop(int state) make the written "pending" state become "switchable" | |||
Different pending states can be written independantly and concurrently. | |||
Different pending states can be written independently and concurrently. | |||
GetCurrentIndex() *must* return an increasing value to be able to check reading current state coherency | |||
@@ -136,7 +136,7 @@ class JackAtomicArrayState | |||
*result = GetIndex1(new_val, state); | |||
cur_index = GetIndex1(new_val, 0); | |||
next_index = SwapIndex1(fCounter, state); | |||
need_copy = (GetIndex1(new_val, state) == 0); // Written = false, switch just occured | |||
need_copy = (GetIndex1(new_val, state) == 0); // Written = false, switch just occurred | |||
SetIndex1(new_val, state, 0); // Written = false, invalidate state | |||
} while (!CAS(Counter1(old_val), Counter1(new_val), (UInt32*)&fCounter)); | |||
if (need_copy) | |||
@@ -82,7 +82,7 @@ namespace Jack | |||
jack_nframes_t fAdaptedBufferSize; | |||
jack_nframes_t fAdaptedSampleRate; | |||
//PI controler | |||
//PI controller | |||
JackPIControler fPIControler; | |||
JackResampler** fCaptureRingBuffer; | |||
@@ -921,7 +921,7 @@ void JackClient::TransportStop() | |||
GetEngineControl()->fTransport.SetCommand(TransportCommandStop); | |||
} | |||
// Never called concurently with the server | |||
// Never called concurrently with the server | |||
// TODO check concurrency with SetSyncCallback | |||
void JackClient::CallSyncCallback() | |||
@@ -393,7 +393,7 @@ int JackConnectionManager::GetInputRefNum(jack_port_id_t port_index) const | |||
} | |||
/*! | |||
\brief Get the client refnum of a given ouput port. | |||
\brief Get the client refnum of a given output port. | |||
*/ | |||
int JackConnectionManager::GetOutputRefNum(jack_port_id_t port_index) const | |||
{ | |||
@@ -401,7 +401,7 @@ struct JackClientTiming | |||
<UL> | |||
<LI>The <B>fConnection</B> array contains the list (array line) of connected ports for a given port. | |||
<LI>The <B>fInputPort</B> array contains the list (array line) of input connected ports for a given client. | |||
<LI>The <B>fOutputPort</B> array contains the list (array line) of ouput connected ports for a given client. | |||
<LI>The <B>fOutputPort</B> array contains the list (array line) of output connected ports for a given client. | |||
<LI>The <B>fConnectionRef</B> array contains the number of ports connected between two clients. | |||
<LI>The <B>fInputCounter</B> array contains the number of input clients connected to a given for activation purpose. | |||
</UL> | |||
@@ -107,7 +107,7 @@ void JackEngine::NotifyQuit() | |||
//----------------------------- | |||
// Client ressource management | |||
// Client resource management | |||
//----------------------------- | |||
int JackEngine::AllocateRefnum() | |||
@@ -133,7 +133,7 @@ void JackEngine::ReleaseRefnum(int refnum) | |||
} | |||
} | |||
if (i == CLIENT_NUM) { | |||
// Last client and temporay case: quit the server | |||
// Last client and temporary case: quit the server | |||
jack_log("JackEngine::ReleaseRefnum server quit"); | |||
fEngineControl->fTemporary = false; | |||
throw JackTemporaryException(); | |||
@@ -351,7 +351,7 @@ int JackEngine::NotifyAddClient(JackClientInterface* new_client, const char* new | |||
void JackEngine::NotifyRemoveClient(const char* name, int refnum) | |||
{ | |||
// Notify existing clients (including the one beeing suppressed) of the removed client | |||
// Notify existing clients (including the one being suppressed) of the removed client | |||
for (int i = 0; i < CLIENT_NUM; i++) { | |||
JackClientInterface* client = fClientTable[i]; | |||
if (client) { | |||
@@ -34,7 +34,7 @@ namespace Jack | |||
#define MEASURED_CLIENTS 32 | |||
/*! | |||
\brief Timing stucture for a client. | |||
\brief Timing structure for a client. | |||
*/ | |||
PRE_PACKED_STRUCTURE | |||
@@ -77,7 +77,7 @@ struct JackTimingClientInterval | |||
} POST_PACKED_STRUCTURE; | |||
/*! | |||
\brief Timing stucture for a table of clients. | |||
\brief Timing structure for a table of clients. | |||
*/ | |||
PRE_PACKED_STRUCTURE | |||
@@ -75,7 +75,7 @@ static void jack_format_and_log(int level, const char *prefix, const char *fmt, | |||
log_function = (jack_log_function_t)jack_tls_get(JackGlobals::fKeyLogFunction); | |||
/* if log function is not overriden for thread, use default one */ | |||
/* if log function is not overridden for thread, use default one */ | |||
if (log_function == NULL) | |||
{ | |||
log_function = jack_log_function; | |||
@@ -220,7 +220,7 @@ namespace Jack | |||
#endif | |||
/* | |||
Torben Hohn PI controler from JACK1 | |||
Torben Hohn PI controller from JACK1 | |||
*/ | |||
struct JackPIControler { | |||
@@ -297,7 +297,7 @@ namespace Jack | |||
// This is the integral of the smoothed_offset | |||
offset_integral += smooth_offset; | |||
// Clamp offset : the smooth offset still contains unwanted noise which would go straigth onto the resample coeff. | |||
// Clamp offset : the smooth offset still contains unwanted noise which would go straight onto the resample coeff. | |||
// It only used in the P component and the I component is used for the fine tuning anyways. | |||
if (fabs(smooth_offset) < pclamp) | |||
smooth_offset = 0.0; | |||
@@ -308,7 +308,7 @@ namespace Jack | |||
double current_resample_factor | |||
= static_resample_factor - smooth_offset / catch_factor - offset_integral / catch_factor / catch_factor2; | |||
// Now quantize this value around resample_mean, so that the noise which is in the integral component doesnt hurt. | |||
// Now quantize this value around resample_mean, so that the noise which is in the integral component doesn't hurt. | |||
current_resample_factor = floor((current_resample_factor - resample_mean) * controlquant + 0.5) / controlquant + resample_mean; | |||
// Calculate resample_mean so we can init ourselves to saner values. | |||
@@ -54,7 +54,7 @@ class JackInternalClient : public JackClient | |||
JackClientControl* GetClientControl() const; | |||
static JackGraphManager* fGraphManager; /*! Shared memory Port manager */ | |||
static JackEngineControl* fEngineControl; /*! Shared engine cotrol */ | |||
static JackEngineControl* fEngineControl; /*! Shared engine control */ | |||
}; | |||
/*! | |||
@@ -132,7 +132,7 @@ void JackInternalSessionLoader::LoadClient(std::istringstream& iss, const int li | |||
/* status has not to be checked for JackFailure | |||
* because JackServer::InternalClientLoad1() will return a value < 0 | |||
* and this is handled by the previouse if-clause. | |||
* and this is handled by the previous if-clause. | |||
*/ | |||
jack_info("Internal client %s successfully loaded", client_name.c_str()); | |||
@@ -180,7 +180,7 @@ int JackMessageBuffer::SetInitCallback(JackThreadInitCallback callback, void *ar | |||
/* | |||
The condition variable emulation code does not work reliably on Windows (lost signal). | |||
So use a "hackish" way to signal/wait for the result. | |||
Probaly better in the long term : use pthread-win32 (http://sourceware.org/pthreads-win32/` | |||
Probably better in the long term : use pthread-win32 (http://sourceware.org/pthreads-win32/` | |||
*/ | |||
fGuard.Unlock(); | |||
int count = 0; | |||
@@ -76,7 +76,7 @@ namespace Jack { | |||
/** | |||
* Enqueues the MIDI event specified by the arguments. The return | |||
* value indiciates whether or not the event was successfully enqueued. | |||
* value indicates whether or not the event was successfully enqueued. | |||
* This method may be overridden. | |||
*/ | |||
@@ -85,7 +85,7 @@ namespace Jack { | |||
/** | |||
* Enqueues the MIDI event specified by the arguments. The return | |||
* value indiciates whether or not the event was successfully enqueued. | |||
* value indicates whether or not the event was successfully enqueued. | |||
*/ | |||
EnqueueResult | |||
@@ -40,7 +40,7 @@ namespace Jack | |||
GetHostName(fParams.fName, JACK_CLIENT_NAME_SIZE); | |||
fSocket.GetName(fParams.fSlaveNetName); | |||
fParams.fMtu = DEFAULT_MTU; | |||
// Desactivated for now... | |||
// Deactivated for now... | |||
fParams.fTransportSync = 0; | |||
int send_audio = -1; | |||
int return_audio = -1; | |||
@@ -723,7 +723,7 @@ Deactivated for now.. | |||
char net_name[JACK_CLIENT_NAME_SIZE+1] = {0}; | |||
int udp_port; | |||
int mtu = DEFAULT_MTU; | |||
// Desactivated for now... | |||
// Deactivated for now... | |||
uint transport_sync = 0; | |||
jack_nframes_t period_size = 1024; // to be used while waiting for master period_size | |||
jack_nframes_t sample_rate = 48000; // to be used while waiting for master sample_rate | |||
@@ -505,7 +505,7 @@ namespace Jack | |||
fCurrentCycleOffset = fTxHeader.fCycle - rx_head->fCycle; | |||
if (fCurrentCycleOffset < fMaxCycleOffset && !fSynched) { | |||
jack_info("Synching with latency = %d", fCurrentCycleOffset); | |||
jack_info("Syncing with latency = %d", fCurrentCycleOffset); | |||
return NET_SYNCHING; | |||
} else { | |||
if (fCurrentCycleOffset == fMaxCycleOffset) { | |||
@@ -557,7 +557,7 @@ namespace Jack | |||
void JackNetMasterInterface::EncodeSyncPacket(int frames) | |||
{ | |||
// This method contains every step of sync packet informations coding | |||
// This method contains every step of sync packet information coding | |||
// first of all, clear sync packet | |||
memset(fTxData, 0, PACKET_AVAILABLE_SIZE(&fParams)); | |||
@@ -581,7 +581,7 @@ namespace Jack | |||
void JackNetMasterInterface::DecodeSyncPacket(int& frames) | |||
{ | |||
// This method contains every step of sync packet informations decoding process | |||
// This method contains every step of sync packet information decoding process | |||
// Transport not used for now... | |||
/* | |||
@@ -960,7 +960,7 @@ namespace Jack | |||
// network sync------------------------------------------------------------------------ | |||
void JackNetSlaveInterface::EncodeSyncPacket(int frames) | |||
{ | |||
// This method contains every step of sync packet informations coding | |||
// This method contains every step of sync packet information coding | |||
// first of all, clear sync packet | |||
memset(fTxData, 0, PACKET_AVAILABLE_SIZE(&fParams)); | |||
@@ -984,7 +984,7 @@ namespace Jack | |||
void JackNetSlaveInterface::DecodeSyncPacket(int& frames) | |||
{ | |||
// This method contains every step of sync packet informations decoding process | |||
// This method contains every step of sync packet information decoding process | |||
// Transport not used for now... | |||
/* | |||
@@ -1356,7 +1356,7 @@ namespace Jack | |||
} | |||
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) { | |||
jack_error("Could not find a useable version of Winsock.dll\n"); | |||
jack_error("Could not find a usable version of Winsock.dll\n"); | |||
WSACleanup(); | |||
return -1; | |||
} | |||
@@ -71,13 +71,13 @@ namespace Jack | |||
//session params ****************************************************************************** | |||
/** | |||
\brief This structure containes master/slave connection parameters, it's used to setup the whole system | |||
\brief This structure contains master/slave connection parameters, it's used to setup the whole system | |||
We have : | |||
- some info like version, type and packet id | |||
- names | |||
- network parameters (hostnames and mtu) | |||
- nunber of audio and midi channels | |||
- number of audio and midi channels | |||
- sample rate and buffersize | |||
- number of audio frames in one network packet (depends on the channel number) | |||
- is the NetDriver in Sync or ASync mode ? | |||
@@ -50,11 +50,11 @@ namespace Jack | |||
The main use case is the multi-user, multi-session, shared workstation: | |||
- a classic server with hw driver is launched system-wide at boot time, in | |||
promiscuous mode, optionaly restricted to the audio group | |||
promiscuous mode, optionally restricted to the audio group | |||
- in each user session, a jackdbus server is automatically started with | |||
JackProxyDriver as master driver, automatically connected to the | |||
system-wide one | |||
- optionaly, each user run PulseAudio with a pulse-jack bridge | |||
- optionally, each user run PulseAudio with a pulse-jack bridge | |||
*/ | |||
class JackProxyDriver : public JackRestarterDriver | |||
@@ -276,7 +276,7 @@ int JackServer::SetBufferSize(jack_nframes_t buffer_size) | |||
Freewheel mode is implemented by switching from the (audio [slaves] + freewheel) driver to the freewheel driver only: | |||
- "global" connection state is saved | |||
- all audio driver and slaves ports are deconnected, thus there is no more dependancies with the audio driver and slaves | |||
- all audio driver and slaves ports are deconnected, thus there is no more dependencies with the audio driver and slaves | |||
- the freewheel driver will be synchronized with the end of graph execution : all clients are connected to the freewheel driver | |||
- the freewheel driver becomes the "master" | |||
@@ -168,7 +168,7 @@ bool JackServerGlobals::Init() | |||
if (!fp) { | |||
fp = fopen("/etc/jackdrc", "r"); | |||
} | |||
// if still not found, check old config name for backwards compatability | |||
// if still not found, check old config name for backwards compatibility | |||
if (!fp) { | |||
fp = fopen("/etc/jackd.conf", "r"); | |||
} | |||
@@ -92,7 +92,7 @@ namespace Jack | |||
- create a JackGnuPlotMonitor, you can use the data type you want. | |||
- create a temporary array for your measure | |||
- once you have filled this array with 'measure points' value, call write() to add it to the record | |||
- once you've done with your measurment, just call save() to save your data file | |||
- once you've done with your measurement, just call save() to save your data file | |||
You can also call SetPlotFile() to automatically generate '.plt' file from an options list. | |||
@@ -47,7 +47,7 @@ We have: | |||
the request takes precedence on the pending one. The server atomically switches to the new position. | |||
The current position can be read by clients. | |||
We use a JackAtomicArrayState pattern that allows to manage several "next" states independantly. | |||
We use a JackAtomicArrayState pattern that allows to manage several "next" states independently. | |||
In jack1 implementation, transport code (jack_transport_cycle_end) was not called if the graph could not be locked (see jack_run_one_cycle). | |||
Here transport cycle (CycleBegin, CycleEnd) has to run in the RT thread concurrently with code executed from the "command" thread. | |||
@@ -68,7 +68,7 @@ We have: | |||
Slow-sync cb calls stops when: | |||
- the cb return true (client) | |||
- desactivate (client) | |||
- deactivate (client) | |||
- transport stop (server) | |||
Several operations set the "timebase cb" flag to true: | |||
@@ -81,7 +81,7 @@ We have: | |||
Timebase cb "new_pos" argument calls stops when: | |||
- after one cb call with "new_pos" argument true (client) | |||
- desactivate (client) | |||
- deactivate (client) | |||
- release (client) | |||
- transport stop (server) | |||
@@ -96,7 +96,7 @@ jack_intclient_t jack_internal_client_handle (jack_client_t *client, | |||
* object file from which to load the new internal client (otherwise | |||
* use the @a client_name). | |||
* | |||
* @arg [@ref JackLoadInit] <em>(char *) load_init</em> an arbitary | |||
* @arg [@ref JackLoadInit] <em>(char *) load_init</em> an arbitrary | |||
* string passed to the internal client's jack_initialize() routine | |||
* (otherwise NULL), of no more than @ref JACK_LOAD_INIT_LIMIT bytes. | |||
* | |||
@@ -186,7 +186,7 @@ char *jack_get_client_name_by_uuid (jack_client_t *client, | |||
* @param load_name of a shared object file containing the code for | |||
* the new client. | |||
* | |||
* @param load_init an arbitary string passed to the jack_initialize() | |||
* @param load_init an arbitrary string passed to the jack_initialize() | |||
* routine of the new client (may be NULL). | |||
* | |||
* @return 0 if successful. | |||
@@ -403,7 +403,7 @@ int jack_set_process_callback (jack_client_t *client, | |||
* callback will be non-zero if JACK is entering freewheel | |||
* mode, and zero otherwise. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -422,7 +422,7 @@ int jack_set_freewheel_callback (jack_client_t *client, | |||
* change. Clients that depend on knowing the buffer size must supply | |||
* a @a bufsize_callback before activating themselves. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -443,7 +443,7 @@ int jack_set_buffer_size_callback (jack_client_t *client, | |||
* Tell the Jack server to call @a srate_callback whenever the system | |||
* sample rate changes. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -460,7 +460,7 @@ int jack_set_sample_rate_callback (jack_client_t *client, | |||
* Tell the JACK server to call @a client_registration_callback whenever a | |||
* client is registered or unregistered, passing @a arg as a parameter. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -477,7 +477,7 @@ int jack_set_client_registration_callback (jack_client_t *client, | |||
* Tell the JACK server to call @a registration_callback whenever a | |||
* port is registered or unregistered, passing @a arg as a parameter. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -494,7 +494,7 @@ int jack_set_client_registration_callback (jack_client_t *client, | |||
* Tell the JACK server to call @a connect_callback whenever a | |||
* port is connected or disconnected, passing @a arg as a parameter. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -511,7 +511,7 @@ int jack_set_port_connect_callback (jack_client_t *client, | |||
* Tell the JACK server to call @a rename_callback whenever a | |||
* port is renamed, passing @a arg as a parameter. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -528,7 +528,7 @@ int jack_set_port_rename_callback (jack_client_t *client, | |||
* Tell the JACK server to call @a graph_callback whenever the | |||
* processing graph is reordered, passing @a arg as a parameter. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -545,7 +545,7 @@ int jack_set_graph_order_callback (jack_client_t *client, | |||
* Tell the JACK server to call @a xrun_callback whenever there is a | |||
* xrun, passing @a arg as a parameter. | |||
* | |||
* All "notification events" are received in a seperated non RT thread, | |||
* All "notification events" are received in a separated non RT thread, | |||
* the code in the supplied function does not need to be | |||
* suitable for real-time execution. | |||
* | |||
@@ -769,7 +769,7 @@ int jack_port_unregister (jack_client_t *client, jack_port_t *port) JACK_OPTIONA | |||
* address from there. | |||
* | |||
* Caching output ports is DEPRECATED in Jack 2.0, due to some new optimization (like "pipelining"). | |||
* Port buffers have to be retrieved in each callback for proper functionning. | |||
* Port buffers have to be retrieved in each callback for proper functioning. | |||
*/ | |||
void * jack_port_get_buffer (jack_port_t *port, jack_nframes_t) JACK_OPTIONAL_WEAK_EXPORT; | |||
@@ -104,7 +104,7 @@ jack_midi_clear_buffer(void *port_buffer) JACK_OPTIONAL_WEAK_EXPORT; | |||
* | |||
* @deprecated Please use jack_midi_clear_buffer(). | |||
* | |||
* @param port_buffer Port buffer to resetted. | |||
* @param port_buffer Port buffer to reset. | |||
*/ | |||
void | |||
jack_midi_reset_buffer(void *port_buffer) JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT; | |||
@@ -334,7 +334,7 @@ int jack_net_master_recv_slice(jack_net_master_t* net, int audio_input, float** | |||
* @param net the network connection | |||
* @param audio_output number of audio outputs | |||
* @param audio_output_buffer an array of audio output buffers | |||
* @param midi_output number of MIDI ouputs | |||
* @param midi_output number of MIDI outputs | |||
* @param midi_output_buffer an array of MIDI output buffers | |||
* | |||
* @return zero on success, non-zero on error | |||
@@ -347,7 +347,7 @@ int jack_net_master_send(jack_net_master_t* net, int audio_output, float** audio | |||
* @param net the network connection | |||
* @param audio_output number of audio outputs | |||
* @param audio_output_buffer an array of audio output buffers | |||
* @param midi_output number of MIDI ouputs | |||
* @param midi_output number of MIDI outputs | |||
* @param midi_output_buffer an array of MIDI output buffers | |||
* @param frames the number of frames to send | |||
* | |||
@@ -403,7 +403,7 @@ void jack_flush_adapter(jack_adapter_t* adapter); | |||
* | |||
* @param adapter the adapter | |||
* @param input an array of audio input buffers | |||
* @param output an array of audio ouput buffers | |||
* @param output an array of audio output buffers | |||
* @param frames number of frames | |||
* | |||
* @return 0 on success, otherwise a non-zero error code | |||
@@ -415,7 +415,7 @@ int jack_adapter_push_and_pull(jack_adapter_t* adapter, float** input, float** o | |||
* | |||
* @param adapter the adapter | |||
* @param input an array of audio input buffers | |||
* @param output an array of audio ouput buffers | |||
* @param output an array of audio output buffers | |||
* @param frames number of frames | |||
* | |||
* @return 0 on success, otherwise a non-zero error code | |||
@@ -139,7 +139,7 @@ size_t jack_ringbuffer_read(jack_ringbuffer_t *rb, char *dest, size_t cnt); | |||
* Read data from the ringbuffer. Opposed to jack_ringbuffer_read() | |||
* this function does not move the read pointer. Thus it's | |||
* a convenient way to inspect data in the ringbuffer in a | |||
* continous fashion. The price is that the data is copied | |||
* continuous fashion. The price is that the data is copied | |||
* into a user provided buffer. For "raw" non-copy inspection | |||
* of the data in the ringbuffer use jack_ringbuffer_get_read_vector(). | |||
* | |||
@@ -37,7 +37,7 @@ extern "C" { | |||
/** | |||
* Session event type. | |||
* | |||
* If a client cant save templates, i might just do a normal save. | |||
* If a client can't save templates, i might just do a normal save. | |||
* | |||
* There is no "quit without saving" event because a client might refuse to | |||
* quit when it has unsaved data, but other clients may have already quit. | |||
@@ -57,7 +57,7 @@ enum JackSessionEventType { | |||
JackSessionSave = 1, | |||
/** | |||
* Save the session completly, then quit. | |||
* Save the session completely, then quit. | |||
* | |||
* The rules for saving are exactly the same as for JackSessionSave. | |||
*/ | |||
@@ -82,7 +82,7 @@ typedef enum JackSessionEventType jack_session_event_type_t; | |||
*/ | |||
enum JackSessionFlags { | |||
/** | |||
* An error occured while saving. | |||
* An error occurred while saving. | |||
*/ | |||
JackSessionSaveError = 0x01, | |||
@@ -325,7 +325,7 @@ typedef int (*JackGraphOrderCallback)(void *arg); | |||
/** | |||
* Prototype for the client-supplied function that is called whenever | |||
* an xrun has occured. | |||
* an xrun has occurred. | |||
* | |||
* @see jack_get_xrun_delayed_usecs() | |||
* | |||
@@ -420,7 +420,7 @@ typedef void (*JackFreewheelCallback)(int starting, void *arg); | |||
* whenever jackd is shutdown. Note that after server shutdown, | |||
* the client pointer is *not* deallocated by libjack, | |||
* the application is responsible to properly use jack_client_close() | |||
* to release client ressources. Warning: jack_client_close() cannot be | |||
* to release client resources. Warning: jack_client_close() cannot be | |||
* safely used inside the shutdown callback and has to be called outside of | |||
* the callback context. | |||
* | |||
@@ -433,7 +433,7 @@ typedef void (*JackShutdownCallback)(void *arg); | |||
* whenever jackd is shutdown. Note that after server shutdown, | |||
* the client pointer is *not* deallocated by libjack, | |||
* the application is responsible to properly use jack_client_close() | |||
* to release client ressources. Warning: jack_client_close() cannot be | |||
* to release client resources. Warning: jack_client_close() cannot be | |||
* safely used inside the shutdown callback and has to be called outside of | |||
* the callback context. | |||
@@ -60,7 +60,7 @@ | |||
* With normal symbol linkage, this would create a startup error whenever | |||
* someone tries to run Jill with the "old" version of JACK. However, functions | |||
* added to JACK after version 0.116.2 are all declared to have "weak" linkage | |||
* which means that their abscence doesn't cause an error during program | |||
* which means that their absence doesn't cause an error during program | |||
* startup. Instead, Jill can test whether or not the symbol jack_set_latency_callback | |||
* is null or not. If its null, it means that the JACK installed on this machine | |||
* is too old to support this function. If its not null, then Jill can use it | |||
@@ -50,7 +50,7 @@ | |||
the MAX_<N>BIT values are floating point. when multiplied by | |||
a full-scale normalized floating point sample value (-1.0..+1.0) | |||
they should give the maxium value representable with an integer | |||
they should give the maximum value representable with an integer | |||
sample type of N bits. Note that this is asymmetric. Sample ranges | |||
for signed integer, 2's complement values are -(2^(N-1) to +(2^(N-1)-1) | |||
@@ -198,7 +198,7 @@ int netjack_wait( netjack_driver_state_t *netj ) | |||
if( packet_cache_get_next_available_framecnt( netj->packcache, netj->expected_framecnt, &next_frame_avail) ) { | |||
jack_nframes_t offset = next_frame_avail - netj->expected_framecnt; | |||
//XXX: hmm... i need to remember why resync_threshold wasnt right. | |||
//XXX: hmm... i need to remember why resync_threshold wasn't right. | |||
//if( offset < netj->resync_threshold ) | |||
if( offset < 10 ) { | |||
// ok. don't do nothing. we will run without data. | |||
@@ -246,7 +246,7 @@ int netjack_wait( netjack_driver_state_t *netj ) | |||
// It would not be in the queue anymore, if it had been | |||
// retrieved. This might break for redundancy, but | |||
// i will make the packet cache drop redundant packets, | |||
// that have already been retreived. | |||
// that have already been retrieved. | |||
// | |||
if( packet_cache_get_highest_available_framecnt( netj->packcache, &next_frame_avail) ) { | |||
if( next_frame_avail == (netj->expected_framecnt - 1) ) { | |||
@@ -288,7 +288,7 @@ cache_packet_reset (cache_packet *pack) | |||
pack->valid = 0; | |||
// XXX: i don't think this is necessary here... | |||
// fragement array is cleared in _set_framecnt() | |||
// fragment array is cleared in _set_framecnt() | |||
for (i = 0; i < pack->num_fragments; i++) | |||
pack->fragment_array[i] = 0; | |||
@@ -586,7 +586,7 @@ packet_cache_retreive_packet_pointer( packet_cache *pcache, jack_nframes_t frame | |||
} | |||
if( cpack == NULL ) { | |||
//printf( "retreive packet: %d....not found\n", framecnt ); | |||
//printf( "retrieve packet: %d....not found\n", framecnt ); | |||
return -1; | |||
} | |||
@@ -620,7 +620,7 @@ packet_cache_release_packet( packet_cache *pcache, jack_nframes_t framecnt ) | |||
} | |||
if( cpack == NULL ) { | |||
//printf( "retreive packet: %d....not found\n", framecnt ); | |||
//printf( "retrieve packet: %d....not found\n", framecnt ); | |||
return -1; | |||
} | |||
@@ -655,7 +655,7 @@ jack_cleanup_shm () | |||
* from here. | |||
* | |||
* This is not done under a single lock. I don't even want to think | |||
* about all the things that could possibly go wrong if multple | |||
* about all the things that could possibly go wrong if multiple | |||
* processes tried to resize the same segment concurrently. That | |||
* probably doesn't happen. | |||
*/ | |||
@@ -768,7 +768,7 @@ jack_create_registry (jack_shm_info_t *ri) | |||
return rc; | |||
} | |||
/* Previous shm_open result depends of the actual value of umask, force correct file permisssion here */ | |||
/* Previous shm_open result depends of the actual value of umask, force correct file permission here */ | |||
if (fchmod(shm_fd, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) < 0) { | |||
jack_log("Cannot chmod jack-shm-registry (%s) %d %d", strerror (errno)); | |||
} | |||
@@ -176,7 +176,7 @@ extern "C" | |||
union { | |||
void *attached_at; /* address where attached */ | |||
char ptr_size[8]; | |||
} ptr; /* a "pointer" that has the same 8 bytes size when compling in 32 or 64 bits */ | |||
} ptr; /* a "pointer" that has the same 8 bytes size when compiling in 32 or 64 bits */ | |||
} POST_PACKED_STRUCTURE; | |||
typedef struct _jack_shm_info jack_shm_info_t; | |||
@@ -30,7 +30,7 @@ def build(bld): | |||
assuming this directory is called `compat`. After doing this you need to | |||
take any necessary actions described in the modules you want to use. | |||
The code in this directory is inteded to be generic and reusable. When | |||
The code in this directory is intended to be generic and reusable. When | |||
writing new modules, please keep this in mind. Whenever necessary it | |||
should be possible to make this directory a git submodule and all the | |||
subdirectories other submodules, to aid reuse. | |||
@@ -72,7 +72,7 @@ jack_control_run_method( | |||
int type; | |||
message_arg_t arg; | |||
/* use empty reply if not overriden in the code that follows */ | |||
/* use empty reply if not overridden in the code that follows */ | |||
type = DBUS_TYPE_INVALID; | |||
if (strcmp (call->method_name, "Exit") == 0) | |||
@@ -331,7 +331,7 @@ jack_controller_dbus_session_notify( | |||
call->message = NULL; /* mark that reply will be sent asynchronously */ | |||
cmd_ptr->connection = dbus_connection_ref(call->connection); | |||
/* it is safe to use the retrived pointers because we already made an additional message reference */ | |||
/* it is safe to use the retrieved pointers because we already made an additional message reference */ | |||
cmd_ptr->type = type; | |||
cmd_ptr->target = target; | |||
cmd_ptr->path = path; | |||
@@ -181,7 +181,7 @@ jack_dbus_message_handler( | |||
if (interface_name != NULL) | |||
{ | |||
/* Check if we can match the interface and method. | |||
* The inteface handler functions only return false if the | |||
* The interface handler functions only return false if the | |||
* method name was unknown, otherwise they run the specified | |||
* method and return TRUE. | |||
*/ | |||
@@ -411,7 +411,7 @@ int process (jack_nframes_t nframes, void *arg) { | |||
// Clamp offset. | |||
// the smooth offset still contains unwanted noise | |||
// which would go straigth onto the resample coeff. | |||
// which would go straight onto the resample coeff. | |||
// it only used in the P component and the I component is used for the fine tuning anyways. | |||
if( fabs( smooth_offset ) < pclamp ) | |||
smooth_offset = 0.0; | |||
@@ -421,7 +421,7 @@ int process (jack_nframes_t nframes, void *arg) { | |||
// K = 1/catch_factor and T = catch_factor2 | |||
double current_resample_factor = static_resample_factor - smooth_offset / (double) catch_factor - offset_integral / (double) catch_factor / (double)catch_factor2; | |||
// now quantize this value around resample_mean, so that the noise which is in the integral component doesnt hurt. | |||
// now quantize this value around resample_mean, so that the noise which is in the integral component doesn't hurt. | |||
current_resample_factor = floor( (current_resample_factor - resample_mean) * controlquant + 0.5 ) / controlquant + resample_mean; | |||
// Output "instrumentatio" gonna change that to real instrumentation in a few. | |||
@@ -781,11 +781,11 @@ int main (int argc, char *argv[]) { | |||
max_diff = num_periods*period_size - target_delay ; | |||
if( max_diff > target_delay ) { | |||
fprintf( stderr, "target_delay (%d) cant be smaller than max_diff(%d)\n", target_delay, max_diff ); | |||
fprintf( stderr, "target_delay (%d) can not be smaller than max_diff(%d)\n", target_delay, max_diff ); | |||
exit(20); | |||
} | |||
if( (target_delay+max_diff) > (num_periods*period_size) ) { | |||
fprintf( stderr, "target_delay+max_diff (%d) cant be bigger than buffersize(%d)\n", target_delay+max_diff, num_periods*period_size ); | |||
fprintf( stderr, "target_delay+max_diff (%d) can not be bigger than buffersize(%d)\n", target_delay+max_diff, num_periods*period_size ); | |||
exit(20); | |||
} | |||
// alloc input ports, which are blasted out to alsa... | |||
@@ -844,4 +844,3 @@ int main (int argc, char *argv[]) { | |||
jack_client_close (client); | |||
exit (0); | |||
} | |||
@@ -417,7 +417,7 @@ int process (jack_nframes_t nframes, void *arg) { | |||
// Clamp offset. | |||
// the smooth offset still contains unwanted noise | |||
// which would go straigth onto the resample coeff. | |||
// which would go straight onto the resample coeff. | |||
// it only used in the P component and the I component is used for the fine tuning anyways. | |||
if( fabs( smooth_offset ) < pclamp ) | |||
smooth_offset = 0.0; | |||
@@ -427,7 +427,7 @@ int process (jack_nframes_t nframes, void *arg) { | |||
// K = 1/catch_factor and T = catch_factor2 | |||
double current_resample_factor = static_resample_factor - smooth_offset / (double) catch_factor - offset_integral / (double) catch_factor / (double)catch_factor2; | |||
// now quantize this value around resample_mean, so that the noise which is in the integral component doesnt hurt. | |||
// now quantize this value around resample_mean, so that the noise which is in the integral component doesn't hurt. | |||
current_resample_factor = floor( (current_resample_factor - resample_mean) * controlquant + 0.5 ) / controlquant + resample_mean; | |||
// Output "instrumentatio" gonna change that to real instrumentation in a few. | |||
@@ -777,11 +777,11 @@ int main (int argc, char *argv[]) { | |||
max_diff = target_delay; | |||
if( max_diff > target_delay ) { | |||
fprintf( stderr, "target_delay (%d) cant be smaller than max_diff(%d)\n", target_delay, max_diff ); | |||
fprintf( stderr, "target_delay (%d) can not be smaller than max_diff(%d)\n", target_delay, max_diff ); | |||
exit(20); | |||
} | |||
if( (target_delay+max_diff) > (num_periods*period_size) ) { | |||
fprintf( stderr, "target_delay+max_diff (%d) cant be bigger than buffersize(%d)\n", target_delay+max_diff, num_periods*period_size ); | |||
fprintf( stderr, "target_delay+max_diff (%d) can not be bigger than buffersize(%d)\n", target_delay+max_diff, num_periods*period_size ); | |||
exit(20); | |||
} | |||
// now open the alsa fd... | |||
@@ -846,4 +846,3 @@ int main (int argc, char *argv[]) { | |||
jack_client_close (client); | |||
exit (0); | |||
} | |||
@@ -118,7 +118,7 @@ static void usage (int status) { | |||
printf ("jack_midi_dump - JACK MIDI Monitor.\n\n"); | |||
printf ("Usage: jack_midi_dump [ OPTIONS ] [CLIENT-NAME]\n\n"); | |||
printf ("Options:\n\ | |||
-a use absoute timestamps relative to application start\n\ | |||
-a use absolute timestamps relative to application start\n\ | |||
-h display this help and exit\n\ | |||
-r use relative timestamps to previous MIDI event\n\ | |||
\n"); | |||
@@ -427,7 +427,7 @@ process (jack_nframes_t nframes, void *arg) | |||
} | |||
/* Second alternative : we've received something that's not | |||
* as big as expected or we missed a packet. We render silence | |||
* to the ouput ports */ | |||
* to the output ports */ | |||
else { | |||
jack_nframes_t latency_estimate; | |||
if( packet_cache_find_latency( packcache, framecnt, &latency_estimate ) ) | |||
@@ -700,7 +700,7 @@ main (int argc, char *argv[]) | |||
insockfd = socket (AF_INET, SOCK_DGRAM, 0); | |||
if ((outsockfd == -1) || (insockfd == -1)) { | |||
fprintf (stderr, "cant open sockets\n" ); | |||
fprintf (stderr, "can not open sockets\n" ); | |||
return 1; | |||
} | |||
@@ -88,7 +88,7 @@ JSList *uuid_map = NULL; | |||
void add_uuid_mapping( const char *uuid ) { | |||
char *clientname = jack_get_client_name_by_uuid( client, uuid ); | |||
if( !clientname ) { | |||
printf( "error... cant find client for uuid" ); | |||
printf( "error... can not find client for uuid" ); | |||
return; | |||
} | |||
@@ -1,5 +1,5 @@ | |||
/* | |||
* simdtests.c -- test accuraccy and performance of simd optimizations | |||
* simdtests.c -- test accuracy and performance of simd optimizations | |||
* | |||
* Copyright (C) 2017 Andreas Mueller. | |||
* | |||
@@ -351,7 +351,7 @@ int main(int argc, char *argv[]) | |||
uint32_t float_error_count = 0; | |||
// output error (avoid spam -> limit error lines per test case) | |||
for(uint32_t sample=0; sample<TESTBUFF_SIZE; sample++) { | |||
// For easier estimation/readabilty we scale floats back to integer | |||
// For easier estimation/readability we scale floats back to integer | |||
jack_default_audio_sample_t sample_scaling; | |||
switch(test_cases[testcase].sample_size) { | |||
case 2: | |||
@@ -533,7 +533,7 @@ namespace Jack | |||
} | |||
/** | |||
* print more detailled information on the audio device | |||
* print more detailed information on the audio device | |||
*/ | |||
int longinfo() | |||
{ | |||
@@ -666,7 +666,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver, | |||
} | |||
} | |||
/* check the rate, since thats rather important */ | |||
/* check the rate, since that's rather important */ | |||
if (driver->playback_handle) { | |||
snd_pcm_hw_params_get_rate (driver->playback_hw_params, | |||
@@ -711,7 +711,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver, | |||
} | |||
/* check the fragment size, since thats non-negotiable */ | |||
/* check the fragment size, since that's non-negotiable */ | |||
if (driver->playback_handle) { | |||
snd_pcm_access_t access; | |||
@@ -3,7 +3,7 @@ | |||
Adaption to JACK, Copyright (C) 2002 Kai Vehmanen. | |||
- replaced use of gtypes with normal ANSI C types | |||
- glib's memery allocation routines replaced with | |||
- glib's memory allocation routines replaced with | |||
malloc/free calls | |||
This program is free software; you can redistribute it and/or modify | |||
@@ -61,12 +61,12 @@ static const unsigned char midi_system_len[] = | |||
{ | |||
0, /*0xF0 System Exclusive Start*/ | |||
2, /*0xF1 MTC Quarter Frame*/ | |||
3, /*0xF2 Song Postion*/ | |||
3, /*0xF2 Song Position*/ | |||
2, /*0xF3 Song Select*/ | |||
0, /*0xF4 undefined*/ | |||
0, /*0xF5 undefined*/ | |||
1, /*0xF6 Tune Request*/ | |||
1 /*0xF7 System Exlusive End*/ | |||
1 /*0xF7 System Exclusive End*/ | |||
}; | |||
static | |||
@@ -210,7 +210,7 @@ usx2y_driver_start (alsa_driver_t *driver) | |||
usx2y_t *h = (usx2y_t *) driver->hw->private_hw; | |||
for (i = 0; i < driver->capture_nchannels; i++) | |||
// US428 channels 3+4 are on a seperate 2 channel stream. | |||
// US428 channels 3+4 are on a separate 2 channel stream. | |||
// ALSA thinks its 1 stream with 4 channels. | |||
driver->capture_interleave_skip[i] = 2 * driver->capture_sample_bytes; | |||
@@ -85,7 +85,7 @@ JackFFADOMidiInputPort::Process(JackMidiBuffer *port_buffer, | |||
case JackMidiWriteQueue::OK: | |||
continue; | |||
default: | |||
// This is here to stop compliers from warning us about not | |||
// This is here to stop compilers from warning us about not | |||
// handling enumeration values. | |||
; | |||
} | |||
@@ -89,7 +89,7 @@ JackFFADOMidiOutputPort::Process(JackMidiBuffer *port_buffer, | |||
case JackMidiWriteQueue::OK: | |||
continue; | |||
default: | |||
// This is here to stop compliers from warning us about not | |||
// This is here to stop compilers from warning us about not | |||
// handling enumeration values. | |||
; | |||
} | |||
@@ -218,7 +218,7 @@ SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLocke | |||
return threaded_driver; | |||
initError: // error during intialisation, delete and return NULL | |||
initError: // error during initialisation, delete and return NULL | |||
delete iio_driver; | |||
return NULL; | |||
} | |||
@@ -165,7 +165,7 @@ class JackCoreAudioAdapter : public JackAudioAdapterInterface | |||
}; | |||
} // end of namepace | |||
} // end of namespace | |||
#ifdef __cplusplus | |||
extern "C" | |||
@@ -979,7 +979,7 @@ int JackCoreAudioAdapter::OpenAUHAL(bool capturing, | |||
jack_log("AudioUnitGetPropertyCurrentDevice = %d", currAudioDeviceID); | |||
} | |||
// Setup up choosen device, in both input and output cases | |||
// Setup up chosen device, in both input and output cases | |||
err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &fDeviceID, sizeof(AudioDeviceID)); | |||
if (err1 != noErr) { | |||
jack_error("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_CurrentDevice"); | |||
@@ -637,7 +637,7 @@ OSStatus JackCoreAudioDriver::GetDefaultOutputDevice(AudioDeviceID* id) | |||
} | |||
if (outDefault == 0) { | |||
jack_error("Error default ouput device is 0, will take 'Built-in'..."); | |||
jack_error("Error default output device is 0, will take 'Built-in'..."); | |||
if (CheckAvailableDeviceName("Built-in Output", id)) { | |||
jack_log("JackCoreAudioDriver::GetDefaultOutputDevice : output = %ld", *id); | |||
return noErr; | |||
@@ -1717,7 +1717,7 @@ int JackCoreAudioDriver::OpenAUHAL(bool capturing, | |||
jack_log("JackCoreAudioDriver::OpenAUHAL : AudioUnitGetPropertyCurrentDevice = %d", currAudioDeviceID); | |||
} | |||
// Setup up choosen device, in both input and output cases | |||
// Setup up chosen device, in both input and output cases | |||
err1 = AudioUnitSetProperty(fAUHAL, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &fDeviceID, sizeof(AudioDeviceID)); | |||
if (err1 != noErr) { | |||
jack_error("Error calling AudioUnitSetProperty - kAudioOutputUnitProperty_CurrentDevice"); | |||
@@ -2556,8 +2556,8 @@ extern "C" | |||
jack_nframes_t frames_per_interrupt = 256; | |||
bool capture = false; | |||
bool playback = false; | |||
int chan_in = -1; // Default: if not explicitely set, then max possible will be used... | |||
int chan_out = -1; // Default: if not explicitely set, then max possible will be used... | |||
int chan_in = -1; // Default: if not explicitly set, then max possible will be used... | |||
int chan_out = -1; // Default: if not explicitly set, then max possible will be used... | |||
const char* chan_in_list = ""; | |||
const char* chan_out_list = ""; | |||
bool monitor = false; | |||
@@ -1,4 +1,4 @@ | |||
# Install jackdmp and owerwrite JACK installation | |||
# Install jackdmp and overwrite JACK installation | |||
# Plug-ins | |||
[ -d Panda.framework ] && sudo cp -r Panda.framework /Library/Frameworks | |||
@@ -28,7 +28,7 @@ sudo cp jack_loopback.so /usr/local/lib/jackmp | |||
[ -f netadapter.so ] && sudo cp netadapter.so /usr/local/lib/jackmp | |||
[ -f audioadapter.so ] && sudo cp audioadapter.so /usr/local/lib/jackmp | |||
# Create links to jackmp ressources | |||
# Create links to jackmp resources | |||
cd /usr/local/bin && [ -f jackd ] && sudo rm jackd | |||
cd /usr/local/lib && [ -f libjack.0.dylib ] && sudo rm libjack.0.dylib | |||
@@ -606,7 +606,7 @@ static void net_shutdown(void *) | |||
} | |||
#ifdef BENCHMARKMODE | |||
// mesuring jack performances | |||
// measuring jack performances | |||
static __inline__ unsigned long long int rdtsc(void) | |||
{ | |||
unsigned long long int x; | |||
@@ -26,7 +26,7 @@ The \fIidentifier\fR is normally a UUID (UUIDs for ports and clients can be show | |||
be interpreted as a client name, and its UUID will be looked up internally and used for the relevant metadata operation. If the \fB-p\fR option is used, then \fIidentifier\fR will | |||
be interpreted as a port name and its UUID will be looked up internally and used for the relevant metadata operation. | |||
.P | |||
The \fIkey\fR is an arbitary string that identifies the metadata to be operated upon. | |||
The \fIkey\fR is an arbitrary string that identifies the metadata to be operated upon. | |||
.P | |||
The \fIvalue\fR is an arbitrary string that defines the value of the metadata to be created. | |||
.P | |||
@@ -43,7 +43,7 @@ bool JackFifo::Signal() | |||
char c = 0; | |||
if (fFifo < 0) { | |||
jack_error("JackFifo::Signal name = %s already desallocated!!", fName); | |||
jack_error("JackFifo::Signal name = %s already deallocated!!", fName); | |||
return false; | |||
} | |||
@@ -62,7 +62,7 @@ bool JackFifo::SignalAll() | |||
char c = 0; | |||
if (fFifo < 0) { | |||
jack_error("JackFifo::SignalAll name = %s already desallocated!!", fName); | |||
jack_error("JackFifo::SignalAll name = %s already deallocated!!", fName); | |||
return false; | |||
} | |||
@@ -81,7 +81,7 @@ bool JackFifo::Wait() | |||
char c; | |||
if (fFifo < 0) { | |||
jack_error("JackFifo::Wait name = %s already desallocated!!", fName); | |||
jack_error("JackFifo::Wait name = %s already deallocated!!", fName); | |||
return false; | |||
} | |||
@@ -104,7 +104,7 @@ bool JackFifo::TimedWait(long usec) | |||
int res; | |||
if (fFifo < 0) { | |||
jack_error("JackFifo::TimedWait name = %s already desallocated!!", fName); | |||
jack_error("JackFifo::TimedWait name = %s already deallocated!!", fName); | |||
return false; | |||
} | |||
@@ -103,7 +103,7 @@ static void start_server_classic_aux(const char* server_name) | |||
if (!fp) { | |||
fp = fopen("/etc/jackdrc", "r"); | |||
} | |||
/* if still not found, check old config name for backwards compatability */ | |||
/* if still not found, check old config name for backwards compatibility */ | |||
if (!fp) { | |||
fp = fopen("/etc/jackd.conf", "r"); | |||
} | |||
@@ -123,7 +123,7 @@ bool JackSocketClientChannel::Init() | |||
} | |||
if (!fNotificationSocket) { | |||
jack_error("JackSocketClientChannel: cannot establish notication socket"); | |||
jack_error("JackSocketClientChannel: cannot establish notification socket"); | |||
return false; | |||
} else { | |||
return true; | |||
@@ -46,7 +46,7 @@ void JackSocketServerNotifyChannel::Close() | |||
/* | |||
The requirement is that the Notification from RT thread can be delivered... not sure using a socket is adequate here... | |||
Can the write operation block? | |||
A non blocking write operation shoud be used : check if write can succeed, and ignore the notification otherwise | |||
A non blocking write operation should be used : check if write can succeed, and ignore the notification otherwise | |||
(since its mainly used for XRun, ignoring a notification is OK, successive XRun will come...) | |||
*/ | |||
void JackSocketServerNotifyChannel::Notify(int refnum, int notify, int value) | |||
@@ -578,7 +578,7 @@ int JackBoomerDriver::Start() | |||
// Maybe necessary to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html | |||
memset(fOutputBuffer, 0, fOutputBufferSize); | |||
// Prefill ouput buffer | |||
// Prefill output buffer | |||
for (int i = 0; i < fNperiods; i++) { | |||
ssize_t count = ::write(fOutFD, fOutputBuffer, fOutputBufferSize); | |||
if (count < (int)fOutputBufferSize) { | |||
@@ -563,13 +563,13 @@ int JackOSSAdapter::Write() | |||
{ | |||
ssize_t count; | |||
// Maybe necessay to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html | |||
// Maybe necessary to write an empty output buffer first time : see http://manuals.opensound.com/developer/fulldup.c.html | |||
if (fFirstCycle) { | |||
fFirstCycle = false; | |||
memset(fOutputBuffer, 0, fOutputBufferSize); | |||
// Prefill ouput buffer | |||
// Prefill output buffer | |||
for (int i = 0; i < fNperiods; i++) { | |||
count = ::write(fOutFD, fOutputBuffer, fOutputBufferSize); | |||
if (count < fOutputBufferSize) { | |||
@@ -514,7 +514,7 @@ int JackOSSDriver::OpenAux() | |||
// In duplex mode, check that input and output use the same buffer size | |||
/* | |||
10/02/09 : desactivated for now, needs more check (only needed when *same* device is used for input and output ??) | |||
10/02/09 : deactivated for now, needs more check (only needed when *same* device is used for input and output ??) | |||
if ((fRWMode & kRead) && (fRWMode & kWrite) && (fInputBufferSize != fOutputBufferSize)) { | |||
jack_error("JackOSSDriver::OpenAux input and output buffer size are not the same!!"); | |||
@@ -625,7 +625,7 @@ int JackOSSDriver::Write() | |||
fFirstCycle = false; | |||
memset(fOutputBuffer, 0, fOutputBufferSize); | |||
// Prefill ouput buffer | |||
// Prefill output buffer | |||
for (int i = 0; i < fNperiods; i++) { | |||
count = ::write(fOutFD, fOutputBuffer, fOutputBufferSize); | |||
if (count < (int)fOutputBufferSize) { | |||
@@ -16,7 +16,7 @@ TEMP_FILE="${OUTPUT_FILE}.tmp" | |||
#echo "$OUTPUT_FILE" | |||
#echo "$TEMP_FILE" | |||
# The script should reside in the toplevel source directory which sould contain | |||
# The script should reside in the toplevel source directory which should contain | |||
# all version control files. | |||
cd `dirname ${0}` | |||
@@ -1,5 +1,5 @@ | |||
# Configuration profile for the templated systemd user unit jack@.service | |||
# A (modified) copy of this configuration can be used to start jackd staticly | |||
# A (modified) copy of this configuration can be used to start jackd statically | |||
# for a user, which has the upside, that other systemd user units can depend on | |||
# it. | |||
# | |||
@@ -1027,7 +1027,7 @@ int main (int argc, char *argv[]) | |||
printf("!!! ERROR !!! Jack_Thread_Init_Callback was not called !!.\n"); | |||
} | |||
jack_sleep(10 * 1000); // test see the clock in the graph at the begining... | |||
jack_sleep(10 * 1000); // test see the clock in the graph at the beginning... | |||
/** | |||
* Stress Freewheel mode... | |||
@@ -1103,7 +1103,7 @@ int main (int argc, char *argv[]) | |||
cur_buffer_size = jack_get_buffer_size(client1); | |||
/** | |||
* Test the last regestered port to see if port_is_mine function the right value. | |||
* Test the last registered port to see if port_is_mine function the right value. | |||
* A second test will be performed later. | |||
* The result will be printed at the end. | |||
* | |||
@@ -1193,10 +1193,10 @@ int main (int argc, char *argv[]) | |||
inports = jack_get_ports(client1, NULL, NULL, JackPortIsPhysical | JackPortIsInput); | |||
if (outports == NULL) { | |||
printf("!!! WARNING !!! no physical capture ports founded !\n"); | |||
printf("!!! WARNING !!! no physical capture ports found !\n"); | |||
} | |||
if (inports == NULL) { | |||
printf("!!! WARNING !!! no physical output ports founded !\n"); | |||
printf("!!! WARNING !!! no physical output ports found !\n"); | |||
} | |||
/** | |||
@@ -1305,11 +1305,11 @@ int main (int argc, char *argv[]) | |||
if (is_mine == 1) { | |||
Log("Checking jack_port_is_mine()... ok\n"); | |||
} else { | |||
printf("!!! ERROR !!! jack_port_is_mine() function seems to send non-valid datas !\n"); | |||
printf("!!! ERROR !!! jack_port_is_mine() function seems to send non-valid data !\n"); | |||
} | |||
/** | |||
* Free the array of the physical input and ouput ports. | |||
* (as mentionned in the doc of jack_get_ports) | |||
* Free the array of the physical input and output ports. | |||
* (as mentioned in the doc of jack_get_ports) | |||
* | |||
*/ | |||
jack_free(inports); | |||
@@ -1354,7 +1354,7 @@ int main (int argc, char *argv[]) | |||
printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", j, port_callback_reg); | |||
} | |||
jack_free(inports); // free array of ports (as mentionned in the doc of jack_get_ports) | |||
jack_free(inports); // free array of ports (as mentioned in the doc of jack_get_ports) | |||
/** | |||
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* | |||
@@ -1567,16 +1567,16 @@ int main (int argc, char *argv[]) | |||
* establishing a link between client1.out1 --> client2.in2 | |||
* Send the signal1 test on out1. Record the result into signal2. (see process functions). | |||
---------------------------------------------------------------------------*/ | |||
Log("Testing connections datas between clients...\n"); | |||
Log("Testing connections data between clients...\n"); | |||
jack_connect(client2, jack_port_name(output_port1), jack_port_name(input_port2) ); | |||
process2_activated = -1; | |||
process1_activated = -1; | |||
Log("process 2 : idle mode...\n"); | |||
Log("Sending datas..."); | |||
Log("Sending data..."); | |||
index1 = 0; | |||
index2 = 0; | |||
process1_activated = 1; // We start emitting first. | |||
process2_activated = 1; // So record begin at least when we just begin to emitt the signal, else at next call of process with | |||
process2_activated = 1; // So record begins at least when we just begin to emit the signal, else at next call of process with | |||
// nframe = jack buffersize shifting. | |||
while (process2_activated == 1) { | |||
@@ -1584,7 +1584,7 @@ int main (int argc, char *argv[]) | |||
Log("."); | |||
} | |||
index2 = 0; | |||
Log("\nAnalysing datas...\n"); // search the first occurence of the first element of the reference signal in the recorded signal | |||
Log("\nAnalysing data...\n"); // search the first occurrence of the first element of the reference signal in the recorded signal | |||
while (signal2[index2] != signal1[1] ) { | |||
index2++; | |||
if (index2 == 95999) { | |||
@@ -1593,12 +1593,12 @@ int main (int argc, char *argv[]) | |||
} | |||
} | |||
index1 = index2; | |||
Log("Data founded at offset %i.\n", index2); | |||
// And now we founded were the recorded data are, we can see if the two signals matches... | |||
Log("Data found at offset %i.\n", index2); | |||
// Now that we've found where the recorded data is, we can see if the two signals match... | |||
while ( (signal2[index2] == signal1[index2 - index1 + 1]) || (index2 == 95999) || ((index2 - index1 + 1) == 47999) ) { | |||
index2++; | |||
} | |||
Log("Checking difference between datas... %i have the same value...\n", index2 - index1); | |||
Log("Checking difference between data... %i have the same value...\n", index2 - index1); | |||
if ((index2 - index1) == 48000) { | |||
Log("Data received are valid...\n"); | |||
} else { | |||
@@ -1627,7 +1627,7 @@ int main (int argc, char *argv[]) | |||
printf("!!! ERROR !!! port_tie has allowed a connexion between two different clients !\n"); | |||
jack_port_untie(output_port2); | |||
} | |||
Log("Testing connections datas in tie mode...\n"); | |||
Log("Testing connections data in tie mode...\n"); | |||
int g; | |||
for (g = 0; g < 96000; g++) | |||
signal2[g] = 0.0; | |||
@@ -1645,8 +1645,8 @@ int main (int argc, char *argv[]) | |||
process1_activated = -1; | |||
process2_activated = -1; | |||
// We can manualy check here that the tie is effective. | |||
// ie : playing a wav with a client, connecting ports manualy with qjackctl, and listen... | |||
// We can manually check here that the tie is effective. | |||
// ie : playing a wav with a client, connecting ports manually with qjackctl, and listen... | |||
// printf("manual test\n"); | |||
// jack_sleep(50); | |||
// printf("end of manual test\n"); | |||
@@ -1656,7 +1656,7 @@ int main (int argc, char *argv[]) | |||
process1_activated = -1; | |||
process2_activated = 2; | |||
Log("Sending datas..."); | |||
Log("Sending data..."); | |||
while (process2_activated == 2) { | |||
jack_sleep(1 * 1000); | |||
@@ -1665,7 +1665,7 @@ int main (int argc, char *argv[]) | |||
process1_activated = -1; | |||
process2_activated = -1; | |||
index2 = 0; | |||
Log("\nAnalysing datas...\n"); | |||
Log("\nAnalysing data...\n"); | |||
// We must find at least 2 identical values to ensure we are at the right place in the siusoidal array... | |||
while (!((signal2[index2] == signal1[1]) && (signal2[index2 + 1] == signal1[2]))) { | |||
index2++; | |||
@@ -1675,20 +1675,20 @@ int main (int argc, char *argv[]) | |||
} | |||
} | |||
index1 = index2; | |||
Log("Tie mode : Data founded at offset %i.\n", index2); | |||
Log("Tie mode : Data found at offset %i.\n", index2); | |||
while (signal2[index2] == signal1[index2 - index1 + 1]) { | |||
index2++; | |||
if ((index2 == 95999) || ((index2 - index1 + 1) == 47999)) { | |||
break; | |||
} | |||
} | |||
Log("Checking difference between datas... %i have the same value...\n", index2 - index1); | |||
Log("Checking difference between data... %i have the same value...\n", index2 - index1); | |||
if ((index2 - index1) > 47995) { | |||
Log("Data received in tie mode are valid...\n"); | |||
} else { | |||
// in tie mode, the buffers adress should be the same for the two tied ports. | |||
// in tie mode, the buffers address should be the same for the two tied ports. | |||
printf("!!! ERROR !!! data transmission seems not to be valid !\n"); | |||
printf("Links topology : (emitt) client2.out2 ----> client1.in1--(tie)--client1.out1----->client2.in2 (recive)\n"); | |||
printf("Links topology : (emitt) client2.out2 ----> client1.in1--(tie)--client1.out1----->client2.in2 (receive)\n"); | |||
printf(" port_name : Port_adress \n"); | |||
printf(" output_port1 : %px\n", jack_port_get_buffer(output_port1, cur_buffer_size)); | |||
printf(" input_port2 : %px\n", jack_port_get_buffer(input_port2, cur_buffer_size)); | |||
@@ -1729,7 +1729,7 @@ int main (int argc, char *argv[]) | |||
index1 = 0; | |||
index2 = 0; | |||
Log("Sending datas..."); | |||
Log("Sending data..."); | |||
process2_activated = 3; | |||
while (process2_activated == 3) { | |||
@@ -1739,7 +1739,7 @@ int main (int argc, char *argv[]) | |||
process1_activated = -1; | |||
process2_activated = -1; | |||
index2 = 0; | |||
Log("\nAnalysing datas...\n"); // same idea as above, with first data check... | |||
Log("\nAnalysing data...\n"); // same idea as above, with first data check... | |||
while (!((signal2[index2] == 0.0 ) && (signal2[(index2 + 1)] == 0.0 ))) { | |||
index2++; | |||
if (index2 == 95999) { | |||
@@ -1748,7 +1748,7 @@ int main (int argc, char *argv[]) | |||
} | |||
} | |||
index1 = index2; | |||
Log("Data founded at offset %i.\n", index2); | |||
Log("Data found at offset %i.\n", index2); | |||
while ( signal2[index2] == 0.0 ) { | |||
index2++; | |||
@@ -1756,7 +1756,7 @@ int main (int argc, char *argv[]) | |||
break; | |||
} | |||
} | |||
Log("Checking difference between datas...\n"); | |||
Log("Checking difference between data...\n"); | |||
if ((index2 - index1) > 47996) { | |||
Log("Data mixed received are valid...\nSummation is well done.\n"); | |||
} else { | |||
@@ -1793,17 +1793,20 @@ int main (int argc, char *argv[]) | |||
/** | |||
* Checking latency issues | |||
* here are simple latency check | |||
* here is a simple latency check | |||
* We simply check that the value returned by jack seems ok | |||
* Latency compensation is a difficult point. | |||
* Actually, jack is not able to see "thru" client to build a full latency chain. | |||
* Ardour use theses informations to do internally his compensations. | |||
* Ardour use this information to internally do its compensations. | |||
* | |||
* 3 test are done : one with no connections between client, one with a serial connection, and one with parallel connection | |||
* Three tests are done: | |||
* 1) with no connections between client, | |||
* 2) with a serial connection, and | |||
* 3) with parallel connection | |||
*/ | |||
#ifndef TEST_EXCLUDE_DEPRECATED | |||
Log("Checking about latency functions...\n"); | |||
Log("Checking latency functions...\n"); | |||
t_error = 0; | |||
jack_recompute_total_latencies(client1); | |||
Log("jack_recompute_total_latencies...\n"); | |||
@@ -1886,7 +1889,7 @@ int main (int argc, char *argv[]) | |||
Log("get_latency & get_total_latency seems quite ok...\n"); | |||
} | |||
} else { | |||
printf("No physical port founded : not able to test latency functions..."); | |||
printf("No physical port found : not able to test latency functions..."); | |||
} | |||
jack_port_disconnect(client1, input_port1); | |||
@@ -1935,7 +1938,7 @@ int main (int argc, char *argv[]) | |||
jack_sleep(1 * 1000); | |||
} | |||
// Wait untill rolling : simulate sync time out | |||
// Wait until rolling : simulate sync time out | |||
Log("Simulate a slow-sync client exceeding the time-out\n"); | |||
wait_count = 0; | |||
@@ -1976,7 +1979,7 @@ int main (int argc, char *argv[]) | |||
jack_sleep(500); | |||
starting_state = 0; // Simulate end of starting state after 0.5 sec | |||
// Wait untill rolling | |||
// Wait until rolling | |||
ts = jack_transport_query(client2, &pos); | |||
while (ts != JackTransportRolling) { | |||
jack_sleep(100); // Wait 100 ms each cycle | |||
@@ -2127,7 +2130,7 @@ int main (int argc, char *argv[]) | |||
jack_sleep(2 * 1000); | |||
/** | |||
* Checking callback exiting : when the return code is != 0, the client is desactivated. | |||
* Checking callback exiting : when the return code is != 0, the client is deactivated. | |||
*/ | |||
Log("Testing callback exiting...\n"); | |||
jack_deactivate(client1); | |||
@@ -292,7 +292,7 @@ namespace Jack | |||
return getsockopt(fSockfd, level, optname, static_cast<char*>(optval), optlen); | |||
} | |||
//tiemout************************************************************************************************************ | |||
//timeout************************************************************************************************************ | |||
int JackNetWinSocket::SetTimeOut(int usec) | |||
{ | |||
jack_log("JackNetWinSocket::SetTimeout %d usec", usec); | |||
@@ -332,7 +332,7 @@ void JackRouter::shutdownCallback(void* arg) | |||
/* | |||
char errstr[128]; | |||
memset(errstr,0,128); | |||
sprintf(errstr,"JACK server has quitted"); | |||
sprintf(errstr,"JACK server has quit"); | |||
MessageBox(0,(LPCTSTR)errstr,(LPCTSTR)"JackRouter",MB_OK); | |||
*/ | |||
} | |||
@@ -206,7 +206,7 @@ int JackWinAsyncNamedPipeClient::FinishIO() | |||
case kConnecting: | |||
if (!success) { | |||
jack_error("Conection error"); | |||
jack_error("Connection error"); | |||
return -1; | |||
} else { | |||
fIOState = kReading; | |||
@@ -314,7 +314,7 @@ bool JackWinNamedPipeServer::Accept() | |||
} else { | |||
jack_error("Cannot connect server pipe name = %s err = %ld", fName, GetLastError()); | |||
if (GetLastError() == ERROR_PIPE_CONNECTED) { | |||
jack_error("Pipe already connnected = %s", fName); | |||
jack_error("Pipe already connected = %s", fName); | |||
return true; | |||
} else { | |||
return false; | |||
@@ -175,7 +175,7 @@ void JackWinNamedPipeServerChannel::Close() | |||
{ | |||
/* TODO : solve WIN32 thread Kill issue | |||
This would hang the server... since we are quitting it, its not really problematic, | |||
all ressources will be deallocated at the end. | |||
all resources will be deallocated at the end. | |||
fRequestListenPipe.Close(); | |||
fThread.Stop(); | |||
@@ -44,7 +44,7 @@ void JackWinNamedPipeServerNotifyChannel::Close() | |||
/* | |||
The requirement is that the Notification from RT thread can be delivered... not sure using a pipe is adequate here... | |||
Can the write operation block? | |||
A non blocking write operation shoud be used : check if write can succeed, and ignore the notification otherwise | |||
A non blocking write operation should be used : check if write can succeed, and ignore the notification otherwise | |||
(since its mainly used for XRun, ignoring a notification is OK, successive XRun will come...) | |||
*/ | |||
void JackWinNamedPipeServerNotifyChannel::Notify(int refnum, int notify, int value) | |||
@@ -107,7 +107,7 @@ static int start_server_aux(const char* server_name) | |||
if (find_path_to_jackdrc(filename)) | |||
fp = fopen(filename, "r"); | |||
/* if still not found, check old config name for backwards compatability */ | |||
/* if still not found, check old config name for backwards compatibility */ | |||