From fb3a7fa5cac9a713348a20ce8cdf2e888b5dc722 Mon Sep 17 00:00:00 2001 From: avolkov Date: Mon, 7 Nov 2005 04:55:03 +0000 Subject: [PATCH] MikMod hacks removal, stage 2: getting rid of unnecessary SDL_RWops and uio git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1958 8092fc87-c524-0410-9efc-e669fe64eaf9 --- .../libs/sound/decoders/mikmod/mikmod.h | 19 +-- .../sound/decoders/mikmod/mikmod_internals.h | 23 +--- .../libs/sound/decoders/mikmod/mloader.c | 40 ++---- .../sc2code/libs/sound/decoders/mikmod/mmio.c | 124 ++++-------------- .../sc2code/libs/sound/decoders/mikmod/mwav.c | 10 +- 5 files changed, 48 insertions(+), 168 deletions(-) diff --git a/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod.h b/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod.h index 805b229df..dc259d972 100644 --- a/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod.h +++ b/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod.h @@ -31,8 +31,6 @@ #include #include -#include "port.h" -#include "libs/uio.h" #ifdef __cplusplus extern "C" { @@ -326,8 +324,8 @@ typedef struct SAMPLE { /* Sample functions */ -MIKMODAPI extern SAMPLE *Sample_Load(uio_DirHandle*,CHAR*); -MIKMODAPI extern SAMPLE *Sample_LoadFP(uio_Stream*); +MIKMODAPI extern SAMPLE *Sample_Load(CHAR*); +MIKMODAPI extern SAMPLE *Sample_LoadFP(FILE*); MIKMODAPI extern SAMPLE *Sample_LoadGeneric(MREADER*); MIKMODAPI extern void Sample_Free(SAMPLE*); MIKMODAPI extern SBYTE Sample_Play(SAMPLE*,ULONG,UBYTE); @@ -523,17 +521,10 @@ MIKMODAPI extern struct MLOADER load_xm; /* FastTracker 2 (by Triton) */ * ========== Module player */ -/* SDL_RWops compatability */ -#ifdef USE_RWOPS -#include "port.h" -#include SDL_INCLUDE(SDL_rwops.h) -MIKMODAPI extern MODULE* Player_LoadRW(SDL_RWops*,int,BOOL); -#endif /* USE_RWOPS */ -/* End SDL_RWops compatability */ -MIKMODAPI extern MODULE* Player_Load(uio_DirHandle *, CHAR*,int,BOOL); -MIKMODAPI extern MODULE* Player_LoadFP(uio_Stream*,int,BOOL); +MIKMODAPI extern MODULE* Player_Load(CHAR*,int,BOOL); +MIKMODAPI extern MODULE* Player_LoadFP(FILE*,int,BOOL); MIKMODAPI extern MODULE* Player_LoadGeneric(MREADER*,int,BOOL); -MIKMODAPI extern CHAR* Player_LoadTitle(uio_DirHandle*,CHAR*); +MIKMODAPI extern CHAR* Player_LoadTitle(CHAR*); MIKMODAPI extern void Player_Free(MODULE*); MIKMODAPI extern void Player_Start(MODULE*); MIKMODAPI extern BOOL Player_Active(void); diff --git a/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod_internals.h b/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod_internals.h index 9eb49a198..5caf31c23 100644 --- a/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod_internals.h +++ b/sc2/src/sc2code/libs/sound/decoders/mikmod/mikmod_internals.h @@ -33,13 +33,11 @@ #include #endif #include -//#if defined(__OS2__)||defined(__EMX__)||defined(WIN32) -//#define strcasecmp(s,t) stricmp(s,t) -//#endif +#if defined(__OS2__)||defined(__EMX__)||defined(_MSC_VER) +#define strcasecmp(s,t) stricmp(s,t) +#endif #include "mikmod_build.h" -#include "port.h" -#include "libs/uio.h" #ifdef macintosh #ifndef __MWERKS__ @@ -139,20 +137,13 @@ DECLARE_MUTEX(vars); /*========== Portable file I/O */ -/* SDL_RWops compatability */ -#ifdef USE_RWOPS -extern MREADER *_mm_new_rwops_reader(SDL_RWops * rw); -extern void _mm_delete_rwops_reader (MREADER*); -#endif /* USE_RWOPS */ -/* End SDL_RWops compatability */ - -extern MREADER* _mm_new_file_reader(uio_Stream* fp); +extern MREADER* _mm_new_file_reader(FILE* fp); extern void _mm_delete_file_reader(MREADER*); -extern MWRITER* _mm_new_file_writer(uio_Stream *fp); +extern MWRITER* _mm_new_file_writer(FILE *fp); extern void _mm_delete_file_writer(MWRITER*); -extern BOOL _mm_FileExists(uio_DirHandle *dir,CHAR *fname); +extern BOOL _mm_FileExists(CHAR *fname); #define _mm_write_SBYTE(x,y) y->Put(y,(int)x) #define _mm_write_UBYTE(x,y) y->Put(y,(int)x) @@ -173,7 +164,7 @@ extern BOOL _mm_FileExists(uio_DirHandle *dir,CHAR *fname); extern void _mm_iobase_setcur(MREADER*); extern void _mm_iobase_revert(void); -extern uio_Stream *_mm_fopen(uio_DirHandle *,CHAR*,CHAR*); +extern FILE *_mm_fopen(CHAR*,CHAR*); extern void _mm_write_string(CHAR*,MWRITER*); extern int _mm_read_string (CHAR*,int,MREADER*); diff --git a/sc2/src/sc2code/libs/sound/decoders/mikmod/mloader.c b/sc2/src/sc2code/libs/sound/decoders/mikmod/mloader.c index 1bc98291b..7e72e1adf 100644 --- a/sc2/src/sc2code/libs/sound/decoders/mikmod/mloader.c +++ b/sc2/src/sc2code/libs/sound/decoders/mikmod/mloader.c @@ -32,8 +32,6 @@ #include #include "mikmod_internals.h" -#include "port.h" -#include "libs/uio.h" MREADER *modreader; @@ -374,20 +372,20 @@ static CHAR* Player_LoadTitle_internal(MREADER *reader) return l->LoadTitle(); } -CHAR* Player_LoadTitle(uio_DirHandle *dir, CHAR* filename) +CHAR* Player_LoadTitle(CHAR* filename) { CHAR* result=NULL; - uio_Stream* fp; + FILE* fp; MREADER* reader; - if((fp=_mm_fopen(dir, filename,"rb"))) { + if((fp=_mm_fopen(filename,"rb"))) { if((reader=_mm_new_file_reader(fp))) { MUTEX_LOCK(lists); result=Player_LoadTitle_internal(reader); MUTEX_UNLOCK(lists); _mm_delete_file_reader(reader); } - uio_fclose(fp); + fclose(fp); } return result; } @@ -509,7 +507,7 @@ MODULE* Player_LoadGeneric(MREADER *reader,int maxchan,BOOL curious) /* Loads a module given a file pointer. File is loaded from the current file seek position. */ -MODULE* Player_LoadFP(uio_Stream* fp,int maxchan,BOOL curious) +MODULE* Player_LoadFP(FILE* fp,int maxchan,BOOL curious) { MODULE* result=NULL; struct MREADER* reader=_mm_new_file_reader (fp); @@ -523,36 +521,16 @@ MODULE* Player_LoadFP(uio_Stream* fp,int maxchan,BOOL curious) /* Open a module via its filename. The loader will initialize the specified song-player 'player'. */ -MODULE* Player_Load(uio_DirHandle *dir,CHAR* filename,int maxchan,BOOL curious) +MODULE* Player_Load(CHAR* filename,int maxchan,BOOL curious) { - uio_Stream *fp; + FILE *fp; MODULE *mf=NULL; - if((fp=_mm_fopen(dir, filename,"rb"))) { + if((fp=_mm_fopen(filename,"rb"))) { mf=Player_LoadFP(fp,maxchan,curious); - uio_fclose(fp); + fclose(fp); } return mf; } -/* SDL_RWops compatability */ -#ifdef USE_RWOPS - -/* Open a module via an SDL_rwop. The loader will initialize the specified - song-player 'player'. */ -MODULE* Player_LoadRW(SDL_RWops *rw,int maxchan,BOOL curious) -{ - MODULE* result=NULL; - struct MREADER* reader=_mm_new_rwops_reader (rw); - - if (reader) { - result=Player_LoadGeneric(reader,maxchan,curious); - _mm_delete_rwops_reader(reader); - } - return result; -} - -#endif /* USE_RWOPS */ -/* End SDL_RWops compatability */ - /* ex:set ts=4: */ diff --git a/sc2/src/sc2code/libs/sound/decoders/mikmod/mmio.c b/sc2/src/sc2code/libs/sound/decoders/mikmod/mmio.c index 8dc99da7e..20919f672 100644 --- a/sc2/src/sc2code/libs/sound/decoders/mikmod/mmio.c +++ b/sc2/src/sc2code/libs/sound/decoders/mikmod/mmio.c @@ -62,103 +62,23 @@ static long _mm_iobase=0,temp_iobase=0; -/* - - This section is added to use SDL_rwops for IO - - -Matt Campbell (matt@campbellhome.dhs.org) April 2000 - -*/ - -#ifdef USE_RWOPS - -typedef struct MRWOPSREADER { - MREADER core; - SDL_RWops* rw; - int end; -} MRWOPSREADER; - -static BOOL _mm_RWopsReader_Eof(MREADER* reader) +FILE* _mm_fopen(CHAR* fname,CHAR* attrib) { - if ( ((MRWOPSREADER*)reader)->end == - SDL_RWtell(((MRWOPSREADER*)reader)->rw) ) return 1; - else return 0; -} + FILE *fp; -static BOOL _mm_RWopsReader_Read(MREADER* reader,void* ptr,size_t size) -{ - return SDL_RWread(((MRWOPSREADER*)reader)->rw, ptr, size, 1); -} - -static int _mm_RWopsReader_Get(MREADER* reader) -{ - char buf; - if ( SDL_RWread(((MRWOPSREADER*)reader)->rw, &buf, 1, 1) != 1 ) return EOF; - else return (int)buf; -} - -static BOOL _mm_RWopsReader_Seek(MREADER* reader,long offset,int whence) -{ - return SDL_RWseek(((MRWOPSREADER*)reader)->rw, - (whence==SEEK_SET)?offset+_mm_iobase:offset,whence); -} - -static long _mm_RWopsReader_Tell(MREADER* reader) -{ - return SDL_RWtell(((MRWOPSREADER*)reader)->rw) - _mm_iobase; -} - -MREADER *_mm_new_rwops_reader(SDL_RWops * rw) -{ - int here; - MRWOPSREADER* reader=(MRWOPSREADER*)_mm_malloc(sizeof(MRWOPSREADER)); - if (reader) { - reader->core.Eof =&_mm_RWopsReader_Eof; - reader->core.Read=&_mm_RWopsReader_Read; - reader->core.Get =&_mm_RWopsReader_Get; - reader->core.Seek=&_mm_RWopsReader_Seek; - reader->core.Tell=&_mm_RWopsReader_Tell; - reader->rw=rw; - - /* RWops does not explicitly support an eof check, so we shall find - the end manually - this requires seek support for the RWop */ - here = SDL_RWtell(rw); - reader->end = SDL_RWseek(rw, 0, SEEK_END); - SDL_RWseek(rw, here, SEEK_SET); /* Move back */ - } - return (MREADER*)reader; -} - -void _mm_delete_rwops_reader (MREADER* reader) -{ - if(reader) free(reader); -} - -#endif /* USE_RWOPS */ - -/* - - End SDL_rwops section - -*/ - -uio_Stream* _mm_fopen(uio_DirHandle* dir,CHAR* fname,CHAR* attrib) -{ - uio_Stream *fp; - - if(!(fp=uio_fopen(dir,fname,attrib))) { + if(!(fp=fopen(fname,attrib))) { _mm_errno = MMERR_OPENING_FILE; if(_mm_errorhandler) _mm_errorhandler(); } return fp; } -BOOL _mm_FileExists(uio_DirHandle* dir,CHAR* fname) +BOOL _mm_FileExists(CHAR* fname) { - uio_Stream *fp; + FILE *fp; - if(!(fp=uio_fopen(dir, fname,"rb"))) return 0; - uio_fclose(fp); + if(!(fp=fopen(fname,"r"))) return 0; + fclose(fp); return 1; } @@ -179,37 +99,37 @@ void _mm_iobase_revert(void) /*========== File Reader */ typedef struct MFILEREADER { - MREADER core; - uio_Stream* file; + MREADER core; + FILE* file; } MFILEREADER; static BOOL _mm_FileReader_Eof(MREADER* reader) { - return uio_feof(((MFILEREADER*)reader)->file); + return feof(((MFILEREADER*)reader)->file); } static BOOL _mm_FileReader_Read(MREADER* reader,void* ptr,size_t size) { - return uio_fread(ptr,size,1,((MFILEREADER*)reader)->file); + return fread(ptr,size,1,((MFILEREADER*)reader)->file); } static int _mm_FileReader_Get(MREADER* reader) { - return uio_fgetc(((MFILEREADER*)reader)->file); + return fgetc(((MFILEREADER*)reader)->file); } static BOOL _mm_FileReader_Seek(MREADER* reader,long offset,int whence) { - return uio_fseek(((MFILEREADER*)reader)->file, + return fseek(((MFILEREADER*)reader)->file, (whence==SEEK_SET)?offset+_mm_iobase:offset,whence); } static long _mm_FileReader_Tell(MREADER* reader) { - return uio_ftell(((MFILEREADER*)reader)->file)-_mm_iobase; + return ftell(((MFILEREADER*)reader)->file)-_mm_iobase; } -MREADER *_mm_new_file_reader(uio_Stream* fp) +MREADER *_mm_new_file_reader(FILE* fp) { MFILEREADER* reader=(MFILEREADER*)_mm_malloc(sizeof(MFILEREADER)); if (reader) { @@ -231,31 +151,31 @@ void _mm_delete_file_reader (MREADER* reader) /*========== File Writer */ typedef struct MFILEWRITER { - MWRITER core; - uio_Stream* file; + MWRITER core; + FILE* file; } MFILEWRITER; static BOOL _mm_FileWriter_Seek(MWRITER* writer,long offset,int whence) { - return uio_fseek(((MFILEWRITER*)writer)->file,offset,whence); + return fseek(((MFILEWRITER*)writer)->file,offset,whence); } static long _mm_FileWriter_Tell(MWRITER* writer) { - return uio_ftell(((MFILEWRITER*)writer)->file); + return ftell(((MFILEWRITER*)writer)->file); } static BOOL _mm_FileWriter_Write(MWRITER* writer,void* ptr,size_t size) { - return (uio_fwrite(ptr,size,1,((MFILEWRITER*)writer)->file)==size); + return (fwrite(ptr,size,1,((MFILEWRITER*)writer)->file)==size); } static BOOL _mm_FileWriter_Put(MWRITER* writer,int value) { - return uio_fputc(value,((MFILEWRITER*)writer)->file); + return fputc(value,((MFILEWRITER*)writer)->file); } -MWRITER *_mm_new_file_writer(uio_Stream* fp) +MWRITER *_mm_new_file_writer(FILE* fp) { MFILEWRITER* writer=(MFILEWRITER*)_mm_malloc(sizeof(MFILEWRITER)); if (writer) { diff --git a/sc2/src/sc2code/libs/sound/decoders/mikmod/mwav.c b/sc2/src/sc2code/libs/sound/decoders/mikmod/mwav.c index 6f1c477b8..447329887 100644 --- a/sc2/src/sc2code/libs/sound/decoders/mikmod/mwav.c +++ b/sc2/src/sc2code/libs/sound/decoders/mikmod/mwav.c @@ -143,7 +143,7 @@ SAMPLE* Sample_LoadGeneric(MREADER* reader) return result; } -SAMPLE* Sample_LoadFP(uio_Stream *fp) +SAMPLE* Sample_LoadFP(FILE *fp) { SAMPLE* result=NULL; MREADER* reader; @@ -155,15 +155,15 @@ SAMPLE* Sample_LoadFP(uio_Stream *fp) return result; } -SAMPLE* Sample_Load(uio_DirHandle* dir,CHAR* filename) +SAMPLE* Sample_Load(CHAR* filename) { - uio_Stream *fp; + FILE *fp; SAMPLE *si=NULL; if(!(md_mode & DMODE_SOFT_SNDFX)) return NULL; - if((fp=_mm_fopen(dir,filename,"rb"))) { + if((fp=_mm_fopen(filename,"rb"))) { si = Sample_LoadFP(fp); - uio_fclose(fp); + fclose(fp); } return si; }