@@ -81,7 +81,7 @@ namespace android { | |||||
/* pointers to registry header and array */ | /* pointers to registry header and array */ | ||||
jack_shm_header_t *Shm::jack_shm_header = NULL; | jack_shm_header_t *Shm::jack_shm_header = NULL; | ||||
jack_shm_registry_t *Shm::jack_shm_registry = NULL; | jack_shm_registry_t *Shm::jack_shm_registry = NULL; | ||||
char Shm::jack_shm_server_prefix[JACK_SERVER_NAME_SIZE] = ""; | |||||
char Shm::jack_shm_server_prefix[JACK_SERVER_NAME_SIZE+1] = ""; | |||||
/* jack_shm_lock_registry() serializes updates to the shared memory | /* jack_shm_lock_registry() serializes updates to the shared memory | ||||
* segment JACK uses to keep track of the SHM segments allocated to | * segment JACK uses to keep track of the SHM segments allocated to | ||||
@@ -124,7 +124,7 @@ namespace android { | |||||
static jack_shm_info_t registry_info; | static jack_shm_info_t registry_info; | ||||
static jack_shm_header_t *jack_shm_header; | static jack_shm_header_t *jack_shm_header; | ||||
static jack_shm_registry_t *jack_shm_registry; | static jack_shm_registry_t *jack_shm_registry; | ||||
static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE]; | |||||
static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE+1]; | |||||
static int semid; | static int semid; | ||||
static pthread_mutex_t mutex; | static pthread_mutex_t mutex; | ||||
static Shm* ref; | static Shm* ref; | ||||
@@ -1481,12 +1481,12 @@ LIB_EXPORT char* jack_get_client_name(jack_client_t* ext_client) | |||||
LIB_EXPORT int jack_client_name_size(void) | LIB_EXPORT int jack_client_name_size(void) | ||||
{ | { | ||||
return JACK_CLIENT_NAME_SIZE; | |||||
return JACK_CLIENT_NAME_SIZE+1; | |||||
} | } | ||||
LIB_EXPORT int jack_port_name_size(void) | LIB_EXPORT int jack_port_name_size(void) | ||||
{ | { | ||||
return REAL_JACK_PORT_NAME_SIZE; | |||||
return REAL_JACK_PORT_NAME_SIZE+1; | |||||
} | } | ||||
LIB_EXPORT int jack_port_type_size(void) | LIB_EXPORT int jack_port_type_size(void) | ||||
@@ -115,8 +115,8 @@ int JackAudioDriver::Attach() | |||||
{ | { | ||||
JackPort* port; | JackPort* port; | ||||
jack_port_id_t port_index; | jack_port_id_t port_index; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
int i; | int i; | ||||
jack_log("JackAudioDriver::Attach fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | jack_log("JackAudioDriver::Attach fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | ||||
@@ -1195,7 +1195,7 @@ int JackClient::SetLatencyCallback(JackLatencyCallback callback, void *arg) | |||||
char* JackClient::GetInternalClientName(int ref) | char* JackClient::GetInternalClientName(int ref) | ||||
{ | { | ||||
char name_res[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char name_res[JACK_CLIENT_NAME_SIZE+1]; | |||||
int result = -1; | int result = -1; | ||||
fChannel->GetInternalClientName(GetClientControl()->fRefNum, ref, name_res, &result); | fChannel->GetInternalClientName(GetClientControl()->fRefNum, ref, name_res, &result); | ||||
return (result < 0) ? NULL : strdup(name_res); | return (result < 0) ? NULL : strdup(name_res); | ||||
@@ -87,7 +87,7 @@ class SERVER_EXPORT JackClient : public JackClientInterface, public JackRunnable | |||||
void* fThreadFunArg; | void* fThreadFunArg; | ||||
void* fSessionArg; | void* fSessionArg; | ||||
void* fLatencyArg; | void* fLatencyArg; | ||||
char fServerName[JACK_SERVER_NAME_SIZE]; | |||||
char fServerName[JACK_SERVER_NAME_SIZE+1]; | |||||
JackThread fThread; /*! Thread to execute the Process function */ | JackThread fThread; /*! Thread to execute the Process function */ | ||||
detail::JackClientChannelInterface* fChannel; | detail::JackClientChannelInterface* fChannel; | ||||
@@ -59,7 +59,7 @@ class JackDebugClient : public JackClient | |||||
int fIsDeactivated; | int fIsDeactivated; | ||||
int fIsClosed; | int fIsClosed; | ||||
bool fFreewheel; | bool fFreewheel; | ||||
char fClientName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fClientName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackProcessCallback fProcessTimeCallback; | JackProcessCallback fProcessTimeCallback; | ||||
void* fProcessTimeCallbackArg; | void* fProcessTimeCallbackArg; | ||||
@@ -76,7 +76,7 @@ int JackDriver::Open() | |||||
} | } | ||||
int JackDriver::Open(jack_nframes_t buffer_size, | int JackDriver::Open(jack_nframes_t buffer_size, | ||||
jack_nframes_t samplerate, | |||||
jack_nframes_t sample_rate, | |||||
bool capturing, | bool capturing, | ||||
bool playing, | bool playing, | ||||
int inchannels, | int inchannels, | ||||
@@ -111,8 +111,8 @@ int JackDriver::Open(jack_nframes_t buffer_size, | |||||
if (buffer_size > 0) { | if (buffer_size > 0) { | ||||
fEngineControl->fBufferSize = buffer_size; | fEngineControl->fBufferSize = buffer_size; | ||||
} | } | ||||
if (samplerate > 0) { | |||||
fEngineControl->fSampleRate = samplerate; | |||||
if (sample_rate > 0) { | |||||
fEngineControl->fSampleRate = sample_rate; | |||||
} | } | ||||
fCaptureLatency = capture_latency; | fCaptureLatency = capture_latency; | ||||
fPlaybackLatency = playback_latency; | fPlaybackLatency = playback_latency; | ||||
@@ -125,7 +125,7 @@ int JackDriver::Open(jack_nframes_t buffer_size, | |||||
fEngineControl->UpdateTimeOut(); | fEngineControl->UpdateTimeOut(); | ||||
fGraphManager->SetBufferSize(buffer_size); | |||||
fGraphManager->SetBufferSize(fEngineControl->fBufferSize); | |||||
fGraphManager->DirectConnect(fClientControl.fRefNum, fClientControl.fRefNum); // Connect driver to itself for "sync" mode | fGraphManager->DirectConnect(fClientControl.fRefNum, fClientControl.fRefNum); // Connect driver to itself for "sync" mode | ||||
SetupDriverSync(fClientControl.fRefNum, false); | SetupDriverSync(fClientControl.fRefNum, false); | ||||
return 0; | return 0; | ||||
@@ -422,10 +422,10 @@ static string RemoveLast(const string& name) | |||||
void JackDriver::SaveConnections(int alias) | void JackDriver::SaveConnections(int alias) | ||||
{ | { | ||||
const char** connections; | const char** connections; | ||||
char alias1[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias2[REAL_JACK_PORT_NAME_SIZE]; | |||||
char system_alias1[REAL_JACK_PORT_NAME_SIZE]; | |||||
char system_alias2[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias1[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias2[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char system_alias1[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char system_alias2[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char* aliases[2]; | char* aliases[2]; | ||||
char* system_aliases[2]; | char* system_aliases[2]; | ||||
@@ -506,8 +506,8 @@ void JackDriver::SaveConnections(int alias) | |||||
string JackDriver::MatchPortName(const char* name, const char** ports, int alias, const std::string& type) | string JackDriver::MatchPortName(const char* name, const char** ports, int alias, const std::string& type) | ||||
{ | { | ||||
char alias1[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias2[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias1[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias2[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char* aliases[2]; | char* aliases[2]; | ||||
aliases[0] = alias1; | aliases[0] = alias1; | ||||
@@ -129,10 +129,9 @@ class SERVER_EXPORT JackDriver : public JackDriverClientInterface | |||||
protected: | protected: | ||||
char fCaptureDriverName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fPlaybackDriverName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fAliasName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fCaptureDriverName[JACK_CLIENT_NAME_SIZE+1]; | |||||
char fPlaybackDriverName[JACK_CLIENT_NAME_SIZE+1]; | |||||
char fAliasName[JACK_CLIENT_NAME_SIZE+1]; | |||||
jack_nframes_t fCaptureLatency; | jack_nframes_t fCaptureLatency; | ||||
jack_nframes_t fPlaybackLatency; | jack_nframes_t fPlaybackLatency; | ||||
@@ -1038,7 +1038,7 @@ int JackEngine::PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t ds | |||||
int JackEngine::PortRename(int refnum, jack_port_id_t port, const char* name) | int JackEngine::PortRename(int refnum, jack_port_id_t port, const char* name) | ||||
{ | { | ||||
char old_name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char old_name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
strcpy(old_name, fGraphManager->GetPort(port)->GetName()); | strcpy(old_name, fGraphManager->GetPort(port)->GetName()); | ||||
fGraphManager->GetPort(port)->SetName(name); | fGraphManager->GetPort(port)->SetName(name); | ||||
NotifyPortRename(port, old_name); | NotifyPortRename(port, old_name); | ||||
@@ -63,7 +63,7 @@ struct SERVER_EXPORT JackEngineControl : public JackShmMem | |||||
int fServerPriority; | int fServerPriority; | ||||
int fClientPriority; | int fClientPriority; | ||||
int fMaxClientPriority; | int fMaxClientPriority; | ||||
char fServerName[JACK_SERVER_NAME_SIZE]; | |||||
char fServerName[JACK_SERVER_NAME_SIZE+1]; | |||||
JackTransportEngine fTransport; | JackTransportEngine fTransport; | ||||
jack_timer_type_t fClockSource; | jack_timer_type_t fClockSource; | ||||
int fDriverNum; | int fDriverNum; | ||||
@@ -301,8 +301,9 @@ int JackGraphManager::ComputeTotalLatencies() | |||||
jack_port_id_t port_index; | jack_port_id_t port_index; | ||||
for (port_index = FIRST_AVAILABLE_PORT; port_index < fPortMax; port_index++) { | for (port_index = FIRST_AVAILABLE_PORT; port_index < fPortMax; port_index++) { | ||||
JackPort* port = GetPort(port_index); | JackPort* port = GetPort(port_index); | ||||
if (port->IsUsed()) | |||||
if (port->IsUsed()) { | |||||
ComputeTotalLatency(port_index); | ComputeTotalLatency(port_index); | ||||
} | |||||
} | } | ||||
return 0; | return 0; | ||||
} | } | ||||
@@ -321,14 +322,17 @@ void JackGraphManager::RecalculateLatencyAux(jack_port_id_t port_index, jack_lat | |||||
dst_port->GetLatencyRange(mode, &other_latency); | dst_port->GetLatencyRange(mode, &other_latency); | ||||
if (other_latency.max > latency.max) | |||||
if (other_latency.max > latency.max) { | |||||
latency.max = other_latency.max; | latency.max = other_latency.max; | ||||
if (other_latency.min < latency.min) | |||||
} | |||||
if (other_latency.min < latency.min) { | |||||
latency.min = other_latency.min; | latency.min = other_latency.min; | ||||
} | |||||
} | } | ||||
if (latency.min == UINT32_MAX) | |||||
if (latency.min == UINT32_MAX) { | |||||
latency.min = 0; | latency.min = 0; | ||||
} | |||||
port->SetLatencyRange(mode, &latency); | port->SetLatencyRange(mode, &latency); | ||||
} | } | ||||
@@ -355,8 +359,9 @@ void JackGraphManager::SetBufferSize(jack_nframes_t buffer_size) | |||||
jack_port_id_t port_index; | jack_port_id_t port_index; | ||||
for (port_index = FIRST_AVAILABLE_PORT; port_index < fPortMax; port_index++) { | for (port_index = FIRST_AVAILABLE_PORT; port_index < fPortMax; port_index++) { | ||||
JackPort* port = GetPort(port_index); | JackPort* port = GetPort(port_index); | ||||
if (port->IsUsed()) | |||||
if (port->IsUsed()) { | |||||
port->ClearBuffer(buffer_size); | port->ClearBuffer(buffer_size); | ||||
} | |||||
} | } | ||||
} | } | ||||
@@ -370,8 +375,9 @@ jack_port_id_t JackGraphManager::AllocatePortAux(int refnum, const char* port_na | |||||
JackPort* port = GetPort(port_index); | JackPort* port = GetPort(port_index); | ||||
if (!port->IsUsed()) { | if (!port->IsUsed()) { | ||||
jack_log("JackGraphManager::AllocatePortAux port_index = %ld name = %s type = %s", port_index, port_name, port_type); | jack_log("JackGraphManager::AllocatePortAux port_index = %ld name = %s type = %s", port_index, port_name, port_type); | ||||
if (!port->Allocate(refnum, port_name, port_type, flags)) | |||||
if (!port->Allocate(refnum, port_name, port_type, flags)) { | |||||
return NO_PORT; | return NO_PORT; | ||||
} | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
@@ -98,7 +98,7 @@ int JackLibClient::Open(const char* server_name, const char* name, int uuid, jac | |||||
strncpy(fServerName, server_name, sizeof(fServerName)); | strncpy(fServerName, server_name, sizeof(fServerName)); | ||||
// Open server/client channel | // Open server/client channel | ||||
char name_res[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char name_res[JACK_CLIENT_NAME_SIZE+1]; | |||||
if (fChannel->Open(server_name, name, uuid, name_res, this, options, status) < 0) { | if (fChannel->Open(server_name, name, uuid, name_res, this, options, status) < 0) { | ||||
jack_error("Cannot connect to the server"); | jack_error("Cannot connect to the server"); | ||||
goto error; | goto error; | ||||
@@ -99,8 +99,9 @@ LIB_EXPORT | |||||
size_t jack_midi_max_event_size(void* port_buffer) | size_t jack_midi_max_event_size(void* port_buffer) | ||||
{ | { | ||||
JackMidiBuffer *buf = (JackMidiBuffer*)port_buffer; | JackMidiBuffer *buf = (JackMidiBuffer*)port_buffer; | ||||
if (buf && buf->IsValid()) | |||||
if (buf && buf->IsValid()) { | |||||
return buf->MaxEventSize(); | return buf->MaxEventSize(); | ||||
} | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -152,7 +153,8 @@ LIB_EXPORT | |||||
uint32_t jack_midi_get_lost_event_count(void* port_buffer) | uint32_t jack_midi_get_lost_event_count(void* port_buffer) | ||||
{ | { | ||||
JackMidiBuffer *buf = (JackMidiBuffer*)port_buffer; | JackMidiBuffer *buf = (JackMidiBuffer*)port_buffer; | ||||
if (buf && buf->IsValid()) | |||||
if (buf && buf->IsValid()) { | |||||
return buf->lost_events; | return buf->lost_events; | ||||
} | |||||
return 0; | return 0; | ||||
} | } |
@@ -58,8 +58,8 @@ int JackMidiDriver::Attach() | |||||
{ | { | ||||
JackPort* port; | JackPort* port; | ||||
jack_port_id_t port_index; | jack_port_id_t port_index; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
int i; | int i; | ||||
jack_log("JackMidiDriver::Attach fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | jack_log("JackMidiDriver::Attach fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | ||||
@@ -51,7 +51,7 @@ struct SERVER_EXPORT JackMidiEvent | |||||
uint32_t time; | uint32_t time; | ||||
jack_shmsize_t size; | jack_shmsize_t size; | ||||
union { | union { | ||||
jack_shmsize_t offset; | |||||
jack_shmsize_t offset; | |||||
jack_midi_data_t data[INLINE_SIZE_MAX]; | jack_midi_data_t data[INLINE_SIZE_MAX]; | ||||
}; | }; | ||||
@@ -519,7 +519,7 @@ struct JackNetExtSlave : public JackNetSlaveInterface, public JackRunnableInterf | |||||
fBufferSizeCallback(NULL), fBufferSizeArg(NULL), | fBufferSizeCallback(NULL), fBufferSizeArg(NULL), | ||||
fSampleRateCallback(NULL), fSampleRateArg(NULL) | fSampleRateCallback(NULL), fSampleRateArg(NULL) | ||||
{ | { | ||||
char host_name[JACK_CLIENT_NAME_SIZE]; | |||||
char host_name[JACK_CLIENT_NAME_SIZE + 1]; | |||||
// Request parameters | // Request parameters | ||||
assert(strlen(ip) < 32); | assert(strlen(ip) < 32); | ||||
@@ -318,8 +318,8 @@ namespace Jack | |||||
JackPort* port; | JackPort* port; | ||||
jack_port_id_t port_index; | jack_port_id_t port_index; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
int audio_port_index; | int audio_port_index; | ||||
int midi_port_index; | int midi_port_index; | ||||
@@ -720,7 +720,7 @@ Deactivated for now.. | |||||
SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params) | SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLockedEngine* engine, Jack::JackSynchro* table, const JSList* params) | ||||
{ | { | ||||
char multicast_ip[32]; | char multicast_ip[32]; | ||||
char net_name[JACK_CLIENT_NAME_SIZE + 1] = {0}; | |||||
char net_name[JACK_CLIENT_NAME_SIZE+1] = {0}; | |||||
int udp_port; | int udp_port; | ||||
int mtu = DEFAULT_MTU; | int mtu = DEFAULT_MTU; | ||||
// Desactivated for now... | // Desactivated for now... | ||||
@@ -94,9 +94,9 @@ namespace Jack | |||||
char fPacketType[8]; //packet type ('param') | char fPacketType[8]; //packet type ('param') | ||||
uint32_t fProtocolVersion; //version | uint32_t fProtocolVersion; //version | ||||
int32_t fPacketID; //indicates the packet type | int32_t fPacketID; //indicates the packet type | ||||
char fName[JACK_CLIENT_NAME_SIZE]; //slave's name | |||||
char fMasterNetName[JACK_SERVER_NAME_SIZE]; //master hostname (network) | |||||
char fSlaveNetName[JACK_SERVER_NAME_SIZE]; //slave hostname (network) | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; //slave's name | |||||
char fMasterNetName[JACK_SERVER_NAME_SIZE+1]; //master hostname (network) | |||||
char fSlaveNetName[JACK_SERVER_NAME_SIZE+1]; //slave hostname (network) | |||||
uint32_t fMtu; //connection mtu | uint32_t fMtu; //connection mtu | ||||
uint32_t fID; //slave's ID | uint32_t fID; //slave's ID | ||||
uint32_t fTransportSync; //is the transport synced ? | uint32_t fTransportSync; //is the transport synced ? | ||||
@@ -230,7 +230,7 @@ void JackPort::SetName(const char* new_name) | |||||
bool JackPort::NameEquals(const char* target) | bool JackPort::NameEquals(const char* target) | ||||
{ | { | ||||
char buf[REAL_JACK_PORT_NAME_SIZE]; | |||||
char buf[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
/* this nasty, nasty kludge is here because between 0.109.0 and 0.109.1, | /* this nasty, nasty kludge is here because between 0.109.0 and 0.109.1, | ||||
the ALSA audio backend had the name "ALSA", whereas as before and | the ALSA audio backend had the name "ALSA", whereas as before and | ||||
@@ -45,9 +45,9 @@ class SERVER_EXPORT JackPort | |||||
int fTypeId; | int fTypeId; | ||||
enum JackPortFlags fFlags; | enum JackPortFlags fFlags; | ||||
char fName[REAL_JACK_PORT_NAME_SIZE]; | |||||
char fAlias1[REAL_JACK_PORT_NAME_SIZE]; | |||||
char fAlias2[REAL_JACK_PORT_NAME_SIZE]; | |||||
char fName[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char fAlias1[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char fAlias2[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
int fRefNum; | int fRefNum; | ||||
jack_nframes_t fLatency; | jack_nframes_t fLatency; | ||||
@@ -62,9 +62,9 @@ namespace Jack | |||||
private: | private: | ||||
char fUpstream[JACK_CLIENT_NAME_SIZE]; /*<! the upstream server name */ | |||||
char fClientName[JACK_CLIENT_NAME_SIZE]; /*<! client name to use when connecting */ | |||||
const char* fPromiscuous; /*<! if not null, group or gid to use for promiscuous mode */ | |||||
char fUpstream[JACK_CLIENT_NAME_SIZE+1]; /*<! the upstream server name */ | |||||
char fClientName[JACK_CLIENT_NAME_SIZE+1]; /*<! client name to use when connecting */ | |||||
const char* fPromiscuous; /*<! if not null, group or gid to use for promiscuous mode */ | |||||
//jack data | //jack data | ||||
jack_client_t* fClient; /*<! client handle */ | jack_client_t* fClient; /*<! client handle */ | ||||
@@ -157,7 +157,7 @@ struct JackResult | |||||
struct JackClientCheckRequest : public JackRequest | struct JackClientCheckRequest : public JackRequest | ||||
{ | { | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
int fProtocol; | int fProtocol; | ||||
int fOptions; | int fOptions; | ||||
int fUUID; | int fUUID; | ||||
@@ -202,7 +202,7 @@ struct JackClientCheckRequest : public JackRequest | |||||
struct JackClientCheckResult : public JackResult | struct JackClientCheckResult : public JackResult | ||||
{ | { | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
int fStatus; | int fStatus; | ||||
JackClientCheckResult(): JackResult(), fStatus(0) | JackClientCheckResult(): JackResult(), fStatus(0) | ||||
@@ -240,7 +240,7 @@ struct JackClientOpenRequest : public JackRequest | |||||
int fPID; | int fPID; | ||||
int fUUID; | int fUUID; | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackClientOpenRequest() | JackClientOpenRequest() | ||||
{} | {} | ||||
@@ -517,8 +517,8 @@ struct JackPortConnectNameRequest : public JackRequest | |||||
{ | { | ||||
int fRefNum; | int fRefNum; | ||||
char fSrc[REAL_JACK_PORT_NAME_SIZE + 1]; // port full name | |||||
char fDst[REAL_JACK_PORT_NAME_SIZE + 1]; // port full name | |||||
char fSrc[REAL_JACK_PORT_NAME_SIZE+1]; // port full name | |||||
char fDst[REAL_JACK_PORT_NAME_SIZE+1]; // port full name | |||||
JackPortConnectNameRequest() | JackPortConnectNameRequest() | ||||
{} | {} | ||||
@@ -559,8 +559,8 @@ struct JackPortDisconnectNameRequest : public JackRequest | |||||
{ | { | ||||
int fRefNum; | int fRefNum; | ||||
char fSrc[REAL_JACK_PORT_NAME_SIZE + 1]; // port full name | |||||
char fDst[REAL_JACK_PORT_NAME_SIZE + 1]; // port full name | |||||
char fSrc[REAL_JACK_PORT_NAME_SIZE+1]; // port full name | |||||
char fDst[REAL_JACK_PORT_NAME_SIZE+1]; // port full name | |||||
JackPortDisconnectNameRequest() | JackPortDisconnectNameRequest() | ||||
{} | {} | ||||
@@ -901,7 +901,7 @@ struct JackGetInternalClientNameRequest : public JackRequest | |||||
struct JackGetInternalClientNameResult : public JackResult | struct JackGetInternalClientNameResult : public JackResult | ||||
{ | { | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackGetInternalClientNameResult(): JackResult() | JackGetInternalClientNameResult(): JackResult() | ||||
{} | {} | ||||
@@ -936,7 +936,7 @@ struct JackInternalClientHandleRequest : public JackRequest | |||||
{ | { | ||||
int fRefNum; | int fRefNum; | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackInternalClientHandleRequest() | JackInternalClientHandleRequest() | ||||
{} | {} | ||||
@@ -1010,9 +1010,9 @@ struct JackInternalClientLoadRequest : public JackRequest | |||||
#endif | #endif | ||||
int fRefNum; | int fRefNum; | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fDllName[MAX_PATH + 1]; | |||||
char fLoadInitName[JACK_LOAD_INIT_LIMIT + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
char fDllName[MAX_PATH+1]; | |||||
char fLoadInitName[JACK_LOAD_INIT_LIMIT+1]; | |||||
int fOptions; | int fOptions; | ||||
int fUUID; | int fUUID; | ||||
@@ -1194,7 +1194,7 @@ struct JackClientNotificationRequest : public JackRequest | |||||
struct JackSessionCommand | struct JackSessionCommand | ||||
{ | { | ||||
char fUUID[JACK_UUID_SIZE]; | char fUUID[JACK_UUID_SIZE]; | ||||
char fClientName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fClientName[JACK_CLIENT_NAME_SIZE+1]; | |||||
char fCommand[JACK_SESSION_COMMAND_SIZE]; | char fCommand[JACK_SESSION_COMMAND_SIZE]; | ||||
jack_session_flags_t fFlags; | jack_session_flags_t fFlags; | ||||
@@ -1305,8 +1305,8 @@ struct JackSessionNotifyResult : public JackResult | |||||
struct JackSessionNotifyRequest : public JackRequest | struct JackSessionNotifyRequest : public JackRequest | ||||
{ | { | ||||
char fPath[JACK_MESSAGE_SIZE + 1]; | |||||
char fDst[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fPath[JACK_MESSAGE_SIZE+1]; | |||||
char fDst[JACK_CLIENT_NAME_SIZE+1]; | |||||
jack_session_event_type_t fEventType; | jack_session_event_type_t fEventType; | ||||
int fRefNum; | int fRefNum; | ||||
@@ -1377,7 +1377,7 @@ struct JackSessionReplyRequest : public JackRequest | |||||
struct JackClientNameResult : public JackResult | struct JackClientNameResult : public JackResult | ||||
{ | { | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackClientNameResult(): JackResult() | JackClientNameResult(): JackResult() | ||||
{} | {} | ||||
@@ -1433,7 +1433,7 @@ struct JackUUIDResult : public JackResult | |||||
struct JackGetUUIDRequest : public JackRequest | struct JackGetUUIDRequest : public JackRequest | ||||
{ | { | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackGetUUIDRequest() | JackGetUUIDRequest() | ||||
{} | {} | ||||
@@ -1496,7 +1496,7 @@ struct JackGetClientNameRequest : public JackRequest | |||||
struct JackReserveNameRequest : public JackRequest | struct JackReserveNameRequest : public JackRequest | ||||
{ | { | ||||
int fRefNum; | int fRefNum; | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
char fUUID[JACK_UUID_SIZE]; | char fUUID[JACK_UUID_SIZE]; | ||||
JackReserveNameRequest() | JackReserveNameRequest() | ||||
@@ -1533,7 +1533,7 @@ struct JackReserveNameRequest : public JackRequest | |||||
struct JackClientHasSessionCallbackRequest : public JackRequest | struct JackClientHasSessionCallbackRequest : public JackRequest | ||||
{ | { | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
JackClientHasSessionCallbackRequest() | JackClientHasSessionCallbackRequest() | ||||
{} | {} | ||||
@@ -1569,13 +1569,13 @@ struct JackClientHasSessionCallbackRequest : public JackRequest | |||||
struct JackClientNotification | struct JackClientNotification | ||||
{ | { | ||||
int fSize; | int fSize; | ||||
char fName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fName[JACK_CLIENT_NAME_SIZE+1]; | |||||
int fRefNum; | int fRefNum; | ||||
int fNotify; | int fNotify; | ||||
int fValue1; | int fValue1; | ||||
int fValue2; | int fValue2; | ||||
int fSync; | int fSync; | ||||
char fMessage[JACK_MESSAGE_SIZE + 1]; | |||||
char fMessage[JACK_MESSAGE_SIZE+1]; | |||||
JackClientNotification(): fNotify(-1), fValue1(-1), fValue2(-1) | JackClientNotification(): fNotify(-1), fValue1(-1), fValue2(-1) | ||||
{} | {} | ||||
@@ -119,7 +119,7 @@ static jack_shm_info_t registry_info = { /* SHM info for the registry */ | |||||
/* pointers to registry header and array */ | /* pointers to registry header and array */ | ||||
static jack_shm_header_t *jack_shm_header = NULL; | static jack_shm_header_t *jack_shm_header = NULL; | ||||
static jack_shm_registry_t *jack_shm_registry = NULL; | static jack_shm_registry_t *jack_shm_registry = NULL; | ||||
static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE] = ""; | |||||
static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE+1] = ""; | |||||
/* jack_shm_lock_registry() serializes updates to the shared memory | /* jack_shm_lock_registry() serializes updates to the shared memory | ||||
* segment JACK uses to keep track of the SHM segments allocated to | * segment JACK uses to keep track of the SHM segments allocated to | ||||
@@ -123,7 +123,7 @@ extern "C" | |||||
pid_t pid; /* process ID */ | pid_t pid; /* process ID */ | ||||
#endif | #endif | ||||
char name[JACK_SERVER_NAME_SIZE]; | |||||
char name[JACK_SERVER_NAME_SIZE+1]; | |||||
} | } | ||||
jack_shm_server_t; | jack_shm_server_t; | ||||
@@ -50,49 +50,44 @@ static void usage() | |||||
static int process(jack_nframes_t nframes, void *arg) | static int process(jack_nframes_t nframes, void *arg) | ||||
{ | { | ||||
int i,j; | |||||
void* port_buf = jack_port_get_buffer(output_port, nframes); | |||||
unsigned char* buffer; | |||||
jack_midi_clear_buffer(port_buf); | |||||
/*memset(buffer, 0, nframes*sizeof(jack_default_audio_sample_t));*/ | |||||
int i,j; | |||||
void* port_buf = jack_port_get_buffer(output_port, nframes); | |||||
unsigned char* buffer; | |||||
jack_midi_clear_buffer(port_buf); | |||||
/*memset(buffer, 0, nframes*sizeof(jack_default_audio_sample_t));*/ | |||||
for(i=0; i<nframes; i++) | |||||
{ | |||||
for(j=0; j<num_notes; j++) | |||||
{ | |||||
if(note_starts[j] == loop_index) | |||||
{ | |||||
buffer = jack_midi_event_reserve(port_buf, i, 3); | |||||
/* printf("wrote a note on, port buffer = 0x%x, event buffer = 0x%x\n", port_buf, buffer);*/ | |||||
buffer[2] = 64; /* velocity */ | |||||
buffer[1] = note_frqs[j]; | |||||
buffer[0] = 0x90; /* note on */ | |||||
} | |||||
else if(note_starts[j] + note_lengths[j] == loop_index) | |||||
{ | |||||
buffer = jack_midi_event_reserve(port_buf, i, 3); | |||||
/* printf("wrote a note off, port buffer = 0x%x, event buffer = 0x%x\n", port_buf, buffer);*/ | |||||
buffer[2] = 64; /* velocity */ | |||||
buffer[1] = note_frqs[j]; | |||||
buffer[0] = 0x80; /* note off */ | |||||
} | |||||
} | |||||
loop_index = loop_index+1 >= loop_nsamp ? 0 : loop_index+1; | |||||
} | |||||
return 0; | |||||
for (i = 0; i < nframes; i++) { | |||||
for (j = 0; j < num_notes; j++) { | |||||
if (note_starts[j] == loop_index) { | |||||
if ((buffer = jack_midi_event_reserve(port_buf, i, 3))) { | |||||
/* printf("wrote a note on, port buffer = 0x%x, event buffer = 0x%x\n", port_buf, buffer); */ | |||||
buffer[2] = 64; /* velocity */ | |||||
buffer[1] = note_frqs[j]; | |||||
buffer[0] = 0x90; /* note on */ | |||||
} | |||||
} else if (note_starts[j] + note_lengths[j] == loop_index) { | |||||
if ((buffer = jack_midi_event_reserve(port_buf, i, 3))) { | |||||
/* printf("wrote a note off, port buffer = 0x%x, event buffer = 0x%x\n", port_buf, buffer); */ | |||||
buffer[2] = 64; /* velocity */ | |||||
buffer[1] = note_frqs[j]; | |||||
buffer[0] = 0x80; /* note off */ | |||||
} | |||||
} | |||||
} | |||||
loop_index = loop_index+1 >= loop_nsamp ? 0 : loop_index+1; | |||||
} | |||||
return 0; | |||||
} | } | ||||
int main(int narg, char **args) | int main(int narg, char **args) | ||||
{ | { | ||||
int i; | int i; | ||||
jack_nframes_t nframes; | jack_nframes_t nframes; | ||||
if((narg<6) || ((narg-3)%3 !=0)) | |||||
{ | |||||
if ((narg<6) || ((narg-3)%3 != 0)) { | |||||
usage(); | usage(); | ||||
exit(1); | exit(1); | ||||
} | } | ||||
if((client = jack_client_open (args[1], JackNullOption, NULL)) == 0) | |||||
{ | |||||
if ((client = jack_client_open (args[1], JackNullOption, NULL)) == 0) { | |||||
fprintf (stderr, "JACK server not running?\n"); | fprintf (stderr, "JACK server not running?\n"); | ||||
return 1; | return 1; | ||||
} | } | ||||
@@ -105,15 +100,13 @@ int main(int narg, char **args) | |||||
note_starts = malloc(num_notes*sizeof(jack_nframes_t)); | note_starts = malloc(num_notes*sizeof(jack_nframes_t)); | ||||
note_lengths = malloc(num_notes*sizeof(jack_nframes_t)); | note_lengths = malloc(num_notes*sizeof(jack_nframes_t)); | ||||
loop_nsamp = atoi(args[2]); | loop_nsamp = atoi(args[2]); | ||||
for(i=0; i<num_notes; i++) | |||||
{ | |||||
for (i = 0; i < num_notes; i++) { | |||||
note_starts[i] = atoi(args[3 + 3*i]); | note_starts[i] = atoi(args[3 + 3*i]); | ||||
note_frqs[i] = atoi(args[4 + 3*i]); | note_frqs[i] = atoi(args[4 + 3*i]); | ||||
note_lengths[i] = atoi(args[5 + 3*i]); | note_lengths[i] = atoi(args[5 + 3*i]); | ||||
} | } | ||||
if (jack_activate(client)) | |||||
{ | |||||
if (jack_activate(client)) { | |||||
fprintf (stderr, "cannot activate client"); | fprintf (stderr, "cannot activate client"); | ||||
return 1; | return 1; | ||||
} | } | ||||
@@ -2,7 +2,7 @@ | |||||
* transport.c -- JACK transport master example client. | * transport.c -- JACK transport master example client. | ||||
* | * | ||||
* Copyright (C) 2003 Jack O'Quin. | * Copyright (C) 2003 Jack O'Quin. | ||||
* | |||||
* | |||||
* This program is free software; you can redistribute it and/or modify | * This program is free software; you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
* the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | ||||
@@ -24,14 +24,14 @@ | |||||
#include <signal.h> | #include <signal.h> | ||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <string.h> | #include <string.h> | ||||
#ifdef HAVE_READLINE | |||||
#if HAVE_READLINE | |||||
#include <readline/readline.h> | #include <readline/readline.h> | ||||
#include <readline/history.h> | #include <readline/history.h> | ||||
#endif | #endif | ||||
#include <jack/jack.h> | #include <jack/jack.h> | ||||
#include <jack/transport.h> | #include <jack/transport.h> | ||||
#ifndef HAVE_READLINE | |||||
#if !HAVE_READLINE | |||||
#define whitespace(c) (((c) == ' ') || ((c) == '\t')) | #define whitespace(c) (((c) == ' ') || ((c) == '\t')) | ||||
#endif | #endif | ||||
@@ -53,7 +53,7 @@ volatile int time_reset = 1; /* true when time values change */ | |||||
* | * | ||||
* Runs in the process thread. Realtime, must not wait. | * Runs in the process thread. Realtime, must not wait. | ||||
*/ | */ | ||||
static void timebase(jack_transport_state_t state, jack_nframes_t nframes, | |||||
static void timebase(jack_transport_state_t state, jack_nframes_t nframes, | |||||
jack_position_t *pos, int new_pos, void *arg) | jack_position_t *pos, int new_pos, void *arg) | ||||
{ | { | ||||
double min; /* minutes since frame 0 */ | double min; /* minutes since frame 0 */ | ||||
@@ -238,7 +238,7 @@ command_t commands[] = { | |||||
{"?", com_help, "Synonym for `help'" }, | {"?", com_help, "Synonym for `help'" }, | ||||
{(char *)NULL, (cmd_function_t *)NULL, (char *)NULL } | {(char *)NULL, (cmd_function_t *)NULL, (char *)NULL } | ||||
}; | }; | ||||
static command_t *find_command(char *name) | static command_t *find_command(char *name) | ||||
{ | { | ||||
register int i; | register int i; | ||||
@@ -258,7 +258,7 @@ static command_t *find_command(char *name) | |||||
else | else | ||||
return (&commands[i]); | return (&commands[i]); | ||||
} | } | ||||
return ((command_t *)NULL); | return ((command_t *)NULL); | ||||
} | } | ||||
@@ -302,33 +302,33 @@ static void execute_command(char *line) | |||||
register int i; | register int i; | ||||
command_t *command; | command_t *command; | ||||
char *word; | char *word; | ||||
/* Isolate the command word. */ | /* Isolate the command word. */ | ||||
i = 0; | i = 0; | ||||
while (line[i] && whitespace(line[i])) | while (line[i] && whitespace(line[i])) | ||||
i++; | i++; | ||||
word = line + i; | word = line + i; | ||||
while (line[i] && !whitespace(line[i])) | while (line[i] && !whitespace(line[i])) | ||||
i++; | i++; | ||||
if (line[i]) | if (line[i]) | ||||
line[i++] = '\0'; | line[i++] = '\0'; | ||||
command = find_command(word); | command = find_command(word); | ||||
if (!command) { | if (!command) { | ||||
fprintf(stderr, "%s: No such command. There is `help\'.\n", | fprintf(stderr, "%s: No such command. There is `help\'.\n", | ||||
word); | word); | ||||
return; | return; | ||||
} | } | ||||
/* Get argument to command, if any. */ | /* Get argument to command, if any. */ | ||||
while (whitespace(line[i])) | while (whitespace(line[i])) | ||||
i++; | i++; | ||||
word = line + i; | word = line + i; | ||||
/* invoke the command function. */ | /* invoke the command function. */ | ||||
(*command->func)(word); | (*command->func)(word); | ||||
} | } | ||||
@@ -345,28 +345,28 @@ static char *stripwhite(char *string) | |||||
if (*s == '\0') | if (*s == '\0') | ||||
return s; | return s; | ||||
t = s + strlen (s) - 1; | t = s + strlen (s) - 1; | ||||
while (t > s && whitespace(*t)) | while (t > s && whitespace(*t)) | ||||
t--; | t--; | ||||
*++t = '\0'; | *++t = '\0'; | ||||
return s; | return s; | ||||
} | } | ||||
static char *dupstr(char *s) | static char *dupstr(char *s) | ||||
{ | { | ||||
char *r = malloc(strlen(s) + 1); | char *r = malloc(strlen(s) + 1); | ||||
strcpy(r, s); | strcpy(r, s); | ||||
return r; | return r; | ||||
} | } | ||||
/* Readline generator function for command completion. */ | /* Readline generator function for command completion. */ | ||||
static char *command_generator (const char *text, int state) | static char *command_generator (const char *text, int state) | ||||
{ | { | ||||
static int list_index, len; | static int list_index, len; | ||||
char *name; | char *name; | ||||
/* If this is a new word to complete, initialize now. This | /* If this is a new word to complete, initialize now. This | ||||
includes saving the length of TEXT for efficiency, and | includes saving the length of TEXT for efficiency, and | ||||
initializing the index variable to 0. */ | initializing the index variable to 0. */ | ||||
@@ -374,22 +374,22 @@ static char *command_generator (const char *text, int state) | |||||
list_index = 0; | list_index = 0; | ||||
len = strlen (text); | len = strlen (text); | ||||
} | } | ||||
/* Return the next name which partially matches from the | /* Return the next name which partially matches from the | ||||
command list. */ | command list. */ | ||||
while ((name = commands[list_index].name)) { | while ((name = commands[list_index].name)) { | ||||
list_index++; | list_index++; | ||||
if (strncmp(name, text, len) == 0) | if (strncmp(name, text, len) == 0) | ||||
return dupstr(name); | return dupstr(name); | ||||
} | } | ||||
return (char *) NULL; /* No names matched. */ | return (char *) NULL; /* No names matched. */ | ||||
} | } | ||||
static void command_loop() | static void command_loop() | ||||
{ | { | ||||
#ifdef HAVE_READLINE | |||||
#if HAVE_READLINE | |||||
char *line, *cmd; | char *line, *cmd; | ||||
char prompt[32]; | char prompt[32]; | ||||
@@ -397,7 +397,7 @@ static void command_loop() | |||||
/* Allow conditional parsing of the ~/.inputrc file. */ | /* Allow conditional parsing of the ~/.inputrc file. */ | ||||
rl_readline_name = package; | rl_readline_name = package; | ||||
/* Define a custom completion function. */ | /* Define a custom completion function. */ | ||||
rl_completion_entry_function = command_generator; | rl_completion_entry_function = command_generator; | ||||
#else | #else | ||||
@@ -408,9 +408,9 @@ static void command_loop() | |||||
/* Read and execute commands until the user quits. */ | /* Read and execute commands until the user quits. */ | ||||
while (!done) { | while (!done) { | ||||
#ifdef HAVE_READLINE | |||||
#if HAVE_READLINE | |||||
line = readline(prompt); | line = readline(prompt); | ||||
if (line == NULL) { /* EOF? */ | if (line == NULL) { /* EOF? */ | ||||
printf("\n"); /* close out prompt */ | printf("\n"); /* close out prompt */ | ||||
done = 1; | done = 1; | ||||
@@ -421,20 +421,20 @@ static void command_loop() | |||||
fgets(line, sizeof(line), stdin); | fgets(line, sizeof(line), stdin); | ||||
line[strlen(line)-1] = '\0'; | line[strlen(line)-1] = '\0'; | ||||
#endif | #endif | ||||
/* Remove leading and trailing whitespace from the line. */ | /* Remove leading and trailing whitespace from the line. */ | ||||
cmd = stripwhite(line); | cmd = stripwhite(line); | ||||
/* If anything left, add to history and execute it. */ | /* If anything left, add to history and execute it. */ | ||||
if (*cmd) | if (*cmd) | ||||
{ | { | ||||
#ifdef HAVE_READLINE | |||||
#if HAVE_READLINE | |||||
add_history(cmd); | add_history(cmd); | ||||
#endif | #endif | ||||
execute_command(cmd); | execute_command(cmd); | ||||
} | } | ||||
#ifdef HAVE_READLINE | |||||
#if HAVE_READLINE | |||||
free(line); /* realine() called malloc() */ | free(line); /* realine() called malloc() */ | ||||
#endif | #endif | ||||
} | } | ||||
@@ -459,7 +459,7 @@ int main(int argc, char *argv[]) | |||||
return 1; | return 1; | ||||
} | } | ||||
#ifndef WIN32 | |||||
#if !WIN32 | |||||
signal(SIGQUIT, signal_handler); | signal(SIGQUIT, signal_handler); | ||||
signal(SIGHUP, signal_handler); | signal(SIGHUP, signal_handler); | ||||
#endif | #endif | ||||
@@ -116,8 +116,8 @@ int JackAlsaDriver::Attach() | |||||
JackPort* port; | JackPort* port; | ||||
jack_port_id_t port_index; | jack_port_id_t port_index; | ||||
unsigned long port_flags = (unsigned long)CaptureDriverFlags; | unsigned long port_flags = (unsigned long)CaptureDriverFlags; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
assert(fCaptureChannels < DRIVER_PORT_NUM); | assert(fCaptureChannels < DRIVER_PORT_NUM); | ||||
assert(fPlaybackChannels < DRIVER_PORT_NUM); | assert(fPlaybackChannels < DRIVER_PORT_NUM); | ||||
@@ -31,12 +31,12 @@ namespace Jack { | |||||
private: | private: | ||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
struct pollfd *alsa_poll_fds; | struct pollfd *alsa_poll_fds; | ||||
int alsa_poll_fd_count; | int alsa_poll_fd_count; | ||||
int fds[2]; | int fds[2]; | ||||
unsigned short io_mask; | unsigned short io_mask; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
struct pollfd *queue_poll_fd; | struct pollfd *queue_poll_fd; | ||||
protected: | protected: | ||||
@@ -1785,7 +1785,6 @@ | |||||
4B49D3C214864D49003390F8 /* pa_asio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pa_asio.h; path = ../windows/portaudio/pa_asio.h; sourceTree = SOURCE_ROOT; }; | 4B49D3C214864D49003390F8 /* pa_asio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pa_asio.h; path = ../windows/portaudio/pa_asio.h; sourceTree = SOURCE_ROOT; }; | ||||
4B49D3C314864D49003390F8 /* portaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = portaudio.h; path = ../windows/portaudio/portaudio.h; sourceTree = SOURCE_ROOT; }; | 4B49D3C314864D49003390F8 /* portaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = portaudio.h; path = ../windows/portaudio/portaudio.h; sourceTree = SOURCE_ROOT; }; | ||||
4B49D3C914864DA7003390F8 /* JackLinuxTime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = JackLinuxTime.c; path = ../linux/JackLinuxTime.c; sourceTree = SOURCE_ROOT; }; | 4B49D3C914864DA7003390F8 /* JackLinuxTime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = JackLinuxTime.c; path = ../linux/JackLinuxTime.c; sourceTree = SOURCE_ROOT; }; | ||||
4B49D3CB14864DB2003390F8 /* cycles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cycles.h; path = ../linux/cycles.h; sourceTree = SOURCE_ROOT; }; | |||||
4B49D3D814864DEC003390F8 /* JackWinThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackWinThread.cpp; path = ../windows/JackWinThread.cpp; sourceTree = SOURCE_ROOT; }; | 4B49D3D814864DEC003390F8 /* JackWinThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackWinThread.cpp; path = ../windows/JackWinThread.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4B49D3D914864DEC003390F8 /* JackWinServerLaunch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackWinServerLaunch.cpp; path = ../windows/JackWinServerLaunch.cpp; sourceTree = SOURCE_ROOT; }; | 4B49D3D914864DEC003390F8 /* JackWinServerLaunch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackWinServerLaunch.cpp; path = ../windows/JackWinServerLaunch.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4B49D3DA14864DEC003390F8 /* JackWinSemaphore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackWinSemaphore.cpp; path = ../windows/JackWinSemaphore.cpp; sourceTree = SOURCE_ROOT; }; | 4B49D3DA14864DEC003390F8 /* JackWinSemaphore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackWinSemaphore.cpp; path = ../windows/JackWinSemaphore.cpp; sourceTree = SOURCE_ROOT; }; | ||||
@@ -2029,7 +2028,7 @@ | |||||
4BF8D2470834F20600C94B91 /* testSem.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSem.cpp; path = ../tests/testSem.cpp; sourceTree = SOURCE_ROOT; }; | 4BF8D2470834F20600C94B91 /* testSem.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSem.cpp; path = ../tests/testSem.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BF8FB0D08AC88EF00D1A344 /* JackFrameTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFrameTimer.cpp; path = ../common/JackFrameTimer.cpp; sourceTree = SOURCE_ROOT; }; | 4BF8FB0D08AC88EF00D1A344 /* JackFrameTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFrameTimer.cpp; path = ../common/JackFrameTimer.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BF8FB0E08AC88EF00D1A344 /* JackFrameTimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackFrameTimer.h; path = ../common/JackFrameTimer.h; sourceTree = SOURCE_ROOT; }; | 4BF8FB0E08AC88EF00D1A344 /* JackFrameTimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackFrameTimer.h; path = ../common/JackFrameTimer.h; sourceTree = SOURCE_ROOT; }; | ||||
4BFA5E980DEC4D9C00FA4CDB /* testSem */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testSem; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
4BFA5E980DEC4D9C00FA4CDB /* testMutex */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testMutex; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
4BFA5E9E0DEC4DD900FA4CDB /* testMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = testMutex.cpp; path = ../tests/testMutex.cpp; sourceTree = SOURCE_ROOT; }; | 4BFA5E9E0DEC4DD900FA4CDB /* testMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = testMutex.cpp; path = ../tests/testMutex.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BFA828C0DF6A9E40087B4E1 /* jack_evmon */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_evmon; sourceTree = BUILT_PRODUCTS_DIR; }; | 4BFA828C0DF6A9E40087B4E1 /* jack_evmon */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_evmon; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
4BFA829F0DF6A9E40087B4E1 /* jack_bufsize */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_bufsize; sourceTree = BUILT_PRODUCTS_DIR; }; | 4BFA829F0DF6A9E40087B4E1 /* jack_bufsize */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_bufsize; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
@@ -2837,7 +2836,7 @@ | |||||
4B363F1E0DEB0A6A001F72D9 /* jack_monitor_client */, | 4B363F1E0DEB0A6A001F72D9 /* jack_monitor_client */, | ||||
4B363F350DEB0BD1001F72D9 /* jack_showtime */, | 4B363F350DEB0BD1001F72D9 /* jack_showtime */, | ||||
4B363F720DEB0D4E001F72D9 /* jack_impulse_grabber */, | 4B363F720DEB0D4E001F72D9 /* jack_impulse_grabber */, | ||||
4BFA5E980DEC4D9C00FA4CDB /* testSem */, | |||||
4BFA5E980DEC4D9C00FA4CDB /* testMutex */, | |||||
4BFA828C0DF6A9E40087B4E1 /* jack_evmon */, | 4BFA828C0DF6A9E40087B4E1 /* jack_evmon */, | ||||
4BFA829F0DF6A9E40087B4E1 /* jack_bufsize */, | 4BFA829F0DF6A9E40087B4E1 /* jack_bufsize */, | ||||
4BFA82AB0DF6A9E40087B4E1 /* jack_rec */, | 4BFA82AB0DF6A9E40087B4E1 /* jack_rec */, | ||||
@@ -2905,7 +2904,6 @@ | |||||
isa = PBXGroup; | isa = PBXGroup; | ||||
children = ( | children = ( | ||||
4B05A07D0DF72BC000840F4C /* driver.h */, | 4B05A07D0DF72BC000840F4C /* driver.h */, | ||||
4B49D3CB14864DB2003390F8 /* cycles.h */, | |||||
4B49D3C914864DA7003390F8 /* JackLinuxTime.c */, | 4B49D3C914864DA7003390F8 /* JackLinuxTime.c */, | ||||
4B349837133A6B6F00D130AB /* firewire */, | 4B349837133A6B6F00D130AB /* firewire */, | ||||
4B349825133A6AF500D130AB /* alsarawmidi */, | 4B349825133A6AF500D130AB /* alsarawmidi */, | ||||
@@ -6200,7 +6198,7 @@ | |||||
name = "testMutex Universal"; | name = "testMutex Universal"; | ||||
productInstallPath = /usr/local/bin; | productInstallPath = /usr/local/bin; | ||||
productName = testSem; | productName = testSem; | ||||
productReference = 4BFA5E980DEC4D9C00FA4CDB /* testSem */; | |||||
productReference = 4BFA5E980DEC4D9C00FA4CDB /* testMutex */; | |||||
productType = "com.apple.product-type.tool"; | productType = "com.apple.product-type.tool"; | ||||
}; | }; | ||||
4BFA82820DF6A9E40087B4E1 /* jack_evmon 64 bits */ = { | 4BFA82820DF6A9E40087B4E1 /* jack_evmon 64 bits */ = { | ||||
@@ -2262,8 +2262,8 @@ int JackCoreAudioDriver::Attach() | |||||
UInt32 size; | UInt32 size; | ||||
Boolean isWritable; | Boolean isWritable; | ||||
char channel_name[64]; | char channel_name[64]; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
jack_log("JackCoreAudioDriver::Attach : fBufferSize %ld fSampleRate %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | jack_log("JackCoreAudioDriver::Attach : fBufferSize %ld fSampleRate %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate); | ||||
@@ -31,9 +31,9 @@ namespace Jack { | |||||
private: | private: | ||||
char alias[REAL_JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
bool initialized; | bool initialized; | ||||
char name[REAL_JACK_PORT_NAME_SIZE]; | |||||
protected: | protected: | ||||
@@ -70,7 +70,7 @@ JackCoreMidiPort::Initialize(const char *alias_name, const char *client_name, | |||||
const char *driver_name, int index, | const char *driver_name, int index, | ||||
MIDIEndpointRef endpoint, bool is_output) | MIDIEndpointRef endpoint, bool is_output) | ||||
{ | { | ||||
char endpoint_name[REAL_JACK_PORT_NAME_SIZE]; | |||||
char endpoint_name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
CFStringRef endpoint_name_ref; | CFStringRef endpoint_name_ref; | ||||
int num = index + 1; | int num = index + 1; | ||||
Boolean res; | Boolean res; | ||||
@@ -55,8 +55,8 @@ class JackOSSAdapter : public JackAudioAdapterInterface, public JackRunnableInte | |||||
JackThread fThread; | JackThread fThread; | ||||
char fCaptureDriverName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fPlaybackDriverName[JACK_CLIENT_NAME_SIZE + 1]; | |||||
char fCaptureDriverName[JACK_CLIENT_NAME_SIZE+1]; | |||||
char fPlaybackDriverName[JACK_CLIENT_NAME_SIZE+1]; | |||||
int fInFD; | int fInFD; | ||||
int fOutFD; | int fOutFD; | ||||
@@ -80,7 +80,7 @@ class JackWinNamedPipeServerChannel : public JackRunnableInterface | |||||
JackWinNamedPipeServer fRequestListenPipe; // Pipe to create request socket for the client | JackWinNamedPipeServer fRequestListenPipe; // Pipe to create request socket for the client | ||||
JackServer* fServer; | JackServer* fServer; | ||||
JackThread fThread; // Thread to execute the event loop | JackThread fThread; // Thread to execute the event loop | ||||
char fServerName[JACK_SERVER_NAME_SIZE]; | |||||
char fServerName[JACK_SERVER_NAME_SIZE+1]; | |||||
std::list<JackClientPipeThread*> fClientList; | std::list<JackClientPipeThread*> fClientList; | ||||
@@ -31,8 +31,8 @@ namespace Jack { | |||||
protected: | protected: | ||||
char alias[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; | |||||
char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; | |||||
char alias[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
char name[REAL_JACK_PORT_NAME_SIZE+1]; | |||||
public: | public: | ||||