[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