Browse Source

Nedko Arnaudov log patch.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1927 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.71
sletz 17 years ago
parent
commit
fb4414b8b4
12 changed files with 129 additions and 65 deletions
  1. +6
    -1
      ChangeLog
  2. +3
    -3
      common/JackDriverLoader.cpp
  3. +44
    -6
      common/JackError.c
  4. +6
    -0
      common/JackError.h
  5. +9
    -9
      common/JackServerGlobals.cpp
  6. +15
    -0
      common/jack/jack.h
  7. +1
    -1
      common/shm.c
  8. +39
    -39
      linux/alsa/alsa_rawmidi.c
  9. +1
    -1
      linux/alsa/hammerfall.c
  10. +3
    -3
      linux/alsa/usx2y.c
  11. +1
    -1
      macosx/JackCoreAudioDriver.cpp
  12. +1
    -1
      macosx/Jackdmp.xcodeproj/project.pbxproj

+ 6
- 1
ChangeLog View File

@@ -12,12 +12,17 @@ Andrzej Szombierski
Kjetil S.Matheussen Kjetil S.Matheussen
Pieter Palmers Pieter Palmers
Tim Blechmann Tim Blechmann
Marc-Olivier Barre
Marc-Olivier Barre
Nedko Arnaudov
--------------------------- ---------------------------
Jackdmp changes log Jackdmp changes log
--------------------------- ---------------------------


2008-03-10 Stephane Letz <letz@grame.fr>
* Nedko Arnaudov log patch.

2008-03-07 Stephane Letz <letz@grame.fr> 2008-03-07 Stephane Letz <letz@grame.fr>
* Define an internal jack_client_open_aux needed for library wrapper feature. * Define an internal jack_client_open_aux needed for library wrapper feature.


+ 3
- 3
common/JackDriverLoader.cpp View File

@@ -296,10 +296,10 @@ jack_drivers_get_descriptor (JSList * drivers, const char * sofile)


