Support rsnd/default for opening the default device

This commit is contained in:
Tobias Kortkamp 2018-02-01 08:53:20 +01:00 committed by Alexandre Ratchov
parent 6b35921d2b
commit 31cfb9b6dc
5 changed files with 23 additions and 13 deletions

View File

@ -63,11 +63,11 @@ sio_open(const char *str, unsigned int mode, int nbio)
if (hdl != NULL) if (hdl != NULL)
return hdl; return hdl;
#if defined(USE_SUN) #if defined(USE_SUN)
return _sio_sun_open("rsnd/0", mode, nbio); return _sio_sun_open("rsnd/default", mode, nbio);
#elif defined(USE_OSS) #elif defined(USE_OSS)
return _sio_oss_open("rsnd/0", mode, nbio); return _sio_oss_open("rsnd/default", mode, nbio);
#elif defined(USE_ALSA) #elif defined(USE_ALSA)
return _sio_alsa_open("rsnd/0", mode, nbio); return _sio_alsa_open("rsnd/default", mode, nbio);
#else #else
return NULL; return NULL;
#endif #endif

View File

@ -304,6 +304,8 @@ _sio_alsa_open(const char *str, unsigned mode, int nbio)
if (err < 0) if (err < 0)
DALSA("couldn't attach to stderr", err); DALSA("couldn't attach to stderr", err);
#endif #endif
if (strcmp(p, "default") == 0)
p = "0";
len = strlen(p); len = strlen(p);
hdl->devname = malloc(len + sizeof(DEVNAME_PREFIX)); hdl->devname = malloc(len + sizeof(DEVNAME_PREFIX));
if (hdl->devname == NULL) if (hdl->devname == NULL)

View File

@ -249,12 +249,16 @@ sio_oss_getfd(const char *str, unsigned int mode, int nbio)
DPRINTF("sio_oss_getfd: %s: '/' expected\n", str); DPRINTF("sio_oss_getfd: %s: '/' expected\n", str);
return -1; return -1;
} }
p = _sndio_parsenum(p, &devnum, 255); if (strcmp(p, "default") == 0) {
if (p == NULL || *p != '\0') { strlcpy(path, DEVPATH_PREFIX, sizeof(path));
DPRINTF("sio_oss_getfd: %s: number expected after '/'\n", str); } else {
return -1; p = _sndio_parsenum(p, &devnum, 255);
if (p == NULL || *p != '\0') {
DPRINTF("sio_sun_getfd: %s: number expected after '/'\n", str);
return -1;
}
snprintf(path, sizeof(path), DEVPATH_PREFIX "%u", devnum);
} }
snprintf(path, sizeof(path), DEVPATH_PREFIX "%u", devnum);
if (mode == (SIO_PLAY | SIO_REC)) if (mode == (SIO_PLAY | SIO_REC))
flags = O_RDWR; flags = O_RDWR;
else else

View File

@ -291,10 +291,14 @@ sio_sun_getfd(const char *str, unsigned int mode, int nbio)
DPRINTF("sio_sun_getfd: %s: '/' expected\n", str); DPRINTF("sio_sun_getfd: %s: '/' expected\n", str);
return -1; return -1;
} }
p = _sndio_parsenum(p, &devnum, 255); if (strcmp(p, "default") == 0) {
if (p == NULL || *p != '\0') { devnum = 0;
DPRINTF("sio_sun_getfd: %s: number expected after '/'\n", str); } else {
return -1; p = _sndio_parsenum(p, &devnum, 255);
if (p == NULL || *p != '\0') {
DPRINTF("sio_sun_getfd: %s: number expected after '/'\n", str);
return -1;
}
} }
snprintf(path, sizeof(path), DEVPATH_PREFIX "%u", devnum); snprintf(path, sizeof(path), DEVPATH_PREFIX "%u", devnum);
if (mode == (SIO_PLAY | SIO_REC)) if (mode == (SIO_PLAY | SIO_REC))

View File

@ -82,7 +82,7 @@
* default device in server mode * default device in server mode
*/ */
#ifndef DEFAULT_DEV #ifndef DEFAULT_DEV
#define DEFAULT_DEV "rsnd/0" #define DEFAULT_DEV "rsnd/default"
#endif #endif
void sigint(int); void sigint(int);