Browse Source

Fix warnings in FFADO driver. Patch approved by ppalmers.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2407 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
nedko 17 years ago
parent
commit
9ab001707d
2 changed files with 15 additions and 29 deletions
  1. +14
    -28
      linux/firewire/JackFFADODriver.cpp
  2. +1
    -1
      linux/firewire/JackFFADODriver.h

+ 14
- 28
linux/firewire/JackFFADODriver.cpp View File

@@ -54,7 +54,7 @@ namespace Jack
int int
JackFFADODriver::ffado_driver_read (ffado_driver_t * driver, jack_nframes_t nframes) JackFFADODriver::ffado_driver_read (ffado_driver_t * driver, jack_nframes_t nframes)
{ {
unsigned int chn;
channel_t chn;
jack_default_audio_sample_t* buf = NULL; jack_default_audio_sample_t* buf = NULL;


printEnter(); printEnter();
@@ -94,7 +94,7 @@ JackFFADODriver::ffado_driver_read (ffado_driver_t * driver, jack_nframes_t nfra
/* process the midi data */ /* process the midi data */
for (chn = 0; chn < driver->capture_nchannels; chn++) { for (chn = 0; chn < driver->capture_nchannels; chn++) {
if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) { if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) {
int i;
jack_nframes_t i;
int done; int done;
uint32_t *midi_buffer = driver->capture_channels[chn].midi_buffer; uint32_t *midi_buffer = driver->capture_channels[chn].midi_buffer;
midi_unpack_t *midi_unpack = &driver->capture_channels[chn].midi_unpack; midi_unpack_t *midi_unpack = &driver->capture_channels[chn].midi_unpack;
@@ -127,7 +127,7 @@ JackFFADODriver::ffado_driver_read (ffado_driver_t * driver, jack_nframes_t nfra
int int
JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nframes) JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nframes)
{ {
unsigned int chn;
channel_t chn;
jack_default_audio_sample_t* buf; jack_default_audio_sample_t* buf;
printEnter(); printEnter();


@@ -149,12 +149,12 @@ JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nfr
ffado_streaming_set_playback_stream_buffer(driver->dev, chn, (char *)(buf)); ffado_streaming_set_playback_stream_buffer(driver->dev, chn, (char *)(buf));


} else if (driver->playback_channels[chn].stream_type == ffado_stream_type_midi) { } else if (driver->playback_channels[chn].stream_type == ffado_stream_type_midi) {
int nevents;
int i;
jack_nframes_t nevents;
jack_nframes_t i;
midi_pack_t *midi_pack = &driver->playback_channels[chn].midi_pack; midi_pack_t *midi_pack = &driver->playback_channels[chn].midi_pack;
uint32_t *midi_buffer = driver->playback_channels[chn].midi_buffer; uint32_t *midi_buffer = driver->playback_channels[chn].midi_buffer;
buf = (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fPlaybackPortList[chn], nframes); buf = (jack_default_audio_sample_t*)fGraphManager->GetBuffer(fPlaybackPortList[chn], nframes);
int min_next_pos = 0;
jack_nframes_t min_next_pos = 0;


memset(midi_buffer, 0, nframes * sizeof(uint32_t)); memset(midi_buffer, 0, nframes * sizeof(uint32_t));
ffado_streaming_set_playback_stream_buffer(driver->dev, chn, (char *)(midi_buffer)); ffado_streaming_set_playback_stream_buffer(driver->dev, chn, (char *)(midi_buffer));
@@ -182,14 +182,14 @@ JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nfr
// printMessage("MIDI: %d events in ch %d", nevents, chn); // printMessage("MIDI: %d events in ch %d", nevents, chn);


for (i = 0; i < nevents; ++i) { for (i = 0; i < nevents; ++i) {
int j;
size_t j;
jack_midi_event_t event; jack_midi_event_t event;
jack_midi_event_get(&event, buf, i); jack_midi_event_get(&event, buf, i);


midi_pack_event(midi_pack, &event); midi_pack_event(midi_pack, &event);


// floor the initial position to be a multiple of 8 // floor the initial position to be a multiple of 8
int pos = event.time & 0xFFFFFFF8;
jack_nframes_t pos = event.time & 0xFFFFFFF8;
for (j = 0; j < event.size; j++) { for (j = 0; j < event.size; j++) {
// make sure we don't overwrite a previous byte // make sure we don't overwrite a previous byte
while (pos < min_next_pos && pos < nframes) { while (pos < min_next_pos && pos < nframes) {
@@ -198,7 +198,7 @@ JackFFADODriver::ffado_driver_write (ffado_driver_t * driver, jack_nframes_t nfr
} }


if (pos >= nframes) { if (pos >= nframes) {
int f;
unsigned int f;
printMessage("midi message crosses period boundary"); printMessage("midi message crosses period boundary");
driver->playback_channels[chn].nb_overflow_bytes = event.size - j; driver->playback_channels[chn].nb_overflow_bytes = event.size - j;
if (driver->playback_channels[chn].nb_overflow_bytes > MIDI_OVERFLOW_BUFFER_SIZE) { if (driver->playback_channels[chn].nb_overflow_bytes > MIDI_OVERFLOW_BUFFER_SIZE) {
@@ -241,7 +241,6 @@ jack_nframes_t
JackFFADODriver::ffado_driver_wait (ffado_driver_t *driver, int extra_fd, int *status, JackFFADODriver::ffado_driver_wait (ffado_driver_t *driver, int extra_fd, int *status,
float *delayed_usecs) float *delayed_usecs)
{ {
int nframes;
jack_time_t wait_enter; jack_time_t wait_enter;
jack_time_t wait_ret; jack_time_t wait_ret;
ffado_wait_response response; ffado_wait_response response;
@@ -358,7 +357,7 @@ JackFFADODriver::SetBufferSize (jack_nframes_t nframes)
typedef void (*JackDriverFinishFunction) (jack_driver_t *); typedef void (*JackDriverFinishFunction) (jack_driver_t *);


ffado_driver_t * ffado_driver_t *
JackFFADODriver::ffado_driver_new (char *name,
JackFFADODriver::ffado_driver_new (const char *name,
ffado_jack_settings_t *params) ffado_jack_settings_t *params)
{ {
ffado_driver_t *driver; ffado_driver_t *driver;
@@ -499,7 +498,7 @@ int JackFFADODriver::Attach()
} }


fCaptureChannels = 0; fCaptureChannels = 0;
for (unsigned int chn = 0; chn < driver->capture_nchannels; chn++) {
for (channel_t chn = 0; chn < driver->capture_nchannels; chn++) {
ffado_streaming_get_capture_stream_name(driver->dev, chn, portname, sizeof(portname) - 1); ffado_streaming_get_capture_stream_name(driver->dev, chn, portname, sizeof(portname) - 1);


driver->capture_channels[chn].stream_type = ffado_streaming_get_capture_stream_type(driver->dev, chn); driver->capture_channels[chn].stream_type = ffado_streaming_get_capture_stream_type(driver->dev, chn);
@@ -572,7 +571,7 @@ int JackFFADODriver::Attach()
} }


fPlaybackChannels = 0; fPlaybackChannels = 0;
for (unsigned int chn = 0; chn < driver->playback_nchannels; chn++) {
for (channel_t chn = 0; chn < driver->playback_nchannels; chn++) {
ffado_streaming_get_playback_stream_name(driver->dev, chn, portname, sizeof(portname) - 1); ffado_streaming_get_playback_stream_name(driver->dev, chn, portname, sizeof(portname) - 1);


driver->playback_channels[chn].stream_type = ffado_streaming_get_playback_stream_type(driver->dev, chn); driver->playback_channels[chn].stream_type = ffado_streaming_get_playback_stream_type(driver->dev, chn);
@@ -650,7 +649,7 @@ int JackFFADODriver::Attach()


int JackFFADODriver::Detach() int JackFFADODriver::Detach()
{ {
unsigned int chn;
channel_t chn;
ffado_driver_t* driver = (ffado_driver_t*)fDriver; ffado_driver_t* driver = (ffado_driver_t*)fDriver;
jack_log("JackFFADODriver::Detach"); jack_log("JackFFADODriver::Detach");


@@ -814,20 +813,12 @@ extern "C"
desc = (jack_driver_desc_t *)calloc (1, sizeof (jack_driver_desc_t)); desc = (jack_driver_desc_t *)calloc (1, sizeof (jack_driver_desc_t));


strcpy (desc->name, "firewire"); strcpy (desc->name, "firewire");
desc->nparams = 12;
desc->nparams = 11;


params = (jack_driver_param_desc_t *)calloc (desc->nparams, sizeof (jack_driver_param_desc_t)); params = (jack_driver_param_desc_t *)calloc (desc->nparams, sizeof (jack_driver_param_desc_t));
desc->params = params; desc->params = params;


i = 0; i = 0;
strcpy (params[i].name, "device");
params[i].character = 'd';
params[i].type = JackDriverParamString;
strcpy (params[i].value.str, "hw:0");
strcpy (params[i].short_desc, "The FireWire device to use. Format is: 'hw:port[,node]'.");
strcpy (params[i].long_desc, params[i].short_desc);

i++;
strcpy (params[i].name, "period"); strcpy (params[i].name, "period");
params[i].character = 'p'; params[i].character = 'p';
params[i].type = JackDriverParamUInt; params[i].type = JackDriverParamUInt;
@@ -924,8 +915,6 @@ extern "C"


ffado_jack_settings_t cmlparams; ffado_jack_settings_t cmlparams;


char *device_name = "hw:0";

cmlparams.period_size_set = 0; cmlparams.period_size_set = 0;
cmlparams.sample_rate_set = 0; cmlparams.sample_rate_set = 0;
cmlparams.buffer_size_set = 0; cmlparams.buffer_size_set = 0;
@@ -949,9 +938,6 @@ extern "C"
param = (jack_driver_param_t *) node->data; param = (jack_driver_param_t *) node->data;


switch (param->character) { switch (param->character) {
case 'd':
device_name = strdup (param->value.str);
break;
case 'p': case 'p':
cmlparams.period_size = param->value.ui; cmlparams.period_size = param->value.ui;
cmlparams.period_size_set = 1; cmlparams.period_size_set = 1;


+ 1
- 1
linux/firewire/JackFFADODriver.h View File

@@ -54,7 +54,7 @@ class JackFFADODriver : public JackAudioDriver
int ffado_driver_start (ffado_driver_t *driver); int ffado_driver_start (ffado_driver_t *driver);
int ffado_driver_stop (ffado_driver_t *driver); int ffado_driver_stop (ffado_driver_t *driver);
int ffado_driver_restart (ffado_driver_t *driver); int ffado_driver_restart (ffado_driver_t *driver);
ffado_driver_t *ffado_driver_new (char *name, ffado_jack_settings_t *params);
ffado_driver_t *ffado_driver_new (const char *name, ffado_jack_settings_t *params);
void ffado_driver_delete (ffado_driver_t *driver); void ffado_driver_delete (ffado_driver_t *driver);


void jack_driver_init (jack_driver_t *driver); void jack_driver_init (jack_driver_t *driver);


Loading…
Cancel
Save