From 766a16ca2e866877c90141ae56735d1094b7dc7b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 24 Feb 2004 19:05:44 +0000 Subject: [PATCH] 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 | 6 +++--- envy24control/envy24control.c | 20 ++++++++++---------- envy24control/envy24control.h | 5 +++++ envy24control/mixer.c | 2 +- envy24control/patchbay.c | 4 ++-- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/envy24control/envy24control.1 b/envy24control/envy24control.1 index 558bf98..06c3ada 100644 --- a/envy24control/envy24control.1 +++ b/envy24control/envy24control.1 @@ -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 diff --git a/envy24control/envy24control.c b/envy24control/envy24control.c index 47123b0..777de53 100644 --- a/envy24control/envy24control.c +++ b/envy24control/envy24control.c @@ -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; diff --git a/envy24control/envy24control.h b/envy24control/envy24control.h index 678b139..e7638da 100644 --- a/envy24control/envy24control.h +++ b/envy24control/envy24control.h @@ -25,6 +25,11 @@ /* 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 */ diff --git a/envy24control/mixer.c b/envy24control/mixer.c index 5c56884..5762743 100644 --- a/envy24control/mixer.c +++ b/envy24control/mixer.c @@ -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); diff --git a/envy24control/patchbay.c b/envy24control/patchbay.c index 3b592b6..ae70730 100644 --- a/envy24control/patchbay.c +++ b/envy24control/patchbay.c @@ -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); -- 2.47.1