[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.h,1.7,1.8 dimuse_bndmgr.h,1.3,1.4 dimuse_codecs.cpp,1.1,1.2 dimuse_sndmgr.cpp,1.9,1.10 dimuse_tables.cpp,1.1,1.2

Chris Apers chrilith at users.sourceforge.net
Thu Jan 8 04:15:03 CET 2004


Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1:/tmp/cvs-serv13829/imuse_digi

Modified Files:
	dimuse.h dimuse_bndmgr.h dimuse_codecs.cpp dimuse_sndmgr.cpp 
	dimuse_tables.cpp 
Log Message:
Save more memory on PalmOS

Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- dimuse.h	7 Jan 2004 21:02:48 -0000	1.7
+++ dimuse.h	8 Jan 2004 12:14:48 -0000	1.8
@@ -144,6 +144,15 @@
 	char name[30];
 };
 
+#ifdef __PALM_OS__
+extern imuse_music_map *_digStateMusicMap;
+extern const imuse_music_table *_digStateMusicTable;
+extern const imuse_music_table *_comiStateMusicTable;
+extern const imuse_music_table *_comiSeqMusicTable;
+extern const imuse_music_table *_digSeqMusicTable;
+extern const imuse_ft_music_table *_ftStateMusicTable;
+extern const imuse_ft_music_table *_ftSeqMusicTable;
+#else
 extern imuse_music_map _digStateMusicMap[];
 extern const imuse_music_table _digStateMusicTable[];
 extern const imuse_music_table _digSeqMusicTable[];
@@ -151,6 +160,7 @@
 extern const imuse_music_table _comiSeqMusicTable[];
 extern const imuse_ft_music_table _ftStateMusicTable[];
 extern const imuse_ft_music_table _ftSeqMusicTable[];
+#endif
 
 } // End of namespace Scumm
 

Index: dimuse_bndmgr.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_bndmgr.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- dimuse_bndmgr.h	7 Jan 2004 04:50:38 -0000	1.3
+++ dimuse_bndmgr.h	8 Jan 2004 12:14:48 -0000	1.4
@@ -88,6 +88,9 @@
 
 uint32 decode12BitsSample(byte *src, byte **dst, uint32 size);
 void initializeImcTables();
+#ifdef __PALM_OS__
+void releaseImcTables();
+#endif
 int32 decompressCodec(int32 codec, byte *comp_input, byte *comp_output, int32 input_size);
 
 } // End of namespace BundleCodecs

Index: dimuse_codecs.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_codecs.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- dimuse_codecs.cpp	6 Jan 2004 17:28:29 -0000	1.1
+++ dimuse_codecs.cpp	8 Jan 2004 12:14:48 -0000	1.2
@@ -44,12 +44,15 @@
 	return s_size;
 }
 
-static byte _destImcTable[93];
-static uint32 _destImcTable2[5697];
-
 #ifdef __PALM_OS__
+static byte *_destImcTable = NULL;		// save 23k of memory !
+static uint32 *_destImcTable2 = NULL;
+
 static const int16 *imcTable;
 #else
+static byte _destImcTable[93];
+static uint32 _destImcTable2[5697];
+
 static const int16 imcTable[] = {
 	0x0007, 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x0010, 0x0011,
 	0x0013, 0x0015, 0x0017, 0x0019, 0x001C, 0x001F, 0x0022, 0x0025, 0x0029, 0x002D,
@@ -119,9 +122,22 @@
 	0, 0, 1, 3, 7, 15, 31, 63
 };
 
