$FreeBSD$ --- gmix/gmix.c.orig Mon Jun 11 20:50:47 2001 +++ gmix/gmix.c Fri Jul 13 12:45:08 2001 @@ -499,11 +499,7 @@ /* * open the mixer-device */ - if (num==0) { - sprintf(device_name, "/dev/mixer"); - } else { - sprintf(device_name, "/dev/mixer%i", num); - } + sprintf(device_name, "/dev/mixer%i", num); new_device->fd=open(device_name, O_RDWR, 0); if (new_device->fd<0) { g_free(new_device); @@ -535,6 +531,8 @@ } } #endif + +#if defined(OPEN_SOUND_SYSTEM) /* * mixer-name */ @@ -545,6 +543,11 @@ } if(!isalpha(new_device->info.name[0])) g_snprintf(new_device->info.name, 31, "Card %d", num+1); +#else + g_snprintf(new_device->info.id, 15, "mixer%d", num); + g_snprintf(new_device->info.name, 31, "Sound Card %d", num+1); + new_device->info.modify_counter=0; +#endif /* * several bitmasks describing the mixer */ @@ -677,15 +680,16 @@ { int cnt; device_info *new_device; - cnt=0; devices=NULL; + cnt=0; num_mixers=0; devices=NULL; do { new_device=open_device(cnt++); if (new_device) { new_device->channels=make_channels(new_device); devices=g_list_append(devices, new_device); + num_mixers++; } - } while (new_device); - num_mixers=cnt-1; + } while ((errno == EACCES) || (errno == EINVAL) || (errno == ENXIO) \ + || new_device); } #ifdef ALSA