#ifdef WIN32 #ifdef WIN32
if ((so_get_descriptor == NULL) && (dlerr = GetLastError()) != 0) { if ((so_get_descriptor == NULL) && (dlerr = GetLastError()) != 0) {
fprintf(stderr, "%ld\n", dlerr);
jack_error("%ld", dlerr);
#else #else
if ((so_get_descriptor == NULL) && (dlerr = dlerror ()) != NULL) { if ((so_get_descriptor == NULL) && (dlerr = dlerror ()) != NULL) {
fprintf(stderr, "%s\n", dlerr);
jack_error("%s", dlerr);
#endif #endif


UnloadDriverModule(dlhandle); UnloadDriverModule(dlhandle);
@@ -360,7 +360,7 @@ jack_drivers_load (JSList * drivers) {
file = (HANDLE )FindFirstFile(dll_filename, &filedata); file = (HANDLE )FindFirstFile(dll_filename, &filedata);


if (file == INVALID_HANDLE_VALUE) { if (file == INVALID_HANDLE_VALUE) {
printf("error\n");
jack_error("error");
return NULL; return NULL;
} }




+ 44
- 6
common/JackError.c View File

@@ -24,13 +24,45 @@


int jack_verbose = 0; int jack_verbose = 0;


static
void
jack_format_and_log(const char *prefix, const char *fmt, va_list ap, void (* log_callback)(const char *))
{
char buffer[300];
size_t len;

if (prefix != NULL) {
len = strlen(prefix);
memcpy(buffer, prefix, len);
} else {
len = 0;
}

vsnprintf(buffer + len, sizeof(buffer) - len, fmt, ap);
log_callback(buffer);
}

EXPORT void jack_error(const char *fmt, ...) EXPORT void jack_error(const char *fmt, ...)
{ {
va_list ap; va_list ap;
char buffer[300];
va_start(ap, fmt); va_start(ap, fmt);
vsnprintf(buffer, sizeof(buffer), fmt, ap);
jack_error_callback(buffer);
jack_format_and_log(NULL, fmt, ap, jack_error_callback);
va_end(ap);
}

EXPORT void jack_info(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
jack_format_and_log(NULL, fmt, ap, jack_info_callback);
va_end(ap);
}

EXPORT void jack_info_multiline(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
jack_format_and_log(NULL, fmt, ap, jack_info_callback);
va_end(ap); va_end(ap);
} }


@@ -39,8 +71,7 @@ EXPORT void JackLog(const char *fmt,...)
if (jack_verbose) { if (jack_verbose) {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
fprintf(stderr,"Jack: ");
vfprintf(stderr, fmt, ap);
jack_format_and_log("Jack: ", fmt, ap, jack_info_callback);
va_end(ap); va_end(ap);
} }
} }
@@ -48,7 +79,14 @@ EXPORT void JackLog(const char *fmt,...)
static void default_jack_error_callback(const char *desc) static void default_jack_error_callback(const char *desc)
{ {
fprintf(stderr, "%s\n", desc); fprintf(stderr, "%s\n", desc);
fflush(stdout);
} }


void (*jack_error_callback)(const char *desc) = &default_jack_error_callback;
static void default_jack_info_callback (const char *desc)
{
fprintf(stdout, "%s\n", desc);
fflush(stdout);
}


void (*jack_error_callback)(const char *desc) = &default_jack_error_callback;
void (*jack_info_callback)(const char *desc) = &default_jack_info_callback;

+ 6
- 0
common/JackError.h View File

@@ -36,11 +36,17 @@ extern "C"


EXPORT void jack_error(const char *fmt, ...); EXPORT void jack_error(const char *fmt, ...);


EXPORT void jack_info(const char *fmt, ...);

/* like jack_info but does not add newline */
EXPORT void jack_info_multiline(const char *fmt, ...);

EXPORT void JackLog(const char *fmt, ...); EXPORT void JackLog(const char *fmt, ...);


extern int jack_verbose; extern int jack_verbose;


extern void (*jack_error_callback)(const char *desc); extern void (*jack_error_callback)(const char *desc);
extern void (*jack_info_callback)(const char *desc);


#ifdef __cplusplus #ifdef __cplusplus
} }


+ 9
- 9
common/JackServerGlobals.cpp View File

@@ -219,20 +219,20 @@ bool JackServerGlobals::Init()
break; break;


default: default:
fprintf(stderr, "unknown option character %c\n", optopt);
jack_error("unknown option character %c", optopt);
break; break;
} }
} }


drivers = jack_drivers_load(drivers); drivers = jack_drivers_load(drivers);
if (!drivers) { if (!drivers) {
fprintf(stderr, "jackdmp: no drivers found; exiting\n");
jack_error("jackdmp: no drivers found; exiting");
goto error; goto error;
} }


driver_desc = jack_find_driver_descriptor(drivers, driver_name); driver_desc = jack_find_driver_descriptor(drivers, driver_name);
if (!driver_desc) { if (!driver_desc) {
fprintf(stderr, "jackdmp: unknown driver '%s'\n", driver_name);
jack_error("jackdmp: unknown driver '%s'", driver_name);
goto error; goto error;
} }


@@ -243,8 +243,8 @@ bool JackServerGlobals::Init()
} }


if (driver_nargs == 0) { if (driver_nargs == 0) {
fprintf(stderr, "No driver specified ... hmm. JACK won't do"
" anything when run like this.\n");
jack_error("No driver specified ... hmm. JACK won't do"
" anything when run like this.");
goto error; goto error;
} }


@@ -267,17 +267,17 @@ bool JackServerGlobals::Init()
rc = jack_register_server(server_name, false); rc = jack_register_server(server_name, false);
switch (rc) { switch (rc) {
case EEXIST: case EEXIST:
fprintf(stderr, "`%s' server already active\n", server_name);
jack_error("`%s' server already active", server_name);
goto error; goto error;
case ENOSPC: case ENOSPC:
fprintf(stderr, "too many servers already active\n");
jack_error("too many servers already active");
goto error; goto error;
case ENOMEM: case ENOMEM:
fprintf(stderr, "no access to shm registry\n");
jack_error("no access to shm registry");
goto error; goto error;
default: default:
if (jack_verbose) if (jack_verbose)
fprintf(stderr, "server `%s' registered\n", server_name);
jack_info("server `%s' registered", server_name);
} }


