[Scummvm-cvs-logs] SF.net SVN: scummvm: [33051] scummvm/branches/gsoc2008-rtl
cpage88 at users.sourceforge.net
cpage88 at users.sourceforge.net
Mon Jul 14 02:10:09 CEST 2008
Revision: 33051
http://scummvm.svn.sourceforge.net/scummvm/?rev=33051&view=rev
Author: cpage88
Date: 2008-07-13 17:10:09 -0700 (Sun, 13 Jul 2008)
Log Message:
-----------
Merged revisions 32744-32745,32747,32750-32759,32762-32764,32769,32777,32783,32785-32786,32789-32791,32798-32799,32801-32807,32809-32812,32816-32817,32819-32821,32823-32830,32832-32836,32838-32844,32846-32850,32852-32854,32858-32859,32865-32868,32873-32874,32879,32883,32895,32899,32902-32904,32910-32912,32923-32924,32930-32931,32938,32940,32948-32949,32951,32960-32964,32966-32970,32972-32974,32976,32978,32983,32986-32990,32992,32994,33002-33004,33006-33007,33009-33010,33014,33017,33021-33023,33030,33033 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk
Modified Paths:
--------------
scummvm/branches/gsoc2008-rtl/NEWS
scummvm/branches/gsoc2008-rtl/backends/platform/dc/Makefile
scummvm/branches/gsoc2008-rtl/backends/platform/dc/audio.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/dc/dc.h
scummvm/branches/gsoc2008-rtl/backends/platform/dc/dcmain.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/dc/selector.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.h
scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.h
scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/wordcompletion.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X.html
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/config.sh
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x-common.h
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.h
scummvm/branches/gsoc2008-rtl/backends/platform/null/null.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/ps2/systemps2.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/psp/Makefile
scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.h
scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.h
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/AdaptAllMMPs.pl
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/README
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_agi.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_agos.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_base.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_cine.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_cruise.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_drascula.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_gob.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_kyra.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_lure.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_m4.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_made.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_parallaction.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_queen.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_saga.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_scumm.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_sky.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_sword1.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_sword2.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/mmp/scummvm_touche.mmp.in
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/src/SymbianOS.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/src/SymbianOS.h
scummvm/branches/gsoc2008-rtl/backends/platform/symbian/src/portdefs.h
scummvm/branches/gsoc2008-rtl/backends/platform/wii/osystem.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/wii/osystem.h
scummvm/branches/gsoc2008-rtl/backends/platform/wii/osystem_sfx.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/wince/Makefile
scummvm/branches/gsoc2008-rtl/backends/platform/wince/wince-sdl.cpp
scummvm/branches/gsoc2008-rtl/backends/platform/wince/wince-sdl.h
scummvm/branches/gsoc2008-rtl/backends/saves/default/default-saves.cpp
scummvm/branches/gsoc2008-rtl/backends/timer/default/default-timer.h
scummvm/branches/gsoc2008-rtl/base/main.cpp
scummvm/branches/gsoc2008-rtl/common/scummsys.h
scummvm/branches/gsoc2008-rtl/common/system.cpp
scummvm/branches/gsoc2008-rtl/common/system.h
scummvm/branches/gsoc2008-rtl/configure
scummvm/branches/gsoc2008-rtl/dists/engine-data/lure.dat
scummvm/branches/gsoc2008-rtl/dists/msvc7/parallaction.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc7/scummvm.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc71/parallaction.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc71/scummvm.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc8/parallaction.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc8/scummvm.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc9/parallaction.vcproj
scummvm/branches/gsoc2008-rtl/dists/msvc9/scummvm.vcproj
scummvm/branches/gsoc2008-rtl/engines/cine/bg_list.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/gfx.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/main_loop.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/object.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/object.h
scummvm/branches/gsoc2008-rtl/engines/cine/script.h
scummvm/branches/gsoc2008-rtl/engines/cine/script_fw.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/script_os.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/various.cpp
scummvm/branches/gsoc2008-rtl/engines/cine/various.h
scummvm/branches/gsoc2008-rtl/engines/cruise/cruise_main.h
scummvm/branches/gsoc2008-rtl/engines/drascula/animation.cpp
scummvm/branches/gsoc2008-rtl/engines/drascula/drascula.h
scummvm/branches/gsoc2008-rtl/engines/drascula/rooms.cpp
scummvm/branches/gsoc2008-rtl/engines/drascula/talk.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/detection.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/driver_vga.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/goblin.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/goblin.h
scummvm/branches/gsoc2008-rtl/engines/gob/goblin_v2.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/inter.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/inter.h
scummvm/branches/gsoc2008-rtl/engines/gob/inter_v1.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/inter_v2.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/mult.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/mult.h
scummvm/branches/gsoc2008-rtl/engines/gob/mult_v1.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/mult_v2.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/sound/sound.h
scummvm/branches/gsoc2008-rtl/engines/gob/sound/soundmixer.h
scummvm/branches/gsoc2008-rtl/engines/gob/variables.cpp
scummvm/branches/gsoc2008-rtl/engines/gob/variables.h
scummvm/branches/gsoc2008-rtl/engines/igor/igor.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/animator_lok.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/detection.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/gui_hof.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/gui_lok.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/gui_lok.h
scummvm/branches/gsoc2008-rtl/engines/kyra/items_lok.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_hof.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_mr.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_mr.h
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_v1.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_v1.h
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_v2.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/kyra_v2.h
scummvm/branches/gsoc2008-rtl/engines/kyra/scene_hof.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/scene_lok.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/screen.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/script.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/script.h
scummvm/branches/gsoc2008-rtl/engines/kyra/script_hof.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/script_tim.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/script_tim.h
scummvm/branches/gsoc2008-rtl/engines/kyra/seqplayer.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/sequences_lok.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/sound.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/sound.h
scummvm/branches/gsoc2008-rtl/engines/kyra/sound_lok.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/sound_towns.cpp
scummvm/branches/gsoc2008-rtl/engines/kyra/staticres.cpp
scummvm/branches/gsoc2008-rtl/engines/m4/assets.cpp
scummvm/branches/gsoc2008-rtl/engines/m4/converse.cpp
scummvm/branches/gsoc2008-rtl/engines/m4/globals.cpp
scummvm/branches/gsoc2008-rtl/engines/m4/globals.h
scummvm/branches/gsoc2008-rtl/engines/m4/resource.cpp
scummvm/branches/gsoc2008-rtl/engines/made/pmvplayer.cpp
scummvm/branches/gsoc2008-rtl/engines/made/screen.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/callables_ns.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/debug.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/dialogue.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/disk.h
scummvm/branches/gsoc2008-rtl/engines/parallaction/disk_br.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/disk_ns.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/exec_br.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/exec_ns.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/gfxbase.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/graphics.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/graphics.h
scummvm/branches/gsoc2008-rtl/engines/parallaction/gui_br.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/gui_ns.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/input.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/input.h
scummvm/branches/gsoc2008-rtl/engines/parallaction/module.mk
scummvm/branches/gsoc2008-rtl/engines/parallaction/objects.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/objects.h
scummvm/branches/gsoc2008-rtl/engines/parallaction/parallaction.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/parallaction.h
scummvm/branches/gsoc2008-rtl/engines/parallaction/parallaction_br.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/parallaction_ns.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/parser_br.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/parser_ns.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/sound.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/walk.cpp
scummvm/branches/gsoc2008-rtl/engines/queen/resource.cpp
scummvm/branches/gsoc2008-rtl/engines/scumm/detection.cpp
scummvm/branches/gsoc2008-rtl/engines/scumm/gfxARM.s
scummvm/branches/gsoc2008-rtl/engines/scumm/he/resource_he.cpp
scummvm/branches/gsoc2008-rtl/engines/scumm/imuse_digi/dimuse_track.h
scummvm/branches/gsoc2008-rtl/engines/scumm/saveload.cpp
scummvm/branches/gsoc2008-rtl/engines/scumm/smush/codec47ARM.s
scummvm/branches/gsoc2008-rtl/engines/touche/midi.cpp
scummvm/branches/gsoc2008-rtl/engines/touche/midi.h
scummvm/branches/gsoc2008-rtl/engines/touche/saveload.cpp
scummvm/branches/gsoc2008-rtl/engines/touche/touche.cpp
scummvm/branches/gsoc2008-rtl/sound/midiparser_smf.cpp
scummvm/branches/gsoc2008-rtl/sound/midiparser_xmidi.cpp
scummvm/branches/gsoc2008-rtl/sound/mixer.cpp
scummvm/branches/gsoc2008-rtl/sound/mixer.h
scummvm/branches/gsoc2008-rtl/sound/mp3.cpp
scummvm/branches/gsoc2008-rtl/tools/create_lure/create_lure_dat.cpp
Added Paths:
-----------
scummvm/branches/gsoc2008-rtl/engines/parallaction/balloons.cpp
scummvm/branches/gsoc2008-rtl/engines/parallaction/exec.h
scummvm/branches/gsoc2008-rtl/sound/mixer_intern.h
scummvm/branches/gsoc2008-rtl/tools/svnpropset.sh
Removed Paths:
-------------
scummvm/branches/gsoc2008-rtl/backends/platform/x11/
Property Changed:
----------------
scummvm/branches/gsoc2008-rtl/
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/build.sh
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/bundle.sh
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/clean.sh
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/config.sh
scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/scummvm.gpe
Property changes on: scummvm/branches/gsoc2008-rtl
___________________________________________________________________
Name: svnmerge-integrated
- /scummvm/branches/gsoc2008-gui:1-31703 /scummvm/branches/gsoc2008-tfmx:1-31765 /scummvm/trunk:1-32739
+ /scummvm/branches/gsoc2008-gui:1-31703 /scummvm/branches/gsoc2008-tfmx:1-31765 /scummvm/trunk:1-33050
Modified: scummvm/branches/gsoc2008-rtl/NEWS
===================================================================
--- scummvm/branches/gsoc2008-rtl/NEWS 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/NEWS 2008-07-14 00:10:09 UTC (rev 33051)
@@ -10,11 +10,13 @@
- Added support for the PC version of Waxworks
- Added support for the Macintosh version of I Have no Mouth, and I
must Scream
+ - Added support for Drascula: The Vampire Strikes Back
General:
- Added CAMD MIDI driver for AmigaOS4.
- Revived the PS2 port (was already in 0.11.1 but was forgotten in the
release notes).
+ - Plugged numerous memory leaks in all engines (part of GSoC'08 task)
AGOS:
- Fixed palette issues in Amiga versions of Simon the Sorcerer 1.
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/dc/Makefile
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/dc/Makefile 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/dc/Makefile 2008-07-14 00:10:09 UTC (rev 33051)
@@ -16,6 +16,7 @@
INCLUDES= -I./ -I$(srcdir) -I$(ronindir)/include/ -I$(srcdir)/engines
LIBS = -L$(ronindir)/lib -lmad -lronin -lz -lm
EXECUTABLE = scummvm.elf
+DEPDIR = .deps
PLUGIN_PREFIX =
PLUGIN_SUFFIX = .plg
PLUGIN_EXTRA_DEPS = plugin.x plugin.syms scummvm.elf
@@ -32,12 +33,37 @@
DEFINES += -DDYNAMIC_MODULES
PRE_OBJS_FLAGS = -Wl,--whole-archive
POST_OBJS_FLAGS = -Wl,--no-whole-archive
+ENABLED=DYNAMIC_PLUGIN
+else
+ENABLED=STATIC_PLUGIN
endif
+ENABLE_SCUMM = $(ENABLED)
+ENABLE_SCUMM_7_8 = $(ENABLED)
+ENABLE_HE = $(ENABLED)
+ENABLE_AGI = $(ENABLED)
+ENABLE_AGOS = $(ENABLED)
+ENABLE_CINE = $(ENABLED)
+ENABLE_CRUISE = $(ENABLED)
+ENABLE_DRASCULA = $(ENABLED)
+ENABLE_GOB = $(ENABLED)
+ENABLE_IGOR = $(ENABLED)
+ENABLE_KYRA = $(ENABLED)
+ENABLE_LURE = $(ENABLED)
+ENABLE_M4 = $(ENABLED)
+ENABLE_MADE = $(ENABLED)
+ENABLE_PARALLACTION = $(ENABLED)
+ENABLE_QUEEN = $(ENABLED)
+ENABLE_SAGA = $(ENABLED)
+ENABLE_SKY = $(ENABLED)
+ENABLE_SWORD1 = $(ENABLED)
+ENABLE_SWORD2 = $(ENABLED)
+ENABLE_TOUCHE = $(ENABLED)
+
OBJS := dcmain.o time.o display.o audio.o input.o selector.o icon.o \
label.o vmsave.o softkbd.o dcloader.o cache.o dc-fs.o
-MODULE_DIRS += .
+MODULE_DIRS += ./
include $(srcdir)/Makefile.common
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/dc/audio.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/dc/audio.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/dc/audio.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -25,17 +25,18 @@
#include <common/scummsys.h>
#include "engines/engine.h"
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
#include "dc.h"
EXTERN_C void *memcpy4s(void *s1, const void *s2, unsigned int n);
-void initSound()
+uint OSystem_Dreamcast::initSound()
{
stop_sound();
do_sound_command(CMD_SET_FREQ_EXP(FREQ_22050_EXP));
do_sound_command(CMD_SET_STEREO(1));
do_sound_command(CMD_SET_BUFFER(SOUND_BUFFER_SHIFT));
+ return read_sound_int(&SOUNDSTATUS->freq);
}
void OSystem_Dreamcast::checkSound()
@@ -61,8 +62,8 @@
if (n<100)
return;
- Audio::Mixer::mixCallback(_mixer, (byte*)temp_sound_buffer,
- 2*SAMPLES_TO_BYTES(n));
+ _mixer->mixCallback((byte*)temp_sound_buffer,
+ 2*SAMPLES_TO_BYTES(n));
if (fillpos+n > curr_ring_buffer_samples) {
int r = curr_ring_buffer_samples - fillpos;
@@ -77,8 +78,4 @@
fillpos = 0;
}
-int OSystem_Dreamcast::getOutputSampleRate() const
-{
- return read_sound_int(&SOUNDSTATUS->freq);
-}
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/dc/dc.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/dc/dc.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/dc/dc.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -28,6 +28,7 @@
#include <ronin/soundcommon.h>
#include "backends/timer/default/default-timer.h"
#include "backends/fs/fs-factory.h"
+#include "sound/mixer_intern.h"
#define NUM_BUFFERS 4
#define SOUND_BUFFER_SHIFT 3
@@ -195,7 +196,7 @@
private:
Common::SaveFileManager *_savefile;
- Audio::Mixer *_mixer;
+ Audio::MixerImpl *_mixer;
DefaultTimerManager *_timer;
SoftKeyboard _softkbd;
@@ -223,6 +224,7 @@
int temp_sound_buffer[RING_BUFFER_SAMPLES>>SOUND_BUFFER_SHIFT];
+ uint initSound();
void checkSound();
void drawMouse(int xdraw, int ydraw, int w, int h,
@@ -237,6 +239,5 @@
extern int handleInput(struct mapledev *pad,
int &mouse_x, int &mouse_y,
byte &shiftFlags, Interactive *inter = NULL);
-extern void initSound();
extern bool selectGame(char *&, char *&, class Icon &);
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/dc/dcmain.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/dc/dcmain.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/dc/dcmain.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -33,7 +33,7 @@
#include <common/config-manager.h>
#include "backends/plugins/dc/dc-provider.h"
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
Icon icon;
@@ -54,8 +54,10 @@
void OSystem_Dreamcast::initBackend()
{
_savefile = createSavefileManager();
- _mixer = new Audio::Mixer();
+ _mixer = new Audio::MixerImpl(this);
_timer = new DefaultTimerManager();
+ _mixer->setOutputRate(initSound());
+ _mixer->setReady(true);
}
@@ -216,7 +218,6 @@
static int argc = 1;
dc_init_hardware();
- initSound();
g_system = new OSystem_Dreamcast();
assert(g_system);
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/dc/selector.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/dc/selector.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/dc/selector.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -25,7 +25,9 @@
#include <common/scummsys.h>
#include <engines/engine.h>
+#include <engines/metaengine.h>
#include <base/plugins.h>
+#include <base/game.h>
#include <common/fs.h>
#include <common/events.h>
#include "dc.h"
@@ -149,15 +151,6 @@
static Game the_game;
-static void detectGames(FSList &files, GameList &candidates)
-{
- const EnginePluginList &plugins = EngineMan.getPlugins();
- EnginePluginList::const_iterator iter = plugins.begin();
- for (iter = plugins.begin(); iter != plugins.end(); ++iter) {
- candidates.push_back((*iter)->detectGames(files));
- }
-}
-
static bool isIcon(const FilesystemNode &entry)
{
int l = entry.getDisplayName().size();
@@ -227,8 +220,7 @@
files.push_back(*entry);
}
- GameList candidates;
- detectGames(files, candidates);
+ GameList candidates = EngineMan.detectGames(files);
for (GameList::const_iterator ge = candidates.begin();
ge != candidates.end(); ++ge)
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -168,7 +168,7 @@
u8 gameID;
bool snapToBorder = false;
-bool consoleEnable = false;
+bool consoleEnable = true;
bool gameScreenSwap = false;
bool isCpuScalerEnabled();
//#define HEAVY_LOGGING
@@ -899,12 +899,6 @@
return BG_GFX + 0x10000; // 16bit qty!
}
-void setSoundProc(OSystem_DS::SoundProc proc, void* param) {
-// consolePrintf("Set sound callback");
- soundCallback = proc;
- soundParam = param;
-}
-
// The sound system in ScummVM seems to always return stereo interleaved samples.
// Here, I'm treating an 11Khz stereo stream as a 22Khz mono stream, which works sorta ok, but is
// a horrible bodge. Any advice on how to change the engine to output mono would be greatly
@@ -914,7 +908,8 @@
consolePrintf("doSoundCallback...");
#endif
- if (soundCallback) {
+ if (OSystem_DS::instance())
+ if (OSystem_DS::instance()->getMixerImpl()) {
lastCallbackFrame = frameCount;
for (int r = IPC->playingSection; r < IPC->playingSection + 4; r++) {
@@ -923,7 +918,7 @@
if (IPC->fillNeeded[chunk]) {
IPC->fillNeeded[chunk] = false;
DC_FlushAll();
- soundCallback(soundParam, (byte *) (soundBuffer + ((bufferSamples >> 2) * chunk)), bufferSamples >> 1);
+ OSystem_DS::instance()->getMixerImpl()->mixCallback((byte *) (soundBuffer + ((bufferSamples >> 2) * chunk)), bufferSamples >> 1);
IPC->fillNeeded[chunk] = false;
DC_FlushAll();
}
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/dsmain.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -88,7 +88,6 @@
void doTimerCallback(); // Call callback function if required
// Sound
-void setSoundProc(OSystem_DS::SoundProc proc, void* param); // Setup a callback function for sound
void doSoundCallback(); // Call function if sound buffers need more data
void playSound(const void* data, u32 length, bool loop, bool adpcm = false, int rate = 22050); // Start a sound
void stopSound(int channel);
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -67,10 +67,12 @@
ConfMan.setInt("autosave_period", 0);
ConfMan.setBool("FM_medium_quality", true);
- _mixer = new DSAudioMixer;
- _timer = new DSTimerManager;
- DS::setSoundProc(Audio::Mixer::mixCallback, _mixer);
- DS::setTimerCallback(&OSystem_DS::timerHandler, 10);
+ _mixer = new DSAudioMixer(this);
+ _timer = new DSTimerManager();
+ DS::setTimerCallback(&OSystem_DS::timerHandler, 10);
+
+ _mixer->setOutputRate(11025 /*DS::getSoundFrequency()*/);
+ _mixer->setReady(true);
OSystem::initBackend();
}
@@ -139,7 +141,7 @@
green >>= 3;
blue >>= 3;
-// if (r != 255)
+ if (r != 255)
{
BG_PALETTE[r] = red | (green << 5) | (blue << 10);
if (!DS::getKeyboardEnable()) {
@@ -158,13 +160,13 @@
// Ensure we copy using 16 bit quantities due to limitation of VRAM addressing
- u16* image = (u16 *) DS::get8BitBackBuffer();
+ const u16* image = (const u16 *) DS::get8BitBackBuffer();
for (int y = 0; y < DS::getGameHeight(); y++)
{
DC_FlushRange(image + (y << 8), DS::getGameWidth());
for (int x = 0; x < DS::getGameWidth() >> 1; x++)
{
- *(((u16 *) (surf->pixels)) + y * (DS::getGameWidth() >> 1) + x) = image[y << 8 + x];
+ *(((u16 *) (surf->pixels)) + y * (DS::getGameWidth() >> 1) + x) = image[(y << 8) + x];
}
}
@@ -277,7 +279,7 @@
void OSystem_DS::copyRectToOverlay (const OverlayColor *buf, int pitch, int x, int y, int w, int h) {
u16* bg = (u16 *) DS::get16BitBackBuffer();
- u16* src = (u16 *) buf;
+ const u16* src = (const u16 *) buf;
// if (x + w > 256) w = 256 - x;
//if (x + h > 256) h = 256 - y;
@@ -433,13 +435,7 @@
void OSystem_DS::deleteMutex(MutexRef mutex) {
}
-void OSystem_DS::clearSoundCallback() {
-// consolePrintf("Clearing sound callback");
-// DS::setSoundProc(NULL, NULL);
-}
-
-int OSystem_DS::getOutputSampleRate() const
-{
+int OSystem_DS::getOutputSampleRate() const {
return DS::getSoundFrequency();
}
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/osystem_ds.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -30,10 +30,13 @@
#include "gbampsave.h"
#include "backends/saves/default/default-saves.h"
#include "backends/timer/default/default-timer.h"
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
#include "graphics/surface.h"
-class DSAudioMixer : public Audio::Mixer {
+class DSAudioMixer : public Audio::MixerImpl {
+
+public:
+ DSAudioMixer(OSystem* system) : Audio::MixerImpl(system) { }
};
class DSTimerManager : public DefaultTimerManager {
@@ -62,7 +65,7 @@
Graphics::Surface* createTempFrameBuffer();
public:
- typedef void (*SoundProc)(void *param, byte *buf, int len);
+ typedef void (*SoundProc)(byte *buf, int len);
typedef int (*TimerProc)(int interval);
OSystem_DS();
@@ -114,7 +117,6 @@
virtual void unlockMutex(MutexRef mutex);
virtual void deleteMutex(MutexRef mutex);
- virtual void clearSoundCallback();
virtual int getOutputSampleRate() const;
virtual bool openCD(int drive);
@@ -147,6 +149,8 @@
virtual void unlockScreen();
virtual Audio::Mixer* getMixer() { return _mixer; }
+ Audio::MixerImpl* getMixerImpl() { return _mixer; }
+
virtual Common::TimerManager* getTimerManager() { return _timer; }
static int timerHandler(int t);
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/wordcompletion.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/wordcompletion.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/ds/arm9/source/wordcompletion.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -1,6 +1,6 @@
#include "wordcompletion.h"
-#include "engines/agi/agi.h"
#include "osystem_ds.h"
+#include "engines/agi/agi.h" // Caution for #define for NUM_CHANNELS, causes problems in mixer_intern.h
#ifdef ENABLE_AGI
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X 2008-07-14 00:10:09 UTC (rev 33051)
@@ -1,4 +1,4 @@
-ScummVM - GP2X SPECIFIC README - 0.10.0 SVN
+ScummVM - GP2X SPECIFIC README - HEAD SVN
------------------------------------------------------------------------
Contents:
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X.html
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X.html 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/README-GP2X.html 2008-07-14 00:10:09 UTC (rev 33051)
@@ -2,12 +2,15 @@
<html>
<head>
<title>ScummVM - GP2X SPECIFIC README</title>
+
+
</head>
<body>
-<span style="font-weight: bold;">ScummVM - GP2X SPECIFIC README - 0.10.0 SVN<br>
+<span style="font-weight: bold;">ScummVM -
+GP2X SPECIFIC README - HEAD SVN<br>
</span>
<hr style="width: 100%; height: 2px;"><br>
@@ -16,52 +19,65 @@
<ul>
- <li><a href="#About_the_backendport">About the backend/port</a></li>
+ <li><a href="#About_the_backendport">About the
+backend/port</a></li>
- <li><a href="#Game_compatibility">Game compatability</a></li>
+ <li><a href="#Game_compatibility">Game
+compatability</a></li>
<li><a href="#Included_engines">Included engines</a></li>
- <li><a href="#Supported_audio_options">Supported audio options</a></li>
+ <li><a href="#Supported_audio_options">Supported
+audio options</a></li>
- <li><a href="#Supported_cut-scene_options">Supported cut-scene options</a></li>
+ <li><a href="#Supported_cut-scene_options">Supported
+cut-scene options</a></li>
<li><a href="#Recent_changes">Recent changes</a></li>
<li><a href="#How_to_save">How to save</a></li>
- <li><a href="#Controller_mappings">Controller mappings</a></li>
+ <li><a href="#Controller_mappings">Controller
+mappings</a></li>
<li><a href="#Know_issues">Know issues</a></li>
<li><a href="#Major_TODOs">Major TODO's</a></li>
- <li><a href="#Additional_resourceslinks">Additional resources/links</a></li>
+ <li><a href="#Additional_resourceslinks">Additional
+resources/links</a></li>
<li><a href="#Credits">Credits</a></li>
</ul>
+
<br>
+
<hr style="width: 100%; height: 2px;"><a style="font-weight: bold;" name="About_the_backendport"></a><span style="font-weight: bold;">About the backend/port</span><br>
<br>
-This is the readme for the offficial GP2X ScummVM backend (also known as the GP2X port).<br>
+This is the readme for the offficial GP2X ScummVM backend (also known
+as the GP2X port).<br>
<br>
-This is an SVN test release of ScummVM for the GP2X, it would be appreciated
+This is an SVN test release of ScummVM for the GP2X, it would be
+appreciated
if this SVN test distribution was not mirrored and that people be
-directed to <a href="http://www.distant-earth.com/scummvm">http://www.distant-earth.com/scummvm</a> instead for updated SVN builds.<br>
+directed to <a href="http://www.distant-earth.com/scummvm">http://www.distant-earth.com/scummvm</a>
+instead for updated SVN builds.<br>
<br>
Full supported official releases of the GP2X ScummVM backend are made
-in line with main official releases and are avalalble from the <a href="http://www.scummvm.org/downloads.php">ScummVM downloads page</a>.<br>
+in line with main official releases and are avalalble from the <a href="http://www.scummvm.org/downloads.php">ScummVM
+downloads page</a>.<br>
<br>
-This build is in an active state of development and as such no ‘expected’ behavior can be guaranteed ;).<br>
+This build is in an active state of development and as such no
+‘expected’ behavior can be guaranteed ;).<br>
<br>
@@ -69,48 +85,60 @@
<br>
-Please refer to the <a href="http://forums.scummvm.org/viewforum.php?f=14">GP2X ScummVM forum</a> and <a href="http://wiki.scummvm.org/index.php/GP2X">WiKi</a> for the latest information on the port.<br>
+Please refer to the <a href="http://forums.scummvm.org/viewforum.php?f=14">GP2X
+ScummVM forum</a> and <a href="http://wiki.scummvm.org/index.php/GP2X">WiKi</a>
+for the latest information on the port.<br>
+
<br>
<hr style="width: 100%; height: 2px;"><a style="font-weight: bold;" name="Game_compatibility"></a><span style="font-weight: bold;">Game compatibility</span><br>
<br>
-For information on the compatability of a specific game please refer to the <a href="http://wiki.scummvm.org/index.php/GP2X#Compatibility_List">GP2X compatability section of the ScummVM WiKi</a>.<br>
+For information on the compatability of a specific game please refer to
+the <a href="http://wiki.scummvm.org/index.php/GP2X#Compatibility_List">GP2X
+compatability section of the ScummVM WiKi</a>.<br>
<br>
-Please note the version and date of the ScummVM build you are running when reviewing the above list.<br>
+Please note the version and date of the ScummVM build you are running
+when reviewing the above list.<br>
<br>
<hr style="width: 100%; height: 2px;"><a style="font-weight: bold;" name="Included_engines"></a><span style="font-weight: bold;">Included engines</span><br>
<br>
+
Just because an engine is included does not mean any/all of its games
are supported. Please check game compatability for more infomation.<br>
+
<ul>
- <li>
-Scumm - (All games supported by ScummVM should work to some extent, using the hardware scalar if needed)</li>
+
+ <li>Scumm - (All games supported by ScummVM should work to some
+extent, using the hardware scalar if needed)</li>
+
<li>AGOS (AKA Simon) - (Simon the Sorcerer one and two).</li>
+
<li>Sky - (Beneath a Steel Sky)</li>
- <li>
-Sword - (Broken Sword 1) - This engine uses the hardware scalar to
+
+ <li>Sword - (Broken Sword 1) - This engine uses the hardware
+scalar to
downsize the graphics to fix on the GP2X. It is NOT very nice to look
at.</li>
- <li>
-Sword2 - (Broken Sword 2) - This engine uses the hardware
+
+ <li>Sword2 - (Broken Sword 2) - This engine uses the hardware
scalar to downsize the graphics to fix on the GP2X. It is NOT very nice
to look at.</li>
- <li>
-Gob - (Goblins one)</li>
- <li>
-Queen - (Flight of the Amazon Queen)</li>
- <li>
-Kyra - (The Legend of Kyrandia)</li>
+
+ <li>Gob - (Goblins one)</li>
+
+ <li>Queen - (Flight of the Amazon Queen)</li>
+
+ <li>Kyra - (The Legend of Kyrandia)</li>
+
</ul>
-
All other game engines are disabled in this release.<br>
<br style="font-weight: bold;">
@@ -155,13 +183,18 @@
Enabled hardware scalar code.<br>
-Now built using SDL 1.2.9 for the parts of the port that use SDL (some parts now hit the hardware directly).<br>
+Now built using SDL 1.2.9 for the parts of the port that use SDL (some
+parts now hit the hardware directly).<br>
-Enabled new launcher - (Ensure defaulttheme.zip is in the same folder as the executable).<br>
+Enabled new launcher - (Ensure defaulttheme.zip is in the same folder
+as the executable).<br>
-Aspect Ratio Correction can now be disabled ‘per game’. When adding a game you can find this option on the GFX tab. <br>
+Aspect Ratio Correction can now be disabled ‘per
+game’. When adding a game you can find this option on the GFX
+tab. <br>
-Note: This will cause the game to run with a black border at the bottom as it will be rendered to a 320*200 frame.<br>
+Note: This will cause the game to run with a black border at the bottom
+as it will be rendered to a 320*200 frame.<br>
<br>
@@ -169,7 +202,9 @@
<br>
-<span style="font-weight: bold;">NOTE:</span> Everything is saved to the SD card, saves are stored in the <span style="font-weight: bold;">saves</span> folder under your main ScummVM executable unless you set another save location.<br>
+<span style="font-weight: bold;">NOTE:</span>
+Everything is saved to the SD card, saves are stored in the <span style="font-weight: bold;">saves</span> folder under
+your main ScummVM executable unless you set another save location.<br>
<br>
@@ -178,7 +213,8 @@
<br>
-The save process below is for Scumm engine games but the principle is the same for all.<br>
+The save process below is for Scumm engine games but the
+principle is the same for all.<br>
<br>
@@ -198,11 +234,13 @@
<br>
-Basically the emulated keys you can use are equivelent to the values buttons are mapped to, <br>
+Basically the emulated keys you can use are equivelent to the values
+buttons are mapped to, <br>
<br>
-I have a virtual keyboard like the GP32 one (left/right on the stick to pick chars) to add in at some point ;-)<br>
+I have a virtual keyboard like the GP32 one (left/right on the stick to
+pick chars) to add in at some point ;-)<br>
<br>
@@ -262,9 +300,11 @@
<br>
-Possible random crash (well SegFault). I have had this happen twice and have not tracked down the cause. <br>
+Possible random crash (well SegFault). I have had this happen twice and
+have not tracked down the cause. <br>
-It happens very infrequently, both times it was in the DOTT CD intro. Saving often is never a bad idea anyhow.<br>
+It happens very infrequently, both times it was in the DOTT CD intro.
+Saving often is never a bad idea anyhow.<br>
<br>
@@ -272,11 +312,14 @@
<br>
-Fix save support when using the Sky engine (Beneath a Steel Sky) - You CAN'T save at the moment but auto save works.<br>
+Fix save support when using the Sky engine (Beneath a Steel Sky) - You
+CAN'T save at the moment but auto save works.<br>
-Look into inconsistencies with AGOS engine and map Y key to a button combination to allow clean quitting (Simon 1/2).<br>
+Look into inconsistencies with AGOS engine and map Y key to a button
+combination to allow clean quitting (Simon 1/2).<br>
-Add splash-screen and pre-ScummVM config menu (CPU speed, LCD timings etc.) - Partly done.<br>
+Add splash-screen and pre-ScummVM config menu (CPU speed, LCD timings
+etc.) - Partly done.<br>
Fix TV out, maybe make it an option in the pre-ScummVM config menu.<br>
@@ -284,17 +327,29 @@
<br style="font-weight: bold;">
-<hr style="width: 100%; height: 2px;"><a style="font-weight: bold;" name="Additional_resourceslinks"></a><span style="font-weight: bold;">Additional resources/links</span><br>
+<hr style="width: 100%; height: 2px;"><a style="font-weight: bold;" name="Additional_resourceslinks"></a><span style="font-weight: bold;">Additional resources/links<br>
+<br>
+
+</span><span style="font-weight: bold;">Note:</span>
+When providing feedback,
+requests, forum posts, bug reports or anything like that always include
+a mention of the version of ScummVM you are using (the build version,
+date and time can be seen in the main game launcher window).<br>
+
<ul>
- <li><a href="http://wiki.scummvm.org/index.php/GP2X">ScummVM WiKi GP2X page</a></li>
+ <li><a href="http://wiki.scummvm.org/index.php/GP2X">ScummVM
+WiKi GP2X page</a></li>
- <li><a href="http://forums.scummvm.org/viewforum.php?f=14">ScummVM forums GP2X forum</a></li>
+ <li><a href="http://forums.scummvm.org/viewforum.php?f=14">ScummVM
+forums GP2X forum</a></li>
- <li><a href="http://www.distant-earth.com/scummvm">My own ScummVM page</a> (for SVN/test builds)</li>
+ <li><a href="http://www.distant-earth.com/scummvm">My
+own ScummVM page</a> (for SVN/test builds)</li>
- <li><a href="http://www.scummvm.org">Main ScummVM site</a> (for official supported release builds)</li>
+ <li><a href="http://www.scummvm.org">Main ScummVM
+site</a> (for official supported release builds)</li>
</ul>
Property changes on: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/build.sh
___________________________________________________________________
Name: svn:executable
+ *
Property changes on: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/bundle.sh
___________________________________________________________________
Name: svn:executable
+ *
Property changes on: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/clean.sh
___________________________________________________________________
Name: svn:executable
+ *
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/config.sh
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/config.sh 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/config.sh 2008-07-14 00:10:09 UTC (rev 33051)
@@ -17,7 +17,7 @@
# Edit the configure line to suit.
cd ../../../..
-./configure --backend=gp2x --disable-mt32emu --host=gp2x --disable-flac --disable-nasm --disable-hq-scalers --with-sdl-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin --with-mpeg2-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-tremor --with-tremor-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-zlib --with-zlib-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-mad --with-mad-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6
-#--enable-plugins
+./configure --backend=gp2x --disable-mt32emu --host=gp2x --disable-flac --disable-nasm --disable-hq-scalers --with-sdl-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin --with-mpeg2-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-tremor --with-tremor-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-zlib --with-zlib-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-mad --with-mad-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-made --enable-m4
+#--enable-plugins --default-dynamic
echo Generating config for GP2X complete. Check for errors.
Property changes on: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/config.sh
___________________________________________________________________
Name: svn:executable
+ *
Property changes on: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/build/scummvm.gpe
___________________________________________________________________
Name: svn:executable
+ *
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x-common.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x-common.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x-common.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -37,7 +37,7 @@
#include <SDL_gp2x.h>
namespace Audio {
- class Mixer;
+ class MixerImpl;
}
namespace Common {
@@ -128,12 +128,10 @@
virtual bool pollEvent(Common::Event &event); // overloaded by CE backend
// Set function that generates samples
- typedef void (*SoundProc)(void *param, byte *buf, int len);
- virtual bool setSoundCallback(SoundProc proc, void *param); // overloaded by CE backend
+ void setupMixer();
+ static void mixCallback(void *s, byte *samples, int len);
virtual Audio::Mixer *getMixer();
- void clearSoundCallback();
-
// Poll CD status
// Returns true if cd audio is playing
bool pollCD();
@@ -181,7 +179,6 @@
int getGraphicsMode() const;
bool openCD(int drive);
- int getOutputSampleRate() const;
bool hasFeature(Feature f);
void setFeatureState(Feature f, bool enable);
@@ -369,7 +366,7 @@
Common::SaveFileManager *_savefile;
FilesystemFactory *getFilesystemFactory();
- Audio::Mixer *_mixer;
+ Audio::MixerImpl *_mixer;
SDL_TimerID _timerID;
Common::TimerManager *_timer;
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/gp2x/gp2x.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -40,7 +40,7 @@
#include "backends/timer/default/default-timer.h"
#include "backends/plugins/posix/posix-provider.h"
#include "backends/fs/posix/posix-fs-factory.h" // for getFilesystemFactory()
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
#include <stdio.h>
#include <stdlib.h>
@@ -225,8 +225,7 @@
// Create and hook up the mixer, if none exists yet (we check for this to
// allow subclasses to provide their own).
if (_mixer == 0) {
- _mixer = new Audio::Mixer();
- setSoundCallback(Audio::Mixer::mixCallback, _mixer);
+ setupMixer();
}
// Create and hook up the timer manager, if none exists yet (we check for
@@ -445,47 +444,71 @@
#pragma mark --- Audio ---
#pragma mark -
-bool OSystem_GP2X::setSoundCallback(SoundProc proc, void *param) {
+void OSystem_GP2X::mixCallback(void *sys, byte *samples, int len) {
+ OSystem_GP2X *this_ = (OSystem_GP2X *)sys;
+ assert(this_);
+
+ if (this_->_mixer)
+ this_->_mixer->mixCallback(samples, len);
+}
+
+void OSystem_GP2X::setupMixer() {
SDL_AudioSpec desired;
SDL_AudioSpec obtained;
- memset(&desired, 0, sizeof(desired));
+ //memset(&desired, 0, sizeof(desired));
+ // Determine the desired output sampling frequency.
_samplesPerSec = 0;
-
if (ConfMan.hasKey("output_rate"))
_samplesPerSec = ConfMan.getInt("output_rate");
-
if (_samplesPerSec <= 0)
_samplesPerSec = SAMPLES_PER_SEC;
+
//Quick EVIL Hack - DJWillis
_samplesPerSec = 11025;
+ // Determine the sample buffer size. We want it to store enough data for
+ // about 1/16th of a second. Note that it must be a power of two.
+ // So e.g. at 22050 Hz, we request a sample buffer size of 2048.
+ int samples = 8192;
+ while (16 * samples >= _samplesPerSec) {
+ samples >>= 1;
+ }
+
+ memset(&desired, 0, sizeof(desired));
desired.freq = _samplesPerSec;
desired.format = AUDIO_S16SYS;
desired.channels = 2;
//desired.samples = (uint16)samples;
desired.samples = 128; // Samples hack
- desired.callback = proc;
- desired.userdata = param;
+ desired.callback = mixCallback;
+ desired.userdata = this;
+
+ // Create the mixer instance
+ assert(!_mixer);
+ _mixer = new Audio::MixerImpl(this);
+ assert(_mixer);
+
if (SDL_OpenAudio(&desired, &obtained) != 0) {
warning("Could not open audio device: %s", SDL_GetError());
- return false;
+ _samplesPerSec = 0;
+ _mixer->setReady(false);
+ } else {
+ // Note: This should be the obtained output rate, but it seems that at
+ // least on some platforms SDL will lie and claim it did get the rate
+ // even if it didn't. Probably only happens for "weird" rates, though.
+ _samplesPerSec = obtained.freq;
+ debug(1, "Output sample rate: %d Hz", _samplesPerSec);
+
+ // Tell the mixer that we are ready and start the sound processing
+ _mixer->setOutputRate(_samplesPerSec);
+ _mixer->setReady(true);
+ SDL_PauseAudio(0);
}
- _samplesPerSec = obtained.freq;
- SDL_PauseAudio(0);
- return true;
}
-void OSystem_GP2X::clearSoundCallback() {
- SDL_CloseAudio();
-}
-
-int OSystem_GP2X::getOutputSampleRate() const {
- return _samplesPerSec;
-}
-
Audio::Mixer *OSystem_GP2X::getMixer() {
assert(_mixer);
return _mixer;
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -1128,10 +1128,6 @@
return true;
}
-void OSystem_IPHONE::clearSoundCallback() {
- debug("clearSoundCallback()\n");
-}
-
int OSystem_IPHONE::getOutputSampleRate() const {
return AUDIO_SAMPLE_RATE;
}
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/iphone/osys_iphone.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -153,7 +153,6 @@
virtual void deleteMutex(MutexRef mutex);
virtual bool setSoundCallback(SoundProc proc, void *param);
- virtual void clearSoundCallback();
virtual int getOutputSampleRate() const;
virtual void setTimerCallback(TimerProc callback, int interval);
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/null/null.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/null/null.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/null/null.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -28,18 +28,37 @@
#if defined(USE_NULL_DRIVER)
+#ifdef UNIX
+#include <unistd.h>
+#include <sys/time.h>
+#endif
+
#include "common/rect.h"
#include "backends/saves/default/default-saves.h"
#include "backends/timer/default/default-timer.h"
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
+/*
+ * Include header files needed for the getFilesystemFactory() method.
+ */
+#if defined(__amigaos4__)
+ #include "backends/fs/amigaos4/amigaos4-fs-factory.h"
+#elif defined(UNIX)
+ #include "backends/fs/posix/posix-fs-factory.h"
+#elif defined(WIN32)
+ #include "backends/fs/windows/windows-fs-factory.h"
+#endif
+
+
+
class OSystem_NULL : public OSystem {
protected:
Common::SaveFileManager *_savefile;
- Audio::Mixer *_mixer;
+ Audio::MixerImpl *_mixer;
Common::TimerManager *_timer;
+ timeval _startTime;
public:
OSystem_NULL();
@@ -93,8 +112,6 @@
typedef void (*SoundProc)(void *param, byte *buf, int len);
virtual bool setSoundCallback(SoundProc proc, void *param);
- virtual void clearSoundCallback();
- virtual int getOutputSampleRate() const;
virtual void quit();
@@ -104,6 +121,8 @@
virtual Audio::Mixer *getMixer();
virtual void getTimeAndDate(struct tm &t) const;
virtual Common::TimerManager *getTimerManager();
+ FilesystemFactory *getFilesystemFactory();
+
};
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
@@ -124,9 +143,14 @@
void OSystem_NULL::initBackend() {
_savefile = new DefaultSaveFileManager();
- _mixer = new Audio::Mixer();
+ _mixer = new Audio::MixerImpl(this);
_timer = new DefaultTimerManager();
+ _mixer->setOutputRate(22050);
+ _mixer->setReady(false);
+
+ gettimeofday(&_startTime, NULL);
+
// Note that both the mixer and the timer manager are useless
// this way; they need to be hooked into the system somehow to
// be functional. Of course, can't do that in a NULL backend :).
@@ -245,10 +269,20 @@
}
uint32 OSystem_NULL::getMillis() {
+#ifdef UNIX
+ timeval curTime;
+ gettimeofday(&curTime, NULL);
+ return (uint32)(((curTime.tv_sec - _startTime.tv_sec) * 1000) + \
+ ((curTime.tv_usec - _startTime.tv_usec) / 1000));
+#else
return 0;
+#endif
}
void OSystem_NULL::delayMillis(uint msecs) {
+#ifdef UNIX
+ usleep(msecs * 1000);
+#endif
}
OSystem::MutexRef OSystem_NULL::createMutex(void) {
@@ -268,13 +302,6 @@
return true;
}
-void OSystem_NULL::clearSoundCallback() {
-}
-
-int OSystem_NULL::getOutputSampleRate() const {
- return 22050;
-}
-
void OSystem_NULL::quit() {
}
@@ -299,6 +326,19 @@
void OSystem_NULL::getTimeAndDate(struct tm &t) const {
}
+FilesystemFactory *OSystem_NULL::getFilesystemFactory() {
+ #if defined(__amigaos4__)
+ return &AmigaOSFilesystemFactory::instance();
+ #elif defined(UNIX)
+ return &POSIXFilesystemFactory::instance();
+ #elif defined(WIN32)
+ return &WindowsFilesystemFactory::instance();
+ #else
+ #error Unknown and unsupported backend in OSystem_NULL::getFilesystemFactory
+ #endif
+}
+
+
OSystem *OSystem_NULL_create() {
return new OSystem_NULL();
}
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/ps2/systemps2.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/ps2/systemps2.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/ps2/systemps2.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -727,7 +727,6 @@
driveStandby();
fio.umount("pfs0:");
}
- //clearSoundCallback();
//setTimerCallback(NULL, 0);
_screen->wantAnim(false);
_systemQuit = true;
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/psp/Makefile
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/psp/Makefile 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/psp/Makefile 2008-07-14 00:10:09 UTC (rev 33051)
@@ -2,10 +2,36 @@
# $URL$
# $Id$
+ENABLED=STATIC_PLUGIN
+
#control build
DISABLE_SCALERS = true
DISABLE_HQ_SCALERS = true
+ENABLE_SCUMM = $(ENABLED)
+ENABLE_SCUMM_7_8 = $(ENABLED)
+#ENABLE_HE = $(ENABLED)
+ENABLE_AGI = $(ENABLED)
+ENABLE_AGOS = $(ENABLED)
+#ENABLE_CINE = $(ENABLED)
+#ENABLE_CRUISE = $(ENABLED)
+ENABLE_DRASCULA = $(ENABLED)
+ENABLE_GOB = $(ENABLED)
+#ENABLE_IGOR = $(ENABLED)
+ENABLE_KYRA = $(ENABLED)
+ENABLE_LURE = $(ENABLED)
+#ENABLE_M4 = $(ENABLED)
+#ENABLE_MADE = $(ENABLED)
+#ENABLE_PARALLACTION = $(ENABLED)
+#ENABLE_QUEEN = $(ENABLED)
+#ENABLE_SAGA = $(ENABLED)
+ENABLE_SKY = $(ENABLED)
+ENABLE_SWORD1 = $(ENABLED)
+ENABLE_SWORD2 = $(ENABLED)
+#ENABLE_TINSEL = $(ENABLED)
+#ENABLE_TOUCHE = $(ENABLED)
+
+
srcdir = ../../..
VPATH = $(srcdir)
HAVE_GCC3 = false
@@ -63,6 +89,8 @@
kbd_l_c.o \
trace.o
+DEPDIR = .deps
+
include $(srcdir)/Makefile.common
PSP_EBOOT_SFO = param.sfo
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -34,7 +34,7 @@
#include "backends/timer/default/default-timer.h"
#include "graphics/surface.h"
#include "graphics/scaler.h"
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
#include <pspgu.h>
@@ -72,7 +72,7 @@
};
-OSystem_PSP::OSystem_PSP() : _screenWidth(0), _screenHeight(0), _overlayWidth(0), _overlayHeight(0), _offscreen(0), _overlayBuffer(0), _overlayVisible(false), _shakePos(0), _mouseBuf(0), _prevButtons(0), _lastPadCheck(0), _padAccel(0) {
+OSystem_PSP::OSystem_PSP() : _screenWidth(0), _screenHeight(0), _overlayWidth(0), _overlayHeight(0), _offscreen(0), _overlayBuffer(0), _overlayVisible(false), _shakePos(0), _mouseBuf(0), _prevButtons(0), _lastPadCheck(0), _padAccel(0), _mixer(0) {
memset(_palette, 0, sizeof(_palette));
@@ -99,11 +99,11 @@
void OSystem_PSP::initBackend() {
_savefile = new DefaultSaveFileManager();
- _mixer = new Audio::Mixer();
_timer = new DefaultTimerManager();
- setSoundCallback(Audio::Mixer::mixCallback, _mixer);
setTimerCallback(&timer_handler, 10);
+ setupMixer();
+
OSystem::initBackend();
}
@@ -586,7 +586,15 @@
SDL_DestroyMutex((SDL_mutex *)mutex);
}
-bool OSystem_PSP::setSoundCallback(SoundProc proc, void *param) {
+void OSystem_PSP::mixCallback(void *sys, byte *samples, int len) {
+ OSystem_PSP *this_ = (OSystem_PSP *)sys;
+ assert(this_);
+
+ if (this_->_mixer)
+ this_->_mixer->mixCallback(samples, len);
+}
+
+void OSystem_PSP::setupMixer(void) {
SDL_AudioSpec desired;
SDL_AudioSpec obtained;
@@ -613,29 +621,33 @@
desired.format = AUDIO_S16SYS;
desired.channels = 2;
desired.samples = samples;
- desired.callback = proc;
- desired.userdata = param;
+ desired.callback = mixCallback;
+ desired.userdata = this;
+
+ assert(!_mixer);
+ _mixer = new Audio::MixerImpl(this);
+ assert(_mixer);
+
if (SDL_OpenAudio(&desired, &obtained) != 0) {
- return false;
+ warning("Could not open audio: %s", SDL_GetError());
+ _samplesPerSec = 0;
+ _mixer->setReady(false);
+ } else {
+ // Note: This should be the obtained output rate, but it seems that at
+ // least on some platforms SDL will lie and claim it did get the rate
+ // even if it didn't. Probably only happens for "weird" rates, though.
+ _samplesPerSec = obtained.freq;
+
+ // Tell the mixer that we are ready and start the sound processing
+ _mixer->setOutputRate(_samplesPerSec);
+ _mixer->setReady(true);
+
+ SDL_PauseAudio(0);
}
- // Note: This should be the obtained output rate, but it seems that at
- // least on some platforms SDL will lie and claim it did get the rate
- // even if it didn't. Probably only happens for "weird" rates, though.
- _samplesPerSec = obtained.freq;
- SDL_PauseAudio(0);
- return true;
}
-void OSystem_PSP::clearSoundCallback() {
+void OSystem_PSP::quit() {
SDL_CloseAudio();
-}
-
-int OSystem_PSP::getOutputSampleRate() const {
- return _samplesPerSec;
-}
-
-void OSystem_PSP::quit() {
- clearSoundCallback();
SDL_Quit();
sceGuTerm();
sceKernelExitGame();
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/psp/osys_psp.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -26,6 +26,7 @@
#include "common/scummsys.h"
#include "common/system.h"
#include "graphics/surface.h"
+#include "sound/mixer_intern.h"
#include "backends/fs/psp/psp-fs-factory.h"
@@ -71,7 +72,7 @@
SceCtrlData pad;
Common::SaveFileManager *_savefile;
- Audio::Mixer *_mixer;
+ Audio::MixerImpl *_mixer;
Common::TimerManager *_timer;
public:
@@ -129,10 +130,8 @@
virtual void unlockMutex(MutexRef mutex);
virtual void deleteMutex(MutexRef mutex);
- typedef void (*SoundProc)(void *param, byte *buf, int len);
- virtual bool setSoundCallback(SoundProc proc, void *param);
- virtual void clearSoundCallback();
- virtual int getOutputSampleRate() const;
+ static void mixCallback(void *sys, byte *samples, int len);
+ virtual void setupMixer(void);
Common::SaveFileManager *getSavefileManager() { return _savefile; }
Audio::Mixer *getMixer() { return _mixer; }
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.cpp 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.cpp 2008-07-14 00:10:09 UTC (rev 33051)
@@ -30,7 +30,7 @@
#include "backends/saves/default/default-saves.h"
#include "backends/timer/default/default-timer.h"
-#include "sound/mixer.h"
+#include "sound/mixer_intern.h"
#include "icons/scummvm.xpm"
@@ -131,9 +131,7 @@
// Create and hook up the mixer, if none exists yet (we check for this to
// allow subclasses to provide their own).
if (_mixer == 0) {
- _mixer = new Audio::Mixer();
- bool result = setSoundCallback(Audio::Mixer::mixCallback, _mixer);
- _mixer->setReady(result);
+ setupMixer();
}
// Create and hook up the timer manager, if none exists yet (we check for
@@ -391,7 +389,15 @@
#pragma mark --- Audio ---
#pragma mark -
-bool OSystem_SDL::setSoundCallback(SoundProc proc, void *param) {
+void OSystem_SDL::mixCallback(void *sys, byte *samples, int len) {
+ OSystem_SDL *this_ = (OSystem_SDL *)sys;
+ assert(this_);
+
+ if (this_->_mixer)
+ this_->_mixer->mixCallback(samples, len);
+}
+
+void OSystem_SDL::setupMixer() {
SDL_AudioSpec desired;
SDL_AudioSpec obtained;
@@ -403,7 +409,7 @@
_samplesPerSec = SAMPLES_PER_SEC;
// Determine the sample buffer size. We want it to store enough data for
- // about 1/32th of a second. Note that it must be a power of two.
+ // about 1/16th of a second. Note that it must be a power of two.
// So e.g. at 22050 Hz, we request a sample buffer size of 2048.
int samples = 8192;
while (16 * samples >= _samplesPerSec) {
@@ -415,25 +421,32 @@
desired.format = AUDIO_S16SYS;
desired.channels = 2;
desired.samples = (uint16)samples;
- desired.callback = proc;
- desired.userdata = param;
+ desired.callback = mixCallback;
+ desired.userdata = this;
+
+ // Create the mixer instance
+ assert(!_mixer);
+ _mixer = new Audio::MixerImpl(this);
+ assert(_mixer);
+
if (SDL_OpenAudio(&desired, &obtained) != 0) {
warning("Could not open audio device: %s", SDL_GetError());
- return false;
+ _samplesPerSec = 0;
+ _mixer->setReady(false);
+ } else {
+ // Note: This should be the obtained output rate, but it seems that at
+ // least on some platforms SDL will lie and claim it did get the rate
+ // even if it didn't. Probably only happens for "weird" rates, though.
+ _samplesPerSec = obtained.freq;
+ debug(1, "Output sample rate: %d Hz", _samplesPerSec);
+
+ // Tell the mixer that we are ready and start the sound processing
+ _mixer->setOutputRate(_samplesPerSec);
+ _mixer->setReady(true);
+ SDL_PauseAudio(0);
}
- // Note: This should be the obtained output rate, but it seems that at
- // least on some platforms SDL will lie and claim it did get the rate
- // even if it didn't. Probably only happens for "weird" rates, though.
- _samplesPerSec = obtained.freq;
- debug(1, "Output sample rate: %d Hz", _samplesPerSec);
- SDL_PauseAudio(0);
- return true;
}
-int OSystem_SDL::getOutputSampleRate() const {
- return _samplesPerSec;
-}
-
Audio::Mixer *OSystem_SDL::getMixer() {
assert(_mixer);
return _mixer;
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.h 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/sdl/sdl.h 2008-07-14 00:10:09 UTC (rev 33051)
@@ -38,7 +38,7 @@
namespace Audio {
- class Mixer;
+ class MixerImpl;
}
namespace Common {
@@ -134,8 +134,9 @@
virtual bool pollEvent(Common::Event &event); // overloaded by CE backend
// Set function that generates samples
- typedef void (*SoundProc)(void *param, byte *buf, int len);
- virtual bool setSoundCallback(SoundProc proc, void *param); // overloaded by CE backend
+ virtual void setupMixer();
+ static void mixCallback(void *s, byte *samples, int len);
+
virtual Audio::Mixer *getMixer();
// Poll CD status
@@ -186,7 +187,6 @@
virtual void setWindowCaption(const char *caption);
virtual bool openCD(int drive);
- virtual int getOutputSampleRate() const;
virtual bool hasFeature(Feature f);
virtual void setFeatureState(Feature f, bool enable);
@@ -371,7 +371,7 @@
Common::SaveFileManager *_savefile;
- Audio::Mixer *_mixer;
+ Audio::MixerImpl *_mixer;
SDL_TimerID _timerID;
Common::TimerManager *_timer;
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/symbian/AdaptAllMMPs.pl
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/symbian/AdaptAllMMPs.pl 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/symbian/AdaptAllMMPs.pl 2008-07-14 00:10:09 UTC (rev 33051)
@@ -6,31 +6,37 @@
# list of project files to process
@mmp_files = (
- "mmp/scummvm_scumm.mmp",
- "mmp/scummvm_queen.mmp",
- "mmp/scummvm_agos.mmp",
- "mmp/scummvm_sky.mmp",
- "mmp/scummvm_gob.mmp",
- "mmp/scummvm_saga.mmp",
- "mmp/scummvm_kyra.mmp",
- "mmp/scummvm_sword1.mmp",
- "mmp/scummvm_sword2.mmp",
- "mmp/scummvm_lure.mmp",
- "mmp/scummvm_cine.mmp",
- "mmp/scummvm_agi.mmp",
- "mmp/scummvm_touche.mmp",
- "mmp/scummvm_parallaction.mmp",
- "mmp/scummvm_cruise.mmp",
- "mmp/scummvm_drascula.mmp",
- "mmp/scummvm_igor.mmp",
+
+ # Engine Project files
+ "mmp/scummvm_agi.mmp",
+ "mmp/scummvm_agos.mmp",
+ "mmp/scummvm_cine.mmp",
+ "mmp/scummvm_cruise.mmp",
+ "mmp/scummvm_drascula.mmp",
+ "mmp/scummvm_gob.mmp",
+ "mmp/scummvm_igor.mmp",
+ "mmp/scummvm_kyra.mmp",
+ "mmp/scummvm_lure.mmp",
+ "mmp/scummvm_m4.mmp",
"mmp/scummvm_made.mmp",
- "mmp/scummvm_m4.mmp",
- "S60/ScummVM_S60.mmp",
- "S60v3/ScummVM_S60v3.mmp",
- "S80/ScummVM_S80.mmp",
+ "mmp/scummvm_parallaction.mmp",
+ "mmp/scummvm_queen.mmp",
+ "mmp/scummvm_saga.mmp",
+ "mmp/scummvm_scumm.mmp",
+ "mmp/scummvm_sky.mmp",
+ "mmp/scummvm_sword1.mmp",
+ "mmp/scummvm_sword2.mmp",
+ "mmp/scummvm_touche.mmp",
+
+
+ # Target Platform Project Files
+ "S60/ScummVM_S60.mmp",
+ "S60v3/ScummVM_S60v3.mmp",
+ "S80/ScummVM_S80.mmp",
"S90/ScummVM_S90.mmp",
- "UIQ2/ScummVM_UIQ2.mmp",
- "UIQ3/ScummVM_UIQ3.mmp"
+ "UIQ2/ScummVM_UIQ2.mmp",
+ "UIQ3/ScummVM_UIQ3.mmp"
+
);
# do this first to set all *.mmp & *.inf files to *.*.in states
@@ -43,7 +49,7 @@
";
-# do this first so we have @DisableDefines for correct inclusion of SOURCE files later
+# do this first so we have @EnabledDefines and @DisabledDefines for correct inclusion of SOURCE files later
UpdateSlaveMacros();
print "
@@ -53,33 +59,40 @@
";
+
+# some modules.mk files have #ifndef ENABLE_XXXX blocks:
my @section_empty = (""); # section standard: no #ifdef's in module.mk files
-my @sections_scumm = ("", "DISABLE_SCUMM_7_8", "DISABLE_HE"); # special sections for engine SCUMM
+my @sections_scumm = ("", "ENABLE_SCUMM_7_8", "ENABLE_HE"); # special sections for engine SCUMM
+
# files excluded from build, case insensitive, will be matched in filename string only
-my @excludes_snd = (
- "mt32",
- "fluidsynth",
- "i386",
- "part.cpp",
- "partial.cpp",
- "partialmanager.cpp",
+my @excludes_snd = (
+ "mt32.*",
+ "fluidsynth.cpp",
+ "i386.cpp",
+ "part.*",
"synth.cpp",
"tables.cpp",
- "freeverb.cpp"
-);
+ "freeverb.cpp",
+ "rate.*" # not really needed, USE_ARM_SOUND_ASM currently not parsed correctly,
+ # "rate[_arm|_arm_asm].(cpp|s)" will be added later based on WINS/ARM build!
+ # These #defines for compile time are set in portdefs.h
+);
-my @excludes_graphics = (
-"iff.cpp"
-);
+my @excludes_graphics = (
+ "iff.cpp"
+);
+# the USE_ARM_* defines not parsed correctly, exclude manually:
my @excludes_scumm = (
- "codec47ARM.cpp",
- "gfxARM.cpp",
- "proc3arm.cpp"
+ ".*ARM.*", # the *ARM.s files are added in .mpp files based on WINS/ARM build!
+ # USE_ARM_SMUSH_ASM codec47ARM.s
+ # USE_ARM_GFX_ASM gfxARM.s
+ # USE_ARM_COSTUME_ASM proc3ARM.s compiled, linked?, but *not* used :P (portdefs.h)
);
-#arseModule(mmpStr, dirStr, ifdefArray, [exclusionsArray])
+
+#arseModule(mmpStr, dirStr, ifdefArray, [exclusionsArray])
ParseModule("_base", "base", \@section_empty); # now in ./TRG/ScummVM_TRG.mmp, these never change anyways...
ParseModule("_base", "common", \@section_empty);
ParseModule("_base", "gui", \@section_empty);
@@ -98,14 +111,14 @@
ParseModule("_sword2", "sword2", \@section_empty);
ParseModule("_lure", "lure", \@section_empty);
ParseModule("_cine", "cine", \@section_empty);
-ParseModule("_agi", "agi", \@section_empty);
+ParseModule("_agi", "agi", \@section_empty);
ParseModule("_touche", "touche", \@section_empty);
ParseModule("_parallaction","parallaction",\@section_empty);
ParseModule("_cruise", "cruise", \@section_empty);
ParseModule("_drascula","drascula", \@section_empty);
ParseModule("_igor", "igor", \@section_empty);
ParseModule("_made", "made", \@section_empty);
-ParseModule("_m4", "m4", \@section_empty);
+ParseModule("_m4", "m4", \@section_empty);
print "
=======================================================================================
Done. Enjoy :P
@@ -115,7 +128,7 @@
##################################################################################################################
##################################################################################################################
-# parses multiple sections per mmp/module
+# parses multiple sections per mmp/module
sub ParseModule
{
my ($mmp,$module,$sections,$exclusions) = @_;
@@ -140,7 +153,7 @@
if (-d $item)
{
#print "$item\n";
-
+
opendir DIR, $item;
#my @Files = readdir DIR;
my @Files = grep s/^([^\.].*)$/$1/, readdir DIR;
@@ -156,9 +169,10 @@
if (-f $item and $item =~ /.*\/module.mk$/)
{
my $sec = "";
+ my $isenable;
my $ObjectsSelected = 0;
my $ObjectsTotal = 0;
-
+
print "$item for section '$section' ... ";
open FILE, $item;
@@ -167,14 +181,24 @@
my $count = @lines;
print "$count lines";
-
+
A: foreach $line (@lines)
{
- # found a section? reset
+ # all things we need are inside #ifdef sections,
+ # there is nothing we need in #ifndef sections: so ignore these for now
+
+ # found a section? reset
+ if ($line =~ /^ifdef (.*)/)
+ {
+ $sec = $1;
+ $isenable = 1;
+ }
if ($line =~ /^ifndef (.*)/)
{
$sec = $1;
+ $isenable = 0;
}
+
# found an object? Not uncommented!
if (!($line =~ /^#/) && $line =~ s/\.o/.cpp/)
{
@@ -187,27 +211,47 @@
$line =~ s/ \\//; # remove possible trailing ' \'
$line =~ s/\//\\/g; # replace / with \
chop($line); # remove \n
-
+
# do we need to skip this file? According to our own @exclusions array
foreach $exclusion (@exclusions)
{
if ($line =~ /$exclusion/i)
{
- print "\n ! $line (excluded, \@exclusions[$exclusion])";
+ my $reason = "excluded, \@exclusions[$exclusion]";
+ print "\n ! $line ($reason)";
+ $output .= "//SOURCE $line ($reason)\n";
next A;
}
}
-
- # do we need to skip this file? According to MACROs in .MMPs
- foreach $DisableDefine (@DisableDefines)
+
+ # do we need to do this file? According to MACROs in .MMPs
+ my $found = 0;
+ foreach $EnableDefine (@EnabledDefines)
{
- if ($DisableDefine eq $section && $section ne '')
+ if (($EnableDefine eq $section) && ($section ne ''))
{
- print "\n !$line (excluded, MACRO $DisableDefine)";
- next A;
+ $found = 1;
+ last;
}
}
-
+ foreach $DisableDefine (@DisabledDefines)
+ {
+ if (($DisableDefine eq $section) && ($section ne ''))
+ {
+ $found = 0;
+ last;
+ }
+ }
+ # always allow non-sections
+ $found = 1 if ($section eq '');
+ if (!$found)
+ {
+ my $reason = "excluded, MACRO $section";
+ print "\n !$line ($reason)";
+ $output .= "//SOURCE $line ($reason)\n";
+ next A;
+ }
+
$ObjectsSelected++;
#print "\n $line";
$output .= "SOURCE $line\n";
@@ -230,7 +274,7 @@
my $updated = " Updated @ ".localtime();
my $name;
my @mmp_files_plus_one = @mmp_files;
- unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp";
+ unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp";
foreach $name (@mmp_files_plus_one)
{
@@ -239,23 +283,23 @@
open FILE, "$file";
my @lines = <FILE>;
close FILE;
-
+
my $onestr = join("", at lines);
-
+
if ($onestr =~ /$n/)
{
print " - $name @ $n updating ... ";
-
+
$onestr =~ s/$a.*$b/$a$updated\n$output$b/s;
open FILE, ">$file";
print FILE $onestr;
close FILE;
-
+
print "done.\n";
}
}
-
+
$output = "";
}
@@ -265,7 +309,7 @@
{
my $updated = " Updated @ ".localtime();
- my $name = "mmp/scummvm_base.mmp";
+ my $name = "mmp/scummvm_base.mmp";
my $file = "$buildDir/$name";
print "Reading master MACROS from backends/symbian/$name ... ";
@@ -279,7 +323,7 @@
my $b = "\/\/STOP_$n\/\/";
$onestr =~ /$a(.*)$b/s;
my $macros = $1;
-
+
my $libs_first = "\n// automagically enabled static libs from macros above\n";
my $libs_second = "STATICLIBRARY scummvm_base.lib // must be above USE_* .libs\n";
my $macro_counter = 0;
@@ -292,32 +336,45 @@
if ($line =~ /^.*MACRO\s*([0-9A-Z_]*)\s*\/\/\s*LIB\:(.*)$/)
{
my $macro = $1; my $lib = $2;
-
+
# this macro enabled? then also add the .lib
if ($line =~ /^\s*MACRO\s*$macro/m)
{
- # these are the USE_ libs
+ # add an USE_ lib? (these need to be added @ the beginning, before _base)
$libs_second .= "STATICLIBRARY $lib\n" if ($macro =~ /^USE_/);
+
+ # add an ENABLE_ lib? (these need to be added @ the end, after _base)
+ if ($macro =~ /^ENABLE_/)
+ {
+ $libs_first .= "STATICLIBRARY $lib\n";
+
+ # add projects for BLD.INF's
+ my $projectname = substr("$lib",0,-4);
+ $projects .= "..\\mmp\\$projectname.mmp\n";
+ }
}
else
{
- # these are the non DISABLED_ libs
- $libs_first .= "STATICLIBRARY $lib\n" if ($macro =~ /^DISABLE_/);
-
- # add projects for BLD.INF's
- my $projectname = substr("$lib",0,-4);
- $projects .= "..\\mmp\\$projectname.mmp\n" if ($macro =~ /^DISABLE_/);
+ # skip lines not beginning with "MACRO" (like "//MACRO")
}
$macro_counter++;
}
+
# not commented out? then add the macro to output string
if ($line =~ /^\s*MACRO\s*([0-9A-Z_]*)\s*/)
{
my $macro = $1;
$macros2 .= "$line\n";
- push @DisableDefines, $macro; # used in CheckForModuleMK()!!
+ if ($macro =~ /^ENABLE_/)
+ {
+ push @EnabledDefines, $macro; # used in CheckForModuleMK()!!
+ }
+ elsif ($macro =~ /^DISABLE_/)
+ {
+ push @DisabledDefines, $macro; # used in CheckForModuleMK()!!
+ }
}
- }
+ }
print "$macro_counter macro lines.\n";
@@ -328,23 +385,23 @@
$m = "AUTO_PROJECTS";
$p = "\/\/START_$m\/\/";
$q = "\/\/STOP_$m\/\/";
-
+
foreach $name (@mmp_files)
{
$file = "$buildDir/$name";
$fileBLDINF = $buildDir .'/'. substr($name, 0, rindex($name, "/")) . "/BLD.INF";
print "Updating macros in $file ... ";
#print "Updating macros in backends/symbian/$name ... ";
-
+
open FILE, "$file"; @lines = <FILE>; close FILE;
$onestr = join("", at lines);
-
+
my $extralibs = ""; # output
# slash in name means it's a phone specific build file: add LIBs
$extralibs .= "$libs_first$libs_second" if (-e $fileBLDINF);
-
+
$onestr =~ s/$a.*$b/$a$updated$macros2$extralibs$b/s;
-
+
open FILE, ">$file"; print FILE $onestr; close FILE;
my $count = @lines;
@@ -358,13 +415,13 @@
open FILE, "$fileBLDINF"; @lines = <FILE>; close FILE;
$onestr = join("", at lines);
-
+
$onestr =~ s/$p.*$q/$p$updated$projects$q/s;
-
+
open FILE, ">$fileBLDINF"; print FILE $onestr; close FILE;
}
}
-}
+}
##################################################################################################################
@@ -372,10 +429,10 @@
{
my $onestr, @lines;
my @mmp_files_plus_one = @mmp_files;
-# unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp";
-
+# unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp";
+
print "Resetting project files: ";
-
+
# we don't need to do mmp/scummvm_base.mmp", it was done in BuildPackageUpload.pl before the call to this script
foreach $name (@mmp_files_plus_one)
{
@@ -395,7 +452,7 @@
$onestr = join("", at lines);
open FILE, ">$fileBLDINF"; print FILE $onestr; close FILE;
}
- }
+ }
print "... done.\n";
}
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_AllVersions.pl 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_AllVersions.pl 2008-07-14 00:10:09 UTC (rev 33051)
@@ -8,6 +8,7 @@
##################################################################################################################
# prep some vars
+# the dir containing the build files: '.\backends\platforms\symbian\$SDK_BuildDir\'
$SDK_BuildDirs{'UIQ2'} = "UIQ2";
$SDK_BuildDirs{'UIQ3'} = "UIQ3";
$SDK_BuildDirs{'S60v1'} = "S60";
@@ -16,6 +17,7 @@
$SDK_BuildDirs{'S80'} = "S80";
$SDK_BuildDirs{'S90'} = "S90";
+# the target name inserted here: 'abld BUILD $SDK_TargetName UREL'
$SDK_TargetName{'UIQ2'} = "armi";
$SDK_TargetName{'UIQ3'} = "gcce";
$SDK_TargetName{'S60v1'}= "armi";
@@ -24,6 +26,7 @@
$SDK_TargetName{'S80'} = "armi";
$SDK_TargetName{'S90'} = "armi";
+# Binaries are installed here: '$SDK_RootDirs\epoc32\release\$SDK_TargetDir\urel\'
$SDK_TargetDir{'UIQ2'} = "armi";
$SDK_TargetDir{'UIQ3'} = "armv5";
$SDK_TargetDir{'S60v1'} = "armi";
@@ -34,11 +37,11 @@
$build_dir = getcwd();
$output_dir = "$build_dir/Packages";
-chdir("../../");
+chdir("../../../");
$base_dir = getcwd();
chdir($build_dir);
-$build_log_out = "$build_dir/Build.out.log";
-$build_log_err = "$build_dir/Build.err.log";
+$build_log_out = "$build_dir/out.build.out.log"; # don't start these files with "Build"
+$build_log_err = "$build_dir/out.build.err.log"; # so "B"+TAB completion works in 1 go :P
$initial_path = $ENV{'PATH'}; # so we can start with a fresh PATH for each Build
@@ -54,14 +57,27 @@
@ErrorMessages = ();
$ftp_url = "FTP://$FTP_User\@$FTP_Host/$FTP_Dir/";
-$ExtraMacros = "MACRO NONSTANDARD_PORT\n";
-$ExtraMacros .= "MACRO DISABLE_FANCY_THEMES\n";
+# these macros are always defined:
+$ExtraMacros = "MACRO NONSTANDARD_PORT\n";
+$ExtraMacros .= "MACRO DISABLE_FANCY_THEMES\n";
+$ExtraMacros .= "MACRO DISABLE_SCALERS\n";
+$ExtraMacros .= "MACRO DISABLE_HQ_SCALERS\n";
# prep nice list of SDKs
#while( ($SDK, $RootDir) = each(%SDK_RootDirs) )
foreach $SDK (sort keys(%SDK_RootDirs))
{
- $SDKs .= "$SDK\t$SDK_RootDirs{$SDK}\n\t\t\t";
+ # see if it exists!
+ if (-d $SDK_RootDirs{$SDK})
+ {
+ $SDKs .= "$SDK\t$SDK_RootDirs{$SDK}\n\t\t\t";
+ }
+ else # missing?
+ {
+ $SDKs .= "$SDK\t$SDK_RootDirs{$SDK}\t[MISSING: Skipping!]\n\t\t\t";
+ # remove it from array, to prevent building!
+ delete $SDK_RootDirs{$SDK};
+ }
}
# prep nice list of Libraries
@@ -69,7 +85,16 @@
{
while( ($Library, $Path) = each(%{$SDK_LibraryDirs{$SDK}}) )
{
- $PresentLibs{$Library} = $Path;
+ # maybe it's already been built?
+ if (-e $SDK_RootDirs{$SDK}."\\epoc32\\release\\$SDK_TargetDir{$SDK}\\urel\\$Library")
+ {
+ $PresentLibs{$Library} = "$Path [EXISTS: Skipping!]";
+ delete $SDK_LibraryDirs{$SDK}{$Library};
+ }
+ else # make it!
+ {
+ $PresentLibs{$Library} = "$Path";
+ }
}
}
foreach $Library (sort keys(%PresentLibs))
@@ -78,10 +103,37 @@
}
# prep nice list of Variations
-while( ($SDK, $Value) = each(%SDK_Variations) )
+#while( ($SDK, $Value) = each(%SDK_Variations) )
+#{
+# while( ($Variation, $Value2) = each(%{$SDK_Variations{$SDK}}) )
+# {
+# $Extra = ($Variation ne '' ? "_$Variation" : "");
+# if ($SDK eq "ALL")
+# {
+# while( ($SDK2, $RootDir) = each(%SDK_RootDirs) )
+# {
+# if ($SDK_RootDirs{$SDK2} ne '') # is this SDK listed as installed? (fails silently)
+# {
+# push @Packages, sprintf($file_tpl_sis, $version_tpl_sis, $SDK2, $Extra);
+# $PackagesQueued++;
+# }
+# }
+# }
+# else
+# {
+# if ($SDK_RootDirs{$SDK} ne '') # is this SDK listed as installed? (fails silently)
+# {
+# push @Packages, sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra);
+# $PackagesQueued++;
+# }
+# }
+# }
+#}
+while( ($SDK, $Value) = each(%VariationSets) )
{
- while( ($Variation, $Value2) = each(%{$SDK_Variations{$SDK}}) )
+ while( ($Variation, $FeaturesBlock) = each(%{$VariationSets{$SDK}}) )
{
+#my $MacroBlock = &MakeMppMacroDefs($FeaturesBlock);
$Extra = ($Variation ne '' ? "_$Variation" : "");
if ($SDK eq "ALL")
{
@@ -92,7 +144,7 @@
push @Packages, sprintf($file_tpl_sis, $version_tpl_sis, $SDK2, $Extra);
$PackagesQueued++;
}
- }
+ }
}
else
{
@@ -118,7 +170,7 @@
SDKs inst'd \t$SDKs ".( %SDK_LibraryDirs ? "
LIBs inst'd \t$LIBs " : "" )."
- $PackagesQueued Variations \t$PackagesStr
+ $PackagesQueued Variations \t$PackagesStr
DIR base \t$base_dir
build \t$build_dir
output \t$output_dir
@@ -126,7 +178,7 @@
FTP host \t$FTP_Host
user \t$FTP_User
pass \t"."*" x length($FTP_Pass)."
- dir \t$FTP_Dir
+ dir \t$FTP_Dir
" : "" )."
=======================================================================================
Press Ctrl-C to abort or enter to continue Build, Package & Upload $PackagesQueued Variations...
@@ -142,7 +194,7 @@
unlink($build_log_err);
# init _base.mmp now, so we can start changing it without affecting the CVS version _base.mmp.in!
-my $name = "mmp/scummvm_base.mmp";
+my $name = "mmp/scummvm_base.mmp";
my $file = "$build_dir/$name";
open FILE, "$file.in"; @lines = <FILE>; close FILE;
my $onestr = join("", at lines);
@@ -161,15 +213,21 @@
{
if ($SDK_RootDirs{$SDK2} ne '') # is this SDK listed as installed? (fails silently)
{
+ # do we already have this one?
+ next if (-e $SDK_RootDirs{$SDK2}."\\epoc32\\release\\$SDK_TargetDir{$SDK2}\\urel\\$Library");
+
$LibrariesQueued++;
DoLibrary($SDK2, $Library, $Path);
}
- }
+ }
}
else
{
if ($SDK_RootDirs{$SDK} ne '') # is this SDK listed as installed? (fails silently)
{
+ # do we already have this one?
+ next if (-e $SDK_RootDirs{$SDK}."\\epoc32\\release\\$SDK_TargetDir{$SDK}\\urel\\$Library");
+
$LibrariesQueued++;
DoLibrary($SDK, $Library, $Path);
}
@@ -194,8 +252,33 @@
{
DoVariation($SDK2, $Variation, $MacroBlock);
}
+ }
+ }
+ else
+ {
+ if ($SDK_RootDirs{$SDK} ne '')
+ {
+ DoVariation($SDK, $Variation, $MacroBlock);
}
}
+ }
+}
+
+while( ($SDK, $VariationsHash) = each(%VariationSets) )
+{
+ while( ($Variation, $FeaturesBlock) = each(%{$VariationSets{$SDK}}) )
+ {
+ my $MacroBlock = &MakeMppMacroDefs($FeaturesBlock);
+ if ($SDK eq "ALL")
+ {
+ while( ($SDK2, $RootDir) = each(%SDK_RootDirs) )
+ {
+ if ($SDK_RootDirs{$SDK2} ne '')
+ {
+ DoVariation($SDK2, $Variation, $MacroBlock);
+ }
+ }
+ }
else
{
if ($SDK_RootDirs{$SDK} ne '')
@@ -248,7 +331,81 @@
##################################################################################################################
##################################################################################################################
-# Build, Package & Upload a single Variation
+# create a set of "MACRO xxx" definitions for use in the scummvm_base.mpp file
+sub MakeMppMacroDefs
+{
+ my ($features) = @_;
+
+ my %EnabledFeatures = ();
+ foreach (split(/\W|\r|\n/, $features))
+ {
+ if ($_ ne "")
+ {
+ #print "FEATURE: $_\n";
+ $EnabledFeatures{$_} = 1;
+ }
+ }
+
+ my $MacroDefs = "";
+
+ $MacroDefs .= " // Features //\n";
+ foreach my $e (sort keys %UseableFeatures)
+ {
+ my $E = uc($e);
+ if ($EnabledFeatures{$e})
+ {
+ $MacroDefs .= "MACRO USE_$E // LIB:$UseableFeatures{$e}\n";
+ # this one is used: remove it now
+ delete $EnabledFeatures{$e};
+ # this will leave us with a list of unparsed options!
+ }
+ else
+ {
+ $MacroDefs .= "//MACRO USE_$E\n";
+ }
+ }
+
+ $MacroDefs .= " // Engines //\n";
+ foreach my $e (sort @EnablableEngines)
+ {
+ my $E = uc($e);
+ if ($EnabledFeatures{$e})
+ {
+ $MacroDefs .= "MACRO ENABLE_$E // LIB:scummvm_$e.lib\n";
+ # this one is used: remove it now
+ delete $EnabledFeatures{$e};
+ # this will leave us with a list of unparsed options!
+ }
+ else
+ {
+ $MacroDefs .= "//MACRO ENABLE_$E\n";
+ }
+ }
+
+ $MacroDefs .= " // SubEngines //\n";
+ foreach my $e (sort @EnablableSubEngines)
+ {
+ my $E = uc($e);
+ if ($EnabledFeatures{$e})
+ {
+ $MacroDefs .= "MACRO ENABLE_$E\n";
+ # this one is used: remove it now
+ delete $EnabledFeatures{$e};
+ # this will leave us with a list of unparsed options!
+ }
+ else
+ {
+ $MacroDefs .= "//MACRO ENABLE_$E\n";
+ }
+ }
+
+#print "\n\n'$features' ==> $MacroDefs\n\n\n";
+ return $MacroDefs;
+}
+
+##################################################################################################################
+
+# Build, Package & Upload a single Variation
sub DoLibrary
{
my ($SDK, $Library, $Path) = @_;
@@ -278,19 +435,19 @@
my $OK = 1;
PrepSdkPaths($SDK);
-
+
chdir($Path) or $OK=0;
PrintErrorMessage("Changing to $Path failed!") if (!$OK);
- return 0 if (!$OK);
+ return 0 if (!$OK);
PrintMessage("Cleaning for $Target") if (!$ReallyQuiet);
system("bldmake bldfiles > NUL 2> NUL");
PrintErrorMessage("'bldmake bldfiles' exited with value " . ($? >> 8)) if ($? >> 8);
- system("abld clean $TargetName urel > NUL 2> NUL");
- PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8);
+ system("abld CLEAN $TargetName UREL > NUL 2> NUL");
+ PrintErrorMessage("'abld CLEAN $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8);
# remove file so we are sure that after .lib generation we have a fresh copy!
if (-e $TargetFilePath) { unlink($TargetFilePath) or PrintErrorMessage("Removing $TargetFilePath"); }
-
+
my $Redirection = "OUT:file, ERR:".($RedirectSTDERR ? "file" : "screen");
my $Message = "Building $Target ($Redirection)";
PrintMessage($Message) if (!$ReallyQuiet);
@@ -298,18 +455,18 @@
my $OldSize = (-s $build_log_err);
$Redirection = ($RedirectSTDERR ? "2>> $build_log_err" : "");
- system("abld build $TargetName urel $Redirection >> $build_log_out");
+ system("abld BUILD $TargetName UREL $Redirection >> $build_log_out");
$OK = 0 if ($? >> 8);
# print " STDERR: ".((-s $build_log_err)-$OldSize)." bytes output written to $build_log_err\n+--------------------------------------------------------------------------------------\n" if ($OldSize != (-s $build_log_err));
- PrintErrorMessage("'abld build $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8);
- return 0 if (!$OK); # ABLD always returns ok :( grr
+ PrintErrorMessage("'abld BUILD $TargetName UREL' exited with value " . ($? >> 8)) if ($? >> 8);
+ return 0 if (!$OK); # ABLD always returns ok :( grr
PrintMessage("Done.") if (!$ReallyQuiet);
# did it work? :)
if (-e $TargetFilePath)
{
$LibrariesSucceeded++;
-
+
if ($TargetIntermediatePath ne '' && $TargetIntermediatePath =~ /\\EPOC32\\BUILD\\/i) # make really sure it's a valid path!
{
system("del /S /Q $TargetIntermediatePath > NUL");
@@ -318,9 +475,9 @@
}
else
{
- PrintErrorMessage("'abld build $TargetName urel' apparently failed.");
+ PrintErrorMessage("'abld BUILD $TargetName UREL' apparently failed.");
if ($HaltOnError)
- {
+ {
PrintErrorMessage("Halting on error as requested!");
exit 1;
}
@@ -330,12 +487,12 @@
##################################################################################################################
-# Build, Package & Upload a single Variation
+# Build, Package & Upload a single Variation
sub DoVariation
{
my ($SDK, $Variation, $MacroBlock) = @_;
my $Extra = ($Variation ne '' ? "_$Variation" : "");
- my $Package = sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra);
+ my $Package = sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra);
if ($SkipExistingPackages && -f "$output_dir/$Package")
{
@@ -366,7 +523,7 @@
if ($OK)
{
$OK = BuildVariation($SDK, $Variation, $Package, $MacroBlock);
-
+
if ($OK && $FTP_Host ne '')
{
UploadVariation($SDK, $Variation, $Package);
@@ -382,17 +539,17 @@
my $OK = 1;
PrepSdkPaths($SDK);
-
+
chdir($build_dir) or $OK=0;
PrintErrorMessage("Changing to $build_dir failed!") if (!$OK);
- return 0 if (!$OK);
+ return 0 if (!$OK);
# insert $MacroBlock into AUTO_MACRO_MASTER in scummvm_base.mmp
PrintMessage("Setting new AUTO_MACROS_MASTER in scummvm_base.mmp for '$Variation'") if (!$ReallyQuiet);
my $n = "AUTO_MACROS_MASTER";
my $a = "\/\/START_$n\/\/";
my $b = "\/\/STOP_$n\/\/";
- my $name = "scummvm_base.mmp";
+ my $name = "scummvm_base.mmp";
my $file = "$build_dir/mmp/$name";
my $updated = " Updated @ ".localtime();
@@ -401,11 +558,11 @@
return 0 if (!$OK);
my @lines = <FILE>;
close FILE;
-
+
my $onestr = join("", at lines);
$MacroBlock =~ s/^\s*//gm;
$onestr =~ s/$a(.*)$b/$a$updated\n$ExtraMacros$MacroBlock$b/s;
-
+
open FILE, ">$file" or $OK=0;
PrintErrorMessage("Writing file '$file'") if (!$OK);
return 0 if (!$OK);
@@ -418,7 +575,7 @@
$OK = 0 if ($? >> 8);
PrintErrorMessage("'AdaptAllMMPs.pl' exited with value " . ($? >> 8)) if ($? >> 8);
return 0 if (!$OK);
-
+
# we are here: so all is ok :)
return 1;
}
@@ -431,7 +588,7 @@
my $TargetName = $SDK_TargetName{$SDK};
my $TargetDir = $SDK_TargetDir{$SDK};
my $OK = 1;
-
+
my $dir = $build_dir."/".$SDK_BuildDirs{$SDK};
$dir =~ s#/#\\#g;
chdir($dir);
@@ -449,13 +606,15 @@
if (-e $UnlinkFile) { unlink($UnlinkFile) or PrintErrorMessage("Removing $UnlinkFile"); }
$UnlinkFile = $SDK_RootDirs{$SDK}."/epoc32/release/$TargetDir/urel/ScummVM.exe";
if (-e $UnlinkFile) { unlink($UnlinkFile) or PrintErrorMessage("Removing $UnlinkFile"); }
+ # remove all libs here, note they are in another dir!
+ system("del ".$SDK_RootDirs{$SDK}."/epoc32/release/$TargetName/urel/scummvm_*.lib");
system("bldmake bldfiles 2> NUL > NUL");
PrintErrorMessage("'bldmake bldfiles' exited with value " . ($? >> 8)) if ($? >> 8);
- system("abld clean $TargetName urel 2> NUL > NUL");
- PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8);
-
+ system("abld CLEAN $TargetName UREL 2> NUL > NUL");
+ PrintErrorMessage("'abld CLEAN $TargetName UREL' exited with value " . ($? >> 8)) if ($? >> 8);
+
my $Redirection = "OUT:file, ERR:".($RedirectSTDERR ? "file" : "screen");
my $Message = "Building $Package ($Redirection)";
PrintMessage($Message) if (!$ReallyQuiet);
@@ -463,11 +622,11 @@
my $OldSize = (-s $build_log_err);
$Redirection = ($RedirectSTDERR ? "2>> $build_log_err" : "");
- system("abld build $TargetName urel $Redirection >> $build_log_out");
+ system("abld BUILD $TargetName UREL $Redirection >> $build_log_out");
$OK = 0 if ($? >> 8);
print " STDERR: ".((-s $build_log_err)-$OldSize)." bytes output written to $build_log_err\n+--------------------------------------------------------------------------------------\n" if ($OldSize != (-s $build_log_err) && !$ReallyQuiet);
- PrintErrorMessage("'abld build $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8);
- return 0 if (!$OK); # ABLD always returns ok :( grr
+ PrintErrorMessage("'abld BUILD $TargetName UREL' exited with value " . ($? >> 8)) if ($? >> 8);
+ return 0 if (!$OK); # ABLD always returns ok :( grr
PrintMessage("Done.") if (!$ReallyQuiet);
# do we have an override suffix for the package name?
@@ -491,7 +650,7 @@
if (-e "$output_dir/$Package")
{
$PackagesCreated++;
-
+
if ($TargetIntermediatePath ne '' && $TargetIntermediatePath =~ /\\EPOC32\\BUILD\\/i) # make really sure it's a valid path!
{
#PrintMessage("Cleaning $TargetIntermediatePath");
@@ -514,7 +673,7 @@
use Net::FTP;
my $newerr;
-
+
PrintMessage("Connecting to FTP $FTP_Host") if (!$ReallyQuiet);
$ftp = Net::FTP->new($FTP_Host,Timeout=>240) or $newerr=1;
@@ -529,7 +688,7 @@
{
PrintMessage("Changing to dir $FTP_Dir");
$ftp->cwd($FTP_Dir) or $newerr=1;
-
+
if ($newerr)
{
PrintErrorMessage("Changing to dir $FTP_Dir! Aborting!");
@@ -541,20 +700,20 @@
# leave this for possible auto-deletion of old files?
# @files = $ftp->dir or $newerr=1;
# push @ERRORS, "Can't get file list $!\n" if $newerr;
-# print "Got file list\n";
+# print "Got file list\n";
# foreach(@files) {
# print "$_\n";
# }
-
+
PrintMessage("Uploading $Package (".(-s "$output_dir/$Package")." bytes)");
-
+
$ftp->binary;
$ftp->put("$output_dir/$Package") or $newerr=1;
PrintErrorMessage("Uploading package! Aborting!") if $newerr;
$PackagesUploaded++ if (!$newerr);
- }
+ }
- $ftp->quit;
+ $ftp->quit;
}
}
@@ -574,6 +733,7 @@
# set env stuff
PrintMessage("Prepending $SDK specific paths to %PATH%") if (!$ReallyQuiet);
+ $AdditionalPathEntries .= "$SDK_ToolchainDirs{$SDK};" if ($SDK_ToolchainDirs{$SDK} ne '');
$AdditionalPathEntries .= "$ECompXL_BinDir;" if ($ECompXL_BinDir ne '' && $SDK eq 'UIQ2');
$AdditionalPathEntries .= "$EPOC32RT\\include;";
$AdditionalPathEntries .= "$EPOC32RT\\tools;";
@@ -594,7 +754,7 @@
{
$path =~ s/\"\Q$ECompXL_BinDir\E\";//g;
}
-
+
while( ($SDK, $RootDir) = each(%SDK_RootDirs) )
{
if ($SDK_RootDirs{$SDK} ne '')
@@ -602,8 +762,8 @@
my $path_component = "\"".$SDK_RootDirs{$SDK}."\\epoc32\\";
$path =~ s/\Q$path_component\E.*?\";//g;
}
- }
-
+ }
+
return $path;
}
@@ -634,4 +794,5 @@
}
##################################################################################################################
+
Modified: scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl
===================================================================
--- scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl 2008-07-13 22:49:05 UTC (rev 33050)
+++ scummvm/branches/gsoc2008-rtl/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl 2008-07-14 00:10:09 UTC (rev 33051)
@@ -1,75 +1,119 @@
##################################################################################################################
- # you can use these below for speed & clarity or override with custom settings
- $DefaultTopMacros = "
- MACRO USE_ZLIB // LIB:zlib.lib
- MACRO USE_MAD // LIB:libmad.lib
- MACRO USE_TREMOR // LIB:libtremor.lib
- ";
+ @WorkingEngines = qw(
+ scumm agos sky queen gob saga
+ kyra lure agi
+ );
+ @TestingEngines = qw(
+ cine cruise touche parallaction
+ drascula igor made m4
+ );
+ @BrokenEngines = qw(
+ sword1
+ sword2
+ );
- $DefaultBottomMacros = "
- MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib
- MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib
- ";
+ @EnablableEngines = (@WorkingEngines, @TestingEngines);
+ @EnablableSubEngines = qw(
+ scumm_7_8
+ he
+ );
+
+ %UseableFeatures = (
+ 'zlib' => 'zlib.lib',
+ 'mad' => 'libmad.lib',
+ 'tremor' => 'libtremor.lib',
+ 'mpeg2' => 'libmpeg2.lib'
+ );
+
+ # these are normally enabled for each variation
+ $DefaultFeatures = qw(zlib tremor);
+ #$DefaultFeatures = qw(zlib mad tremor);
+
+
+ # you can use these below for speed & clarity or override with custom settings
+ $DefaultTopMacros = "
+ MACRO USE_ZLIB // LIB:zlib.lib
+ //MACRO USE_MAD // LIB:libmad.lib
+ MACRO USE_TREMOR // LIB:libtremor.lib
+ ";
+
+ $DefaultBottomMacros = "
+ MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib
+ MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib
+ ";
+
+##################################################################################################################
##
- ## General system information:
+ ## General system information, based on $COMPUTERNAME, so this way
+ ## you can use the same LocalSettings.pl file on multiple machines!
##
+##################################################################################################################
- # this way you can use the same LocalSettings.pl file on multiple machines!
- if ($ENV{'COMPUTERNAME'} eq "BRAAMBOOK")
+ if ($ENV{'COMPUTERNAME'} eq "PC-21") #########################################################################
{
# might use this string for file/dir naming in the future :)
$Producer = "SumthinWicked";
$RedirectSTDERR = 0;
- $HaltOnError = 1;
+ $HaltOnError = 0;
$SkipExistingPackages = 0;
$ReallyQuiet = 0;
-
+ $DevBase = "C:\\S";
+
# specify an optional FTP server to upload to after each Build+Package (can leave empty)
- #$FTP_Host = "host.domain";
- #$FTP_User = "test";
- #$FTP_Pass = "test";
- #$FTP_Dir = "test";
-
#$FTP_Host = "host.com";
$FTP_User = "something";
$FTP_Pass = "password";
$FTP_Dir = "cvsbuilds";
-
+
+ # What Platform SDKs are installed on this machine?
# possible SDKs: ("UIQ2", UIQ3", "S60v1", "S60v2", "S60v3", "S80", "S90")
# Note1: the \epoc32 directory needs to be in these rootdirs
# Note2: these paths do NOT end in a backslash!
- $SDK_RootDirs{'UIQ2'} = "C:\\S\\UIQ_21";
- $SDK_RootDirs{'S60v1'} = "C:\\S\\S60v1";
- $SDK_RootDirs{'S60v2'} = "C:\\S\\S60v2";
- $SDK_RootDirs{'S80'} = "C:\\S\\S80";
- $SDK_RootDirs{'S90'} = "C:\\S\\S90";
- $ECompXL_BinDir = "C:\\S\\ECompXL\\bin"; # only needed for UIQ
- # you need to specify each of the SDKs used in the blocks below!
+ # $SDK_RootDirs{'UIQ2'} = "$DevBase\\UIQ_21";
+ $SDK_RootDirs{'UIQ3'} = "$DevBase\\UIQ3";
+ # $SDK_RootDirs{'S60v1'} = "$DevBase\\S60v1";
+ # $SDK_RootDirs{'S60v2'} = "$DevBase\\S60v2";
+ $SDK_RootDirs{'S60v3'} = "$DevBase\\S60v3";
+ # $SDK_RootDirs{'S80'} = "$DevBase\\S80";
+ # $SDK_RootDirs{'S90'} = "$DevBase\\S90";
+ $SDK_ToolchainDirs{'S60v3'} = "$DevBase\\arm-symbianelf\\bin";
+ $SDK_ToolchainDirs{'UIQ2'} = "$DevBase\\ECompXL\\bin"; # only needed for UIQ2/UIQ3
+ $SDK_ToolchainDirs{'UIQ3'} = "$DevBase\\ECompXL\\bin"; # only needed for UIQ2/UIQ3
+
# these supporting libraries get built first, then all the Variations
# Note: the string {'xxx.lib'} is used in checking in build success: so needs to be accurate!
if (0) # so we can turn them on/off easily
{
- #$SDK_LibraryDirs{'ALL'}{'zlib.lib'} = "C:\\S\\zlib-1.2.2\\epoc";
- #$SDK_LibraryDirs{'ALL'}{'libmad.lib'} = "C:\\S\\libmad-0.15.1b\\group";
- #$SDK_LibraryDirs{'ALL'}{'libtremor.lib'}= "C:\\S\\tremor\\epoc";
- $SDK_LibraryDirs{'UIQ2'}{'esdl.lib'} = $SDK_LibraryDirs{'UIQ3'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\UIQ";
- #$SDK_LibraryDirs{'S60v1'}{'esdl.lib'} = $SDK_LibraryDirs{'S60v2'}{'esdl.lib'} = $SDK_LibraryDirs{'S60v3'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S60";
- #$SDK_LibraryDirs{'S80'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S80";
- #$SDK_LibraryDirs{'S90'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S90";
- #$SDK_LibraryDirs{'ALL'}{'libmpeg2.lib'} = "C:\\S\\mpeg2dec-0.4.0\\epoc";
+ ## Standard libraries
+ $SDK_LibraryDirs{'ALL'}{'zlib.lib'} = "$DevBase\\zlib-1.2.2\\epoc";
+ #$SDK_LibraryDirs{'ALL'}{'libmad.lib'} = "$DevBase\\libmad-0.15.1b\\group";
+ $SDK_LibraryDirs{'ALL'}{'libtremor.lib'}= "$DevBase\\tremor\\epoc";
+
+ ## SDL 1.2.12 / AnotherGuest / Symbian version
+ my $SdlBase = "$DevBase\\SDL-1.2.12-ag\\Symbian";
+ #$SDK_LibraryDirs{'S60v1'}{'esdl.lib'} = "$SdlBase\\S60"; // unsupported?
+ #$SDK_LibraryDirs{'S60v2'}{'esdl.lib'} = "$SdlBase\\S60v2";
+ $SDK_LibraryDirs{'S60v3'}{'esdl.lib'} = "$SdlBase\\S60v3";
+ #$SDK_LibraryDirs{'S80'}{'esdl.lib'} = "$SdlBase\\S80";
+ #$SDK_LibraryDirs{'S90'}{'esdl.lib'} = "$SdlBase\\S90";
+ #$SDK_LibraryDirs{'UIQ2'}{'esdl.lib'} = "$SdlBase\\UIQ2"
+ #$SDK_LibraryDirs{'UIQ3'}{'esdl.lib'} = "$SdlBase\\UIQ3";
+
+ ## HardlySupported(TM) :P
+ #$SDK_LibraryDirs{'ALL'}{'libmpeg2.lib'} = "$DevBase\\mpeg2dec-0.4.0\\epoc";
}
+
+ # now you can add $VariationSets only built on this PC below this line :)
- # backup :P
- #Path=C:\Progra~1\Active\Python24\.;C:\Program Files\Active\Tcl\bin;C:\Progra~1\Active\Perl\bin\;C:\WINDOWS\system32;C:\W
- #INDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\GNU\cvsnt;C:\Progra
- #m Files\WinSCP3\;"C:\Program Files\Common Files\Microsoft Shared\VSA\8.0\VsaEnv\";"c:\Program Files\Microsoft Visual Stu
- #dio 8\VC\bin";"C:\Program Files\UltraEdit-32"
+ #$VariationSets{'ALL'}{'scumm'} = "$DefaultFeatures scumm scumm_7_8 he";
+ #$VariationSets{'ALL'}{'all'} = "$DefaultFeatures @WorkingEngines @EnablableSubEngines";
+
}
- elsif ($ENV{'COMPUTERNAME'} eq "TSSLND0106")
+ elsif ($ENV{'COMPUTERNAME'} eq "TSSLND0106") #################################################################
{
$Producer = "AnotherGuest";
$RedirectSTDERR = 1;
@@ -90,7 +134,7 @@
#$SDK_RootDirs{'S80'}= "C:\\S80";
#$SDK_RootDirs{'S90'}= "C:\\S90";
$ECompXL_BinDir= "C:\\ECompXL\\";
-if (0) # so we can turn them on/off easily
+ if (0) # so we can turn them on/off easily
{
# $SDK_LibraryDirs{'ALL'}{'zlib.lib'} = "C:\\S\\zlib-1.2.2\\epoc";
# $SDK_LibraryDirs{'ALL'}{'libmad.lib'} = "C:\\S\\libmad-0.15.1b\\group";
@@ -101,9 +145,11 @@
# $SDK_LibraryDirs{'S90'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S90";
#$SDK_LibraryDirs{'ALL'}{'libmpeg2.lib'} = "C:\\S\\mpeg2dec-0.4.0\\epoc";
}
- # now you can add $SDK_Variations only built on this PC here :)
+
+ # now you can add $VariationSets only built on this PC below this line :)
+
}
-elsif ($ENV{'COMPUTERNAME'} eq "BIGMACHINE")
+ elsif ($ENV{'COMPUTERNAME'} eq "BIGMACHINE") #################################################################
{
$Producer = "AnotherGuest";
$RedirectSTDERR = 1;
@@ -116,15 +162,15 @@
#$FTP_Pass = "password";
#$FTP_Dir = "cvsbuilds";
- #$SDK_RootDirs{'UIQ2'}= "E:\\UIQ2";
- $SDK_RootDirs{'UIQ3'}= "E:\\UIQ3";
- #$SDK_RootDirs{'S60v1'}= "E:\\S60v1";
- #$SDK_RootDirs{'S60v2'}= "E:\\S60v2";
- $SDK_RootDirs{'S60v3'}= "E:\\S60v3";
- #$SDK_RootDirs{'S80'}= "E:\\S80";
- #$SDK_RootDirs{'S90'}= "E:\\S90";
- $ECompXL_BinDir= "E:\\ECompXL\\";
-if (0) # so we can turn them on/off easily
+ #$SDK_RootDirs{'UIQ2'}= "D:\\UIQ2";
+ $SDK_RootDirs{'UIQ3'}= "D:\\UIQ3";
+ #$SDK_RootDirs{'S60v1'}= "D:\\S60v1";
+ #$SDK_RootDirs{'S60v2'}= "D:\\S60v2";
+ $SDK_RootDirs{'S60v3'}= "D:\\S60v3";
+ #$SDK_RootDirs{'S80'}= "D:\\S80";
+ #$SDK_RootDirs{'S90'}= "D:\\S90";
+ $ECompXL_BinDir= "D:\\ECompXL\\";
+ if (0) # so we can turn them on/off easily
{
# $SDK_LibraryDirs{'ALL'}{'zlib.lib'} = "C:\\S\\zlib-1.2.2\\epoc";
# $SDK_LibraryDirs{'ALL'}{'libmad.lib'} = "C:\\S\\libmad-0.15.1b\\group";
@@ -137,28 +183,32 @@
$SDK_LibraryDirs{'UIQ3'}{'esdl.lib'} = "E:\\WICKED\\ESDL\\epoc\\UIQ\\UIQ3";
#$SDK_LibraryDirs{'ALL'}{'libmpeg2.lib'} = "C:\\S\\mpeg2dec-0.4.0\\epoc";
}
- # now you can add $SDK_Variations only built on this PC here :)
+
+ # now you can add $VariationSets only built on this PC below this line :)
+
}
- else
+ else #########################################################################################################
{
print "ERROR: Computer name ".$ENV{'COMPUTERNAME'}." not recognized! Plz edit _LocalSettings.pl!";
exit 1;
}
+##################################################################################################################
##
## Variation defines:
##
+##################################################################################################################
# second hash index = literal string used in .sis file created.
# empty string also removes the trailing '_'. Some 051101 examples:
- # $SDK_Variations{'UIQ2'}{''} would produce:
+ # $VariationSets{'UIQ2'}{''} would produce:
# scummvm-051101-SymbianUIQ2.sis
- # $SDK_Variations{'S60v2'}{'agos'} would produce:
+ # $VariationSets{'S60v2'}{'agos'} would produce:
# scummvm-051101-SymbianS60v2_agos.sis
- # $SDK_Variations{'ALL'}{'queen'} with all $SDK_RootDirs defined would produce:
+ # $VariationSets{'ALL'}{'queen'} with all $SDK_RootDirs defined would produce:
# scummvm-051101-SymbianUIQ2_queen.sis
# scummvm-051101-SymbianUIQ3_queen.sis
# scummvm-051101-SymbianS60v1_queen.sis
@@ -167,362 +217,48 @@
# scummvm-051101-SymbianS80_queen.sis
# scummvm-051101-SymbianS90_queen.sis
- #$SDK_Variations{'ALL'}{'test'} = "$DefaultTopMacro
- # //MACRO USE_TREMOR // LIB:libtremor.lib
- # //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- # //MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- # //MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- # //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- # //MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- # //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- # //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- #$DefaultBottomMacros";
- #$SDK_Variations{'S60v1'}{'test'} = $SDK_Variations{'UIQ2'}{'test'};
-
-if (1) # all regular combo's
-{
- # the first one includes all SDKs & release-ready engines
-
- $SDK_Variations{'ALL'}{'all'} = "$DefaultTopMacros
- //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- //MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- //MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- //MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- //MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- //MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- //MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- //MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- //MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
+ # NOTE: empty $VariationSets{''} string instead of 'ALL' = easy way to disable pkg!
- //MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- //MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- //MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- //MACRO DISABLE_MADE // LIB:scummvm_made.lib
- //MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
+ if (1) # all regular combo's
+ {
+ # the first one includes all SDKs & release-ready engines
+
+ $VariationSets{'ALL'}{'all'} = "$DefaultFeatures @WorkingEngines @EnablableSubEngines";
+
+ # now one for each ready-for-release engine
+
+ foreach (@WorkingEngines)
+ {
+ $VariationSets{'ALL'}{$_} = "$DefaultFeatures $_";
+ }
+ # for scumm, we need to add 2 features:
+ $VariationSets{'ALL'}{'scumm'} .= " scumm_7_8 he";
+
+ # now one for each not-ready-for-release-or-testing engine
+
+ foreach (@TestingEngines)
+ {
+ $VariationSets{'ALL'}{"test_$_"} = "$DefaultFeatures $_";
+ }
+
+ # below here you could specify weird & experimental combinations, non-ready engines
+
+ # a small version of the saga engine, because it is so big (no tremor,mad,zlib)
+ $VariationSets{'ALL'}{'saga_mini'} = "saga";
+
+ # a smaller version of scumm without support for v7, v8 and HE games
+ $VariationSets{'ALL'}{'scumm_no78he'} = "$DefaultFeatures scumm";
+
+ # maybe you feel lucky and want to test the sword engines? :P
+ #$VariationSets{'S60v2'}{'test_sword'} = "$DefaultFeatures mpeg2 sword1 sword2";
+ #$VariationSets{'UIQ2'}{'test_sword'} = "$DefaultFeatures mpeg2 sword1 sword2";
+
+ # for mega-fast-testing only plz! Warning: contains to engines!
+ #$VariationSets{'ALL'}{'fast_empty'} = "";
+
+ } # end quick-n-fast if (1|0)
- # now one for each ready-for-release engine
- $SDK_Variations{'ALL'}{'scumm'} = "$DefaultTopMacros
- //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'agos'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- //MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'sky'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- //MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'queen'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'gob'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- //MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'saga'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'kyra'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
- # below here you could specify weird & experimental combinations, non-ready engines
-
- $SDK_Variations{'ALL'}{'saga_mini'} = "
- //MACRO USE_ZLIB // LIB:zlib.lib
- //MACRO USE_MAD // LIB:libmad.lib
- //MACRO USE_TREMOR // LIB:libtremor.lib
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- MACRO DISABLE_AGI // LIB:scummvm_agi.lib
- MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_cine.lib
- MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib
- MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib
- MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib
- MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
- MACRO DISABLE_IGOR // LIB:scummvm_igor.lib
- MACRO DISABLE_MADE // LIB:scummvm_made.lib
- MACRO DISABLE_M4 // LIB:scummvm_m4.lib
- $DefaultBottomMacros";
-
-# $SDK_Variations{'ALL'}{'scumm_no78he'} = "
-# MACRO USE_ZLIB // LIB:zlib.lib
-# MACRO USE_MAD // LIB:libmad.lib
-# //MACRO USE_TREMOR // LIB:libtremor.lib
-# MACRO DISABLE_SCUMM_7_8
-# MACRO DISABLE_SCUMM_HE
-# //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
-# MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
-# MACRO DISABLE_SKY // LIB:scummvm_sky.lib
-# MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
-# MACRO DISABLE_GOB // LIB:scummvm_gob.lib
-# MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
-# MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
-# MACRO DISABLE_AGI // LIB:scummvm_agi.lib
-# MACRO DISABLE_LURE // LIB:scummvm_lure.lib
-# MACRO DISABLE_CINE // LIB:scummvm_cine.lib
-# MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib
-# $DefaultBottomMacros";
-
-# $SDK_Variations{'ALL'}{'all_vorbis'} = "
-# MACRO USE_ZLIB // LIB:zlib.lib
-# MACRO USE_MAD // LIB:libmad.lib
-# MACRO USE_TREMOR // LIB:libtremor.lib
-#
-# //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
-# //MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
-# //MACRO DISABLE_SKY // LIB:scummvm_sky.lib
-# //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
-# //MACRO DISABLE_GOB // LIB:scummvm_gob.lib
-# //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
-# //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
-# $DefaultBottomMacros";
-
- $SDK_Variations{'ALL'}{'lure'} = "$DefaultTopMacros
- MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib
- MACRO DISABLE_AGOS // LIB:scummvm_agos.lib
- MACRO DISABLE_SKY // LIB:scummvm_sky.lib
- MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib
- MACRO DISABLE_GOB // LIB:scummvm_gob.lib
- MACRO DISABLE_SAGA // LIB:scummvm_saga.lib
- MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib
- //MACRO DISABLE_LURE // LIB:scummvm_lure.lib
- MACRO DISABLE_CINE // LIB:scummvm_agi.lib
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list