int MUSIC_InitGUS ( midifuncs *Funcs ) { int status; status = MUSIC_Ok; if ( GUSMIDI_Init() != GUS_Ok ) { MUSIC_SetErrorCode( MUSIC_SoundCardError ); return( MUSIC_Error ); } Funcs->NoteOff = GUSMIDI_NoteOff; Funcs->NoteOn = GUSMIDI_NoteOn; Funcs->PolyAftertouch = NULL; Funcs->ControlChange = GUSMIDI_ControlChange; Funcs->ProgramChange = GUSMIDI_ProgramChange; Funcs->ChannelAftertouch = NULL; Funcs->PitchBend = GUSMIDI_PitchBend; Funcs->ReleasePatches = NULL;//GUSMIDI_ReleasePatches; Funcs->LoadPatch = NULL;//GUSMIDI_LoadPatch; Funcs->SetVolume = GUSMIDI_SetVolume; Funcs->GetVolume = GUSMIDI_GetVolume; MIDI_SetMidiFuncs( Funcs ); return( status ); }
int32_t MUSIC_InitMidi ( int32_t card, midifuncs *Funcs, int32_t Address ) { UNREFERENCED_PARAMETER(card); UNREFERENCED_PARAMETER(Address); Funcs->NoteOff = MPU_NoteOff; Funcs->NoteOn = MPU_NoteOn; Funcs->PolyAftertouch = MPU_PolyAftertouch; Funcs->ControlChange = MPU_ControlChange; Funcs->ProgramChange = MPU_ProgramChange; Funcs->ChannelAftertouch = MPU_ChannelAftertouch; Funcs->PitchBend = MPU_PitchBend; Funcs->ReleasePatches = NULL; Funcs->LoadPatch = NULL; Funcs->SetVolume = NULL /*MPU_SetVolume*/; Funcs->GetVolume = NULL /*MPU_GetVolume*/; MIDI_SetMidiFuncs(Funcs); return(MIDI_Ok); }
int MUSIC_Init ( int SoundCard, int Address ) { int i; int status; for( i = 0; i < 128; i++ ) { MIDI_PatchMap[ i ] = i; } if (SoundCard == ASS_AutoDetect) { #if 0 //defined __APPLE__ SoundCard = ASS_CoreAudio; #elif defined _WIN32 SoundCard = ASS_WinMM; #elif defined HAVE_ALSA SoundCard = ASS_ALSA; #elif defined HAVE_FLUIDSYNTH SoundCard = ASS_FluidSynth; #else SoundCard = ASS_NoSound; #endif } if (SoundCard < 0 || SoundCard >= ASS_NumSoundCards) { MUSIC_ErrorCode = MUSIC_InvalidCard; return MUSIC_Error; } if (!SoundDriver_IsMIDISupported(SoundCard)) { MUSIC_ErrorCode = MUSIC_InvalidCard; return MUSIC_Error; } ASS_MIDISoundDriver = SoundCard; status = SoundDriver_MIDI_Init(&MUSIC_MidiFunctions); if (status != MUSIC_Ok) { MUSIC_ErrorCode = MUSIC_DriverError; return MUSIC_Error; } MIDI_SetMidiFuncs( &MUSIC_MidiFunctions ); return MUSIC_Ok; }
int MUSIC_InitAWE32 ( midifuncs *Funcs ) { int status; status = AWE32_Init(); if ( status != AWE32_Ok ) { MUSIC_SetErrorCode( MUSIC_SoundCardError ); return( MUSIC_Error ); } Funcs->NoteOff = AWE32_NoteOff; Funcs->NoteOn = AWE32_NoteOn; Funcs->PolyAftertouch = AWE32_PolyAftertouch; Funcs->ControlChange = AWE32_ControlChange; Funcs->ProgramChange = AWE32_ProgramChange; Funcs->ChannelAftertouch = AWE32_ChannelAftertouch; Funcs->PitchBend = AWE32_PitchBend; Funcs->ReleasePatches = NULL; Funcs->LoadPatch = NULL; Funcs->SetVolume = NULL; Funcs->GetVolume = NULL; if ( BLASTER_CardHasMixer() ) { BLASTER_SaveMidiVolume(); Funcs->SetVolume = BLASTER_SetMidiVolume; Funcs->GetVolume = BLASTER_GetMidiVolume; } status = MUSIC_Ok; MIDI_SetMidiFuncs( Funcs ); return( status ); }
int MUSIC_InitMidi ( int card, midifuncs *Funcs, int Address ) { int status; status = MUSIC_Ok; if ( ( card == WaveBlaster ) || ( card == SoundCanvas ) || ( card == GenMidi ) ) { // Setup WaveBlaster Daughterboard clone // (ie. SoundCanvas DB, TurtleBeach Rio) BLASTER_SetupWaveBlaster(); } if ( card == SoundScape ) { Address = SOUNDSCAPE_GetMIDIPort(); if ( Address < SOUNDSCAPE_Ok ) { MUSIC_SetErrorCode( MUSIC_SoundCardError ); return( MUSIC_Error ); } } if ( MPU_Init( Address ) != MPU_Ok ) { MUSIC_SetErrorCode( MUSIC_MPU401Error ); return( MUSIC_Error ); } Funcs->NoteOff = MPU_NoteOff; Funcs->NoteOn = MPU_NoteOn; Funcs->PolyAftertouch = MPU_PolyAftertouch; Funcs->ControlChange = MPU_ControlChange; Funcs->ProgramChange = MPU_ProgramChange; Funcs->ChannelAftertouch = MPU_ChannelAftertouch; Funcs->PitchBend = MPU_PitchBend; Funcs->ReleasePatches = NULL; Funcs->LoadPatch = NULL; Funcs->SetVolume = NULL; Funcs->GetVolume = NULL; if ( card == WaveBlaster ) { if ( BLASTER_CardHasMixer() ) { BLASTER_SaveMidiVolume(); Funcs->SetVolume = BLASTER_SetMidiVolume; Funcs->GetVolume = BLASTER_GetMidiVolume; } } MIDI_SetMidiFuncs( Funcs ); return( status ); }
int MUSIC_InitFM ( int card, midifuncs *Funcs ) { int status; int passtatus; status = MIDI_Ok; if ( !AL_DetectFM() ) { MUSIC_SetErrorCode( MUSIC_FMNotDetected ); return( MUSIC_Error ); } // Init the fm routines AL_Init( card ); Funcs->NoteOff = AL_NoteOff; Funcs->NoteOn = AL_NoteOn; Funcs->PolyAftertouch = NULL; Funcs->ControlChange = AL_ControlChange; Funcs->ProgramChange = AL_ProgramChange; Funcs->ChannelAftertouch = NULL; Funcs->PitchBend = AL_SetPitchBend; Funcs->ReleasePatches = NULL; Funcs->LoadPatch = NULL; Funcs->SetVolume = NULL; Funcs->GetVolume = NULL; switch( card ) { case SoundBlaster : if ( BLASTER_CardHasMixer() ) { BLASTER_SaveMidiVolume(); Funcs->SetVolume = BLASTER_SetMidiVolume; Funcs->GetVolume = BLASTER_GetMidiVolume; } else { Funcs->SetVolume = NULL; Funcs->GetVolume = NULL; } break; case Adlib : Funcs->SetVolume = NULL; Funcs->GetVolume = NULL; break; case ProAudioSpectrum : case SoundMan16 : Funcs->SetVolume = NULL; Funcs->GetVolume = NULL; passtatus = PAS_SaveMusicVolume(); if ( passtatus == PAS_Ok ) { Funcs->SetVolume = PAS_SetFMVolume; Funcs->GetVolume = PAS_GetFMVolume; } break; } MIDI_SetMidiFuncs( Funcs ); return( status ); }