]> git.alsa-project.org Git - alsa-tools.git/commitdiff
<Dirk.Kalis@t-online.de>
authorJaroslav Kysela <perex@perex.cz>
Tue, 24 Feb 2004 19:05:44 +0000 (19:05 +0000)
committerJaroslav Kysela <perex@perex.cz>
Tue, 24 Feb 2004 19:05:44 +0000 (19:05 +0000)
I have attached patch for envy24control because after update from James
Tappin i have had problems with the mixer and patchbay.
SPDIF inputs and outputs was duplicated.

envy24control/envy24control.1
envy24control/envy24control.c
envy24control/envy24control.h
envy24control/mixer.c
envy24control/patchbay.c

index 558bf9852492a3ccf9d0ef01173bcead6e6f1327..06c3adac1919ea6df3b95f61c626127f911e570f 100644 (file)
@@ -32,13 +32,13 @@ Envy24-based card or if your Envy24 card is not configured as the first
 card in your ALSA driver setup.
 .TP
 \fI-o\fP outputs
-Limit number of outputs to display.  Default is 8.
+Limit number of analog line outputs to display.  Default is 8.
 .TP
 \fI-i\fP inputs
-Limit number of inputs to display.  Default is 10.
+Limit number of analog line inputs to display.  Default is 8.
 .TP
 \fI-s\fP outputs
-Limit number of SPDIF outputs to display.  Default is 2.
+Limit number of SPDIF inputs/outputs to display.  Default is 2.
 
 .SH SEE ALSO
 \fB
index 47123b0374f0bb415e6c3f7054e50ffcaa2fd73b..777de53e98d3bb619db1dec25d140302e2aebefb 100644 (file)
@@ -1680,14 +1680,14 @@ int main(int argc, char **argv)
         gtk_init(&argc, &argv);
 
        name = "hw:0";
-       input_channels = 8;
-       output_channels = 10;
-       spdif_channels = 2;
+       input_channels = MAX_INPUT_CHANNELS;
+       output_channels = MAX_OUTPUT_CHANNELS;
+       spdif_channels = MAX_SPDIF_CHANNELS;
        while ((c = getopt_long(argc, argv, "D:c:i:o:s:", long_options, NULL)) != -1) {
                switch (c) {
                case 'c':
                        i = atoi(optarg);
-                       if (i < 0 || i >= 8) {
+                       if (i < 0 || i >= MAX_CARD_NUMBERS) {
                                fprintf(stderr, "envy24control: invalid card number %d\n", i);
                                exit(1);
                        }
@@ -1699,24 +1699,24 @@ int main(int argc, char **argv)
                        break;
                case 'i':
                        input_channels = atoi(optarg);
-                       if (input_channels < 0 || input_channels > 8) {
-                               fprintf(stderr, "envy24control: must have 0-8 inputs\n");
+                       if (input_channels < 0 || input_channels > MAX_INPUT_CHANNELS) {
+                               fprintf(stderr, "envy24control: must have 0-%i inputs\n", MAX_INPUT_CHANNELS);
                                exit(1);
                        }
                        input_channels_set = 1;
                        break;
                case 'o':
                        output_channels = atoi(optarg);
-                       if (output_channels < 0 || output_channels > 10) {
-                               fprintf(stderr, "envy24control: must have 0-10 outputs\n");
+                       if (output_channels < 0 || output_channels > MAX_OUTPUT_CHANNELS) {
+                               fprintf(stderr, "envy24control: must have 0-%i outputs\n", MAX_OUTPUT_CHANNELS);
                                exit(1);
                        output_channels_set = 1;
                        }
                        break;
                case 's':
                        spdif_channels = atoi(optarg);
-                       if (spdif_channels < 0 || spdif_channels > 2) {
-                               fprintf(stderr, "envy24control: must have 0-2 spdifs\n");
+                       if (spdif_channels < 0 || spdif_channels > MAX_SPDIF_CHANNELS) {
+                               fprintf(stderr, "envy24control: must have 0-%i spdifs\n", MAX_SPDIF_CHANNELS);
                                exit(1);
                        }
                        break;
index 678b13964d64de260cbed10e6427113f666925c8..e7638dac7ff95f312a21624e9de3ed605bf628f6 100644 (file)
 /* Hoontech */
 #define ICE1712_SUBDEVICE_STDSP24       0x12141217      /* Hoontech SoundTrack Audio DSP 24 */
 
+#define MAX_CARD_NUMBERS       8
+#define MAX_INPUT_CHANNELS     8
+#define MAX_OUTPUT_CHANNELS    8
+#define MAX_SPDIF_CHANNELS     2
+
 typedef struct {
        unsigned int subvendor; /* PCI[2c-2f] */
        unsigned char size;     /* size of EEPROM image in bytes */
index 5c568846da1ae1f88b487af56f49f7354a40cfc9..5762743ab884e8d8cd9cfc1647085842a51944f0 100644 (file)
@@ -157,7 +157,7 @@ void mixer_postinit(void)
 
        for (stream = 1; stream <= output_channels; stream++)
                mixer_update_stream(stream, 1, 1);
-       for (stream = 11; stream <= input_channels + 8; stream++)
+       for (stream = 11; stream <= input_channels + 10; stream++)
                mixer_update_stream(stream, 1, 1);
        for (stream = 19; stream <= spdif_channels + 18; stream++)
                mixer_update_stream(stream, 1, 1);
index 3b592b6ca26f6d4fcd9805a60973f283fe8ef8e1..ae707308802dc078869e2d653435bd4c5529090c 100644 (file)
@@ -25,7 +25,7 @@
 #define toggle_set(widget, state) \
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), state);
 
-static int stream_active[10];
+static int stream_active[MAX_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS];
 extern int output_channels, input_channels, spdif_channels;
 
 static int is_active(GtkWidget *widget)
@@ -136,7 +136,7 @@ void patchbay_init(void)
        snd_ctl_elem_value_alloca(&val);
        snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
        snd_ctl_elem_value_set_name(val, ANALOG_PLAYBACK_ROUTE_NAME);
-       memset (stream_active, 0, 10 * sizeof(int));
+       memset (stream_active, 0, (MAX_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS) * sizeof(int));
        for (i = 0; i < output_channels; i++) {
                snd_ctl_elem_value_set_numid(val, 0);
                snd_ctl_elem_value_set_index(val, i);