python-pyrex: Rework DEPENDS updates
[openembedded.git] / recipes / setmixer / setmixer.patch
blob535ba3b0824fdb3e9f374fd5f0d14be6bcb21ee9
3 # Patch managed by http://www.holgerschurig.de/patcher.html
6 --- setmixer-27DEC94.orig/Makefile~setmixer
7 +++ setmixer-27DEC94.orig/Makefile
8 @@ -1,8 +1,8 @@
9 DESTDIR =
10 INSTALL = install
11 CC=gcc
12 -CFLAGS= -O6 -fomit-frame-pointer -Wall -pipe -m486
13 -LDFLAGS= -Xlinker -N -s
14 +CFLAGS= -O2 -fomit-frame-pointer -Wall -pipe
15 +#LDFLAGS= -Xlinker -N -s
16 PROG=setmixer
18 $(PROG): setmixer.o
19 --- setmixer-27DEC94.orig/setmixer.c~setmixer
20 +++ setmixer-27DEC94.orig/setmixer.c
21 @@ -36,7 +36,7 @@
23 int devmask, stereod, i, d;
24 int mixer_fd;
25 - int lcval,rcval;
26 + int lcval,rcval,oldlcval,oldrcval,val;
27 int verbose = 0;
28 size_t len;
29 char *endptr;
30 @@ -52,9 +52,9 @@
34 - if (!verbose && ((argc <= 0) || (argc & 1))) {
35 + if ((!verbose && ((argc <= 0) || (argc & 1))) || (verbose && argc % 2)) {
36 fprintf(stderr, "usage: %s [-V] cntrl val [cntrl val ....]\n"
37 - "where val is in 0-100 range and 'cntrl' is one of the following:\n\t",
38 + "where val is in [+-]0-100 range and 'cntrl' is one of the following:\n\t",
39 prog);
40 for (i = 0; i < SOUND_MIXER_NRDEVICES; i++)
41 fprintf(stderr, "%s ", dname[i]);
42 @@ -84,16 +84,36 @@
44 while (argc) {
45 cntrl = *argv++;
46 + oldlcval = (('+' == **argv) || ('-' == **argv));
47 lcval = strtol(*argv++, &endptr, 0);
48 if (',' == *endptr) {
49 endptr += 1;
50 + oldrcval = (('+' == *endptr) || ('-' == *endptr));
51 rcval = strtol((const char *)endptr, 0, 0);
53 else {
54 rcval = lcval;
55 + oldrcval = oldlcval;
57 argc -= 2;
58 len = strlen(cntrl);
59 + if (oldlcval || oldrcval) {
60 + for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) {
61 + if (0 == strncmp(dname[i], cntrl, len)) {
62 + d = (1 << i);
63 + if (0 != (devmask & d)) {
64 + if (-1 == ioctl(mixer_fd, MIXER_READ(i), &val)) {
65 + perror("MIXER_READ");
66 + }
67 + else {
68 + lcval += oldlcval ? (val & 0x7f) : 0;
69 + rcval += oldrcval ? ((val >> 8) & 0x7f) : 0;
70 + }
71 + }
72 + break;
73 + }
74 + }
75 + }
76 for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) {
77 if (0 == strncmp(dname[i], cntrl, len)) {
78 d = (1 << i);