int FX_SetupCard ( int SoundCard, fx_device *device ) { int status; int DeviceStatus; if ( USER_CheckParameter( "ASSVER" ) ) { FX_SetErrorCode( FX_ASSVersion ); return( FX_Error ); } FX_SoundDevice = SoundCard; status = FX_Ok; FX_SetErrorCode( FX_Ok ); DeviceStatus = DSL_Init(); if ( DeviceStatus != DSL_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; } else { device->MaxVoices = 32; device->MaxSampleBits = 0; device->MaxChannels = 0; } return( status ); }
int FX_SetupCard ( int SoundCard, fx_device *device ) { int status; int DeviceStatus; if ( USER_CheckParameter( "ASSVER" ) ) { FX_SetErrorCode( FX_ASSVersion ); return( FX_Error ); } FX_SoundDevice = SoundCard; status = FX_Ok; FX_SetErrorCode( FX_Ok ); #ifdef PLAT_DOS switch( SoundCard ) { case SoundBlaster : case Awe32 : DeviceStatus = BLASTER_Init(); if ( DeviceStatus != BLASTER_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; break; } device->MaxVoices = 32; BLASTER_GetCardInfo( &device->MaxSampleBits, &device->MaxChannels ); break; case ProAudioSpectrum : case SoundMan16 : DeviceStatus = PAS_Init(); if ( DeviceStatus != PAS_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; break; } device->MaxVoices = 32; PAS_GetCardInfo( &device->MaxSampleBits, &device->MaxChannels ); break; case GenMidi : case SoundCanvas : case WaveBlaster : device->MaxVoices = 0; device->MaxSampleBits = 0; device->MaxChannels = 0; break; case SoundScape : device->MaxVoices = 32; DeviceStatus = SOUNDSCAPE_GetCardInfo( &device->MaxSampleBits, &device->MaxChannels ); if ( DeviceStatus != SOUNDSCAPE_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; } break; case UltraSound : if ( GUSWAVE_Init( 8 ) != GUSWAVE_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; break; } device->MaxVoices = 8; device->MaxSampleBits = 0; device->MaxChannels = 0; break; case SoundSource : case TandySoundSource : DeviceStatus = SS_Init( SoundCard ); if ( DeviceStatus != SS_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; break; } SS_Shutdown(); device->MaxVoices = 32; device->MaxSampleBits = 8; device->MaxChannels = 1; break; default : FX_SetErrorCode( FX_InvalidCard ); status = FX_Error; } #else DeviceStatus = DSL_Init(); if ( DeviceStatus != DSL_Ok ) { FX_SetErrorCode( FX_SoundCardError ); status = FX_Error; } else { device->MaxVoices = 32; device->MaxSampleBits = 0; device->MaxChannels = 0; } #endif return( status ); }