mirror of https://github.com/ericonr/sndio.git
use log_xxx() in opt.c, use simple list
This commit is contained in:
parent
2009e44d9d
commit
44eae7129c
30
sndiod/opt.c
30
sndiod/opt.c
|
@ -14,8 +14,6 @@
|
||||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "dev.h"
|
#include "dev.h"
|
||||||
|
@ -32,20 +30,27 @@ opt_new(char *name, struct dev *dev,
|
||||||
int pmin, int pmax, int rmin, int rmax,
|
int pmin, int pmax, int rmin, int rmax,
|
||||||
int maxweight, int mmc, int dup, unsigned int mode)
|
int maxweight, int mmc, int dup, unsigned int mode)
|
||||||
{
|
{
|
||||||
struct opt *o, **po;
|
struct opt *o;
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
|
if (opt_byname(name, dev->num)) {
|
||||||
|
log_puts(name);
|
||||||
|
log_puts(": already defined\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
for (len = 0; name[len] != '\0'; len++) {
|
for (len = 0; name[len] != '\0'; len++) {
|
||||||
if (len == OPT_NAMEMAX) {
|
if (len == OPT_NAMEMAX) {
|
||||||
fprintf(stderr, "%s: name too long\n", name);
|
log_puts(name);
|
||||||
exit(1);
|
log_puts(": too long\n");
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
c = name[len];
|
c = name[len];
|
||||||
if ((c < 'a' || c > 'z') &&
|
if ((c < 'a' || c > 'z') &&
|
||||||
(c < 'A' || c > 'Z')) {
|
(c < 'A' || c > 'Z')) {
|
||||||
fprintf(stderr, "%s: '%c' not allowed\n", name, c);
|
log_puts(name);
|
||||||
exit(1);
|
log_puts(": only alphabetic chars allowed\n");
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
o = xmalloc(sizeof(struct opt));
|
o = xmalloc(sizeof(struct opt));
|
||||||
|
@ -63,15 +68,8 @@ opt_new(char *name, struct dev *dev,
|
||||||
o->mode = mode;
|
o->mode = mode;
|
||||||
o->dev = dev;
|
o->dev = dev;
|
||||||
memcpy(o->name, name, len + 1);
|
memcpy(o->name, name, len + 1);
|
||||||
for (po = &opt_list; *po != NULL; po = &(*po)->next) {
|
o->next = opt_list;
|
||||||
if (o->dev->num == (*po)->dev->num &&
|
opt_list = o;
|
||||||
strcmp(o->name, (*po)->name) == 0) {
|
|
||||||
fprintf(stderr, "%s: already defined\n", o->name);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
o->next = NULL;
|
|
||||||
*po = o;
|
|
||||||
if (log_level >= 2) {
|
if (log_level >= 2) {
|
||||||
dev_log(o->dev);
|
dev_log(o->dev);
|
||||||
log_puts(".");
|
log_puts(".");
|
||||||
|
|
|
@ -326,7 +326,7 @@ mkopt(char *path, struct dev *d,
|
||||||
o = opt_new(path, d, pmin, pmax, rmin, rmax,
|
o = opt_new(path, d, pmin, pmax, rmin, rmax,
|
||||||
MIDI_TO_ADATA(vol), mmc, dup, mode);
|
MIDI_TO_ADATA(vol), mmc, dup, mode);
|
||||||
if (o == NULL)
|
if (o == NULL)
|
||||||
errx(1, "%s: couldn't create subdev", path);
|
return NULL;
|
||||||
dev_adjpar(d, o->mode, o->pmin, o->pmax, o->rmin, o->rmax);
|
dev_adjpar(d, o->mode, o->pmin, o->pmax, o->rmin, o->rmax);
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
@ -426,8 +426,9 @@ main(int argc, char **argv)
|
||||||
d = mkdev(DEFAULT_DEV, &par, 0, bufsz, round,
|
d = mkdev(DEFAULT_DEV, &par, 0, bufsz, round,
|
||||||
rate, hold, autovol);
|
rate, hold, autovol);
|
||||||
}
|
}
|
||||||
mkopt(optarg, d, pmin, pmax, rmin, rmax,
|
if (mkopt(optarg, d, pmin, pmax, rmin, rmax,
|
||||||
mode, vol, mmc, dup);
|
mode, vol, mmc, dup) == NULL)
|
||||||
|
return 1;
|
||||||
break;
|
break;
|
||||||
case 'q':
|
case 'q':
|
||||||
mkport(optarg, hold);
|
mkport(optarg, hold);
|
||||||
|
@ -478,8 +479,9 @@ main(int argc, char **argv)
|
||||||
for (d = dev_list; d != NULL; d = d->next) {
|
for (d = dev_list; d != NULL; d = d->next) {
|
||||||
if (opt_byname("default", d->num))
|
if (opt_byname("default", d->num))
|
||||||
continue;
|
continue;
|
||||||
mkopt("default", d, pmin, pmax, rmin, rmax,
|
if (mkopt("default", d, pmin, pmax, rmin, rmax,
|
||||||
mode, vol, mmc, dup);
|
mode, vol, mmc, dup) == NULL)
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
getbasepath(base, sizeof(base));
|
getbasepath(base, sizeof(base));
|
||||||
snprintf(path, SOCKPATH_MAX, "%s/" SOCKPATH_FILE "%u", base, unit);
|
snprintf(path, SOCKPATH_MAX, "%s/" SOCKPATH_FILE "%u", base, unit);
|
||||||
|
|
Loading…
Reference in New Issue