--- common.c +++ common.c @@ -147,7 +147,7 @@ if (mixer_fd == -1) ErrorExitWarn(InitializeMixer(device_filename), 'e'); for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if ((1 << i) & devmask) + if (((1 << i) & devmask)||((1 << i) & recmask)) ErrorExitWarn(SetShowNoninter(i), 'e'); } break; @@ -343,7 +343,7 @@ return EFILE; ErrorExitWarn(ReadRecSrc(), 'e'); for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if ((1 << i) & devmask) { + if (((1 << i) & devmask)||((1 << i) & recmask)) { ErrorExitWarn(ReadLevel(i, &tmp), 'e'); fprintf(setfile, "%s:%i:%i:%c\n", dev_name[i], (tmp & 0xFF), ((tmp >> 8) & 0xFF), ((1 << i) & recsrc ? 'R' : 'P')); } --- curses.c +++ curses.c @@ -99,7 +99,7 @@ } y = 0; /* Now recycle it for a different use. */ for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if ((1 << i) & devmask) { + if (((1 << i) & devmask)||((1 << i) & recmask)) { attrset(COLOR_PAIR(AXIS_COLOR)); /* draw control labels */ mvaddstr(YOFFSET + y++, XOFFSET + menu_width + R_P_WIDTH + level_width + ARROW_WIDTH, LOCAL_TEXT(dev_label[i])); @@ -380,7 +380,7 @@ current_dev = SOUND_MIXER_NRDEVICES - 1; } } - while (!((1 << current_dev) & devmask)); + while (!((1 << current_dev) & devmask)&&!((1 << current_dev) & recmask)); HighlightLabelCurses(); EraseLevel(current_dev); DrawLevel(current_dev); --- gtk.c +++ gtk.c @@ -135,7 +135,7 @@ } for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { visible[i] = TRUE; - if ((1 << i) & devmask) { + if (((1 << i) & devmask)||((1 << i) & recmask)) { viewmenuitems[i] = gtk_check_menu_item_new_with_label(LOCAL_TEXT(dev_label[i])); gtk_menu_append(GTK_MENU(viewmenu), viewmenuitems[i]); gtk_widget_show(viewmenuitems[i]); @@ -168,7 +168,7 @@ gtk_container_add(GTK_CONTAINER(mainbox), maintable); style = gtk_widget_get_style(window); for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if ((1 << i) & devmask) { + if (((1 << i) & devmask)||((1 << i) & recmask)) { /* Try to read mixer. */ if (SOUND_IOCTL(mixer_fd, MIXER_READ(i), &tmp) == -1) gtk_exit(EREADMIX); @@ -227,7 +227,7 @@ gtk_table_attach_defaults(GTK_TABLE(maintable), label, 6, 7, 0, 1); y = 0; for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if ((1 << i) & devmask) { + if (((1 << i) & devmask)||((1 << i) & recmask)) { if ((1 << i) & recmask) gtk_table_attach_defaults(GTK_TABLE(maintable), GTK_WIDGET(rpbuttons[i]), 0, 1, y + 1, y + 2); channellabel[i] = gtk_label_new(LOCAL_TEXT(dev_label[i])); @@ -271,7 +271,7 @@ /* things to do on SIGALRM */ int max, balset, i, tmp, left, right; for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if ((1 << i) & devmask) { + if (((1 << i) & devmask)||((1 << i) & recmask)) { /* Try to read mixer. */ if (SOUND_IOCTL(mixer_fd, MIXER_READ(i), &tmp) == -1) gtk_exit(EREADMIX); --- interactive.c +++ interactive.c @@ -51,7 +51,7 @@ { int dev; for (dev = 0; dev < SOUND_MIXER_NRDEVICES; dev++) { - if ((1 << dev) & devmask) { + if (((1 << dev) & devmask)||((1 << dev) & recmask)) { EraseLevel(dev); RedrawBalance(dev); DrawLevel(dev); @@ -68,7 +68,7 @@ { int dev, i = 0; for (dev = 0; dev < SOUND_MIXER_NRDEVICES; dev++) { - if ((1 << dev) & devmask) { + if (((1 << dev) & devmask)||((1 << dev) & recmask)) { /* record/play indicators */ if ((1 << dev) & recmask) { ErrorExitWarn(ReadRecSrc(), 'e');