/* clean up shared memory and files from any previous instance of this server name */ /* clean up shared memory and files from any previous instance of this server name */


+ 15
- 0
common/jack/jack.h View File

@@ -902,6 +902,21 @@ extern "C"
*/ */
void jack_set_error_function (void (*func)(const char *)); void jack_set_error_function (void (*func)(const char *));


/**
* Display JACK info message.
*
* Set via jack_set_info_function(), otherwise a JACK-provided
* default will print @a msg (plus a newline) to stdout.
*
* @param msg info message text (no newline at end).
*/
extern void (*jack_info_callback)(const char *msg);

/**
* Set the @ref jack_info_callback for info message display.
*/
void jack_set_info_function (void (*func)(const char *));

#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif


+ 1
- 1
common/shm.c View File

@@ -554,7 +554,7 @@ jack_cleanup_shm ()


/* see if allocator still exists */ /* see if allocator still exists */
#ifdef WIN32 // steph #ifdef WIN32 // steph
printf("TODO: kill API not available !!\n");
jack_info("TODO: kill API not available !!");
#else #else
if (kill (r->allocator, 0)) { if (kill (r->allocator, 0)) {
if (errno == ESRCH) { if (errno == ESRCH) {


+ 39
- 39
linux/alsa/alsa_rawmidi.c View File

@@ -199,7 +199,7 @@ int stream_init(midi_stream_t *s, alsa_rawmidi_t *midi, const char *name)
s->name = name; s->name = name;
if (pipe(s->wake_pipe)==-1) { if (pipe(s->wake_pipe)==-1) {
s->wake_pipe[0] = -1; s->wake_pipe[0] = -1;
error_log("pipe() in stream_init(%s) failed: %s\n", name, strerror(errno));
error_log("pipe() in stream_init(%s) failed: %s", name, strerror(errno));
return -errno; return -errno;
} }
s->jack.new_ports = jack_ringbuffer_create(sizeof(midi_port_t*)*MAX_PORTS); s->jack.new_ports = jack_ringbuffer_create(sizeof(midi_port_t*)*MAX_PORTS);
@@ -237,7 +237,7 @@ alsa_midi_t* alsa_rawmidi_new(jack_client_t *jack)
goto fail_0; goto fail_0;
midi->client = jack; midi->client = jack;
if (pipe(midi->scan.wake_pipe)==-1) { if (pipe(midi->scan.wake_pipe)==-1) {
error_log("pipe() in alsa_midi_new failed: %s\n", strerror(errno));
error_log("pipe() in alsa_midi_new failed: %s", strerror(errno));
goto fail_1; goto fail_1;
} }


@@ -521,7 +521,7 @@ void alsa_get_id(alsa_id_t *id, snd_rawmidi_info_t *info)
static inline static inline
void alsa_error(const char *func, int err) void alsa_error(const char *func, int err)
{ {
error_log("%s() failed\n", snd_strerror(err));
error_log("%s() failed", snd_strerror(err));
} }


typedef struct { typedef struct {
@@ -550,14 +550,14 @@ void scan_cycle(alsa_rawmidi_t *midi)
scan_t scan; scan_t scan;
midi_port_t **ports; midi_port_t **ports;


//debug_log("scan: cleanup\n");
//debug_log("scan: cleanup");
scan_cleanup(midi); scan_cleanup(midi);


scan.midi = midi; scan.midi = midi;
scan.iterator = &midi->scan.ports; scan.iterator = &midi->scan.ports;
snd_rawmidi_info_alloca(&scan.info); snd_rawmidi_info_alloca(&scan.info);


//debug_log("scan: rescan\n");
//debug_log("scan: rescan");
while ((err = snd_card_next(&card))>=0 && card>=0) { while ((err = snd_card_next(&card))>=0 && card>=0) {
char name[32]; char name[32];
snprintf(name, sizeof(name), "hw:%d", card); snprintf(name, sizeof(name), "hw:%d", card);
@@ -658,7 +658,7 @@ midi_port_t** scan_port_add(scan_t *scan, const alsa_id_t *id, midi_port_t **lis


port->next = *list; port->next = *list;
*list = port; *list = port;
error_log("scan: added port %s %s\n", port->dev, port->name);
error_log("scan: added port %s %s", port->dev, port->name);
return &port->next; return &port->next;
} }


@@ -682,7 +682,7 @@ midi_port_t** scan_port_open(alsa_rawmidi_t *midi, midi_port_t **list)
port->state = PORT_ADDED_TO_JACK; port->state = PORT_ADDED_TO_JACK;
jack_ringbuffer_write(str->jack.new_ports, (char*) &port, sizeof(port)); jack_ringbuffer_write(str->jack.new_ports, (char*) &port, sizeof(port));


error_log("scan: opened port %s %s\n", port->dev, port->name);
error_log("scan: opened port %s %s", port->dev, port->name);
return &port->next; return &port->next;


fail_2: fail_2:
@@ -691,7 +691,7 @@ midi_port_t** scan_port_open(alsa_rawmidi_t *midi, midi_port_t **list)
midi_port_close(midi, port); midi_port_close(midi, port);
fail_0: fail_0:
*list = port->next; *list = port->next;
error_log("scan: can't open port %s %s\n", port->dev, port->name);
error_log("scan: can't open port %s %s", port->dev, port->name);
free(port); free(port);
return list; return list;
} }
@@ -701,7 +701,7 @@ midi_port_t** scan_port_del(alsa_rawmidi_t *midi, midi_port_t **list)
{ {
midi_port_t *port = *list; midi_port_t *port = *list;
if (port->state == PORT_REMOVED_FROM_JACK) { if (port->state == PORT_REMOVED_FROM_JACK) {
error_log("scan: deleted port %s %s\n", port->dev, port->name);
error_log("scan: deleted port %s %s", port->dev, port->name);
*list = port->next; *list = port->next;
if (port->id.id[2] ) if (port->id.id[2] )
(midi->out.port_close)(midi, port); (midi->out.port_close)(midi, port);
@@ -711,7 +711,7 @@ midi_port_t** scan_port_del(alsa_rawmidi_t *midi, midi_port_t **list)
free(port); free(port);
return list; return list;
} else { } else {
//debug_log("can't delete port %s, wrong state: %d\n", port->name, (int)port->state);
//debug_log("can't delete port %s, wrong state: %d", port->name, (int)port->state);
return &port->next; return &port->next;
} }
} }
@@ -725,7 +725,7 @@ void* scan_thread(void *arg)
wakeup.events = POLLIN|POLLERR|POLLNVAL; wakeup.events = POLLIN|POLLERR|POLLNVAL;
while (midi->keep_walking) { while (midi->keep_walking) {
int res; int res;
//error_log("scanning....\n");
//error_log("scanning....");
scan_cycle(midi); scan_cycle(midi);
res = poll(&wakeup, 1, 2000); res = poll(&wakeup, 1, 2000);
if (res>0) { if (res>0) {
@@ -789,7 +789,7 @@ void jack_process(midi_stream_t *str, jack_nframes_t nframes)
++w; ++w;
} }
if (str->jack.nports != w) if (str->jack.nports != w)
debug_log("jack_%s: nports %d -> %d\n", str->name, str->jack.nports, w);
debug_log("jack_%s: nports %d -> %d", str->name, str->jack.nports, w);
str->jack.nports = w; str->jack.nports = w;


jack_add_ports(str); // it makes no sense to add them earlier since they have no data yet jack_add_ports(str); // it makes no sense to add them earlier since they have no data yet
@@ -815,7 +815,7 @@ void *midi_thread(void *arg)
pfds[0].events = POLLIN|POLLERR|POLLNVAL; pfds[0].events = POLLIN|POLLERR|POLLNVAL;
npfds = 1; npfds = 1;


//debug_log("midi_thread(%s): enter\n", str->name);
//debug_log("midi_thread(%s): enter", str->name);


while (midi->keep_walking) { while (midi->keep_walking) {
int poll_timeout; int poll_timeout;
@@ -837,13 +837,13 @@ void *midi_thread(void *arg)
clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, NULL); clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, NULL);
} }
int res = poll((struct pollfd*)&pfds, npfds, poll_timeout); int res = poll((struct pollfd*)&pfds, npfds, poll_timeout);
//debug_log("midi_thread(%s): poll exit: %d\n", str->name, res);
//debug_log("midi_thread(%s): poll exit: %d", str->name, res);
if (!midi->keep_walking) if (!midi->keep_walking)
break; break;
if (res < 0) { if (res < 0) {
if (errno == EINTR) if (errno == EINTR)
continue; continue;
error_log("midi_thread(%s) poll failed: %s\n", str->name, strerror(errno));
error_log("midi_thread(%s) poll failed: %s", str->name, strerror(errno));
break; break;
} }


@@ -860,7 +860,7 @@ void *midi_thread(void *arg)
midi_port_t *port; midi_port_t *port;
jack_ringbuffer_read(str->midi.new_ports, (char*)&port, sizeof(port)); jack_ringbuffer_read(str->midi.new_ports, (char*)&port, sizeof(port));
str->midi.ports[str->midi.nports++] = port; str->midi.ports[str->midi.nports++] = port;
debug_log("midi_thread(%s): added port %s\n", str->name, port->name);
debug_log("midi_thread(%s): added port %s", str->name, port->name);
} }


// if (res == 0) // if (res == 0)
@@ -888,10 +888,10 @@ void *midi_thread(void *arg)
++wp; ++wp;
} }
if (str->midi.nports != wp) if (str->midi.nports != wp)
debug_log("midi_%s: nports %d -> %d\n", str->name, str->midi.nports, wp);
debug_log("midi_%s: nports %d -> %d", str->name, str->midi.nports, wp);
str->midi.nports = wp; str->midi.nports = wp;
if (npfds != w) if (npfds != w)
debug_log("midi_%s: npfds %d -> %d\n", str->name, npfds, w);
debug_log("midi_%s: npfds %d -> %d", str->name, npfds, w);
npfds = w; npfds = w;


/* /*
@@ -900,16 +900,16 @@ void *midi_thread(void *arg)
* So, zero timeout will not cause busy-looping. * So, zero timeout will not cause busy-looping.
*/ */
if (proc.next_time < proc.cur_time) { if (proc.next_time < proc.cur_time) {
debug_log("%s: late: next_time = %d, cur_time = %d\n", str->name, (int)proc.next_time, (int)proc.cur_time);
debug_log("%s: late: next_time = %d, cur_time = %d", str->name, (int)proc.next_time, (int)proc.cur_time);
wait_nsec = 0; // we are late wait_nsec = 0; // we are late
} else if (proc.next_time != NFRAMES_INF) { } else if (proc.next_time != NFRAMES_INF) {
jack_time_t wait_frames = proc.next_time - proc.cur_time; jack_time_t wait_frames = proc.next_time - proc.cur_time;
jack_nframes_t rate = jack_get_sample_rate(midi->client); jack_nframes_t rate = jack_get_sample_rate(midi->client);
wait_nsec = (wait_frames * (1000*1000*1000)) / rate; wait_nsec = (wait_frames * (1000*1000*1000)) / rate;
debug_log("midi_%s: timeout = %d\n", str->name, (int)wait_frames);
debug_log("midi_%s: timeout = %d", str->name, (int)wait_frames);
} else } else
wait_nsec = 1000*1000*1000; wait_nsec = 1000*1000*1000;
//debug_log("midi_thread(%s): wait_nsec = %lld\n", str->name, wait_nsec);
//debug_log("midi_thread(%s): wait_nsec = %lld", str->name, wait_nsec);
} }
return NULL; return NULL;
} }
@@ -922,17 +922,17 @@ int midi_is_ready(process_midi_t *proc)
unsigned short revents = 0; unsigned short revents = 0;
int res = snd_rawmidi_poll_descriptors_revents(port->rawmidi, proc->rpfds, port->npfds, &revents); int res = snd_rawmidi_poll_descriptors_revents(port->rawmidi, proc->rpfds, port->npfds, &revents);
if (res) { if (res) {
error_log("snd_rawmidi_poll_descriptors_revents failed on port %s with: %s\n", port->name, snd_strerror(res));
error_log("snd_rawmidi_poll_descriptors_revents failed on port %s with: %s", port->name, snd_strerror(res));
return 0; return 0;
} }


