Skip to content

Commit

Permalink
Sam Lantinga - Tue Nov 7 10:22:09 PST 2000
Browse files Browse the repository at this point in the history
 * Fixed hang in mikmod re-initialization
Stephane Peter - Oct 17 13:07:32 PST 2000
 * Fixed music fading
  • Loading branch information
Sam Lantinga committed Nov 17, 2000
1 parent 96a3a86 commit ab2e2f0
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 1 deletion.
4 changes: 4 additions & 0 deletions CHANGES
@@ -1,5 +1,9 @@

1.0.7:
Sam Lantinga - Tue Nov 7 10:22:09 PST 2000
* Fixed hang in mikmod re-initialization
Stephane Peter - Oct 17 13:07:32 PST 2000
* Fixed music fading
Ray Kelm - Fri, 04 Aug 2000 20:58:00 -0400
* Added support for cross-compiling Windows DLL from Linux

Expand Down
7 changes: 7 additions & 0 deletions mikmod/mdreg.c
Expand Up @@ -47,4 +47,11 @@ void MikMod_RegisterAllDrivers(void)
MUTEX_UNLOCK(lists);
}

void MikMod_UnregisterAllDrivers(void)
{
MUTEX_LOCK(lists);
_mm_unregisterdrivers();
MUTEX_UNLOCK(lists);
}

/* ex:set ts=4: */
12 changes: 12 additions & 0 deletions mikmod/mdriver.c
Expand Up @@ -199,6 +199,18 @@ void _mm_registerdriver(struct MDRIVER* drv)
firstdriver = drv;
}

void _mm_unregisterdrivers(void)
{
MDRIVER *cruise=firstdriver, *drv;

while ( cruise ) {
drv = cruise;
cruise = cruise->next;
drv->next = NULL;
}
firstdriver = NULL;
}

void MikMod_RegisterDriver(struct MDRIVER* drv)
{
/* if we try to register an invalid driver, or an already registered driver,
Expand Down
2 changes: 2 additions & 0 deletions mikmod/mikmod.h
Expand Up @@ -217,6 +217,7 @@ MIKMODAPI extern MikMod_handler_t MikMod_RegisterErrorHandler(MikMod_handler_t);
struct MDRIVER;

MIKMODAPI extern void MikMod_RegisterAllDrivers(void);
MIKMODAPI extern void MikMod_UnregisterAllDrivers(void);

MIKMODAPI extern CHAR* MikMod_InfoDriver(void);
MIKMODAPI extern void MikMod_RegisterDriver(struct MDRIVER*);
Expand Down Expand Up @@ -495,6 +496,7 @@ struct MLOADER;

MIKMODAPI extern CHAR* MikMod_InfoLoader(void);
MIKMODAPI extern void MikMod_RegisterAllLoaders(void);
MIKMODAPI extern void MikMod_UnregisterAllLoaders(void);
MIKMODAPI extern void MikMod_RegisterLoader(struct MLOADER*);

MIKMODAPI extern struct MLOADER load_669; /* 669 and Extended-669 (by Tran/Renaissance) */
Expand Down
2 changes: 2 additions & 0 deletions mikmod/mikmod_internals.h
Expand Up @@ -680,7 +680,9 @@ extern BOOL MD_DropPrivileges(void);
/*========== Prototypes for non-MT safe versions of some public functions */

extern void _mm_registerdriver(struct MDRIVER*);
extern void _mm_unregisterdrivers(void);
extern void _mm_registerloader(struct MLOADER*);
extern void _mm_unregisterloaders(void);
extern BOOL MikMod_Active_internal(void);
extern void MikMod_DisableOutput_internal(void);
extern BOOL MikMod_EnableOutput_internal(void);
Expand Down
12 changes: 12 additions & 0 deletions mikmod/mloader.c
Expand Up @@ -80,6 +80,18 @@ void _mm_registerloader(MLOADER* ldr)
firstloader=ldr;
}

void _mm_unregisterloaders(void)
{
MLOADER *cruise=firstloader, *ldr;

while ( cruise ) {
ldr = cruise;
cruise = cruise->next;
ldr->next = NULL;
}
firstloader = NULL;
}

void MikMod_RegisterLoader(struct MLOADER* ldr)
{
/* if we try to register an invalid loader, or an already registered loader,
Expand Down
8 changes: 8 additions & 0 deletions mikmod/mlreg.c
Expand Up @@ -67,4 +67,12 @@ void MikMod_RegisterAllLoaders(void)
MikMod_RegisterAllLoaders_internal();
MUTEX_UNLOCK(lists);
}

void MikMod_UnregisterAllLoaders(void)
{
MUTEX_LOCK(lists);
_mm_unregisterloaders();
MUTEX_UNLOCK(lists);
}

/* ex:set ts=4: */
2 changes: 1 addition & 1 deletion mixer.c
Expand Up @@ -654,7 +654,7 @@ int Mix_FadeOutChannel(int which, int ms)
} else {
SDL_mutexP(mixer_lock);
if ( mix_channel[which].playing && mix_channel[which].volume>0 &&
mix_channel[which].fading==MIX_NO_FADING ) {
mix_channel[which].fading!=MIX_FADING_OUT ) {

mix_channel[which].fading = MIX_FADING_OUT;
mix_channel[which].fade_volume = mix_channel[which].volume;
Expand Down
2 changes: 2 additions & 0 deletions music.c
Expand Up @@ -855,6 +855,8 @@ void close_music(void)
#endif
#ifdef MOD_MUSIC
MikMod_Exit();
MikMod_UnregisterAllLoaders();
MikMod_UnregisterAllDrivers();
#endif
}

0 comments on commit ab2e2f0

Please sign in to comment.