+#ifdef __PALM_OS__
+void releaseImcTables() {
+	free(_destImcTable);
+	free(_destImcTable2);
+}
+#endif
+
 void initializeImcTables() {
 	int32 destTablePos = 0;
 	int32 imcTable1Pos = 0;
+	
+#ifdef __PALM_OS__
+	if (!_destImcTable) _destImcTable = (byte *)calloc(93, sizeof(byte));
+	if (!_destImcTable2) _destImcTable2 = (uint32 *)calloc(5697, sizeof(uint32));
+#endif
+	
 	do {
 		byte put = 1;
 		int32 tableValue = ((imcTable[imcTable1Pos] * 4) / 7) / 2;
@@ -687,11 +703,11 @@
 #ifdef __PALM_OS__
 #include "scumm_globals.h"
 
-_GINIT(BundleCodecs)
+_GINIT(DimuseCodecs)
 _GSETPTR(Scumm::BundleCodecs::imcTable, GBVARS_IMCTABLE_INDEX, int16, GBVARS_SCUMM)
 _GEND
 
-_GRELEASE(BundleCodecs)
+_GRELEASE(DimuseCodecs)
 _GRELEASEPTR(GBVARS_IMCTABLE_INDEX, GBVARS_SCUMM)
 _GEND
 

Index: dimuse_sndmgr.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_sndmgr.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- dimuse_sndmgr.cpp	8 Jan 2004 09:00:29 -0000	1.9
+++ dimuse_sndmgr.cpp	8 Jan 2004 12:14:48 -0000	1.10
@@ -43,6 +43,9 @@
 			closeSound(&_sounds[l]);
 	}
 	delete _cacheBundleDir;
+#ifdef __PALM_OS__
+	BundleCodecs::releaseImcTables();
+#endif
 }
 
 void ImuseDigiSndMgr::prepareSound(byte *ptr, int slot) {

Index: dimuse_tables.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_tables.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- dimuse_tables.cpp	6 Jan 2004 17:28:29 -0000	1.1
+++ dimuse_tables.cpp	8 Jan 2004 12:14:48 -0000	1.2
@@ -23,6 +23,15 @@
 
 namespace Scumm {
 
+#ifdef __PALM_OS__
+imuse_music_map *_digStateMusicMap;
+const imuse_music_table *_digStateMusicTable;
+const imuse_music_table *_comiStateMusicTable;
+const imuse_music_table *_comiSeqMusicTable;
+const imuse_music_table *_digSeqMusicTable;
+const imuse_ft_music_table *_ftStateMusicTable;
+const imuse_ft_music_table *_ftSeqMusicTable;
+#else
 imuse_music_map _digStateMusicMap[] = {
 	{0,   0,  0,  0,  0,  0 },
 	{1,   0,  0,  0,  0,  0 },
@@ -579,5 +588,31 @@
 	{52,  "bornbad",  2,  127,  "seqCredits"          },
 	{-1,  "",         0,  0,    ""                    }
 };
+#endif
 
 } // End of namespace Scumm
+
+#ifdef __PALM_OS__
+#include "scumm_globals.h"
+
+_GINIT(DimuseTables)
+_GSETPTR(Scumm::_digStateMusicMap,		GBVARS_DIGSTATEMUSICMAP_INDEX,		Scumm::imuse_music_map		, GBVARS_SCUMM)
+_GSETPTR(Scumm::_digStateMusicTable,	GBVARS_DIGSTATEMUSICTABLE_INDEX,	Scumm::imuse_music_table	, GBVARS_SCUMM)
+_GSETPTR(Scumm::_comiStateMusicTable,	GBVARS_COMISTATEMUSICTABLE_INDEX,	Scumm::imuse_music_table	, GBVARS_SCUMM)
+_GSETPTR(Scumm::_comiSeqMusicTable,		GBVARS_COMISEQMUSICTABLE_INDEX,		Scumm::imuse_music_table	, GBVARS_SCUMM)
+_GSETPTR(Scumm::_digSeqMusicTable,		GBVARS_DIGSEQMUSICTABLE_INDEX,		Scumm::imuse_music_table	, GBVARS_SCUMM)
+_GSETPTR(Scumm::_ftStateMusicTable,		GBVARS_FTSTATEMUSICTABLE_INDEX,		Scumm::imuse_ft_music_table	, GBVARS_SCUMM)
+_GSETPTR(Scumm::_ftSeqMusicTable,		GBVARS_FTSEQMUSICTABLE_INDEX,		Scumm::imuse_ft_music_table	, GBVARS_SCUMM)
+_GEND
+
+_GRELEASE(DimuseTables)
+_GRELEASEPTR(GBVARS_DIGSTATEMUSICMAP_INDEX		, GBVARS_SCUMM)
+_GRELEASEPTR(GBVARS_DIGSTATEMUSICTABLE_INDEX	, GBVARS_SCUMM)
+_GRELEASEPTR(GBVARS_COMISTATEMUSICTABLE_INDEX	, GBVARS_SCUMM)
+_GRELEASEPTR(GBVARS_COMISEQMUSICTABLE_INDEX		, GBVARS_SCUMM)
+_GRELEASEPTR(GBVARS_DIGSEQMUSICTABLE_INDEX		, GBVARS_SCUMM)
+_GRELEASEPTR(GBVARS_FTSTATEMUSICTABLE_INDEX		, GBVARS_SCUMM)
+_GRELEASEPTR(GBVARS_FTSEQMUSICTABLE_INDEX		, GBVARS_SCUMM)
+_GEND
+
+#endif
\ No newline at end of file





More information about the Scummvm-git-logs mailing list