if (revents & ~proc->mode) { if (revents & ~proc->mode) {
debug_log("midi: port %s failed\n", port->name);
debug_log("midi: port %s failed", port->name);
return 0; return 0;
} }
if (revents & proc->mode) { if (revents & proc->mode) {
port->is_ready = 1; port->is_ready = 1;
debug_log("midi: is_ready %s\n", port->name);
debug_log("midi: is_ready %s", port->name);
} }
} }
return 1; return 1;
@@ -945,7 +945,7 @@ int midi_update_pfds(process_midi_t *proc)
if (port->npfds == 0) { if (port->npfds == 0) {
port->npfds = snd_rawmidi_poll_descriptors_count(port->rawmidi); port->npfds = snd_rawmidi_poll_descriptors_count(port->rawmidi);
if (port->npfds > proc->max_pfds) { if (port->npfds > proc->max_pfds) {
debug_log("midi: not enough pfds for port %s\n", port->name);
debug_log("midi: not enough pfds for port %s", port->name);
return 0; return 0;
} }
snd_rawmidi_poll_descriptors(port->rawmidi, proc->wpfds, port->npfds); snd_rawmidi_poll_descriptors(port->rawmidi, proc->wpfds, port->npfds);
@@ -1005,7 +1005,7 @@ void do_jack_input(process_jack_t *p)
int avail = todo < vec[i].len ? todo : vec[i].len; int avail = todo < vec[i].len ? todo : vec[i].len;
int done = midi_unpack_buf(&port->unpack, (unsigned char*)vec[i].buf, avail, p->buffer, time); int done = midi_unpack_buf(&port->unpack, (unsigned char*)vec[i].buf, avail, p->buffer, time);
if (done != avail) { if (done != avail) {
debug_log("jack_in: buffer overflow in port %s\n", port->base.name);
debug_log("jack_in: buffer overflow in port %s", port->base.name);
break; break;
} }
todo -= done; todo -= done;
@@ -1032,14 +1032,14 @@ int do_midi_input(process_midi_t *proc)
if (jack_ringbuffer_write_space(port->base.event_ring) < sizeof(event_head_t) || vec[0].len < 1) { if (jack_ringbuffer_write_space(port->base.event_ring) < sizeof(event_head_t) || vec[0].len < 1) {
port->overruns++; port->overruns++;
if (port->base.npfds) if (port->base.npfds)
debug_log("midi_in: internal overflow on %s\n", port->base.name);
debug_log("midi_in: internal overflow on %s", port->base.name);
// remove from poll to prevent busy-looping // remove from poll to prevent busy-looping
port->base.npfds = 0; port->base.npfds = 0;
return 1; return 1;
} }
res = snd_rawmidi_read(port->base.rawmidi, vec[0].buf, vec[0].len); res = snd_rawmidi_read(port->base.rawmidi, vec[0].buf, vec[0].len);
if (res < 0 && res != -EWOULDBLOCK) { if (res < 0 && res != -EWOULDBLOCK) {
error_log("midi_in: reading from port %s failed: %s\n", port->base.name, snd_strerror(res));
error_log("midi_in: reading from port %s failed: %s", port->base.name, snd_strerror(res));
return 0; return 0;
} else if (res > 0) { } else if (res > 0) {
event_head_t event; event_head_t event;
@@ -1047,7 +1047,7 @@ int do_midi_input(process_midi_t *proc)
event.size = res; event.size = res;
event.overruns = port->overruns; event.overruns = port->overruns;
port->overruns = 0; port->overruns = 0;
debug_log("midi_in: read %d bytes at %d\n", (int)event.size, (int)event.time);
debug_log("midi_in: read %d bytes at %d", (int)event.size, (int)event.time);
jack_ringbuffer_write_advance(port->base.data_ring, event.size); jack_ringbuffer_write_advance(port->base.data_ring, event.size);
jack_ringbuffer_write(port->base.event_ring, (char*)&event, sizeof(event)); jack_ringbuffer_write(port->base.event_ring, (char*)&event, sizeof(event));
} }
@@ -1084,7 +1084,7 @@ void do_jack_output(process_jack_t *proc)
int nevents = jack_midi_get_event_count(proc->buffer); int nevents = jack_midi_get_event_count(proc->buffer);
int i; int i;
if (nevents) if (nevents)
debug_log("jack_out: %d events in %s\n", nevents, port->base.name);
debug_log("jack_out: %d events in %s", nevents, port->base.name);
for (i=0; i<nevents; ++i) { for (i=0; i<nevents; ++i) {
jack_midi_event_t event; jack_midi_event_t event;
event_head_t hdr; event_head_t hdr;
@@ -1092,7 +1092,7 @@ void do_jack_output(process_jack_t *proc)
jack_midi_event_get(&event, proc->buffer, i); jack_midi_event_get(&event, proc->buffer, i);


if (jack_ringbuffer_write_space(port->base.data_ring) < event.size || jack_ringbuffer_write_space(port->base.event_ring) < sizeof(hdr)) { if (jack_ringbuffer_write_space(port->base.data_ring) < event.size || jack_ringbuffer_write_space(port->base.event_ring) < sizeof(hdr)) {
debug_log("jack_out: output buffer overflow on %s\n", port->base.name);
debug_log("jack_out: output buffer overflow on %s", port->base.name);
break; break;
} }


@@ -1103,7 +1103,7 @@ void do_jack_output(process_jack_t *proc)
hdr.time = proc->frame_time + event.time + proc->nframes; hdr.time = proc->frame_time + event.time + proc->nframes;
hdr.size = event.size; hdr.size = event.size;
jack_ringbuffer_write(port->base.event_ring, (char*)&hdr, sizeof(hdr)); jack_ringbuffer_write(port->base.event_ring, (char*)&hdr, sizeof(hdr));
debug_log("jack_out: sent %d-byte event at %ld\n", (int)event.size, (long)event.time);
debug_log("jack_out: sent %d-byte event at %ld", (int)event.size, (long)event.time);
} }
} }


