@@ -31,7 +31,7 @@ JackMidiRawInputWriteQueue(JackMidiWriteQueue *write_queue, | |||||
size_t max_packet_data, size_t max_packets) | size_t max_packet_data, size_t max_packets) | ||||
{ | { | ||||
packet_queue = new JackMidiAsyncQueue(max_packet_data, max_packets); | packet_queue = new JackMidiAsyncQueue(max_packet_data, max_packets); | ||||
std::auto_ptr<JackMidiAsyncQueue> packet_queue_ptr(packet_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> packet_queue_ptr(packet_queue); | |||||
input_buffer = new jack_midi_data_t[max_packet_data]; | input_buffer = new jack_midi_data_t[max_packet_data]; | ||||
Clear(); | Clear(); | ||||
expected_bytes = 0; | expected_bytes = 0; | ||||
@@ -33,9 +33,9 @@ JackMidiRawOutputWriteQueue(JackMidiSendQueue *send_queue, size_t non_rt_size, | |||||
size_t max_non_rt_messages, size_t max_rt_messages) | size_t max_non_rt_messages, size_t max_rt_messages) | ||||
{ | { | ||||
non_rt_queue = new JackMidiAsyncQueue(non_rt_size, max_non_rt_messages); | non_rt_queue = new JackMidiAsyncQueue(non_rt_size, max_non_rt_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> non_rt_ptr(non_rt_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> non_rt_ptr(non_rt_queue); | |||||
rt_queue = new JackMidiAsyncQueue(max_rt_messages, max_rt_messages); | rt_queue = new JackMidiAsyncQueue(max_rt_messages, max_rt_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> rt_ptr(rt_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> rt_ptr(rt_queue); | |||||
non_rt_event = 0; | non_rt_event = 0; | ||||
rt_event = 0; | rt_event = 0; | ||||
running_status = 0; | running_status = 0; | ||||
@@ -1117,6 +1117,11 @@ extern "C" | |||||
} catch (...) { | } catch (...) { | ||||
return NULL; | return NULL; | ||||
} | } | ||||
#if HAVE_SAMPLERATE | |||||
// unused | |||||
(void)resample_factor_up; | |||||
#endif | |||||
} | } | ||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
@@ -254,12 +254,12 @@ int JackPort::GetAliases(char* const aliases[2]) | |||||
int cnt = 0; | int cnt = 0; | ||||
if (fAlias1[0] != '\0') { | if (fAlias1[0] != '\0') { | ||||
snprintf(aliases[0], REAL_JACK_PORT_NAME_SIZE, "%s", fAlias1); | |||||
strncpy(aliases[0], fAlias1, REAL_JACK_PORT_NAME_SIZE); | |||||
cnt++; | cnt++; | ||||
} | } | ||||
if (fAlias2[0] != '\0') { | if (fAlias2[0] != '\0') { | ||||
snprintf(aliases[1], REAL_JACK_PORT_NAME_SIZE, "%s", fAlias2); | |||||
strncpy(aliases[1], fAlias2, REAL_JACK_PORT_NAME_SIZE); | |||||
cnt++; | cnt++; | ||||
} | } | ||||
@@ -269,9 +269,9 @@ int JackPort::GetAliases(char* const aliases[2]) | |||||
int JackPort::SetAlias(const char* alias) | int JackPort::SetAlias(const char* alias) | ||||
{ | { | ||||
if (fAlias1[0] == '\0') { | if (fAlias1[0] == '\0') { | ||||
snprintf(fAlias1, sizeof(fAlias1), "%s", alias); | |||||
strncpy(fAlias1, alias, sizeof(fAlias1)); | |||||
} else if (fAlias2[0] == '\0') { | } else if (fAlias2[0] == '\0') { | ||||
snprintf(fAlias2, sizeof(fAlias2), "%s", alias); | |||||
strncpy(fAlias2, alias, sizeof(fAlias2)); | |||||
} else { | } else { | ||||
return -1; | return -1; | ||||
} | } | ||||
@@ -78,6 +78,8 @@ def build(bld): | |||||
prog.use += ['RT', 'M'] | prog.use += ['RT', 'M'] | ||||
if bld.env['IS_SUN']: | if bld.env['IS_SUN']: | ||||
prog.use += ['M'] | prog.use += ['M'] | ||||
#prog.cflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation'] | |||||
#prog.cxxflags = ['-Wno-deprecated-declarations', '-Wno-misleading-indentation'] | |||||
prog.target = example_program | prog.target = example_program | ||||
@@ -912,6 +912,9 @@ alsa_driver_set_parameters (alsa_driver_t *driver, | |||||
*/ | */ | ||||
return 0; | return 0; | ||||
// may be unused | |||||
(void)err; | |||||
} | } | ||||
int | int | ||||
@@ -467,7 +467,7 @@ int midi_port_open(alsa_rawmidi_t *midi, midi_port_t *port) | |||||
if (midi_port_open_jack(midi, port, type, name)) { | if (midi_port_open_jack(midi, port, type, name)) { | ||||
int num; | int num; | ||||
num = port->id.id[3] ? port->id.id[3] : port->id.id[1]; | num = port->id.id[3] ? port->id.id[3] : port->id.id[1]; | ||||
snprintf(name, sizeof(name), "%s %d", port->name, num); | |||||
snprintf(name, 20, "%s %d", port->name, num); | |||||
if (midi_port_open_jack(midi, port, type, name)) | if (midi_port_open_jack(midi, port, type, name)) | ||||
return 2; | return 2; | ||||
} | } | ||||
@@ -849,14 +849,13 @@ void do_jack_output(alsa_seqmidi_t *self, port_t *port, struct process_info* inf | |||||
{ | { | ||||
stream_t *str = &self->stream[info->dir]; | stream_t *str = &self->stream[info->dir]; | ||||
int nevents = jack_midi_get_event_count(port->jack_buf); | int nevents = jack_midi_get_event_count(port->jack_buf); | ||||
int i; | |||||
int i, err; | |||||
for (i=0; i<nevents; ++i) { | for (i=0; i<nevents; ++i) { | ||||
jack_midi_event_t jack_event; | jack_midi_event_t jack_event; | ||||
snd_seq_event_t alsa_event; | snd_seq_event_t alsa_event; | ||||
int64_t frame_offset; | int64_t frame_offset; | ||||
int64_t out_time; | int64_t out_time; | ||||
snd_seq_real_time_t out_rt; | snd_seq_real_time_t out_rt; | ||||
int err; | |||||
jack_midi_event_get(&jack_event, port->jack_buf, i); | jack_midi_event_get(&jack_event, port->jack_buf, i); | ||||
@@ -899,6 +898,10 @@ void do_jack_output(alsa_seqmidi_t *self, port_t *port, struct process_info* inf | |||||
err = snd_seq_event_output(self->seq, &alsa_event); | err = snd_seq_event_output(self->seq, &alsa_event); | ||||
debug_log("alsa_out: written %d bytes to %s at %+d (%lld): %d", (int)jack_event.size, port->name, (int)frame_offset, out_time, err); | debug_log("alsa_out: written %d bytes to %s at %+d (%lld): %d", (int)jack_event.size, port->name, (int)frame_offset, out_time, err); | ||||
} | } | ||||
return; | |||||
// may be unused | |||||
(void)err; | |||||
} | } | ||||
static | static | ||||
@@ -39,9 +39,11 @@ static const int hdsp_num_input_channels = 52; | |||||
static const int hdsp_physical_input_index[] = { | static const int hdsp_physical_input_index[] = { | ||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, | ||||
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; | 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}; | ||||
#ifdef CANNOT_HEAR_SOFTWARE_STREAM_WHEN_MONITORING | |||||
static const int hdsp_audio_stream_index[] = { | static const int hdsp_audio_stream_index[] = { | ||||
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, | 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, | ||||
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; | 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; | ||||
#endif | |||||
/* | /* | ||||
* Use this array to choose the value of the output_channel | * Use this array to choose the value of the output_channel | ||||
@@ -35,11 +35,11 @@ JackALSARawMidiInputPort::JackALSARawMidiInputPort(snd_rawmidi_info_t *info, | |||||
alsa_event = 0; | alsa_event = 0; | ||||
jack_event = 0; | jack_event = 0; | ||||
receive_queue = new JackALSARawMidiReceiveQueue(rawmidi, max_bytes); | receive_queue = new JackALSARawMidiReceiveQueue(rawmidi, max_bytes); | ||||
std::auto_ptr<JackALSARawMidiReceiveQueue> receive_ptr(receive_queue); | |||||
std::unique_ptr<JackALSARawMidiReceiveQueue> receive_ptr(receive_queue); | |||||
thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> thread_ptr(thread_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> thread_ptr(thread_queue); | |||||
write_queue = new JackMidiBufferWriteQueue(); | write_queue = new JackMidiBufferWriteQueue(); | ||||
std::auto_ptr<JackMidiBufferWriteQueue> write_ptr(write_queue); | |||||
std::unique_ptr<JackMidiBufferWriteQueue> write_ptr(write_queue); | |||||
raw_queue = new JackMidiRawInputWriteQueue(thread_queue, max_bytes, | raw_queue = new JackMidiRawInputWriteQueue(thread_queue, max_bytes, | ||||
max_messages); | max_messages); | ||||
write_ptr.release(); | write_ptr.release(); | ||||
@@ -34,11 +34,11 @@ JackALSARawMidiOutputPort::JackALSARawMidiOutputPort(snd_rawmidi_info_t *info, | |||||
{ | { | ||||
alsa_event = 0; | alsa_event = 0; | ||||
read_queue = new JackMidiBufferReadQueue(); | read_queue = new JackMidiBufferReadQueue(); | ||||
std::auto_ptr<JackMidiBufferReadQueue> read_ptr(read_queue); | |||||
std::unique_ptr<JackMidiBufferReadQueue> read_ptr(read_queue); | |||||
send_queue = new JackALSARawMidiSendQueue(rawmidi, max_bytes_per_poll); | send_queue = new JackALSARawMidiSendQueue(rawmidi, max_bytes_per_poll); | ||||
std::auto_ptr<JackALSARawMidiSendQueue> send_ptr(send_queue); | |||||
std::unique_ptr<JackALSARawMidiSendQueue> send_ptr(send_queue); | |||||
thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> thread_ptr(thread_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> thread_ptr(thread_queue); | |||||
raw_queue = new JackMidiRawOutputWriteQueue(send_queue, max_bytes, | raw_queue = new JackMidiRawOutputWriteQueue(send_queue, max_bytes, | ||||
max_messages, max_messages); | max_messages, max_messages); | ||||
thread_ptr.release(); | thread_ptr.release(); | ||||
@@ -29,9 +29,9 @@ JackFFADOMidiInputPort::JackFFADOMidiInputPort(size_t max_bytes) | |||||
{ | { | ||||
event = 0; | event = 0; | ||||
receive_queue = new JackFFADOMidiReceiveQueue(); | receive_queue = new JackFFADOMidiReceiveQueue(); | ||||
std::auto_ptr<JackFFADOMidiReceiveQueue> receive_queue_ptr(receive_queue); | |||||
std::unique_ptr<JackFFADOMidiReceiveQueue> receive_queue_ptr(receive_queue); | |||||
write_queue = new JackMidiBufferWriteQueue(); | write_queue = new JackMidiBufferWriteQueue(); | ||||
std::auto_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue); | |||||
std::unique_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue); | |||||
raw_queue = new JackMidiRawInputWriteQueue(write_queue, max_bytes, | raw_queue = new JackMidiRawInputWriteQueue(write_queue, max_bytes, | ||||
max_bytes); | max_bytes); | ||||
write_queue_ptr.release(); | write_queue_ptr.release(); | ||||
@@ -31,9 +31,9 @@ JackFFADOMidiOutputPort::JackFFADOMidiOutputPort(size_t non_rt_size, | |||||
{ | { | ||||
event = 0; | event = 0; | ||||
read_queue = new JackMidiBufferReadQueue(); | read_queue = new JackMidiBufferReadQueue(); | ||||
std::auto_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue); | |||||
std::unique_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue); | |||||
send_queue = new JackFFADOMidiSendQueue(); | send_queue = new JackFFADOMidiSendQueue(); | ||||
std::auto_ptr<JackFFADOMidiSendQueue> send_queue_ptr(send_queue); | |||||
std::unique_ptr<JackFFADOMidiSendQueue> send_queue_ptr(send_queue); | |||||
raw_queue = new JackMidiRawOutputWriteQueue(send_queue, non_rt_size, | raw_queue = new JackMidiRawOutputWriteQueue(send_queue, non_rt_size, | ||||
max_non_rt_messages, | max_non_rt_messages, | ||||
max_rt_messages); | max_rt_messages); | ||||
@@ -51,9 +51,9 @@ JackCoreMidiInputPort::JackCoreMidiInputPort(double time_ratio, | |||||
JackCoreMidiPort(time_ratio) | JackCoreMidiPort(time_ratio) | ||||
{ | { | ||||
thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
write_queue = new JackMidiBufferWriteQueue(); | write_queue = new JackMidiBufferWriteQueue(); | ||||
std::auto_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue); | |||||
std::unique_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue); | |||||
sysex_buffer = new jack_midi_data_t[max_bytes]; | sysex_buffer = new jack_midi_data_t[max_bytes]; | ||||
write_queue_ptr.release(); | write_queue_ptr.release(); | ||||
thread_queue_ptr.release(); | thread_queue_ptr.release(); | ||||
@@ -36,11 +36,11 @@ JackCoreMidiOutputPort::JackCoreMidiOutputPort(double time_ratio, | |||||
JackCoreMidiPort(time_ratio) | JackCoreMidiPort(time_ratio) | ||||
{ | { | ||||
read_queue = new JackMidiBufferReadQueue(); | read_queue = new JackMidiBufferReadQueue(); | ||||
std::auto_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue); | |||||
std::unique_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue); | |||||
thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
thread = new JackThread(this); | thread = new JackThread(this); | ||||
std::auto_ptr<JackThread> thread_ptr(thread); | |||||
std::unique_ptr<JackThread> thread_ptr(thread); | |||||
snprintf(semaphore_name, sizeof(semaphore_name), "coremidi_%p", this); | snprintf(semaphore_name, sizeof(semaphore_name), "coremidi_%p", this); | ||||
thread_queue_semaphore = sem_open(semaphore_name, O_CREAT, 0777, 0); | thread_queue_semaphore = sem_open(semaphore_name, O_CREAT, 0777, 0); | ||||
if (thread_queue_semaphore == (sem_t *) SEM_FAILED) { | if (thread_queue_semaphore == (sem_t *) SEM_FAILED) { | ||||
@@ -27,3 +27,4 @@ def build(bld): | |||||
prog.uselib = 'RT' | prog.uselib = 'RT' | ||||
prog.use = 'clientlib' | prog.use = 'clientlib' | ||||
prog.target = test_program | prog.target = test_program | ||||
#prog.cxxflags = ['-Wno-deprecated-declarations'] |
@@ -51,9 +51,9 @@ JackWinMMEInputPort::JackWinMMEInputPort(const char *alias_name, | |||||
size_t max_bytes, size_t max_messages) | size_t max_bytes, size_t max_messages) | ||||
{ | { | ||||
thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
write_queue = new JackMidiBufferWriteQueue(); | write_queue = new JackMidiBufferWriteQueue(); | ||||
std::auto_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue); | |||||
std::unique_ptr<JackMidiBufferWriteQueue> write_queue_ptr(write_queue); | |||||
sysex_buffer = new jack_midi_data_t[max_bytes]; | sysex_buffer = new jack_midi_data_t[max_bytes]; | ||||
char error_message[MAXERRORLENGTH]; | char error_message[MAXERRORLENGTH]; | ||||
MMRESULT result = midiInOpen(&handle, index, | MMRESULT result = midiInOpen(&handle, index, | ||||
@@ -52,11 +52,11 @@ JackWinMMEOutputPort::JackWinMMEOutputPort(const char *alias_name, | |||||
size_t max_messages) | size_t max_messages) | ||||
{ | { | ||||
read_queue = new JackMidiBufferReadQueue(); | read_queue = new JackMidiBufferReadQueue(); | ||||
std::auto_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue); | |||||
std::unique_ptr<JackMidiBufferReadQueue> read_queue_ptr(read_queue); | |||||
thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | thread_queue = new JackMidiAsyncQueue(max_bytes, max_messages); | ||||
std::auto_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
std::unique_ptr<JackMidiAsyncQueue> thread_queue_ptr(thread_queue); | |||||
thread = new JackThread(this); | thread = new JackThread(this); | ||||
std::auto_ptr<JackThread> thread_ptr(thread); | |||||
std::unique_ptr<JackThread> thread_ptr(thread); | |||||
char error_message[MAXERRORLENGTH]; | char error_message[MAXERRORLENGTH]; | ||||
MMRESULT result = midiOutOpen(&handle, index, (DWORD_PTR)HandleMessageEvent, | MMRESULT result = midiOutOpen(&handle, index, (DWORD_PTR)HandleMessageEvent, | ||||
(DWORD_PTR)this, CALLBACK_FUNCTION); | (DWORD_PTR)this, CALLBACK_FUNCTION); | ||||