summaryrefslogtreecommitdiff
path: root/drivers/alsa/alsa_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/alsa/alsa_driver.c')
-rw-r--r--drivers/alsa/alsa_driver.c1269
1 files changed, 635 insertions, 634 deletions
diff --git a/drivers/alsa/alsa_driver.c b/drivers/alsa/alsa_driver.c
index c7dd724..2f42e31 100644
--- a/drivers/alsa/alsa_driver.c
+++ b/drivers/alsa/alsa_driver.c
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
+ */
#include <math.h>
#include <stdio.h>
@@ -44,10 +44,10 @@
#include "usx2y.h"
#include "generic.h"
-extern void store_work_time (int);
-extern void store_wait_time (int);
-extern void show_wait_times ();
-extern void show_work_times ();
+extern void store_work_time(int);
+extern void store_wait_time(int);
+extern void show_wait_times();
+extern void show_work_times();
#undef DEBUG_WAKEUP
@@ -98,34 +98,34 @@ alsa_driver_check_capabilities (alsa_driver_t *driver)
}
static char*
-get_control_device_name(const char * device_name)
+get_control_device_name (const char * device_name)
{
- char * ctl_name;
- const char * comma;
-
- /* the user wants a hw or plughw device, the ctl name
- * should be hw:x where x is the card identification.
- * We skip the subdevice suffix that starts with comma */
-
- if (strncasecmp(device_name, "plughw:", 7) == 0) {
- /* skip the "plug" prefix" */
- device_name += 4;
- }
-
- comma = strchr(device_name, ',');
- if (comma == NULL) {
- ctl_name = strdup(device_name);
- if (ctl_name == NULL) {
- jack_error("strdup(\"%s\") failed.", device_name);
- }
- } else {
- ctl_name = strndup(device_name, comma - device_name);
- if (ctl_name == NULL) {
- jack_error("strndup(\"%s\", %u) failed.", device_name, (unsigned int)(comma - device_name));
- }
- }
-
- return ctl_name;
+ char * ctl_name;
+ const char * comma;
+
+ /* the user wants a hw or plughw device, the ctl name
+ * should be hw:x where x is the card identification.
+ * We skip the subdevice suffix that starts with comma */
+
+ if (strncasecmp (device_name, "plughw:", 7) == 0) {
+ /* skip the "plug" prefix" */
+ device_name += 4;
+ }
+
+ comma = strchr (device_name, ',');
+ if (comma == NULL) {
+ ctl_name = strdup (device_name);
+ if (ctl_name == NULL) {
+ jack_error ("strdup(\"%s\") failed.", device_name);
+ }
+ } else {
+ ctl_name = strndup (device_name, comma - device_name);
+ if (ctl_name == NULL) {
+ jack_error ("strndup(\"%s\", %u) failed.", device_name, (unsigned int)(comma - device_name));
+ }
+ }
+
+ return ctl_name;
}
static int
@@ -137,22 +137,22 @@ alsa_driver_check_card_type (alsa_driver_t *driver)
snd_ctl_card_info_alloca (&card_info);
- ctl_name = get_control_device_name(driver->alsa_name_playback);
+ ctl_name = get_control_device_name (driver->alsa_name_playback);
// XXX: I don't know the "right" way to do this. Which to use
// driver->alsa_name_playback or driver->alsa_name_capture.
if ((err = snd_ctl_open (&driver->ctl_handle, ctl_name, 0)) < 0) {
jack_error ("control open \"%s\" (%s)", ctl_name,
- snd_strerror(err));
- } else if ((err = snd_ctl_card_info(driver->ctl_handle, card_info)) < 0) {
+ snd_strerror (err));
+ } else if ((err = snd_ctl_card_info (driver->ctl_handle, card_info)) < 0) {
jack_error ("control hardware info \"%s\" (%s)",
driver->alsa_name_playback, snd_strerror (err));
snd_ctl_close (driver->ctl_handle);
}
- driver->alsa_driver = strdup(snd_ctl_card_info_get_driver (card_info));
+ driver->alsa_driver = strdup (snd_ctl_card_info_get_driver (card_info));
- free(ctl_name);
+ free (ctl_name);
return alsa_driver_check_capabilities (driver);
}
@@ -174,8 +174,8 @@ alsa_driver_hdsp_hardware (alsa_driver_t *driver)
static int
alsa_driver_ice1712_hardware (alsa_driver_t *driver)
{
- driver->hw = jack_alsa_ice1712_hw_new (driver);
- return 0;
+ driver->hw = jack_alsa_ice1712_hw_new (driver);
+ return 0;
}
static int
@@ -198,24 +198,24 @@ alsa_driver_hw_specific (alsa_driver_t *driver, int hw_monitoring,
{
int err;
- if (!strcmp(driver->alsa_driver, "RME9652")) {
+ if (!strcmp (driver->alsa_driver, "RME9652")) {
if ((err = alsa_driver_hammerfall_hardware (driver)) != 0) {
return err;
}
- } else if (!strcmp(driver->alsa_driver, "H-DSP")) {
- if ((err = alsa_driver_hdsp_hardware (driver)) !=0) {
- return err;
- }
- } else if (!strcmp(driver->alsa_driver, "ICE1712")) {
- if ((err = alsa_driver_ice1712_hardware (driver)) !=0) {
- return err;
- }
- } else if (!strcmp(driver->alsa_driver, "USB US-X2Y")) {
- if ((err = alsa_driver_usx2y_hardware (driver)) !=0) {
- return err;
+ } else if (!strcmp (driver->alsa_driver, "H-DSP")) {
+ if ((err = alsa_driver_hdsp_hardware (driver)) != 0) {
+ return err;
+ }
+ } else if (!strcmp (driver->alsa_driver, "ICE1712")) {
+ if ((err = alsa_driver_ice1712_hardware (driver)) != 0) {
+ return err;
+ }
+ } else if (!strcmp (driver->alsa_driver, "USB US-X2Y")) {
+ if ((err = alsa_driver_usx2y_hardware (driver)) != 0) {
+ return err;
}
} else {
- if ((err = alsa_driver_generic_hardware (driver)) != 0) {
+ if ((err = alsa_driver_generic_hardware (driver)) != 0) {
return err;
}
}
@@ -258,50 +258,50 @@ alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
case 2:
switch (driver->dither) {
case Rectangular:
- jack_info("Rectangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_rect_d16_sSs:
- sample_move_dither_rect_d16_sS;
+ jack_info ("Rectangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap ?
+ sample_move_dither_rect_d16_sSs :
+ sample_move_dither_rect_d16_sS;
break;
case Triangular:
- jack_info("Triangular dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_tri_d16_sSs:
- sample_move_dither_tri_d16_sS;
+ jack_info ("Triangular dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap ?
+ sample_move_dither_tri_d16_sSs :
+ sample_move_dither_tri_d16_sS;
break;
case Shaped:
- jack_info("Noise-shaped dithering at 16 bits");
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_dither_shaped_d16_sSs:
- sample_move_dither_shaped_d16_sS;
+ jack_info ("Noise-shaped dithering at 16 bits");
+ driver->write_via_copy = driver->quirk_bswap ?
+ sample_move_dither_shaped_d16_sSs :
+ sample_move_dither_shaped_d16_sS;
break;
default:
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_d16_sSs :
- sample_move_d16_sS;
+ driver->write_via_copy = driver->quirk_bswap ?
+ sample_move_d16_sSs :
+ sample_move_d16_sS;
break;
}
break;
case 3: /* NO DITHER */
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_d24_sSs:
- sample_move_d24_sS;
+ driver->write_via_copy = driver->quirk_bswap ?
+ sample_move_d24_sSs :
+ sample_move_d24_sS;
break;
case 4: /* NO DITHER */
- driver->write_via_copy = driver->quirk_bswap?
- sample_move_d32u24_sSs:
- sample_move_d32u24_sS;
+ driver->write_via_copy = driver->quirk_bswap ?
+ sample_move_d32u24_sSs :
+ sample_move_d32u24_sS;
break;
default:
jack_error ("impossible sample width (%d) discovered!",
- driver->playback_sample_bytes);
+ driver->playback_sample_bytes);
exit (1);
}
}
@@ -313,19 +313,19 @@ alsa_driver_setup_io_function_pointers (alsa_driver_t *driver)
} else {
switch (driver->capture_sample_bytes) {
case 2:
- driver->read_via_copy = driver->quirk_bswap?
- sample_move_dS_s16s:
- sample_move_dS_s16;
+ driver->read_via_copy = driver->quirk_bswap ?
+ sample_move_dS_s16s :
+ sample_move_dS_s16;
break;
case 3:
- driver->read_via_copy = driver->quirk_bswap?
- sample_move_dS_s24s:
- sample_move_dS_s24;
+ driver->read_via_copy = driver->quirk_bswap ?
+ sample_move_dS_s24s :
+ sample_move_dS_s24;
break;
case 4:
- driver->read_via_copy = driver->quirk_bswap?
- sample_move_dS_s32u24s:
- sample_move_dS_s32u24;
+ driver->read_via_copy = driver->quirk_bswap ?
+ sample_move_dS_s32u24s :
+ sample_move_dS_s32u24;
break;
}
}
@@ -345,24 +345,25 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
int err, format;
unsigned int frame_rate;
snd_pcm_uframes_t stop_th;
+
static struct {
char Name[40];
snd_pcm_format_t format;
int swapped;
} formats[] = {
- {"32bit float little-endian", SND_PCM_FORMAT_FLOAT_LE, IS_LE},
- {"32bit integer little-endian", SND_PCM_FORMAT_S32_LE, IS_LE},
- {"32bit integer big-endian", SND_PCM_FORMAT_S32_BE, IS_BE},
- {"24bit little-endian in 3bytes format", SND_PCM_FORMAT_S24_3LE, IS_LE},
- {"24bit big-endian in 3bytes format", SND_PCM_FORMAT_S24_3BE, IS_BE},
- {"24bit little-endian", SND_PCM_FORMAT_S24_LE, IS_LE},
- {"24bit big-endian", SND_PCM_FORMAT_S24_BE, IS_BE},
- {"16bit little-endian", SND_PCM_FORMAT_S16_LE, IS_LE},
- {"16bit big-endian", SND_PCM_FORMAT_S16_BE, IS_BE},
+ { "32bit float little-endian", SND_PCM_FORMAT_FLOAT_LE, IS_LE },
+ { "32bit integer little-endian", SND_PCM_FORMAT_S32_LE, IS_LE },
+ { "32bit integer big-endian", SND_PCM_FORMAT_S32_BE, IS_BE },
+ { "24bit little-endian in 3bytes format", SND_PCM_FORMAT_S24_3LE, IS_LE },
+ { "24bit big-endian in 3bytes format", SND_PCM_FORMAT_S24_3BE, IS_BE },
+ { "24bit little-endian", SND_PCM_FORMAT_S24_LE, IS_LE },
+ { "24bit big-endian", SND_PCM_FORMAT_S24_BE, IS_BE },
+ { "16bit little-endian", SND_PCM_FORMAT_S16_LE, IS_LE },
+ { "16bit big-endian", SND_PCM_FORMAT_S16_BE, IS_BE },
};
-#define NUMFORMATS (sizeof(formats)/sizeof(formats[0]))
+#define NUMFORMATS (sizeof(formats) / sizeof(formats[0]))
- if ((err = snd_pcm_hw_params_any (handle, hw_params)) < 0) {
+ if ((err = snd_pcm_hw_params_any (handle, hw_params)) < 0) {
jack_error ("ALSA: no playback configurations available (%s)",
snd_strerror (err));
return -1;
@@ -416,10 +417,10 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
}
}
- frame_rate = driver->frame_rate ;
+ frame_rate = driver->frame_rate;
err = snd_pcm_hw_params_set_rate_near (handle, hw_params,
- &frame_rate, NULL) ;
- driver->frame_rate = frame_rate ;
+ &frame_rate, NULL);
+ driver->frame_rate = frame_rate;
if (err < 0) {
jack_error ("ALSA: cannot set sample/frame rate to %"
PRIu32 " for %s", driver->frame_rate,
@@ -429,10 +430,10 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
if (!*nchns) {
/*if not user-specified, try to find the maximum
* number of channels */
- unsigned int channels_max ;
+ unsigned int channels_max;
err = snd_pcm_hw_params_get_channels_max (hw_params,
&channels_max);
- *nchns = channels_max ;
+ *nchns = channels_max;
if (*nchns > 1024) {
@@ -442,14 +443,14 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
they can't be bothered to set up a proper
default device, limit the number of
channels for them to a sane default.
- */
+ */
jack_error (
-"You appear to be using the ALSA software \"plug\" layer, probably\n"
-"a result of using the \"default\" ALSA device. This is less\n"
-"efficient than it could be. Consider using a hardware device\n"
-"instead rather than using the plug layer. Usually the name of the\n"
-"hardware device that corresponds to the first sound card is hw:0\n"
+ "You appear to be using the ALSA software \"plug\" layer, probably\n"
+ "a result of using the \"default\" ALSA device. This is less\n"
+ "efficient than it could be. Consider using a hardware device\n"
+ "instead rather than using the plug layer. Usually the name of the\n"
+ "hardware device that corresponds to the first sound card is hw:0\n"
);
*nchns = 2;
}
@@ -474,8 +475,9 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
*nperiodsp = driver->user_nperiods;
snd_pcm_hw_params_set_periods_min (handle, hw_params, nperiodsp, NULL);
- if (*nperiodsp < driver->user_nperiods)
+ if (*nperiodsp < driver->user_nperiods) {
*nperiodsp = driver->user_nperiods;
+ }
if (snd_pcm_hw_params_set_periods_near (handle, hw_params,
nperiodsp, NULL) < 0) {
jack_error ("ALSA: cannot set number of periods to %u for %s",
@@ -485,15 +487,15 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
if (*nperiodsp < driver->user_nperiods) {
jack_error ("ALSA: got smaller periods %u than %u for %s",
- *nperiodsp, (unsigned int) driver->user_nperiods,
+ *nperiodsp, (unsigned int)driver->user_nperiods,
stream_name);
return -1;
}
jack_info ("ALSA: use %d periods for %s", *nperiodsp, stream_name);
#if 0
- if (!jack_power_of_two(driver->frames_per_cycle)) {
- jack_error("JACK: frames must be a power of two "
- "(64, 512, 1024, ...)\n");
+ if (!jack_power_of_two (driver->frames_per_cycle)) {
+ jack_error ("JACK: frames must be a power of two "
+ "(64, 512, 1024, ...)\n");
return -1;
}
#endif
@@ -544,8 +546,8 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
#if 0
jack_info ("set silence size to %lu * %lu = %lu",
- driver->frames_per_cycle, *nperiodsp,
- driver->frames_per_cycle * *nperiodsp);
+ driver->frames_per_cycle, *nperiodsp,
+ driver->frames_per_cycle * *nperiodsp);
if ((err = snd_pcm_sw_params_set_silence_size (
handle, sw_params,
@@ -556,14 +558,15 @@ alsa_driver_configure_stream (alsa_driver_t *driver, char *device_name,
}
#endif
- if (handle == driver->playback_handle)
+ if (handle == driver->playback_handle) {
err = snd_pcm_sw_params_set_avail_min (
handle, sw_params,
driver->frames_per_cycle
* (*nperiodsp - driver->user_nperiods + 1));
- else
+ } else {
err = snd_pcm_sw_params_set_avail_min (
handle, sw_params, driver->frames_per_cycle);
+ }
if (err < 0) {
jack_error ("ALSA: cannot set avail min for %s", stream_name);
@@ -601,8 +604,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
driver->user_nperiods = user_nperiods;
jack_info ("configuring for %" PRIu32 "Hz, period = %"
- PRIu32 " frames (%.1f ms), buffer = %" PRIu32 " periods",
- rate, frames_per_cycle, (((float)frames_per_cycle / (float) rate) * 1000.0f), user_nperiods);
+ PRIu32 " frames (%.1f ms), buffer = %" PRIu32 " periods",
+ rate, frames_per_cycle, (((float)frames_per_cycle / (float)rate) * 1000.0f), user_nperiods);
if (driver->capture_handle) {
if (alsa_driver_configure_stream (
@@ -666,14 +669,12 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
driver->frame_rate = cr;
}
- }
- else if (driver->capture_handle && cr != driver->frame_rate) {
+ } else if (driver->capture_handle && cr != driver->frame_rate) {
jack_error ("capture sample rate in use (%d Hz) does not "
"match requested rate (%d Hz)",
cr, driver->frame_rate);
driver->frame_rate = cr;
- }
- else if (driver->playback_handle && pr != driver->frame_rate) {
+ } else if (driver->playback_handle && pr != driver->frame_rate) {
jack_error ("playback sample rate in use (%d Hz) does not "
"match requested rate (%d Hz)",
pr, driver->frame_rate);
@@ -684,28 +685,31 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
/* check the fragment size, since thats non-negotiable */
if (driver->playback_handle) {
- snd_pcm_access_t access;
+ snd_pcm_access_t access;
- err = snd_pcm_hw_params_get_period_size (
- driver->playback_hw_params, &p_period_size, &dir);
- if (err != 0)
+ err = snd_pcm_hw_params_get_period_size (
+ driver->playback_hw_params, &p_period_size, &dir);
+ if (err != 0) {
jack_error ("snd_pcm_hw_params_get_period_size (playback) : %s",
- snd_strerror (err));
+ snd_strerror (err));
+ }
- err = snd_pcm_hw_params_get_format (
- driver->playback_hw_params,
+ err = snd_pcm_hw_params_get_format (
+ driver->playback_hw_params,
&(driver->playback_sample_format));
- if (err != 0)
+ if (err != 0) {
jack_error ("snd_pcm_hw_params_get_format (playback) : %s",
- snd_strerror (err));
+ snd_strerror (err));
+ }
- err = snd_pcm_hw_params_get_access (driver->playback_hw_params,
+ err = snd_pcm_hw_params_get_access (driver->playback_hw_params,
&access);
- if (err != 0)
+ if (err != 0) {
jack_error ("snd_pcm_hw_params_get_access (playback) : %s",
- snd_strerror (err));
+ snd_strerror (err));
+ }
- driver->playback_interleaved =
+ driver->playback_interleaved =
(access == SND_PCM_ACCESS_MMAP_INTERLEAVED)
|| (access == SND_PCM_ACCESS_MMAP_COMPLEX);
@@ -719,28 +723,31 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
}
if (driver->capture_handle) {
- snd_pcm_access_t access;
+ snd_pcm_access_t access;
- err = snd_pcm_hw_params_get_period_size (
- driver->capture_hw_params, &c_period_size, &dir);
- if (err != 0)
+ err = snd_pcm_hw_params_get_period_size (
+ driver->capture_hw_params, &c_period_size, &dir);
+ if (err != 0) {
jack_error ("snd_pcm_hw_params_get_period_size (capture): %s",
- snd_strerror (err));
+ snd_strerror (err));
+ }
- err = snd_pcm_hw_params_get_format (
- driver->capture_hw_params,
+ err = snd_pcm_hw_params_get_format (
+ driver->capture_hw_params,
&(driver->capture_sample_format));
- if (err != 0)
+ if (err != 0) {
jack_error ("snd_pcm_hw_params_get_format (capture) : %s",
- snd_strerror (err));
+ snd_strerror (err));
+ }
- err = snd_pcm_hw_params_get_access (driver->capture_hw_params,
+ err = snd_pcm_hw_params_get_access (driver->capture_hw_params,
&access);
- if (err != 0)
+ if (err != 0) {
jack_error ("snd_pcm_hw_params_get_access (capture) : %s",
- snd_strerror (err));
+ snd_strerror (err));
+ }
- driver->capture_interleaved =
+ driver->capture_interleaved =
(access == SND_PCM_ACCESS_MMAP_INTERLEAVED)
|| (access == SND_PCM_ACCESS_MMAP_COMPLEX);
@@ -749,7 +756,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
PRIu32
" frames but got %uc frames for capture",
driver->frames_per_cycle, p_period_size);
- goto errout;
+ goto errout;
}
}
@@ -762,7 +769,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
if (driver->playback_handle) {
switch (driver->playback_sample_format) {
- case SND_PCM_FORMAT_FLOAT_LE:
+ case SND_PCM_FORMAT_FLOAT_LE:
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S24_3LE:
case SND_PCM_FORMAT_S24_3BE:
@@ -782,7 +789,7 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
if (driver->capture_handle) {
switch (driver->capture_sample_format) {
- case SND_PCM_FORMAT_FLOAT_LE:
+ case SND_PCM_FORMAT_FLOAT_LE:
case SND_PCM_FORMAT_S32_LE:
case SND_PCM_FORMAT_S24_3LE:
case SND_PCM_FORMAT_S24_3BE:
@@ -803,8 +810,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
if (driver->playback_interleaved) {
const snd_pcm_channel_area_t *my_areas;
snd_pcm_uframes_t offset, frames;
- if (snd_pcm_mmap_begin(driver->playback_handle,
- &my_areas, &offset, &frames) < 0) {
+ if (snd_pcm_mmap_begin (driver->playback_handle,
+ &my_areas, &offset, &frames) < 0) {
jack_error ("ALSA: %s: mmap areas info error",
driver->alsa_name_playback);
goto errout;
@@ -819,8 +826,8 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
if (driver->capture_interleaved) {
const snd_pcm_channel_area_t *my_areas;
snd_pcm_uframes_t offset, frames;
- if (snd_pcm_mmap_begin(driver->capture_handle,
- &my_areas, &offset, &frames) < 0) {
+ if (snd_pcm_mmap_begin (driver->capture_handle,
+ &my_areas, &offset, &frames) < 0) {
jack_error ("ALSA: %s: mmap areas info error",
driver->alsa_name_capture);
goto errout;
@@ -844,55 +851,53 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
channels require action on every cycle. any bits that are
not set after the engine's process() call indicate channels
that potentially need to be silenced.
- */
+ */
bitset_create (&driver->channels_done, driver->max_nchannels);
bitset_create (&driver->channels_not_done, driver->max_nchannels);
if (driver->playback_handle) {
- driver->playback_addr = (char **)
- malloc (sizeof (char *) * driver->playback_nchannels);
+ driver->playback_addr = (char**)
+ malloc (sizeof(char *) * driver->playback_nchannels);
memset (driver->playback_addr, 0,
- sizeof (char *) * driver->playback_nchannels);
- driver->playback_interleave_skip = (unsigned long *)
- malloc (sizeof (unsigned long *) * driver->playback_nchannels);
+ sizeof(char *) * driver->playback_nchannels);
+ driver->playback_interleave_skip = (unsigned long*)
+ malloc (sizeof(unsigned long *) * driver->playback_nchannels);
memset (driver->playback_interleave_skip, 0,
- sizeof (unsigned long *) * driver->playback_nchannels);
- driver->silent = (unsigned long *)
- malloc (sizeof (unsigned long)
- * driver->playback_nchannels);
+ sizeof(unsigned long *) * driver->playback_nchannels);
+ driver->silent = (unsigned long*)
+ malloc (sizeof(unsigned long)
+ * driver->playback_nchannels);
- for (chn = 0; chn < driver->playback_nchannels; chn++) {
+ for (chn = 0; chn < driver->playback_nchannels; chn++)
driver->silent[chn] = 0;
- }
- for (chn = 0; chn < driver->playback_nchannels; chn++) {
+ for (chn = 0; chn < driver->playback_nchannels; chn++)
bitset_add (driver->channels_done, chn);
- }
- driver->dither_state = (dither_state_t *)
- calloc ( driver->playback_nchannels,
- sizeof (dither_state_t));
+ driver->dither_state = (dither_state_t*)
+ calloc ( driver->playback_nchannels,
+ sizeof(dither_state_t));
}
if (driver->capture_handle) {
- driver->capture_addr = (char **)
- malloc (sizeof (char *) * driver->capture_nchannels);
+ driver->capture_addr = (char**)
+ malloc (sizeof(char *) * driver->capture_nchannels);
memset (driver->capture_addr, 0,
- sizeof (char *) * driver->capture_nchannels);
- driver->capture_interleave_skip = (unsigned long *)
- malloc (sizeof (unsigned long *) * driver->capture_nchannels);
+ sizeof(char *) * driver->capture_nchannels);
+ driver->capture_interleave_skip = (unsigned long*)
+ malloc (sizeof(unsigned long *) * driver->capture_nchannels);
memset (driver->capture_interleave_skip, 0,
- sizeof (unsigned long *) * driver->capture_nchannels);
+ sizeof(unsigned long *) * driver->capture_nchannels);
}
- driver->clock_sync_data = (ClockSyncStatus *)
- malloc (sizeof (ClockSyncStatus) * driver->max_nchannels);
+ driver->clock_sync_data = (ClockSyncStatus*)
+ malloc (sizeof(ClockSyncStatus) * driver->max_nchannels);
driver->period_usecs =
- (jack_time_t) floor ((((float) driver->frames_per_cycle) /
- driver->frame_rate) * 1000000.0f);
- driver->poll_timeout = (int) floor (1.5f * driver->period_usecs);
+ (jack_time_t)floor ((((float)driver->frames_per_cycle) /
+ driver->frame_rate) * 1000000.0f);
+ driver->poll_timeout = (int)floor (1.5f * driver->period_usecs);
if (driver->engine) {
if (driver->engine->set_buffer_size (driver->engine,
@@ -902,19 +907,19 @@ alsa_driver_set_parameters (alsa_driver_t *driver,
}
}
- driver->previously_successfully_configured = TRUE;
+ driver->previously_successfully_configured = TRUE;
return 0;
- errout:
- if (driver->previously_successfully_configured) {
- /* attempt to restore previous configuration */
- jack_info ("ALSA: falling back to old configuration");
- if (alsa_driver_set_parameters (driver, old_frames_per_cycle, old_user_nperiods, old_rate) == 0) {
- jack_error ("ALSA: reverted to previous parameters after failure");
- return 0;
- }
- }
- return -1;
+errout:
+ if (driver->previously_successfully_configured) {
+ /* attempt to restore previous configuration */
+ jack_info ("ALSA: falling back to old configuration");
+ if (alsa_driver_set_parameters (driver, old_frames_per_cycle, old_user_nperiods, old_rate) == 0) {
+ jack_error ("ALSA: reverted to previous parameters after failure");
+ return 0;
+ }
+ }
+ return -1;
}
static int
@@ -943,8 +948,8 @@ alsa_driver_get_channel_addresses (alsa_driver_t *driver,
if (capture_avail) {
if ((err = snd_pcm_mmap_begin (
driver->capture_handle, &driver->capture_areas,
- (snd_pcm_uframes_t *) capture_offset,
- (snd_pcm_uframes_t *) capture_avail)) < 0) {
+ (snd_pcm_uframes_t*)capture_offset,
+ (snd_pcm_uframes_t*)capture_avail)) < 0) {
jack_error ("ALSA: %s: mmap areas info error",
driver->alsa_name_capture);
return -1;
@@ -953,17 +958,17 @@ alsa_driver_get_channel_addresses (alsa_driver_t *driver,
for (chn = 0; chn < driver->capture_nchannels; chn++) {
const snd_pcm_channel_area_t *a =
&driver->capture_areas[chn];
- driver->capture_addr[chn] = (char *) a->addr
- + ((a->first + a->step * *capture_offset) / 8);
- driver->capture_interleave_skip[chn] = (unsigned long ) (a->step / 8);
+ driver->capture_addr[chn] = (char*)a->addr
+ + ((a->first + a->step * *capture_offset) / 8);
+ driver->capture_interleave_skip[chn] = (unsigned long )(a->step / 8);
}
}
if (playback_avail) {
if ((err = snd_pcm_mmap_begin (
driver->playback_handle, &driver->playback_areas,
- (snd_pcm_uframes_t *) playback_offset,
- (snd_pcm_uframes_t *) playback_avail)) < 0) {
+ (snd_pcm_uframes_t*)playback_offset,
+ (snd_pcm_uframes_t*)playback_avail)) < 0) {
jack_error ("ALSA: %s: mmap areas info error ",
driver->alsa_name_playback);
return -1;
@@ -972,9 +977,9 @@ alsa_driver_get_channel_addresses (alsa_driver_t *driver,
for (chn = 0; chn < driver->playback_nchannels; chn++) {
const snd_pcm_channel_area_t *a =
&driver->playback_areas[chn];
- driver->playback_addr[chn] = (char *) a->addr
- + ((a->first + a->step * *playback_offset) / 8);
- driver->playback_interleave_skip[chn] = (unsigned long ) (a->step / 8);
+ driver->playback_addr[chn] = (char*)a->addr
+ + ((a->first + a->step * *playback_offset) / 8);
+ driver->playback_interleave_skip[chn] = (unsigned long )(a->step / 8);
}
}
@@ -995,7 +1000,7 @@ alsa_driver_start (alsa_driver_t *driver)
if ((err = snd_pcm_prepare (driver->playback_handle)) < 0) {
jack_error ("ALSA: prepare error for playback on "
"\"%s\" (%s)", driver->alsa_name_playback,
- snd_strerror(err));
+ snd_strerror (err));
return -1;
}
}
@@ -1005,7 +1010,7 @@ alsa_driver_start (alsa_driver_t *driver)
if ((err = snd_pcm_prepare (driver->capture_handle)) < 0) {
jack_error ("ALSA: prepare error for capture on \"%s\""
" (%s)", driver->alsa_name_capture,
- snd_strerror(err));
+ snd_strerror (err));
return -1;
}
}
@@ -1042,14 +1047,14 @@ alsa_driver_start (alsa_driver_t *driver)
free (driver->pfd);
}
- driver->pfd = (struct pollfd *)
- malloc (sizeof (struct pollfd) *
- (driver->playback_nfds + driver->capture_nfds + 2));
+ driver->pfd = (struct pollfd*)
+ malloc (sizeof(struct pollfd) *
+ (driver->playback_nfds + driver->capture_nfds + 2));
if (driver->playback_handle) {
/* fill playback buffer with zeroes, and mark
all fragments as having data.
- */
+ */
pavail = snd_pcm_avail_update (driver->playback_handle);
@@ -1060,7 +1065,7 @@ alsa_driver_start (alsa_driver_t *driver)
}
if (alsa_driver_get_channel_addresses (driver,
- 0, &pavail, 0, &poffset)) {
+ 0, &pavail, 0, &poffset)) {
return -1;
}
@@ -1071,7 +1076,7 @@ alsa_driver_start (alsa_driver_t *driver)
alsa-lib may have a better function for doing this
here, where the goal is to silence the entire
buffer.
- */
+ */
for (chn = 0; chn < driver->playback_nchannels; chn++) {
alsa_driver_silence_on_channel (
@@ -1112,7 +1117,7 @@ alsa_driver_stop (alsa_driver_t *driver)
/* silence all capture port buffers, because we might
be entering offline mode.
- */
+ */
for (chn = 0, node = driver->capture_ports; node;
node = jack_slist_next (node), chn++) {
@@ -1121,9 +1126,9 @@ alsa_driver_stop (alsa_driver_t *driver)
char* buf;
jack_nframes_t nframes = driver->engine->control->buffer_size;
- port = (jack_port_t *) node->data;
+ port = (jack_port_t*)node->data;
buf = jack_port_get_buffer (port, nframes);
- memset (buf, 0, sizeof (jack_default_audio_sample_t) * nframes);
+ memset (buf, 0, sizeof(jack_default_audio_sample_t) * nframes);
}
if (driver->playback_handle) {
@@ -1159,8 +1164,9 @@ alsa_driver_restart (alsa_driver_t *driver)
int res;
driver->xrun_recovery = 1;
- if ((res = driver->nt_stop((struct _jack_driver_nt *) driver))==0)
- res = driver->nt_start((struct _jack_driver_nt *) driver);
+ if ((res = driver->nt_stop ((struct _jack_driver_nt*)driver)) == 0) {
+ res = driver->nt_start ((struct _jack_driver_nt*)driver);
+ }
driver->xrun_recovery = 0;
return res;
@@ -1172,47 +1178,46 @@ alsa_driver_xrun_recovery (alsa_driver_t *driver, float *delayed_usecs)
snd_pcm_status_t *status;
int res;
- snd_pcm_status_alloca(&status);
+ snd_pcm_status_alloca (&status);
if (driver->capture_handle) {
- if ((res = snd_pcm_status(driver->capture_handle, status))
+ if ((res = snd_pcm_status (driver->capture_handle, status))
< 0) {
- jack_error("status error: %s", snd_strerror(res));
+ jack_error ("status error: %s", snd_strerror (res));
}
} else {
- if ((res = snd_pcm_status(driver->playback_handle, status))
+ if ((res = snd_pcm_status (driver->playback_handle, status))
< 0) {
- jack_error("status error: %s", snd_strerror(res));
+ jack_error ("status error: %s", snd_strerror (res));
}
}
- if (snd_pcm_status_get_state(status) == SND_PCM_STATE_SUSPENDED)
- {
- MESSAGE("\n\n**** alsa_pcm: pcm in suspended state, resuming it \n\n" );
+ if (snd_pcm_status_get_state (status) == SND_PCM_STATE_SUSPENDED) {
+ MESSAGE ("\n\n**** alsa_pcm: pcm in suspended state, resuming it \n\n" );
if (driver->capture_handle) {
- if ((res = snd_pcm_prepare(driver->capture_handle))
+ if ((res = snd_pcm_prepare (driver->capture_handle))
< 0) {
- jack_error("error preparing after suspend: %s", snd_strerror(res));
+ jack_error ("error preparing after suspend: %s", snd_strerror (res));
}
} else {
- if ((res = snd_pcm_prepare(driver->playback_handle))
+ if ((res = snd_pcm_prepare (driver->playback_handle))
< 0) {
- jack_error("error preparing after suspend: %s", snd_strerror(res));
+ jack_error ("error preparing after suspend: %s", snd_strerror (res));
}
}
}
- if (snd_pcm_status_get_state(status) == SND_PCM_STATE_XRUN
+ if (snd_pcm_status_get_state (status) == SND_PCM_STATE_XRUN
&& driver->process_count > XRUN_REPORT_DELAY) {
struct timeval now, diff, tstamp;
driver->xrun_count++;
- snd_pcm_status_get_tstamp(status,&now);
- snd_pcm_status_get_trigger_tstamp(status, &tstamp);
- timersub(&now, &tstamp, &diff);
+ snd_pcm_status_get_tstamp (status, &now);
+ snd_pcm_status_get_trigger_tstamp (status, &tstamp);
+ timersub (&now, &tstamp, &diff);
*delayed_usecs = diff.tv_sec * 1000000.0 + diff.tv_usec;
- MESSAGE("\n\n**** alsa_pcm: xrun of at least %.3f "
- "msecs\n\n",
- *delayed_usecs / 1000.0);
+ MESSAGE ("\n\n**** alsa_pcm: xrun of at least %.3f "
+ "msecs\n\n",
+ *delayed_usecs / 1000.0);
}
if (alsa_driver_restart (driver)) {
@@ -1275,7 +1280,7 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float
need_playback = driver->playback_handle ? 1 : 0;
}
- again:
+again:
while (need_playback || need_capture) {
@@ -1303,14 +1308,13 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float
/* ALSA doesn't set POLLERR in some versions of 0.9.X */
- for (i = 0; i < nfds; i++) {
+ for (i = 0; i < nfds; i++)
driver->pfd[i].events |= POLLERR;
- }
if (extra_fd >= 0) {
driver->pfd[nfds].fd = extra_fd;
driver->pfd[nfds].events =
- POLLIN|POLLERR|POLLHUP|POLLNVAL;
+ POLLIN | POLLERR | POLLHUP | POLLNVAL;
nfds++;
}
@@ -1370,7 +1374,7 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float
if (extra_fd >= 0) {
- if (driver->pfd[nfds-1].revents == 0) {
+ if (driver->pfd[nfds - 1].revents == 0) {
/* we timed out on the extra fd */
*status = -4;
@@ -1380,13 +1384,13 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float
/* if POLLIN was the only bit set, we're OK */
*status = 0;
- return (driver->pfd[nfds-1].revents == POLLIN) ? 0 : -1;
+ return (driver->pfd[nfds - 1].revents == POLLIN) ? 0 : -1;
}
if (need_playback) {
if (snd_pcm_poll_descriptors_revents
- (driver->playback_handle, &driver->pfd[0],
- driver->playback_nfds, &revents) < 0) {
+ (driver->playback_handle, &driver->pfd[0],
+ driver->playback_nfds, &revents) < 0) {
jack_error ("ALSA: playback revents failed");
*status = -6;
return 0;
@@ -1408,8 +1412,8 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float
if (need_capture) {
if (snd_pcm_poll_descriptors_revents
- (driver->capture_handle, &driver->pfd[ci],
- driver->capture_nfds, &revents) < 0) {
+ (driver->capture_handle, &driver->pfd[ci],
+ driver->capture_nfds, &revents) < 0) {
jack_error ("ALSA: capture revents failed");
*status = -6;
return 0;
@@ -1491,7 +1495,7 @@ alsa_driver_wait (alsa_driver_t *driver, int extra_fd, int *status, float
/* constrain the available count to the nearest (round down) number of
periods.
- */
+ */
return avail - (avail % driver->frames_per_cycle);
}
@@ -1508,16 +1512,16 @@ alsa_driver_null_cycle (alsa_driver_t* driver, jack_nframes_t nframes)
return -1;
}
- if (driver->capture_handle) {
+ if (driver->capture_handle) {
nf = nframes;
offset = 0;
while (nf) {
contiguous = nf;
- if (alsa_driver_get_channel_addresses (driver,
- &contiguous, 0, &offset, 0)) {
- return -1;
- }
+ if (alsa_driver_get_channel_addresses (driver,
+ &contiguous, 0, &offset, 0)) {
+ return -1;
+ }
if (snd_pcm_mmap_commit (driver->capture_handle,
offset, contiguous) < 0) {
@@ -1534,15 +1538,14 @@ alsa_driver_null_cycle (alsa_driver_t* driver, jack_nframes_t nframes)
while (nf) {
contiguous = nf;
- if (alsa_driver_get_channel_addresses (driver,
- 0, &contiguous, 0, &offset)) {
- return -1;
- }
+ if (alsa_driver_get_channel_addresses (driver,
+ 0, &contiguous, 0, &offset)) {
+ return -1;
+ }
- for (chn = 0; chn < driver->playback_nchannels; chn++) {
+ for (chn = 0; chn < driver->playback_nchannels; chn++)
alsa_driver_silence_on_channel (driver, chn,
contiguous);
- }
if (snd_pcm_mmap_commit (driver->playback_handle,
offset, contiguous) < 0) {
@@ -1570,7 +1573,7 @@ alsa_driver_read (alsa_driver_t *driver, jack_nframes_t nframes)
snd_pcm_sframes_t contiguous;
snd_pcm_sframes_t nread;
snd_pcm_uframes_t offset;
- jack_nframes_t orig_nframes;
+ jack_nframes_t orig_nframes;
jack_default_audio_sample_t* buf;
channel_t chn;
JSList *node;
@@ -1599,8 +1602,8 @@ alsa_driver_read (alsa_driver_t *driver, jack_nframes_t nframes)
if (alsa_driver_get_channel_addresses (
driver,
- (snd_pcm_uframes_t *) &contiguous,
- (snd_pcm_uframes_t *) 0,
+ (snd_pcm_uframes_t*)&contiguous,
+ (snd_pcm_uframes_t*)0,
&offset, 0) < 0) {
return -1;
}
@@ -1608,7 +1611,7 @@ alsa_driver_read (alsa_driver_t *driver, jack_nframes_t nframes)
for (chn = 0, node = driver->capture_ports; node;
node = jack_slist_next (node), chn++) {
- port = (jack_port_t *) node->data;
+ port = (jack_port_t*)node->data;
if (!jack_port_connected (port)) {
/* no-copy optimization */
@@ -1616,13 +1619,13 @@ alsa_driver_read (alsa_driver_t *driver, jack_nframes_t nframes)
}
buf = jack_port_get_buffer (port, orig_nframes);
alsa_driver_read_from_channel (driver, chn,
- buf + nread, contiguous);
+ buf + nread, contiguous);
}
if ((err = snd_pcm_mmap_commit (driver->capture_handle,
- offset, contiguous)) < 0) {
+ offset, contiguous)) < 0) {
jack_error ("ALSA: could not complete read of %"
- PRIu32 " frames: error = %d", contiguous, err);
+ PRIu32 " frames: error = %d", contiguous, err);
return -1;
}
@@ -1667,8 +1670,8 @@ alsa_driver_write (alsa_driver_t* driver, jack_nframes_t nframes)
for (chn = 0, node = driver->capture_ports; node;
node = jack_slist_next (node), chn++) {
- if (((jack_port_t *) node->data)->shared->monitor_requests) {
- driver->input_monitor_mask |= (1<<chn);
+ if (((jack_port_t*)node->data)->shared->monitor_requests) {
+ driver->input_monitor_mask |= (1 << chn);
}
}
@@ -1687,27 +1690,27 @@ alsa_driver_write (alsa_driver_t* driver, jack_nframes_t nframes)
if (alsa_driver_get_channel_addresses (
driver,
- (snd_pcm_uframes_t *) 0,
- (snd_pcm_uframes_t *) &contiguous,
+ (snd_pcm_uframes_t*)0,
+ (snd_pcm_uframes_t*)&contiguous,
0, &offset) < 0) {
return -1;
}
- for (chn = 0, node = driver->playback_ports, mon_node=driver->monitor_ports;
+ for (chn = 0, node = driver->playback_ports, mon_node = driver->monitor_ports;
node;
node = jack_slist_next (node), chn++) {
- port = (jack_port_t *) node->data;
+ port = (jack_port_t*)node->data;
if (!jack_port_connected (port)) {
continue;
}
buf = jack_port_get_buffer (port, orig_nframes);
alsa_driver_write_to_channel (driver, chn,
- buf + nwritten, contiguous);
+ buf + nwritten, contiguous);
if (mon_node) {
- port = (jack_port_t *) mon_node->data;
+ port = (jack_port_t*)mon_node->data;
if (!jack_port_connected (port)) {
continue;
}
@@ -1724,11 +1727,12 @@ alsa_driver_write (alsa_driver_t* driver, jack_nframes_t nframes)
}
if ((err = snd_pcm_mmap_commit (driver->playback_handle,
- offset, contiguous)) < 0) {
+ offset, contiguous)) < 0) {
jack_error ("ALSA: could not complete playback of %"
- PRIu32 " frames: error = %d", contiguous, err);
- if (err != -EPIPE && err != -ESTRPIPE)
+ PRIu32 " frames: error = %d", contiguous, err);
+ if (err != -EPIPE && err != -ESTRPIPE) {
return -1;
+ }
}
nframes -= contiguous;
@@ -1752,10 +1756,11 @@ alsa_driver_run_cycle (alsa_driver_t *driver)
DEBUG ("alsaback from wait, nframes = %lu", nframes);
- if (unlikely(wait_status < 0))
- return -1; /* driver failed */
+ if (unlikely (wait_status < 0)) {
+ return -1; /* driver failed */
- if (unlikely(nframes == 0)) {
+ }
+ if (unlikely (nframes == 0)) {
/* we detected an xrun and restarted: notify
* clients about the delay.
@@ -1770,20 +1775,19 @@ alsa_driver_run_cycle (alsa_driver_t *driver)
static void
alsa_driver_latency_callback (jack_latency_callback_mode_t mode, void* arg)
{
- alsa_driver_t* driver = (alsa_driver_t*) arg;
- jack_client_t* client = driver->client;
- jack_latency_range_t range;
- JSList* node;
-
- if (mode == JackPlaybackLatency) {
- range.min = range.max = driver->frames_per_cycle + driver->playback_frame_latency;
- } else {
- range.min = range.max = driver->frames_per_cycle + driver->capture_frame_latency;
- }
+ alsa_driver_t* driver = (alsa_driver_t*)arg;
+ jack_client_t* client = driver->client;
+ jack_latency_range_t range;
+ JSList* node;
- for (node = client->ports; node; node = jack_slist_next (node)) {
- jack_port_set_latency_range ((jack_port_t*) node->data, mode, &range);
+ if (mode == JackPlaybackLatency) {
+ range.min = range.max = driver->frames_per_cycle + driver->playback_frame_latency;
+ } else {
+ range.min = range.max = driver->frames_per_cycle + driver->capture_frame_latency;
}
+
+ for (node = client->ports; node; node = jack_slist_next (node))
+ jack_port_set_latency_range ((jack_port_t*)node->data, mode, &range);
}
static int
@@ -1801,7 +1805,7 @@ alsa_driver_attach (alsa_driver_t *driver)
}
driver->engine->set_sample_rate (driver->engine, driver->frame_rate);
- port_flags = JackPortIsOutput|JackPortIsPhysical|JackPortIsTerminal;
+ port_flags = JackPortIsOutput | JackPortIsPhysical | JackPortIsTerminal;
if (driver->has_hw_monitoring) {
port_flags |= JackPortCanMonitor;
@@ -1809,7 +1813,7 @@ alsa_driver_attach (alsa_driver_t *driver)
for (chn = 0; chn < driver->capture_nchannels; chn++) {
- snprintf (buf, sizeof(buf), "capture_%lu", chn+1);
+ snprintf (buf, sizeof(buf), "capture_%lu", chn + 1);
if ((port = jack_port_register (driver->client, buf,
JACK_DEFAULT_AUDIO_TYPE,
@@ -1825,12 +1829,12 @@ alsa_driver_attach (alsa_driver_t *driver)
jack_slist_append (driver->capture_ports, port);
}
- port_flags = JackPortIsInput|JackPortIsPhysical|JackPortIsTerminal;
+ port_flags = JackPortIsInput | JackPortIsPhysical | JackPortIsTerminal;
for (chn = 0; chn < driver->playback_nchannels; chn++) {
jack_port_t *monitor_port;
- snprintf (buf, sizeof(buf) - 1, "playback_%lu", chn+1);
+ snprintf (buf, sizeof(buf) - 1, "playback_%lu", chn + 1);
if ((port = jack_port_register (driver->client, buf,
JACK_DEFAULT_AUDIO_TYPE,
@@ -1846,7 +1850,7 @@ alsa_driver_attach (alsa_driver_t *driver)
jack_slist_append (driver->playback_ports, port);
if (driver->with_monitor_ports) {
- snprintf (buf, sizeof(buf) - 1, "monitor_%lu", chn+1);
+ snprintf (buf, sizeof(buf) - 1, "monitor_%lu", chn + 1);
if ((monitor_port = jack_port_register (
driver->client, buf,
@@ -1878,307 +1882,302 @@ alsa_driver_detach (alsa_driver_t *driver)
return 0;
}
- for (node = driver->capture_ports; node;
- node = jack_slist_next (node)) {
- jack_port_unregister (driver->client,
- ((jack_port_t *) node->data));
- }
+ for (node = driver->capture_ports; node;
+ node = jack_slist_next (node))
+ jack_port_unregister (driver->client,
+ ((jack_port_t*)node->data));
- jack_slist_free (driver->capture_ports);
- driver->capture_ports = 0;
+ jack_slist_free (driver->capture_ports);
+ driver->capture_ports = 0;
- for (node = driver->playback_ports; node;
- node = jack_slist_next (node)) {
- jack_port_unregister (driver->client,
- ((jack_port_t *) node->data));
- }
+ for (node = driver->playback_ports; node;
+ node = jack_slist_next (node))
+ jack_port_unregister (driver->client,
+ ((jack_port_t*)node->data));
- jack_slist_free (driver->playback_ports);
- driver->playback_ports = 0;
+ jack_slist_free (driver->playback_ports);
+ driver->playback_ports = 0;
- if (driver->monitor_ports) {
- for (node = driver->monitor_ports; node;
- node = jack_slist_next (node)) {
- jack_port_unregister (driver->client,
- ((jack_port_t *) node->data));
- }
+ if (driver->monitor_ports) {
+ for (node = driver->monitor_ports; node;
+ node = jack_slist_next (node))
+ jack_port_unregister (driver->client,
+ ((jack_port_t*)node->data));
- jack_slist_free (driver->monitor_ports);
- driver->monitor_ports = 0;
- }
+ jack_slist_free (driver->monitor_ports);
+ driver->monitor_ports = 0;
+ }
- return 0;
- }
+ return 0;
+}
#if 0
- static int /* UNUSED */
- alsa_driver_change_sample_clock (alsa_driver_t *driver, SampleClockMode mode)
-
- {
- return driver->hw->change_sample_clock (driver->hw, mode);
- }
-
- static void /* UNUSED */
- alsa_driver_request_all_monitor_input (alsa_driver_t *driver, int yn)
-
- {
- if (driver->hw_monitoring) {
- if (yn) {
- driver->hw->set_input_monitor_mask (driver->hw, ~0U);
- } else {
- driver->hw->set_input_monitor_mask (
- driver->hw, driver->input_monitor_mask);
- }
- }
-
- driver->all_monitor_in = yn;
- }
-
- static void /* UNUSED */
- alsa_driver_set_hw_monitoring (alsa_driver_t *driver, int yn)
- {
- if (yn) {
- driver->hw_monitoring = TRUE;
-
- if (driver->all_monitor_in) {
- driver->hw->set_input_monitor_mask (driver->hw, ~0U);
- } else {
- driver->hw->set_input_monitor_mask (
- driver->hw, driver->input_monitor_mask);
- }
- } else {
- driver->hw_monitoring = FALSE;
- driver->hw->set_input_monitor_mask (driver->hw, 0);
- }
- }
-
- static ClockSyncStatus /* UNUSED */
- alsa_driver_clock_sync_status (channel_t chn)
- {
- return Lock;
- }
+static int /* UNUSED */
+alsa_driver_change_sample_clock (alsa_driver_t *driver, SampleClockMode mode)
+
+{
+ return driver->hw->change_sample_clock (driver->hw, mode);
+}
+
+static void /* UNUSED */
+alsa_driver_request_all_monitor_input (alsa_driver_t *driver, int yn)
+
+{
+ if (driver->hw_monitoring) {
+ if (yn) {
+ driver->hw->set_input_monitor_mask (driver->hw, ~0U);
+ } else {
+ driver->hw->set_input_monitor_mask (
+ driver->hw, driver->input_monitor_mask);
+ }
+ }
+
+ driver->all_monitor_in = yn;
+}
+
+static void /* UNUSED */
+alsa_driver_set_hw_monitoring (alsa_driver_t *driver, int yn)
+{
+ if (yn) {
+ driver->hw_monitoring = TRUE;
+
+ if (driver->all_monitor_in) {
+ driver->hw->set_input_monitor_mask (driver->hw, ~0U);
+ } else {
+ driver->hw->set_input_monitor_mask (
+ driver->hw, driver->input_monitor_mask);
+ }
+ } else {
+ driver->hw_monitoring = FALSE;
+ driver->hw->set_input_monitor_mask (driver->hw, 0);
+ }
+}
+
+static ClockSyncStatus /* UNUSED */
+alsa_driver_clock_sync_status (channel_t chn)
+{
+ return Lock;
+}
#endif
- static void
- alsa_driver_delete (alsa_driver_t *driver)
- {
- JSList *node;
+static void
+alsa_driver_delete (alsa_driver_t *driver)
+{
+ JSList *node;
- /*
- if (driver->midi)
- (driver->midi->destroy)((jack_driver_t*) driver->midi);
- */
+ /*
+ if (driver->midi)
+ (driver->midi->destroy)((jack_driver_t*) driver->midi);
+ */
- for (node = driver->clock_sync_listeners; node;
- node = jack_slist_next (node)) {
- free (node->data);
- }
- jack_slist_free (driver->clock_sync_listeners);
-
- if (driver->ctl_handle) {
- snd_ctl_close (driver->ctl_handle);
- driver->ctl_handle = 0;
- }
-
- if (driver->capture_handle) {
- snd_pcm_close (driver->capture_handle);
- driver->capture_handle = 0;
- }
-
- if (driver->playback_handle) {
- snd_pcm_close (driver->playback_handle);
- driver->capture_handle = 0;
- }
-
- if (driver->capture_hw_params) {
- snd_pcm_hw_params_free (driver->capture_hw_params);
- driver->capture_hw_params = 0;
- }
-
- if (driver->playback_hw_params) {
- snd_pcm_hw_params_free (driver->playback_hw_params);
- driver->playback_hw_params = 0;
- }
-
- if (driver->capture_sw_params) {
- snd_pcm_sw_params_free (driver->capture_sw_params);
- driver->capture_sw_params = 0;
- }
-
- if (driver->playback_sw_params) {
- snd_pcm_sw_params_free (driver->playback_sw_params);
- driver->playback_sw_params = 0;
- }
-
- if (driver->pfd) {
- free (driver->pfd);
- }
-
- if (driver->hw) {
- driver->hw->release (driver->hw);
- driver->hw = 0;
- }
- free(driver->alsa_name_playback);
- free(driver->alsa_name_capture);
- free(driver->alsa_driver);
-
- alsa_driver_release_channel_dependent_memory (driver);
- jack_driver_nt_finish ((jack_driver_nt_t *) driver);
- free (driver);
- }
-
- static char*
- discover_alsa_using_apps ()
- {
- char found[2048];
- char command[5192];
- char* path = getenv ("PATH");
- char* dir;
- size_t flen = 0;
- int card;
- int device;
- size_t cmdlen = 0;
-
- if (!path) {
- return NULL;
- }
-
- /* look for lsof and give up if its not in PATH */
-
- path = strdup (path);
- dir = strtok (path, ":");
- while (dir) {
- char maybe[PATH_MAX+1];
- snprintf (maybe, sizeof(maybe), "%s/lsof", dir);
- if (access (maybe, X_OK) == 0) {
- break;
- }
- dir = strtok (NULL, ":");
- }
- free (path);
-
- if (!dir) {
- return NULL;
- }
-
- snprintf (command, sizeof (command), "lsof -Fc0 ");
- cmdlen = strlen (command);
-
- for (card = 0; card < 8; ++card) {
- for (device = 0; device < 8; ++device) {
- char buf[32];
-
- snprintf (buf, sizeof (buf), "/dev/snd/pcmC%dD%dp", card, device);
- if (access (buf, F_OK) == 0) {
- snprintf (command+cmdlen, sizeof(command)-cmdlen, "%s ", buf);
- }
- cmdlen = strlen (command);
-
- snprintf (buf, sizeof (buf), "/dev/snd/pcmC%dD%dc", card, device);
- if (access (buf, F_OK) == 0) {
- snprintf (command+cmdlen, sizeof(command)-cmdlen, "%s ", buf);
- }
- cmdlen = strlen (command);
- }
- }
-
- FILE* f = popen (command, "r");
-
- if (!f) {
- return NULL;
- }
-
- while (!feof (f)) {
- char buf[1024]; /* lsof doesn't output much */
-
- if (!fgets (buf, sizeof (buf), f)) {
- break;
- }
-
- if (*buf != 'p') {
- return NULL;
- }
-
- /* buf contains NULL as a separator between the process field and the command field */
- char *pid = buf;
- ++pid; /* skip leading 'p' */
- char *cmd = pid;
-
- /* skip to NULL */
- while (*cmd) {
- ++cmd;
- }
- ++cmd; /* skip to 'c' */
- ++cmd; /* skip to first character of command */
-
- snprintf (found+flen, sizeof (found)-flen, "%s (process ID %s)\n", cmd, pid);
- flen = strlen (found);
-
- if (flen >= sizeof (found)) {
- break;
- }
- }
-
- pclose (f);
-
- if (flen) {
- return strdup (found);
- } else {
- return NULL;
- }
- }
-
-
- static jack_driver_t *
- alsa_driver_new (char *name, char *playback_alsa_device,
- char *capture_alsa_device,
- jack_client_t *client,
- jack_nframes_t frames_per_cycle,
- jack_nframes_t user_nperiods,
- jack_nframes_t rate,
- int hw_monitoring,
- int hw_metering,
- int capturing,
- int playing,
- DitherAlgorithm dither,
- int soft_mode,
- int monitor,
- int user_capture_nchnls,
- int user_playback_nchnls,
- int shorts_first,
- jack_nframes_t capture_latency,
- jack_nframes_t playback_latency
+ for (node = driver->clock_sync_listeners; node;
+ node = jack_slist_next (node))
+ free (node->data);
+ jack_slist_free (driver->clock_sync_listeners);
+
+ if (driver->ctl_handle) {
+ snd_ctl_close (driver->ctl_handle);
+ driver->ctl_handle = 0;
+ }
+
+ if (driver->capture_handle) {
+ snd_pcm_close (driver->capture_handle);
+ driver->capture_handle = 0;
+ }
+
+ if (driver->playback_handle) {
+ snd_pcm_close (driver->playback_handle);
+ driver->capture_handle = 0;
+ }
+
+ if (driver->capture_hw_params) {
+ snd_pcm_hw_params_free (driver->capture_hw_params);
+ driver->capture_hw_params = 0;
+ }
+
+ if (driver->playback_hw_params) {
+ snd_pcm_hw_params_free (driver->playback_hw_params);
+ driver->playback_hw_params = 0;
+ }
+
+ if (driver->capture_sw_params) {
+ snd_pcm_sw_params_free (driver->capture_sw_params);
+ driver->capture_sw_params = 0;
+ }
+
+ if (driver->playback_sw_params) {
+ snd_pcm_sw_params_free (driver->playback_sw_params);
+ driver->playback_sw_params = 0;
+ }
+
+ if (driver->pfd) {
+ free (driver->pfd);
+ }
+
+ if (driver->hw) {
+ driver->hw->release (driver->hw);
+ driver->hw = 0;
+ }
+ free (driver->alsa_name_playback);
+ free (driver->alsa_name_capture);
+ free (driver->alsa_driver);
+
+ alsa_driver_release_channel_dependent_memory (driver);
+ jack_driver_nt_finish ((jack_driver_nt_t*)driver);
+ free (driver);
+}
+
+static char*
+discover_alsa_using_apps ()
+{
+ char found[2048];
+ char command[5192];
+ char* path = getenv ("PATH");
+ char* dir;
+ size_t flen = 0;
+ int card;
+ int device;
+ size_t cmdlen = 0;
+
+ if (!path) {
+ return NULL;
+ }
+
+ /* look for lsof and give up if its not in PATH */
+
+ path = strdup (path);
+ dir = strtok (path, ":");
+ while (dir) {
+ char maybe[PATH_MAX + 1];
+ snprintf (maybe, sizeof(maybe), "%s/lsof", dir);
+ if (access (maybe, X_OK) == 0) {
+ break;
+ }
+ dir = strtok (NULL, ":");
+ }
+ free (path);
+
+ if (!dir) {
+ return NULL;
+ }
+
+ snprintf (command, sizeof(command), "lsof -Fc0 ");
+ cmdlen = strlen (command);
+
+ for (card = 0; card < 8; ++card) {
+ for (device = 0; device < 8; ++device) {
+ char buf[32];
+
+ snprintf (buf, sizeof(buf), "/dev/snd/pcmC%dD%dp", card, device);
+ if (access (buf, F_OK) == 0) {
+ snprintf (command + cmdlen, sizeof(command) - cmdlen, "%s ", buf);
+ }
+ cmdlen = strlen (command);
+
+ snprintf (buf, sizeof(buf), "/dev/snd/pcmC%dD%dc", card, device);
+ if (access (buf, F_OK) == 0) {
+ snprintf (command + cmdlen, sizeof(command) - cmdlen, "%s ", buf);
+ }
+ cmdlen = strlen (command);
+ }
+ }
+
+ FILE* f = popen (command, "r");
+
+ if (!f) {
+ return NULL;
+ }
+
+ while (!feof (f)) {
+ char buf[1024]; /* lsof doesn't output much */
+
+ if (!fgets (buf, sizeof(buf), f)) {
+ break;
+ }
+
+ if (*buf != 'p') {
+ return NULL;
+ }
+
+ /* buf contains NULL as a separator between the process field and the command field */
+ char *pid = buf;
+ ++pid; /* skip leading 'p' */
+ char *cmd = pid;
+
+ /* skip to NULL */
+ while (*cmd)
+ ++cmd;
+ ++cmd; /* skip to 'c' */
+ ++cmd; /* skip to first character of command */
+
+ snprintf (found + flen, sizeof(found) - flen, "%s (process ID %s)\n", cmd, pid);
+ flen = strlen (found);
+
+ if (flen >= sizeof(found)) {
+ break;
+ }
+ }
+
+ pclose (f);
+
+ if (flen) {
+ return strdup (found);
+ } else {
+ return NULL;
+ }
+}
+
+
+static jack_driver_t *
+alsa_driver_new (char *name, char *playback_alsa_device,
+ char *capture_alsa_device,
+ jack_client_t *client,
+ jack_nframes_t frames_per_cycle,
+ jack_nframes_t user_nperiods,
+ jack_nframes_t rate,
+ int hw_monitoring,
+ int hw_metering,
+ int capturing,
+ int playing,
+ DitherAlgorithm dither,
+ int soft_mode,
+ int monitor,
+ int user_capture_nchnls,
+ int user_playback_nchnls,
+ int shorts_first,
+ jack_nframes_t capture_latency,
+ jack_nframes_t playback_latency
)
{
int err;
- char* current_apps;
+ char* current_apps;
alsa_driver_t *driver;
jack_info ("creating alsa driver ... %s|%s|%" PRIu32 "|%" PRIu32
- "|%" PRIu32"|%" PRIu32"|%" PRIu32 "|%s|%s|%s|%s",
- playing ? playback_alsa_device : "-",
- capturing ? capture_alsa_device : "-",
- frames_per_cycle, user_nperiods, rate,
- user_capture_nchnls,user_playback_nchnls,
- hw_monitoring ? "hwmon": "nomon",
- hw_metering ? "hwmeter":"swmeter",
- soft_mode ? "soft-mode":"-",
- shorts_first ? "16bit":"32bit");
-
- driver = (alsa_driver_t *) calloc (1, sizeof (alsa_driver_t));
-
- jack_driver_nt_init ((jack_driver_nt_t *) driver);
-
- driver->nt_attach = (JackDriverNTAttachFunction) alsa_driver_attach;
- driver->nt_detach = (JackDriverNTDetachFunction) alsa_driver_detach;
- driver->read = (JackDriverReadFunction) alsa_driver_read;
- driver->write = (JackDriverReadFunction) alsa_driver_write;
+ "|%" PRIu32 "|%" PRIu32 "|%" PRIu32 "|%s|%s|%s|%s",
+ playing ? playback_alsa_device : "-",
+ capturing ? capture_alsa_device : "-",
+ frames_per_cycle, user_nperiods, rate,
+ user_capture_nchnls, user_playback_nchnls,
+ hw_monitoring ? "hwmon" : "nomon",
+ hw_metering ? "hwmeter" : "swmeter",
+ soft_mode ? "soft-mode" : "-",
+ shorts_first ? "16bit" : "32bit");
+
+ driver = (alsa_driver_t*)calloc (1, sizeof(alsa_driver_t));
+
+ jack_driver_nt_init ((jack_driver_nt_t*)driver);
+
+ driver->nt_attach = (JackDriverNTAttachFunction)alsa_driver_attach;
+ driver->nt_detach = (JackDriverNTDetachFunction)alsa_driver_detach;
+ driver->read = (JackDriverReadFunction)alsa_driver_read;
+ driver->write = (JackDriverReadFunction)alsa_driver_write;
driver->null_cycle =
- (JackDriverNullCycleFunction) alsa_driver_null_cycle;
- driver->nt_bufsize = (JackDriverNTBufSizeFunction) alsa_driver_bufsize;
- driver->nt_start = (JackDriverNTStartFunction) alsa_driver_start;
- driver->nt_stop = (JackDriverNTStopFunction) alsa_driver_stop;
- driver->nt_run_cycle = (JackDriverNTRunCycleFunction) alsa_driver_run_cycle;
+ (JackDriverNullCycleFunction)alsa_driver_null_cycle;
+ driver->nt_bufsize = (JackDriverNTBufSizeFunction)alsa_driver_bufsize;
+ driver->nt_start = (JackDriverNTStartFunction)alsa_driver_start;
+ driver->nt_stop = (JackDriverNTStopFunction)alsa_driver_stop;
+ driver->nt_run_cycle = (JackDriverNTRunCycleFunction)alsa_driver_run_cycle;
driver->playback_handle = NULL;
driver->capture_handle = NULL;
@@ -2189,8 +2188,8 @@ alsa_driver_detach (alsa_driver_t *driver)
driver->user_nchannels = 0;
driver->playback_nchannels = user_playback_nchnls;
driver->capture_nchannels = user_capture_nchnls;
- driver->playback_sample_bytes = (shorts_first ? 2:4);
- driver->capture_sample_bytes = (shorts_first ? 2:4);
+ driver->playback_sample_bytes = (shorts_first ? 2 : 4);
+ driver->capture_sample_bytes = (shorts_first ? 2 : 4);
driver->capture_frame_latency = capture_latency;
driver->playback_frame_latency = playback_latency;
@@ -2198,14 +2197,14 @@ alsa_driver_detach (alsa_driver_t *driver)
driver->capture_addr = 0;
driver->playback_interleave_skip = NULL;
driver->capture_interleave_skip = NULL;
- driver->previously_successfully_configured = FALSE;
+ driver->previously_successfully_configured = FALSE;
driver->silent = 0;
driver->all_monitor_in = FALSE;
driver->with_monitor_ports = monitor;
- driver->clock_mode = ClockMaster; /* XXX is it? */
- driver->input_monitor_mask = 0; /* XXX is it? */
+ driver->clock_mode = ClockMaster; /* XXX is it? */
+ driver->input_monitor_mask = 0; /* XXX is it? */
driver->capture_ports = 0;
driver->playback_ports = 0;
@@ -2246,23 +2245,23 @@ alsa_driver_detach (alsa_driver_t *driver)
SND_PCM_NONBLOCK) < 0) {
switch (errno) {
case EBUSY:
- current_apps = discover_alsa_using_apps ();
- if (current_apps) {
- jack_error ("\n\nATTENTION: The playback device \"%s\" is "
- "already in use. The following applications "
- " are using your soundcard(s) so you should "
- " check them and stop them as necessary before "
- " trying to start JACK again:\n\n%s",
- playback_alsa_device,
- current_apps);
- free (current_apps);
- } else {
- jack_error ("\n\nATTENTION: The playback device \"%s\" is "
- "already in use. Please stop the"
- " application using it and "
- "run JACK again",
- playback_alsa_device);
- }
+ current_apps = discover_alsa_using_apps ();
+ if (current_apps) {
+ jack_error ("\n\nATTENTION: The playback device \"%s\" is "
+ "already in use. The following applications "
+ " are using your soundcard(s) so you should "
+ " check them and stop them as necessary before "
+ " trying to start JACK again:\n\n%s",
+ playback_alsa_device,
+ current_apps);
+ free (current_apps);
+ } else {
+ jack_error ("\n\nATTENTION: The playback device \"%s\" is "
+ "already in use. Please stop the"
+ " application using it and "
+ "run JACK again",
+ playback_alsa_device);
+ }
alsa_driver_delete (driver);
return NULL;
break;
@@ -2291,23 +2290,23 @@ alsa_driver_detach (alsa_driver_t *driver)
SND_PCM_NONBLOCK) < 0) {
switch (errno) {
case EBUSY:
- current_apps = discover_alsa_using_apps ();
- if (current_apps) {
- jack_error ("\n\nATTENTION: The capture device \"%s\" is "
- "already in use. The following applications "
- " are using your soundcard(s) so you should "
- " check them and stop them as necessary before "
- " trying to start JACK again:\n\n%s",
- capture_alsa_device,
- current_apps);
- free (current_apps);
- } else {
- jack_error ("\n\nATTENTION: The capture (recording) device \"%s\" is "
- "already in use. Please stop the"
- " application using it and "
- "run JACK again",
- capture_alsa_device);
- }
+ current_apps = discover_alsa_using_apps ();
+ if (current_apps) {
+ jack_error ("\n\nATTENTION: The capture device \"%s\" is "
+ "already in use. The following applications "
+ " are using your soundcard(s) so you should "
+ " check them and stop them as necessary before "
+ " trying to start JACK again:\n\n%s",
+ capture_alsa_device,
+ current_apps);
+ free (current_apps);
+ } else {
+ jack_error ("\n\nATTENTION: The capture (recording) device \"%s\" is "
+ "already in use. Please stop the"
+ " application using it and "
+ "run JACK again",
+ capture_alsa_device);
+ }
alsa_driver_delete (driver);
return NULL;
break;
@@ -2423,11 +2422,11 @@ alsa_driver_detach (alsa_driver_t *driver)
}
}
- jack_set_latency_callback (client, alsa_driver_latency_callback, driver);
+ jack_set_latency_callback (client, alsa_driver_latency_callback, driver);
driver->client = client;
- return (jack_driver_t *) driver;
+ return (jack_driver_t*)driver;
}
int
@@ -2437,7 +2436,7 @@ alsa_driver_listen_for_clock_sync_status (alsa_driver_t *driver,
{
ClockSyncListener *csl;
- csl = (ClockSyncListener *) malloc (sizeof (ClockSyncListener));
+ csl = (ClockSyncListener*)malloc (sizeof(ClockSyncListener));
csl->function = func;
csl->arg = arg;
csl->id = driver->next_clock_sync_listener_id++;
@@ -2456,10 +2455,11 @@ alsa_driver_stop_listening_to_clock_sync_status (alsa_driver_t *driver,
{
JSList *node;
int ret = -1;
+
pthread_mutex_lock (&driver->clock_sync_lock);
for (node = driver->clock_sync_listeners; node;
node = jack_slist_next (node)) {
- if (((ClockSyncListener *) node->data)->id == which) {
+ if (((ClockSyncListener*)node->data)->id == which) {
driver->clock_sync_listeners =
jack_slist_remove_link (
driver->clock_sync_listeners, node);
@@ -2482,7 +2482,7 @@ alsa_driver_clock_sync_notify (alsa_driver_t *driver, channel_t chn,
pthread_mutex_lock (&driver->clock_sync_lock);
for (node = driver->clock_sync_listeners; node;
node = jack_slist_next (node)) {
- ClockSyncListener *csl = (ClockSyncListener *) node->data;
+ ClockSyncListener *csl = (ClockSyncListener*)node->data;
csl->function (chn, status, csl->arg);
}
pthread_mutex_unlock (&driver->clock_sync_lock);
@@ -2529,12 +2529,12 @@ driver_get_descriptor ()
jack_driver_param_desc_t * params;
unsigned int i;
- desc = calloc (1, sizeof (jack_driver_desc_t));
+ desc = calloc (1, sizeof(jack_driver_desc_t));
- strcpy (desc->name,"alsa");
+ strcpy (desc->name, "alsa");
desc->nparams = 18;
- params = calloc (desc->nparams, sizeof (jack_driver_param_desc_t));
+ params = calloc (desc->nparams, sizeof(jack_driver_param_desc_t));
i = 0;
strcpy (params[i].name, "capture");
@@ -2591,7 +2591,7 @@ driver_get_descriptor ()
params[i].character = 'H';
params[i].type = JackDriverParamBool;
params[i].value.i = 0;
- strcpy (params[i].short_desc,"Hardware monitoring, if available");
+ strcpy (params[i].short_desc, "Hardware monitoring, if available");
strcpy (params[i].long_desc, params[i].short_desc);
i++;
@@ -2614,7 +2614,7 @@ driver_get_descriptor ()
i++;
strcpy (params[i].name, "softmode");
params[i].character = 's';
- params[i].type = JackDriverParamBool;
+ params[i].type = JackDriverParamBool;
params[i].value.i = 0;
strcpy (params[i].short_desc, "Soft-mode, no xrun handling");
strcpy (params[i].long_desc, params[i].short_desc);
@@ -2699,7 +2699,7 @@ driver_get_descriptor ()
jack_driver_t *
driver_initialize (jack_client_t *client, const JSList * params)
{
- jack_nframes_t srate = 48000;
+ jack_nframes_t srate = 48000;
jack_nframes_t frames_per_interrupt = 1024;
unsigned long user_nperiods = 2;
char *playback_pcm_name = "hw:0";
@@ -2720,7 +2720,7 @@ driver_initialize (jack_client_t *client, const JSList * params)
const jack_driver_param_t * param;
for (node = params; node; node = jack_slist_next (node)) {
- param = (const jack_driver_param_t *) node->data;
+ param = (const jack_driver_param_t*)node->data;
switch (param->character) {
@@ -2761,9 +2761,9 @@ driver_initialize (jack_client_t *client, const JSList * params)
break;
case 'r':
- srate = param->value.ui;
+ srate = param->value.ui;
jack_info ("apparent rate = %d", srate);
- break;
+ break;
case 'p':
frames_per_interrupt = param->value.ui;
@@ -2771,8 +2771,9 @@ driver_initialize (jack_client_t *client, const JSList * params)
case 'n':
user_nperiods = param->value.ui;
- if (user_nperiods < 2) /* enforce minimum value */
+ if (user_nperiods < 2) { /* enforce minimum value */
user_nperiods = 2;
+ }
break;
case 's':
@@ -2781,7 +2782,7 @@ driver_initialize (jack_client_t *client, const JSList * params)
case 'z':
if (dither_opt (param->value.c, &dither)) {
- return NULL;
+ return NULL;
}
break;
@@ -2789,7 +2790,7 @@ driver_initialize (jack_client_t *client, const JSList * params)
user_capture_nchnls = param->value.ui;
break;
case 'o':
- user_playback_nchnls = param->value.ui;
+ user_playback_nchnls = param->value.ui;
break;
case 'S':
@@ -2805,7 +2806,7 @@ driver_initialize (jack_client_t *client, const JSList * params)
break;
case 'X':
- /* ignored, legacy option */
+ /* ignored, legacy option */
break;
}
@@ -2832,5 +2833,5 @@ driver_initialize (jack_client_t *client, const JSList * params)
void
driver_finish (jack_driver_t *driver)
{
- alsa_driver_delete ((alsa_driver_t *) driver);
+ alsa_driver_delete ((alsa_driver_t*)driver);
}