@@ -1124,16 +1124,16 @@ int do_midi_output(process_midi_t *proc)
port->next_event.size = 0; port->next_event.size = 0;
break; break;
} else } else
debug_log("midi_out: at %ld got %d bytes for %ld\n", (long)proc->cur_time, (int)port->next_event.size, (long)port->next_event.time);
debug_log("midi_out: at %ld got %d bytes for %ld", (long)proc->cur_time, (int)port->next_event.size, (long)port->next_event.time);
} }
if (port->todo) if (port->todo)
debug_log("midi_out: todo = %d at %ld\n", (int)port->todo, (long)proc->cur_time);
debug_log("midi_out: todo = %d at %ld", (int)port->todo, (long)proc->cur_time);


// calc next wakeup time // calc next wakeup time
if (!port->todo && port->next_event.time && port->next_event.time < proc->next_time) { if (!port->todo && port->next_event.time && port->next_event.time < proc->next_time) {
proc->next_time = port->next_event.time; proc->next_time = port->next_event.time;
debug_log("midi_out: next_time = %ld\n", (long)proc->next_time);
debug_log("midi_out: next_time = %ld", (long)proc->next_time);
} }


if (port->todo && port->base.is_ready) { if (port->todo && port->base.is_ready) {
@@ -1150,15 +1150,15 @@ int do_midi_output(process_midi_t *proc)
res = snd_rawmidi_write(port->base.rawmidi, vec[0].buf, size); res = snd_rawmidi_write(port->base.rawmidi, vec[0].buf, size);
if (res > 0) { if (res > 0) {
jack_ringbuffer_read_advance(port->base.data_ring, res); jack_ringbuffer_read_advance(port->base.data_ring, res);
debug_log("midi_out: written %d bytes to %s\n", res, port->base.name);
debug_log("midi_out: written %d bytes to %s", res, port->base.name);
port->todo -= res; port->todo -= res;
worked = 1; worked = 1;
} else if (res == -EWOULDBLOCK) { } else if (res == -EWOULDBLOCK) {
port->base.is_ready = 0; port->base.is_ready = 0;
debug_log("midi_out: -EWOULDBLOCK on %s\n", port->base.name);
debug_log("midi_out: -EWOULDBLOCK on %s", port->base.name);
return 1; return 1;
} else { } else {
error_log("midi_out: writing to port %s failed: %s\n", port->base.name, snd_strerror(res));
error_log("midi_out: writing to port %s failed: %s", port->base.name, snd_strerror(res));
return 0; return 0;
} }
snd_rawmidi_drain(port->base.rawmidi); snd_rawmidi_drain(port->base.rawmidi);
@@ -1171,7 +1171,7 @@ int do_midi_output(process_midi_t *proc)
if (!port->todo) { if (!port->todo) {
int i; int i;
if (worked) if (worked)
debug_log("midi_out: relaxing on %s\n", port->base.name);
debug_log("midi_out: relaxing on %s", port->base.name);
for (i=0; i<port->base.npfds; ++i) for (i=0; i<port->base.npfds; ++i)
proc->wpfds[i].events &= ~POLLOUT; proc->wpfds[i].events &= ~POLLOUT;
} else { } else {


+ 1
- 1
linux/alsa/hammerfall.c View File

@@ -117,7 +117,7 @@ hammerfall_check_sync (hammerfall_t *h, snd_ctl_elem_value_t *ctl)
int val; int val;
snd_ctl_elem_id_t *ctl_id; snd_ctl_elem_id_t *ctl_id;
printf ("check sync\n");
jack_info ("check sync");


snd_ctl_elem_id_alloca (&ctl_id); snd_ctl_elem_id_alloca (&ctl_id);
snd_ctl_elem_value_get_id (ctl, ctl_id); snd_ctl_elem_value_get_id (ctl, ctl_id);


+ 3
- 3
linux/alsa/usx2y.c View File

@@ -399,7 +399,7 @@ usx2y_driver_null_cycle (alsa_driver_t* driver, jack_nframes_t nframes)
int chn; int chn;


VERBOSE(driver->engine, VERBOSE(driver->engine,
"usx2y_driver_null_cycle (%p, %i)\n", driver, nframes);
"usx2y_driver_null_cycle (%p, %i)", driver, nframes);


if (driver->capture_handle) { if (driver->capture_handle) {
nf = nframes; nf = nframes;
@@ -689,8 +689,8 @@ jack_alsa_usx2y_hw_new (alsa_driver_t *driver)
hw->private = h; hw->private = h;
/* Set our own operational function pointers. */ /* Set our own operational function pointers. */
usx2y_driver_setup(driver); usx2y_driver_setup(driver);
printf("ALSA/USX2Y: EXPERIMENTAL hwdep pcm device %s"
" (aka \"rawusb\")\n", driver->alsa_name_playback);
jack_info("ALSA/USX2Y: EXPERIMENTAL hwdep pcm device %s"
" (aka \"rawusb\")", driver->alsa_name_playback);
} }
} }




+ 1
- 1
macosx/JackCoreAudioDriver.cpp View File

@@ -153,7 +153,7 @@ static OSStatus DisplayDeviceNames()
if (err != noErr) if (err != noErr)
return err; return err;


printf("Device name = \'%s\', internal_name = \'%s\' (to be used as -C, -P, or -d parameter)\n", device_name, internal_name);
jack_info("Device name = \'%s\', internal_name = \'%s\' (to be used as -C, -P, or -d parameter)", device_name, internal_name);
} }


return noErr; return noErr;


+ 1
- 1
macosx/Jackdmp.xcodeproj/project.pbxproj View File

@@ -9215,7 +9215,7 @@
); );
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"-framework", "-framework",
Jackdmp,
Jackservermp,
"-framework", "-framework",
CoreAudio, CoreAudio,
"-framework", "-framework",


Loading…
Cancel
Save