Merge branch 'vuplus-1.6k' of code.vuplus.com:/opt/repository/openembedded into vuplu...
[vuplus_openembedded] / recipes / setmixer / setmixer.patch
1
2 #
3 # Patch managed by http://www.holgerschurig.de/patcher.html
4 #
5
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
17  
18  $(PROG): setmixer.o
19 --- setmixer-27DEC94.orig/setmixer.c~setmixer
20 +++ setmixer-27DEC94.orig/setmixer.c
21 @@ -36,7 +36,7 @@
22  
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 @@
31         }
32      }
33      
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 @@
43      
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);
52         }
53         else {
54             rcval = lcval;
55 +           oldrcval = oldlcval;
56         }
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);