From 61897b7f65e1e378b7b8a6ba8e1aacaa5ab6cc25 Mon Sep 17 00:00:00 2001 From: Claudio Matsuoka Date: Thu, 29 Mar 2012 17:42:59 -0300 Subject: [PATCH] [xmp] Fixes for Solaris Signed-off-by: Claudio Matsuoka --- configure.ac | 6 ++++++ src/sound.c | 4 ++++ src/sound_solaris.c | 6 +++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index b24c51c..a11d121 100644 --- a/configure.ac +++ b/configure.ac @@ -76,6 +76,12 @@ openbsd*) DRIVERS="${DRIVERS} sound_openbsd.o" fi ;; +solaris*) + if test "${ac_cv_header_sys_audioio_h}" = "yes"; then + AC_DEFINE(SOUND_SOLARISD) + DRIVERS="${DRIVERS} sound_solaris.o" + fi + ;; cygwin*|mingw*) AC_DEFINE(SOUND_WIN32) DRIVERS="${DRIVERS} sound_win32.o" diff --git a/src/sound.c b/src/sound.c index 9c30b55..d11d7c7 100644 --- a/src/sound.c +++ b/src/sound.c @@ -9,6 +9,7 @@ extern struct sound_driver sound_win32; extern struct sound_driver sound_coreaudio; extern struct sound_driver sound_sndio; extern struct sound_driver sound_openbsd; +extern struct sound_driver sound_solaris; extern struct sound_driver sound_bsd; extern struct sound_driver sound_beos; @@ -33,6 +34,9 @@ void init_sound_drivers() #ifdef SOUND_BSD register_sound_driver(&sound_bsd); #endif +#ifdef SOUND_SOLARIS + register_sound_driver(&sound_solaris); +#endif #ifdef SOUND_COREAUDIO register_sound_driver(&sound_coreaudio); #endif diff --git a/src/sound_solaris.c b/src/sound_solaris.c index 7b44345..7257037 100644 --- a/src/sound_solaris.c +++ b/src/sound_solaris.c @@ -51,11 +51,11 @@ static int audioctl_fd; static int init(struct options *options) { + char **parm = options->driver_parm; audio_info_t ainfo, ainfo2; int gain; int bsize = 32 * 1024; int port; - char *token, **parm; AUDIO_INITINFO(&ainfo); if ((audio_fd = open("/dev/audio", O_WRONLY)) == -1) @@ -94,7 +94,7 @@ static int init(struct options *options) gain = ainfo.play.gain; port = ainfo.play.port; - parm_init(); + parm_init(parm); chkparm1("gain", gain = strtoul(token, NULL, 0)); chkparm1("buffer", bsize = strtoul(token, NULL, 0)); chkparm1("port", port = (int)*token) @@ -182,7 +182,7 @@ static char *help[] = { NULL }; -struct xmp_drv_info drv_solaris = { +struct sound_driver sound_solaris = { "solaris", "Solaris PCM audio", help,