[Scummvm-cvs-logs] SF.net SVN: scummvm:[51961] scummvm/branches/gsoc2010-plugins

toneman1138 at users.sourceforge.net toneman1138 at users.sourceforge.net
Wed Aug 11 01:21:15 CEST 2010


Revision: 51961
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51961&view=rev
Author:   toneman1138
Date:     2010-08-10 23:21:08 +0000 (Tue, 10 Aug 2010)

Log Message:
-----------
merged trunk into branch, reverted Cruise Singleton changes

Modified Paths:
--------------
    scummvm/branches/gsoc2010-plugins/AUTHORS
    scummvm/branches/gsoc2010-plugins/COPYING.LGPL
    scummvm/branches/gsoc2010-plugins/COPYRIGHT
    scummvm/branches/gsoc2010-plugins/Makefile
    scummvm/branches/gsoc2010-plugins/Makefile.common
    scummvm/branches/gsoc2010-plugins/NEWS
    scummvm/branches/gsoc2010-plugins/README
    scummvm/branches/gsoc2010-plugins/backends/events/default/default-events.cpp
    scummvm/branches/gsoc2010-plugins/backends/fs/amigaos4/amigaos4-fs.cpp
    scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs-factory.cpp
    scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.cpp
    scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.h
    scummvm/branches/gsoc2010-plugins/backends/fs/psp/psp-stream.cpp
    scummvm/branches/gsoc2010-plugins/backends/keymapper/remap-dialog.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/alsa.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/camd.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/coreaudio.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/coremidi.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/dmedia.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/seq.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/stmidi.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/timidity.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/windows.cpp
    scummvm/branches/gsoc2010-plugins/backends/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/dc/Makefile
    scummvm/branches/gsoc2010-plugins/backends/platform/dc/dc.h
    scummvm/branches/gsoc2010-plugins/backends/platform/dc/dcmain.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/dc/display.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/dc/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/dc/selector.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm7/source/main.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/makefile
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/blitters.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/blitters.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/cdaudio.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/cdaudio.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/dsmain.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/dsmain.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/dsoptions.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/dsoptions.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/fat/gba_nds_fat.c
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/gbampsave.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/gbampsave.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/keys.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/keys.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/osystem_ds.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/osystem_ds.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/portdefs.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/scummhelp.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/scummhelp.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/touchkeyboard.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/touchkeyboard.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/wordcompletion.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/wordcompletion.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/zipreader.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/zipreader.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/commoninclude/NDS/scummvm_ipc.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/ds.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/makefile
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2x/build/bundle.sh
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2x/events.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2x/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/build/bundle-debug.sh
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/build/bundle.sh
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/gp2xwiz-events.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/gp2xwiz-graphics.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/iphone/iphone_video.m
    scummvm/branches/gsoc2010-plugins/backends/platform/iphone/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/iphone/osys_events.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/linuxmoto/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/n64/Makefile
    scummvm/branches/gsoc2010-plugins/backends/platform/n64/README.N64
    scummvm/branches/gsoc2010-plugins/backends/platform/n64/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/null/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/ps2/Makefile.gdb
    scummvm/branches/gsoc2010-plugins/backends/platform/ps2/Makefile.ps2
    scummvm/branches/gsoc2010-plugins/backends/platform/ps2/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/Makefile
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/README.PSP
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/README.PSP.in
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/cursor.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/default_display_client.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/display_client.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/display_manager.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/display_manager.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/input.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/memory.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/memory.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/osys_psp.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/osys_psp.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/powerman.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/powerman.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/psp.spec
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/psp_main.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/trace.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/trace.h
    scummvm/branches/gsoc2010-plugins/backends/platform/samsungtv/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/sdl/events.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/sdl/graphics.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/sdl/main.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/sdl/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/sdl/sdl.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/sdl/sdl.h
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/mmp/scummvm_sci.mmp.in
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/src/SymbianActions.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/symbian/src/SymbianOS.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/wii/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/wii/options.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/wii/osystem.h
    scummvm/branches/gsoc2010-plugins/backends/platform/wii/osystem_gfx.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/wince/CEActionsPocket.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/wince/CEActionsSmartphone.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/wince/CELauncherDialog.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/wince/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/wince/wince-sdl.cpp
    scummvm/branches/gsoc2010-plugins/backends/plugins/win32/win32-provider.cpp
    scummvm/branches/gsoc2010-plugins/backends/vkeybd/virtual-keyboard.cpp
    scummvm/branches/gsoc2010-plugins/base/commandLine.cpp
    scummvm/branches/gsoc2010-plugins/base/internal_version.h
    scummvm/branches/gsoc2010-plugins/base/internal_version.h.in
    scummvm/branches/gsoc2010-plugins/base/main.cpp
    scummvm/branches/gsoc2010-plugins/base/plugins.cpp
    scummvm/branches/gsoc2010-plugins/base/version.cpp
    scummvm/branches/gsoc2010-plugins/common/algorithm.h
    scummvm/branches/gsoc2010-plugins/common/config-file.cpp
    scummvm/branches/gsoc2010-plugins/common/error.cpp
    scummvm/branches/gsoc2010-plugins/common/error.h
    scummvm/branches/gsoc2010-plugins/common/events.h
    scummvm/branches/gsoc2010-plugins/common/file.cpp
    scummvm/branches/gsoc2010-plugins/common/hashmap.h
    scummvm/branches/gsoc2010-plugins/common/macresman.cpp
    scummvm/branches/gsoc2010-plugins/common/module.mk
    scummvm/branches/gsoc2010-plugins/common/ptr.h
    scummvm/branches/gsoc2010-plugins/common/savefile.h
    scummvm/branches/gsoc2010-plugins/common/scummsys.h
    scummvm/branches/gsoc2010-plugins/common/singleton.h
    scummvm/branches/gsoc2010-plugins/common/str.cpp
    scummvm/branches/gsoc2010-plugins/common/str.h
    scummvm/branches/gsoc2010-plugins/common/stream.cpp
    scummvm/branches/gsoc2010-plugins/common/stream.h
    scummvm/branches/gsoc2010-plugins/common/system.h
    scummvm/branches/gsoc2010-plugins/common/textconsole.cpp
    scummvm/branches/gsoc2010-plugins/common/unarj.cpp
    scummvm/branches/gsoc2010-plugins/common/unzip.cpp
    scummvm/branches/gsoc2010-plugins/common/unzip.h
    scummvm/branches/gsoc2010-plugins/common/util.cpp
    scummvm/branches/gsoc2010-plugins/common/util.h
    scummvm/branches/gsoc2010-plugins/configure
    scummvm/branches/gsoc2010-plugins/dists/engine-data/kyra.dat
    scummvm/branches/gsoc2010-plugins/dists/iphone/Info.plist
    scummvm/branches/gsoc2010-plugins/dists/iphone/scummvm.xcodeproj/project.pbxproj
    scummvm/branches/gsoc2010-plugins/engines/advancedDetector.cpp
    scummvm/branches/gsoc2010-plugins/engines/advancedDetector.h
    scummvm/branches/gsoc2010-plugins/engines/agi/agi.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/agi.h
    scummvm/branches/gsoc2010-plugins/engines/agi/console.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/console.h
    scummvm/branches/gsoc2010-plugins/engines/agi/cycle.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/keyboard.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/loader_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/loader_v3.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/module.mk
    scummvm/branches/gsoc2010-plugins/engines/agi/op_cmd.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/op_test.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/picture.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/preagi.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound.h
    scummvm/branches/gsoc2010-plugins/engines/agi/sprite.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sprite.h
    scummvm/branches/gsoc2010-plugins/engines/agi/text.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/view.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/view.h
    scummvm/branches/gsoc2010-plugins/engines/agi/wagparser.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/words.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/agos.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/agos.h
    scummvm/branches/gsoc2010-plugins/engines/agos/cursor.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/draw.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/event.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/gfx.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/icons.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/input.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/midi.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/verb.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/vga_e2.cpp
    scummvm/branches/gsoc2010-plugins/engines/agos/vga_s2.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/anim.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/anim.h
    scummvm/branches/gsoc2010-plugins/engines/cine/bg_list.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/bg_list.h
    scummvm/branches/gsoc2010-plugins/engines/cine/cine.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/cine.h
    scummvm/branches/gsoc2010-plugins/engines/cine/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/gfx.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/gfx.h
    scummvm/branches/gsoc2010-plugins/engines/cine/main_loop.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/msg.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/msg.h
    scummvm/branches/gsoc2010-plugins/engines/cine/object.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/object.h
    scummvm/branches/gsoc2010-plugins/engines/cine/pal.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/pal.h
    scummvm/branches/gsoc2010-plugins/engines/cine/part.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/part.h
    scummvm/branches/gsoc2010-plugins/engines/cine/prc.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/prc.h
    scummvm/branches/gsoc2010-plugins/engines/cine/rel.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/rel.h
    scummvm/branches/gsoc2010-plugins/engines/cine/saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/saveload.h
    scummvm/branches/gsoc2010-plugins/engines/cine/script.h
    scummvm/branches/gsoc2010-plugins/engines/cine/script_fw.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/script_os.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/various.cpp
    scummvm/branches/gsoc2010-plugins/engines/cine/various.h
    scummvm/branches/gsoc2010-plugins/engines/cruise/actor.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/background.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/cruise.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/cruise.h
    scummvm/branches/gsoc2010-plugins/engines/cruise/cruise_main.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/cruise_main.h
    scummvm/branches/gsoc2010-plugins/engines/cruise/ctp.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/ctp.h
    scummvm/branches/gsoc2010-plugins/engines/cruise/decompiler.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/font.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/function.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/gfxModule.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/gfxModule.h
    scummvm/branches/gsoc2010-plugins/engines/cruise/mainDraw.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/perso.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/script.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/vars.cpp
    scummvm/branches/gsoc2010-plugins/engines/cruise/vars.h
    scummvm/branches/gsoc2010-plugins/engines/cruise/volume.cpp
    scummvm/branches/gsoc2010-plugins/engines/dialogs.cpp
    scummvm/branches/gsoc2010-plugins/engines/dialogs.h
    scummvm/branches/gsoc2010-plugins/engines/draci/animation.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/barchive.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/draci.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/game.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/game.h
    scummvm/branches/gsoc2010-plugins/engines/draci/module.mk
    scummvm/branches/gsoc2010-plugins/engines/draci/script.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/sound.h
    scummvm/branches/gsoc2010-plugins/engines/draci/walking.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/actors.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/animation.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/converse.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/drascula.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/drascula.h
    scummvm/branches/gsoc2010-plugins/engines/drascula/graphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/interface.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/module.mk
    scummvm/branches/gsoc2010-plugins/engines/drascula/objects.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/palette.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/rooms.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/talk.cpp
    scummvm/branches/gsoc2010-plugins/engines/engine.cpp
    scummvm/branches/gsoc2010-plugins/engines/game.cpp
    scummvm/branches/gsoc2010-plugins/engines/game.h
    scummvm/branches/gsoc2010-plugins/engines/gob/demos/demoplayer.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/demos/demoplayer.h
    scummvm/branches/gsoc2010-plugins/engines/gob/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/draw.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/draw.h
    scummvm/branches/gsoc2010-plugins/engines/gob/draw_fascin.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/draw_playtoons.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/draw_v1.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/draw_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/game.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/gob.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/hotspots.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/init.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_bargon.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_fascin.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_playtoons.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_v1.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_v3.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_v4.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/inter_v6.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/mult.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/mult_v1.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/mult_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/scenery.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/totfile.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/videoplayer.cpp
    scummvm/branches/gsoc2010-plugins/engines/gob/videoplayer.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/cell.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/cursor.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/cursor.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/debug.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/debug.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/font.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/font.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/graphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/graphics.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/groovie.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/groovie.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/music.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/music.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/player.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/resource.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/roq.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/script.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/script.h
    scummvm/branches/gsoc2010-plugins/engines/groovie/vdx.cpp
    scummvm/branches/gsoc2010-plugins/engines/groovie/vdx.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/debugger.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/gui_lok.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/gui_lol.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/gui_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_hof.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_lok.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_lok.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_mr.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_mr.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_v1.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/kyra_v2.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/lol.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/lol.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/module.mk
    scummvm/branches/gsoc2010-plugins/engines/kyra/resource.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/scene_lol.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/scene_mr.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/screen.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/screen_lol.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/screen_lol.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/screen_v2.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/screen_v2.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/script_tim.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/sequences_lok.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/sound_intern.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/sound_lok.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/sound_lol.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/sound_midi.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/sound_towns.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/staticres.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/text_hof.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/text_lok.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/text_mr.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/timer_hof.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/timer_lok.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/vqa.cpp
    scummvm/branches/gsoc2010-plugins/engines/kyra/vqa.h
    scummvm/branches/gsoc2010-plugins/engines/lure/debugger.cpp
    scummvm/branches/gsoc2010-plugins/engines/lure/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/lure/fights.cpp
    scummvm/branches/gsoc2010-plugins/engines/lure/game.cpp
    scummvm/branches/gsoc2010-plugins/engines/lure/game.h
    scummvm/branches/gsoc2010-plugins/engines/lure/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/lure/sound.h
    scummvm/branches/gsoc2010-plugins/engines/m4/animation.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/animation.h
    scummvm/branches/gsoc2010-plugins/engines/m4/assets.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/assets.h
    scummvm/branches/gsoc2010-plugins/engines/m4/console.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/converse.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/events.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/events.h
    scummvm/branches/gsoc2010-plugins/engines/m4/font.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/font.h
    scummvm/branches/gsoc2010-plugins/engines/m4/globals.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/globals.h
    scummvm/branches/gsoc2010-plugins/engines/m4/graphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/graphics.h
    scummvm/branches/gsoc2010-plugins/engines/m4/hotspot.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/hotspot.h
    scummvm/branches/gsoc2010-plugins/engines/m4/m4.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/m4.h
    scummvm/branches/gsoc2010-plugins/engines/m4/m4_scene.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/m4_scene.h
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_anim.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_anim.h
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_logic.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_logic.h
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_menus.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_menus.h
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_scene.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_scene.h
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_views.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_views.h
    scummvm/branches/gsoc2010-plugins/engines/m4/midi.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/module.mk
    scummvm/branches/gsoc2010-plugins/engines/m4/rails.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/rails.h
    scummvm/branches/gsoc2010-plugins/engines/m4/scene.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/scene.h
    scummvm/branches/gsoc2010-plugins/engines/m4/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/sound.h
    scummvm/branches/gsoc2010-plugins/engines/m4/sprite.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/sprite.h
    scummvm/branches/gsoc2010-plugins/engines/m4/viewmgr.h
    scummvm/branches/gsoc2010-plugins/engines/made/database.cpp
    scummvm/branches/gsoc2010-plugins/engines/made/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/made/made.cpp
    scummvm/branches/gsoc2010-plugins/engines/made/resource.cpp
    scummvm/branches/gsoc2010-plugins/engines/made/scriptfuncs.cpp
    scummvm/branches/gsoc2010-plugins/engines/made/scriptfuncs.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/console.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/console.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/dialogs.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/graphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/graphics.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/module.mk
    scummvm/branches/gsoc2010-plugins/engines/mohawk/mohawk.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/myst.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/myst_scripts.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/resource.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_external.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_external.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_saveload.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_scripts.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_scripts.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/riven_vars.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/callables_ns.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/exec.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/exec_br.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/gfxbase.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/graphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/gui_br.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/input.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/parallaction.h
    scummvm/branches/gsoc2010-plugins/engines/parallaction/parallaction_br.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/parallaction_ns.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/parser.h
    scummvm/branches/gsoc2010-plugins/engines/parallaction/parser_br.cpp
    scummvm/branches/gsoc2010-plugins/engines/parallaction/walk.cpp
    scummvm/branches/gsoc2010-plugins/engines/queen/music.cpp
    scummvm/branches/gsoc2010-plugins/engines/queen/queen.cpp
    scummvm/branches/gsoc2010-plugins/engines/queen/resource.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/actor.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/console.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/events.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/font.h
    scummvm/branches/gsoc2010-plugins/engines/saga/interface.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/music.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/music.h
    scummvm/branches/gsoc2010-plugins/engines/saga/puzzle.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/render.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/saga.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/saga.h
    scummvm/branches/gsoc2010-plugins/engines/saga/scene.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/script.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/script.h
    scummvm/branches/gsoc2010-plugins/engines/saga/sfuncs.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/sfuncs_ihnm.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/sndres.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/saga/sound.h
    scummvm/branches/gsoc2010-plugins/engines/saga/sthread.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/console.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/console.h
    scummvm/branches/gsoc2010-plugins/engines/sci/debug.h
    scummvm/branches/gsoc2010-plugins/engines/sci/decompressor.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/features.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/features.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/gc.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/gc.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kernel.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kernel.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kevent.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kfile.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kgraphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/klists.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kmath.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kmenu.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kmisc.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kmovement.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kparse.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kpathing.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kscripts.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/ksound.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kstring.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/message.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/savegame.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/savegame.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/script.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/script.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/scriptdebug.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/seg_manager.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/seg_manager.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/segment.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/segment.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/selector.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/selector.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/state.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/state.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/static_selectors.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/vm.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/vm.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/vm_types.h
    scummvm/branches/gsoc2010-plugins/engines/sci/event.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/event.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/animate.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/animate.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/cache.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/cache.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/compare.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/compare.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/controls.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/coordadjuster.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/coordadjuster.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/cursor.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/cursor.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/font.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/font.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/fontsjis.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/frameout.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/frameout.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/helpers.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/menu.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/menu.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/paint.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/paint.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/paint16.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/paint16.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/paint32.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/paint32.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/palette.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/palette.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/picture.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/picture.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/portrait.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/portrait.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/ports.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/ports.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/robot.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/robot.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/screen.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/screen.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/text16.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/text16.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/transitions.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/transitions.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/view.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/view.h
    scummvm/branches/gsoc2010-plugins/engines/sci/module.mk
    scummvm/branches/gsoc2010-plugins/engines/sci/parser/grammar.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/parser/said.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/parser/vocabulary.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/parser/vocabulary.h
    scummvm/branches/gsoc2010-plugins/engines/sci/resource.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/resource.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sci.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sci.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/audio.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/audio.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/drivers/adlib.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/drivers/fb01.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/drivers/midi.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/drivers/mididriver.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/midiparser_sci.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/midiparser_sci.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/music.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/music.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/soundcmd.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/soundcmd.h
    scummvm/branches/gsoc2010-plugins/engines/sci/video/seq_decoder.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/video/seq_decoder.h
    scummvm/branches/gsoc2010-plugins/engines/scumm/charset.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/debugger.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/scumm/dialogs.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/gfx.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/gfx.h
    scummvm/branches/gsoc2010-plugins/engines/scumm/imuse/instrument.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/player_nes.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/script_v5.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/scumm-md5.h
    scummvm/branches/gsoc2010-plugins/engines/scumm/scumm.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/sound.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/string.cpp
    scummvm/branches/gsoc2010-plugins/engines/scumm/verbs.h
    scummvm/branches/gsoc2010-plugins/engines/sky/sky.cpp
    scummvm/branches/gsoc2010-plugins/engines/sword1/control.cpp
    scummvm/branches/gsoc2010-plugins/engines/sword1/memman.h
    scummvm/branches/gsoc2010-plugins/engines/sword1/music.cpp
    scummvm/branches/gsoc2010-plugins/engines/sword2/anims.cpp
    scummvm/branches/gsoc2010-plugins/engines/sword2/music.cpp
    scummvm/branches/gsoc2010-plugins/engines/sword2/resman.h
    scummvm/branches/gsoc2010-plugins/engines/sword2/sword2.cpp
    scummvm/branches/gsoc2010-plugins/engines/teenagent/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/teenagent/module.mk
    scummvm/branches/gsoc2010-plugins/engines/teenagent/teenagent.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/actors.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/bmv.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/cliprect.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/graphics.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/handle.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/object.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/pcode.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/saveload.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/savescn.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/strres.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/tinlib.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/tinsel.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/tinsel.h
    scummvm/branches/gsoc2010-plugins/engines/touche/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/touche/midi.cpp
    scummvm/branches/gsoc2010-plugins/engines/touche/touche.cpp
    scummvm/branches/gsoc2010-plugins/engines/tucker/detection.cpp
    scummvm/branches/gsoc2010-plugins/engines/tucker/sequences.cpp
    scummvm/branches/gsoc2010-plugins/engines/tucker/tucker.h
    scummvm/branches/gsoc2010-plugins/graphics/conversion.h
    scummvm/branches/gsoc2010-plugins/graphics/font.cpp
    scummvm/branches/gsoc2010-plugins/graphics/font.h
    scummvm/branches/gsoc2010-plugins/graphics/fontman.cpp
    scummvm/branches/gsoc2010-plugins/graphics/fontman.h
    scummvm/branches/gsoc2010-plugins/graphics/module.mk
    scummvm/branches/gsoc2010-plugins/graphics/scaler/thumbnail_intern.cpp
    scummvm/branches/gsoc2010-plugins/graphics/scaler.h
    scummvm/branches/gsoc2010-plugins/graphics/thumbnail.cpp
    scummvm/branches/gsoc2010-plugins/graphics/thumbnail.h
    scummvm/branches/gsoc2010-plugins/graphics/video/avi_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/avi_decoder.h
    scummvm/branches/gsoc2010-plugins/graphics/video/dxa_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/dxa_decoder.h
    scummvm/branches/gsoc2010-plugins/graphics/video/flic_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/flic_decoder.h
    scummvm/branches/gsoc2010-plugins/graphics/video/mpeg_player.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/mpeg_player.h
    scummvm/branches/gsoc2010-plugins/graphics/video/smk_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/smk_decoder.h
    scummvm/branches/gsoc2010-plugins/graphics/video/video_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/video_decoder.h
    scummvm/branches/gsoc2010-plugins/gui/EditTextWidget.cpp
    scummvm/branches/gsoc2010-plugins/gui/EditTextWidget.h
    scummvm/branches/gsoc2010-plugins/gui/GuiManager.cpp
    scummvm/branches/gsoc2010-plugins/gui/GuiManager.h
    scummvm/branches/gsoc2010-plugins/gui/KeysDialog.cpp
    scummvm/branches/gsoc2010-plugins/gui/ListWidget.cpp
    scummvm/branches/gsoc2010-plugins/gui/ListWidget.h
    scummvm/branches/gsoc2010-plugins/gui/PopUpWidget.cpp
    scummvm/branches/gsoc2010-plugins/gui/PopUpWidget.h
    scummvm/branches/gsoc2010-plugins/gui/ScrollBarWidget.cpp
    scummvm/branches/gsoc2010-plugins/gui/ScrollBarWidget.h
    scummvm/branches/gsoc2010-plugins/gui/TabWidget.cpp
    scummvm/branches/gsoc2010-plugins/gui/TabWidget.h
    scummvm/branches/gsoc2010-plugins/gui/ThemeEngine.cpp
    scummvm/branches/gsoc2010-plugins/gui/ThemeEngine.h
    scummvm/branches/gsoc2010-plugins/gui/ThemeParser.cpp
    scummvm/branches/gsoc2010-plugins/gui/about.cpp
    scummvm/branches/gsoc2010-plugins/gui/browser.cpp
    scummvm/branches/gsoc2010-plugins/gui/chooser.cpp
    scummvm/branches/gsoc2010-plugins/gui/console.cpp
    scummvm/branches/gsoc2010-plugins/gui/credits.h
    scummvm/branches/gsoc2010-plugins/gui/debugger.cpp
    scummvm/branches/gsoc2010-plugins/gui/debugger.h
    scummvm/branches/gsoc2010-plugins/gui/dialog.cpp
    scummvm/branches/gsoc2010-plugins/gui/dialog.h
    scummvm/branches/gsoc2010-plugins/gui/editable.cpp
    scummvm/branches/gsoc2010-plugins/gui/editable.h
    scummvm/branches/gsoc2010-plugins/gui/error.cpp
    scummvm/branches/gsoc2010-plugins/gui/launcher.cpp
    scummvm/branches/gsoc2010-plugins/gui/massadd.cpp
    scummvm/branches/gsoc2010-plugins/gui/message.cpp
    scummvm/branches/gsoc2010-plugins/gui/module.mk
    scummvm/branches/gsoc2010-plugins/gui/options.cpp
    scummvm/branches/gsoc2010-plugins/gui/options.h
    scummvm/branches/gsoc2010-plugins/gui/saveload.cpp
    scummvm/branches/gsoc2010-plugins/gui/themebrowser.cpp
    scummvm/branches/gsoc2010-plugins/gui/themes/default.inc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic/classic_gfx.stx
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic/classic_layout.stx
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic/classic_layout_lowres.stx
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic.zip
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/scummmodern_gfx.stx
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/scummmodern_layout.stx
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/scummmodern_layout_lowres.stx
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern.zip
    scummvm/branches/gsoc2010-plugins/gui/widget.cpp
    scummvm/branches/gsoc2010-plugins/gui/widget.h
    scummvm/branches/gsoc2010-plugins/ports.mk
    scummvm/branches/gsoc2010-plugins/sound/audiocd.cpp
    scummvm/branches/gsoc2010-plugins/sound/audiocd.h
    scummvm/branches/gsoc2010-plugins/sound/audiostream.cpp
    scummvm/branches/gsoc2010-plugins/sound/audiostream.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/adpcm.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/aiff.cpp
    scummvm/branches/gsoc2010-plugins/sound/decoders/aiff.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/flac.cpp
    scummvm/branches/gsoc2010-plugins/sound/decoders/flac.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/mp3.cpp
    scummvm/branches/gsoc2010-plugins/sound/decoders/mp3.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/vag.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/voc.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/vorbis.cpp
    scummvm/branches/gsoc2010-plugins/sound/decoders/vorbis.h
    scummvm/branches/gsoc2010-plugins/sound/decoders/wave.h
    scummvm/branches/gsoc2010-plugins/sound/fmopl.cpp
    scummvm/branches/gsoc2010-plugins/sound/mididrv.cpp
    scummvm/branches/gsoc2010-plugins/sound/mididrv.h
    scummvm/branches/gsoc2010-plugins/sound/midiparser.cpp
    scummvm/branches/gsoc2010-plugins/sound/midiparser.h
    scummvm/branches/gsoc2010-plugins/sound/midiparser_smf.cpp
    scummvm/branches/gsoc2010-plugins/sound/mods/protracker.h
    scummvm/branches/gsoc2010-plugins/sound/module.mk
    scummvm/branches/gsoc2010-plugins/sound/musicplugin.cpp
    scummvm/branches/gsoc2010-plugins/sound/musicplugin.h
    scummvm/branches/gsoc2010-plugins/sound/null.cpp
    scummvm/branches/gsoc2010-plugins/sound/rate_arm_asm.s
    scummvm/branches/gsoc2010-plugins/sound/softsynth/adlib.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fluidsynth.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/mt32.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/opl/dbopl.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/opl/mame.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/pcspk.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/sid.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/sid.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/wave6581.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/ym2612.cpp
    scummvm/branches/gsoc2010-plugins/test/common/tokenizer.h
    scummvm/branches/gsoc2010-plugins/tools/convbdf.c
    scummvm/branches/gsoc2010-plugins/tools/create_kyradat/create_kyradat.cpp
    scummvm/branches/gsoc2010-plugins/tools/create_kyradat/create_kyradat.h
    scummvm/branches/gsoc2010-plugins/tools/create_kyradat/games.cpp
    scummvm/branches/gsoc2010-plugins/tools/create_kyradat/tables.cpp
    scummvm/branches/gsoc2010-plugins/tools/create_msvc/create_msvc.cpp
    scummvm/branches/gsoc2010-plugins/tools/credits.pl
    scummvm/branches/gsoc2010-plugins/tools/make-scumm-fontdata.c
    scummvm/branches/gsoc2010-plugins/tools/md5table.c
    scummvm/branches/gsoc2010-plugins/tools/module.mk
    scummvm/branches/gsoc2010-plugins/tools/scumm-md5.txt
    scummvm/branches/gsoc2010-plugins/tools/update-version.pl

Added Paths:
-----------
    scummvm/branches/gsoc2010-plugins/COPYING.BSD
    scummvm/branches/gsoc2010-plugins/backends/platform/android/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build
    scummvm/branches/gsoc2010-plugins/backends/platform/android/android.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/android/android.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/android/asset-archive.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/android/asset-archive.h
    scummvm/branches/gsoc2010-plugins/backends/platform/android/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/Event.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/video.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/android/video.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/setup-builddirs.sh
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2x/gp2x-bundle.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/gp2xwiz-bundle.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/audio.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/audio.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/mp3.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/mp3.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/rtc.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/rtc.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/tests.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/tests.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/thread.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/thread.h
    scummvm/branches/gsoc2010-plugins/common/messages.cpp
    scummvm/branches/gsoc2010-plugins/common/translation.cpp
    scummvm/branches/gsoc2010-plugins/common/translation.h
    scummvm/branches/gsoc2010-plugins/dists/android/
    scummvm/branches/gsoc2010-plugins/dists/android/AndroidManifest.xml
    scummvm/branches/gsoc2010-plugins/dists/android/AndroidManifest.xml.in
    scummvm/branches/gsoc2010-plugins/dists/android/mkmanifest.pl
    scummvm/branches/gsoc2010-plugins/dists/android/res/
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/gradient.xml
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/scummvm.png
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/scummvm_big.png
    scummvm/branches/gsoc2010-plugins/dists/android/res/layout/
    scummvm/branches/gsoc2010-plugins/dists/android/res/layout/main.xml
    scummvm/branches/gsoc2010-plugins/dists/android/res/layout/splash.xml
    scummvm/branches/gsoc2010-plugins/dists/android/res/values/
    scummvm/branches/gsoc2010-plugins/dists/android/res/values/strings.xml
    scummvm/branches/gsoc2010-plugins/dists/iphone/icon-72.png
    scummvm/branches/gsoc2010-plugins/engines/agi/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_2gs.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_2gs.h
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_coco3.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_coco3.h
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_midi.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_midi.h
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_pcjr.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_pcjr.h
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_sarien.cpp
    scummvm/branches/gsoc2010-plugins/engines/agi/sound_sarien.h
    scummvm/branches/gsoc2010-plugins/engines/cine/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/drascula/console.cpp
    scummvm/branches/gsoc2010-plugins/engines/drascula/console.h
    scummvm/branches/gsoc2010-plugins/engines/gob/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/kyra/staticres_lol.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_player.cpp
    scummvm/branches/gsoc2010-plugins/engines/m4/mads_player.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/detection_tables.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/video.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/video.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kernel_tables.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kvideo.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/script_patches.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/workarounds.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/workarounds.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/maciconbar.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/maciconbar.h
    scummvm/branches/gsoc2010-plugins/engines/sci/resource_audio.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/resource_intern.h
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/drivers/amigamac.cpp
    scummvm/branches/gsoc2010-plugins/engines/tinsel/detection_tables.h
    scummvm/branches/gsoc2010-plugins/graphics/pict.cpp
    scummvm/branches/gsoc2010-plugins/graphics/pict.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/cinepak.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/cinepak.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/indeo3.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/indeo3.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/mjpeg.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/mjpeg.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/qdm2.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/qdm2.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/qdm2data.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/qtrle.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/qtrle.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/rpza.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/rpza.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/smc.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/smc.h
    scummvm/branches/gsoc2010-plugins/graphics/video/coktel_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/coktel_decoder.h
    scummvm/branches/gsoc2010-plugins/graphics/video/qt_decoder.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/qt_decoder.h
    scummvm/branches/gsoc2010-plugins/gui/Tooltip.cpp
    scummvm/branches/gsoc2010-plugins/gui/Tooltip.h
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/Arial.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/Arial12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/ArialBold.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/README
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/clR6x12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/clR6x12-iso-8859-5.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/clR6x12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/courr12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/fixed5x8-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/fixed5x8-iso-8859-5.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvB12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvB12-iso-8859-5.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvB12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvBO12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvBO12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvR12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvR12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/README.ScummVM
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazLT.font
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazLT.readme
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazlt/
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazlt/8
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic/clR6x12-iso-8859-5.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic/fixed5x8-iso-8859-5.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummclassic/helvb12-iso-8859-5.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/clR6x12-iso-8859-5.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/fixed5x8-iso-8859-5.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/helvb12-iso-8859-1.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/helvb12-iso-8859-5.fcc
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/radiobutton.bmp
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/radiobutton_empty.bmp
    scummvm/branches/gsoc2010-plugins/po/
    scummvm/branches/gsoc2010-plugins/po/POTFILES
    scummvm/branches/gsoc2010-plugins/po/ca_ES.po
    scummvm/branches/gsoc2010-plugins/po/de_DE.po
    scummvm/branches/gsoc2010-plugins/po/es_ES.po
    scummvm/branches/gsoc2010-plugins/po/fr_FR.po
    scummvm/branches/gsoc2010-plugins/po/hu_HU.po
    scummvm/branches/gsoc2010-plugins/po/it_IT.po
    scummvm/branches/gsoc2010-plugins/po/module.mk
    scummvm/branches/gsoc2010-plugins/po/remove-potcdate.sed
    scummvm/branches/gsoc2010-plugins/po/ru_RU.po
    scummvm/branches/gsoc2010-plugins/po/scummvm.pot
    scummvm/branches/gsoc2010-plugins/po/uk_UA.po
    scummvm/branches/gsoc2010-plugins/sound/decoders/mac_snd.cpp
    scummvm/branches/gsoc2010-plugins/sound/decoders/mac_snd.h
    scummvm/branches/gsoc2010-plugins/sound/null.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_audio.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_audio.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_euphony.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_euphony.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_driver.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_driver.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h
    scummvm/branches/gsoc2010-plugins/tools/po2c

Removed Paths:
-------------
    scummvm/branches/gsoc2010-plugins/backends/fs/palmos/
    scummvm/branches/gsoc2010-plugins/backends/midi/ypa1.cpp
    scummvm/branches/gsoc2010-plugins/backends/midi/zodiac.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/PalmOS/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build
    scummvm/branches/gsoc2010-plugins/backends/platform/android/android.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/android/android.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/android/asset-archive.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/android/asset-archive.h
    scummvm/branches/gsoc2010-plugins/backends/platform/android/module.mk
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/Event.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java
    scummvm/branches/gsoc2010-plugins/backends/platform/android/video.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/android/video.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/compressor/lz.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/compressor/lz.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/elf32.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/libcartreset/cartreset.c
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/libcartreset/cartreset_nolibfat.h
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/portdefs.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/ramsave.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/arm9/source/ramsave.h
    scummvm/branches/gsoc2010-plugins/dists/android/AndroidManifest.xml
    scummvm/branches/gsoc2010-plugins/dists/android/AndroidManifest.xml.in
    scummvm/branches/gsoc2010-plugins/dists/android/mkmanifest.pl
    scummvm/branches/gsoc2010-plugins/dists/android/res/
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/gradient.xml
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/scummvm.png
    scummvm/branches/gsoc2010-plugins/dists/android/res/drawable/scummvm_big.png
    scummvm/branches/gsoc2010-plugins/dists/android/res/layout/
    scummvm/branches/gsoc2010-plugins/dists/android/res/layout/main.xml
    scummvm/branches/gsoc2010-plugins/dists/android/res/layout/splash.xml
    scummvm/branches/gsoc2010-plugins/dists/android/res/values/
    scummvm/branches/gsoc2010-plugins/dists/android/res/values/strings.xml
    scummvm/branches/gsoc2010-plugins/engines/mohawk/jpeg.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/jpeg.h
    scummvm/branches/gsoc2010-plugins/engines/mohawk/myst_pict.cpp
    scummvm/branches/gsoc2010-plugins/engines/mohawk/myst_pict.h
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/game.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/engine/kernel32.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/gui.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/gui.h
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/gui32.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/graphics/gui32.h
    scummvm/branches/gsoc2010-plugins/engines/sci/parser/said.y
    scummvm/branches/gsoc2010-plugins/engines/sci/sound/drivers/amiga.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/video/vmd_decoder.cpp
    scummvm/branches/gsoc2010-plugins/engines/sci/video/vmd_decoder.h
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/Arial.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/Arial12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/ArialBold.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/README
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/clR6x12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/clR6x12-iso-8859-5.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/clR6x12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/courr12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/fixed5x8-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/fixed5x8-iso-8859-5.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvB12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvB12-iso-8859-5.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvB12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvBO12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvBO12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvR12-iso-8859-1.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/helvR12.bdf
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/README.ScummVM
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazLT.font
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazLT.readme
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazlt/
    scummvm/branches/gsoc2010-plugins/gui/themes/fonts/topaz/topazlt/8
    scummvm/branches/gsoc2010-plugins/gui/themes/scummmodern/helvr12-l1.fcc
    scummvm/branches/gsoc2010-plugins/po/POTFILES
    scummvm/branches/gsoc2010-plugins/po/ca_ES.po
    scummvm/branches/gsoc2010-plugins/po/de_DE.po
    scummvm/branches/gsoc2010-plugins/po/es_ES.po
    scummvm/branches/gsoc2010-plugins/po/fr_FR.po
    scummvm/branches/gsoc2010-plugins/po/hu_HU.po
    scummvm/branches/gsoc2010-plugins/po/it_IT.po
    scummvm/branches/gsoc2010-plugins/po/module.mk
    scummvm/branches/gsoc2010-plugins/po/remove-potcdate.sed
    scummvm/branches/gsoc2010-plugins/po/ru_RU.po
    scummvm/branches/gsoc2010-plugins/po/scummvm.pot
    scummvm/branches/gsoc2010-plugins/po/uk_UA.po
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_audio.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_audio.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_euphony.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_euphony.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_driver.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_driver.h
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp
    scummvm/branches/gsoc2010-plugins/sound/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h

Property Changed:
----------------
    scummvm/branches/gsoc2010-plugins/
    scummvm/branches/gsoc2010-plugins/backends/platform/ds/
    scummvm/branches/gsoc2010-plugins/backends/platform/gp2xwiz/
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/cursor.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/default_display_client.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/display_client.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/display_manager.cpp
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/display_manager.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/elf32.h
    scummvm/branches/gsoc2010-plugins/backends/platform/psp/input.cpp
    scummvm/branches/gsoc2010-plugins/backends/timer/
    scummvm/branches/gsoc2010-plugins/dists/iphone/
    scummvm/branches/gsoc2010-plugins/dists/iphone/scummvm.xcodeproj/
    scummvm/branches/gsoc2010-plugins/engines/draci/script.cpp
    scummvm/branches/gsoc2010-plugins/engines/draci/script.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/codec.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/msrle.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/msrle.h
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/msvideo1.cpp
    scummvm/branches/gsoc2010-plugins/graphics/video/codecs/msvideo1.h


Property changes on: scummvm/branches/gsoc2010-plugins
___________________________________________________________________
Modified: svn:mergeinfo
   - /scummvm/branches/gsoc2009-draci:41389-44325
/scummvm/trunk:49122-49434
   + /scummvm/branches/gsoc2009-draci:41389-44325
/scummvm/trunk:49122-51947

Modified: scummvm/branches/gsoc2010-plugins/AUTHORS
===================================================================
--- scummvm/branches/gsoc2010-plugins/AUTHORS	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/AUTHORS	2010-08-10 23:21:08 UTC (rev 51961)
@@ -166,6 +166,9 @@
 
   Backend Teams
   -------------
+    Android:
+       Angus Lees
+
     Dreamcast:
        Marcus Comstedt
 
@@ -187,9 +190,6 @@
     Nintendo DS:
        Neil Millstone
 
-    PalmOS:
-       Chris Apers
-
     PocketPC / WinCE:
        Nicolas Bacca         - (retired)
        Kostas Nakos
@@ -253,6 +253,7 @@
 
   Retired Team Members
   --------------------
+     Chris Apers           - Former PalmOS porter
      Ralph Brorsen         - Help with GUI implementation
      Jamieson Christian    - iMUSE, MIDI, all things musical
      Felix Jakschitsch     - Zak256 reverse engineering
@@ -315,6 +316,35 @@
        Chris Gray            - (retired)
        Johannes Schickel
 
+  Translations
+  ------------
+     Thierry Crozat        - Translation Lead
+
+    Catalan:
+       Jordi Vilalta Prat
+
+    French:
+       Thierry Crozat
+
+    German:
+       Simon Sawatzki
+       Lothar Serra Mari
+
+    Hungarian:
+       Alex Bevilacqua
+
+    Italian:
+       Matteo Angelino
+
+    Russian:
+       Eugene Sandulenko
+
+    Spanish:
+       Tomas Maidagan
+
+    Ukrainian:
+       Lubomyr Lisen
+
   Websites (design)
   -----------------
      Dobo Balazs           - Website design
@@ -392,7 +422,7 @@
      Ravi I.               - SCI0 sound resource specification
      Ruediger Hanke        - Port to the MorphOS platform
      Rune Orsval           - Configuration file editor
-     Rickard Lind          - MT32->GM MIDI mapping magic, sound research
+     Rickard Lind          - MT-32->GM MIDI mapping magic, sound research
      Rink Springer         - Port to the DOS platform, several bug fixes
      Robey Pointer         - Bug tracking system hosting
      Sergey Lapin          - Port of Carl's type 2 decompression code

Copied: scummvm/branches/gsoc2010-plugins/COPYING.BSD (from rev 51947, scummvm/trunk/COPYING.BSD)
===================================================================
--- scummvm/branches/gsoc2010-plugins/COPYING.BSD	                        (rev 0)
+++ scummvm/branches/gsoc2010-plugins/COPYING.BSD	2010-08-10 23:21:08 UTC (rev 51961)
@@ -0,0 +1,93 @@
+NOTE: Only certain parts of the ScummVM project are under the BSD license.
+The majority of the files are under the GNU GPL. See the headers of the
+individual files to find out the exact license.
+
+The term "BSD license" refers to any BSD-like license, as they are sometimes
+hard to tell apart. No slight against other licenses is intended.
+
+
+Parts of the Nintendo DS port use the following license:
+
+Copyright (c) 2006 Michael "Chishm" Chisholm
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  1. Redistributions of source code must retain the above copyright notice,
+     this list of conditions and the following disclaimer.
+  2. Redistributions in binary form must reproduce the above copyright notice,
+     this list of conditions and the following disclaimer in the documentation
+     and/or other materials provided with the distribution.
+  3. The name of the author may not be used to endorse or promote products
+     derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+Parts of the MPEG decoder use the following license:
+
+Copyright (c) 1995 The Regents of the University of California.
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without written agreement is
+hereby granted, provided that the above copyright notice and the following
+two paragraphs appear in all copies of this software.
+
+IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
+OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
+CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+Copyright (c) 1995 Erik Corry
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without written agreement is
+hereby granted, provided that the above copyright notice and the following
+two paragraphs appear in all copies of this software.
+
+IN NO EVENT SHALL ERIK CORRY BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
+THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF ERIK CORRY HAS BEEN ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ERIK CORRY SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
+BASIS, AND ERIK CORRY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
+UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+Portions of this software Copyright (c) 1995 Brown University.
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without written agreement
+is hereby granted, provided that the above copyright notice and the
+following two paragraphs appear in all copies of this software.
+
+IN NO EVENT SHALL BROWN UNIVERSITY BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
+OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF BROWN
+UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+BROWN UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS"
+BASIS, AND BROWN UNIVERSITY HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
+SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Modified: scummvm/branches/gsoc2010-plugins/COPYING.LGPL
===================================================================
--- scummvm/branches/gsoc2010-plugins/COPYING.LGPL	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/COPYING.LGPL	2010-08-10 23:21:08 UTC (rev 51961)
@@ -1,3 +1,9 @@
+NOTE: Only certain parts of the ScummVM project are under the GNU LGPL.
+The majority of the files are under the GNU GPL. See the headers of the
+individual files to find out the exact license.
+
+
+
                   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 2.1, February 1999
 

Modified: scummvm/branches/gsoc2010-plugins/COPYRIGHT
===================================================================
--- scummvm/branches/gsoc2010-plugins/COPYRIGHT	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/COPYRIGHT	2010-08-10 23:21:08 UTC (rev 51961)
@@ -48,6 +48,7 @@
 Pawel Kolodziejski
 Mutwin Kraus
 Andrew Kurushin
+Angus Lees
 Claudio Matsuoka
 Thomas Mayer
 Neil Millstone

Modified: scummvm/branches/gsoc2010-plugins/Makefile
===================================================================
--- scummvm/branches/gsoc2010-plugins/Makefile	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/Makefile	2010-08-10 23:21:08 UTC (rev 51961)
@@ -25,7 +25,7 @@
 	# Turn off some annoying and not-so-useful warnings
 	CXXFLAGS+= -Wno-long-long -Wno-multichar -Wno-unknown-pragmas -Wno-reorder
 	# Enable even more warnings...
-	CXXFLAGS+= -Wpointer-arith -Wcast-qual -Wcast-align
+	CXXFLAGS+= -Wpointer-arith -Wcast-qual
 	CXXFLAGS+= -Wshadow -Wimplicit -Wnon-virtual-dtor -Wwrite-strings
 
 	# Currently we disable this gcc flag, since it will also warn in cases,

Modified: scummvm/branches/gsoc2010-plugins/Makefile.common
===================================================================
--- scummvm/branches/gsoc2010-plugins/Makefile.common	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/Makefile.common	2010-08-10 23:21:08 UTC (rev 51961)
@@ -28,6 +28,7 @@
 	engines \
 	graphics \
 	common \
+	po
 
 ifdef USE_MT32EMU
 MODULES += sound/softsynth/mt32
@@ -223,7 +224,7 @@
 	@#DEB-src?
 
 # Common files
-DIST_FILES_DOCS:=$(addprefix $(srcdir)/,AUTHORS COPYING COPYING.LGPL COPYRIGHT NEWS README)
+DIST_FILES_DOCS:=$(addprefix $(srcdir)/,AUTHORS COPYING COPYING.BSD COPYING.LGPL COPYRIGHT NEWS README)
 
 # Themes files
 DIST_FILES_THEMES:=$(addprefix $(srcdir)/gui/themes/,scummmodern.zip)

Modified: scummvm/branches/gsoc2010-plugins/NEWS
===================================================================
--- scummvm/branches/gsoc2010-plugins/NEWS	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/NEWS	2010-08-10 23:21:08 UTC (rev 51961)
@@ -2,14 +2,53 @@
         http://scummvm.svn.sourceforge.net/viewvc/scummvm/?view=log
 
 1.2.0 (????-??-??)
- PSP port:
-   - Switched to new backend design which fixes minor graphical issues,
-     speeds things up, and provides 16-bit support.
+ New Ports:
+   - Added Android port.
 
  General:
+   - Removed the outdated PalmOS port.
    - Switched to the "fast" DOSBox OPL emulator.
    - Fixed a crash in the rjp1 player code affecting the FOTAQ Amiga version.
+   - Added support for more original media layouts.
+   - Added support for GUI localization.
+   - Improved GUI by adding tooltips and radiobuttons.
+   - Improved GUI usability by hiding more irrelevant options not supported by
+     specific games.
 
+ AGI:
+   - Fixed number of GFX glitches.
+   - Made PIC drawing code picture perfect.
+   - Added support of MIDI devices.
+   - Added support for accurate Tandy sound emulation. Switched to it as default.
+
+ Drascula:
+   - Fixed number of GFX glitches.
+   - Made many cutscenes smoother.
+   - Changed behavior of items menu. Now it shows up on mouse up.
+
+ Groovie:
+   - Added support for the Macintosh version of The 7th Guest.
+   - Added support for custom MT-32 instruments.
+
+ KYRA:
+   - Fixed some minor graphical glitches.
+   - Implemented formerly missing recreation of some in game items.
+
+ Parallaction:
+   - Made part one of The Big Red Adventure completable.
+
+ SAGA:
+   - Fixed graphics glitches in several scenes.
+
+ SCUMM:
+   - Several improvements in Maniac Mansion NES.
+
+ PSP port:
+   - Switched to new backend design which fixes minor graphical issues,
+     speeds things up, and provides 16-bit support.
+   - Enabled playback of MP3 files using the hardware decoder (ME). This means that
+     the port is now optimized for MP3 playback (as opposed to OGG).
+
 1.1.2 (????-??-??)
   Broken Sword 2
    - Fixed missing speech in some cutscenes.
@@ -18,7 +57,7 @@
 
 1.1.1 (2010-05-02)
  New Ports:
-   - Added Nintendo 64 Port. (Actually added in 1.1.0, but forgot to mention it. oops)
+   - Added Nintendo 64 port. (Actually added in 1.1.0, but forgot to mention it. oops)
 
  General:
    - Fixed several minor bugs here and there.

Modified: scummvm/branches/gsoc2010-plugins/README
===================================================================
--- scummvm/branches/gsoc2010-plugins/README	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/README	2010-08-10 23:21:08 UTC (rev 51961)
@@ -81,9 +81,10 @@
 and how well on the compatibility page. ScummVM is continually
 improving, so check back often.
 
-Among the systems on which you can play those games are Windows, Linux,
-Mac OS X, Dreamcast, PocketPC, PalmOS, AmigaOS, BeOS, OS/2, PSP, PS2,
-SymbianOS/EPOC, iPhone and many more.
+Among the systems on which you can play those games are regular desktop
+computers (running Windows, Linux, Mac OS X, ...), game consoles
+(Dreamcast, Nintendo DS & Wii, PS2, PSP, ...), smartphones (Android,
+iPhone, PocketPC, Symbian ...) and more.
 
 At this time ScummVM should be considered beta software, and is still
 under heavy development. Be aware that whilst we attempt to make sure
@@ -843,28 +844,30 @@
 
 Supported platforms include (but are not limited to):
 
-        UNIX            (Linux, Solaris, IRIX, *BSD)
+        UNIX            (Linux, Solaris, IRIX, *BSD, ...)
         Windows
         Windows CE and Windows Mobile  (including Smartphones and PocketPCs)
         Mac OS X
         AmigaOS
+        Android
         BeOS
         Dreamcast
-        iPhone          (also includes the iPod Touch)
+        GP2x
+        iPhone          (also includes iPod Touch and iPad)
+        Maemo           (Nokia Internet tablets 770, N800, N810, N900)
+        Nintendo 64
         Nintendo DS
-        PalmOS
+        Nintendo Wii
+        OS/2
         PlayStation 2
         PlayStation Portable
-        RISC OS
         Symbian
-        Maemo (Nokia Internet tablets 770, N800, N810, N900)
 
 The Dreamcast port does not support The Curse of Monkey Island, nor The
-Dig. The PalmOS port does not support The Curse of Monkey Island,
-Beneath a Steel Sky, nor either Simon the Sorcerer 1 or 2. The Dig will
-only work on some Palm devices (those with a large dynamic heap). The
-Nintendo DS port does not support Full Throttle, The Dig, or The Curse
-of Monkey Island.
+Dig. The Nintendo DS port does not support Full Throttle, The Dig, or
+The Curse of Monkey Island.
+For more platform specific limitations, please refer to our Wiki:
+  http://wiki.scummvm.org/index.php/Platforms
 
 In the Macintosh port, the right mouse button is emulated via Cmd-Click
 (that is, you click the mouse button while holding the

Modified: scummvm/branches/gsoc2010-plugins/backends/events/default/default-events.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/events/default/default-events.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/events/default/default-events.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -95,13 +95,11 @@
 		case Common::EVENT_KEYDOWN:
 			_modifierState = event.kbd.flags;
 			// init continuous event stream
-			// not done on PalmOS because keyboard is emulated and keyup is not generated
-#if !defined(PALMOS_MODE)
 			_currentKeyDown.ascii = event.kbd.ascii;
 			_currentKeyDown.keycode = event.kbd.keycode;
 			_currentKeyDown.flags = event.kbd.flags;
 			_keyRepeatTime = time + kKeyRepeatInitialDelay;
-#endif
+
 			// Global Main Menu
 			if (event.kbd.hasFlags(Common::KBD_CTRL) && event.kbd.keycode == Common::KEYCODE_F5) {
 				if (g_engine && !g_engine->isPaused()) {

Modified: scummvm/branches/gsoc2010-plugins/backends/fs/amigaos4/amigaos4-fs.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/fs/amigaos4/amigaos4-fs.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/fs/amigaos4/amigaos4-fs.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -368,7 +368,7 @@
 		}
 
 		if (ERROR_NO_MORE_ENTRIES != IDOS->IoErr() ) {
-			debug(6, "An error occured during ExamineDir");
+			debug(6, "An error occurred during ExamineDir");
 			ret = false;
 		} else {
 			ret = true;

Modified: scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs-factory.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs-factory.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs-factory.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -27,7 +27,7 @@
 #include "backends/fs/ds/ds-fs.h"
 #include "dsmain.h" //for the isGBAMPAvailable() function
 
-DECLARE_SINGLETON(DSFilesystemFactory);
+DECLARE_SINGLETON(DSFilesystemFactory)
 
 AbstractFSNode *DSFilesystemFactory::makeRootFileNode() const {
 	if (DS::isGBAMPAvailable()) {

Modified: scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -8,16 +8,19 @@
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
+ * $URL$
+ * $Id$
+ *
  */
 
 #include "common/str.h"
@@ -115,7 +118,7 @@
 //	consolePrintf("Found: %d, Dir: %d\n", _isValid, _isDirectory);
 }
 
-DSFileSystemNode::DSFileSystemNode(const DSFileSystemNode* node) {
+DSFileSystemNode::DSFileSystemNode(const DSFileSystemNode *node) {
 	//TODO: not implemented?
 }
 
@@ -144,7 +147,7 @@
 			_zipFile->changeToRoot();
 
 /*			// This is the root dir, so add the RAM folder
-			DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/ram");
+			DSFileSystemNode *dsfsn = new DSFileSystemNode("ds:/ram");
 			dsfsn->_isDirectory = true;
 			dirList->push_back(wrap(dsfsn));
 */
@@ -162,7 +165,7 @@
 			if ( (_zipFile->isDirectory() && ((mode == Common::FSNode::kListDirectoriesOnly) || (mode == Common::FSNode::kListAll)) )
 				|| (!_zipFile->isDirectory() && ((mode == Common::FSNode::kListFilesOnly) || (mode == Common::FSNode::kListAll)) ) )
 			{
-				DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/" + Common::String(n), _zipFile->isDirectory());
+				DSFileSystemNode *dsfsn = new DSFileSystemNode("ds:/" + Common::String(n), _zipFile->isDirectory());
 				dsfsn->_isDirectory = _zipFile->isDirectory();
 				dirList.push_back((dsfsn));
 			}
@@ -173,15 +176,15 @@
 	return true;
 }
 
-AbstractFSNode* DSFileSystemNode::getParent() const {
+AbstractFSNode *DSFileSystemNode::getParent() const {
 //	consolePrintf("parent\n");
 	DSFileSystemNode *p;
 
 	if (_path != "ds:/") {
-		char *path = (char *) _path.c_str();
+		const char *path = (const char *)_path.c_str();
 		int lastSlash = 4;
 
-		for (int r = 4; r < (int) _path.size(); r++) {
+		for (uint r = 4; r < _path.size(); r++) {
 			if (path[r] == '\\') {
 				lastSlash = r;
 			}
@@ -259,7 +262,7 @@
 	_path = path;
 }
 
-GBAMPFileSystemNode::GBAMPFileSystemNode(const Common::String& path, bool isDirectory) {
+GBAMPFileSystemNode::GBAMPFileSystemNode(const Common::String& path, bool isDir) {
 	//consolePrintf("'%s'",path.c_str());
 
 	int lastSlash = 3;
@@ -272,11 +275,11 @@
 	_displayName = Common::String(path.c_str() + lastSlash + 1);
 	_path = path;
 	_isValid = true;
-	_isDirectory = isDirectory;
+	_isDirectory = isDir;
 }
 
 
-GBAMPFileSystemNode::GBAMPFileSystemNode(const GBAMPFileSystemNode* node) {
+GBAMPFileSystemNode::GBAMPFileSystemNode(const GBAMPFileSystemNode *node) {
 	//TODO: not implemented?
 }
 
@@ -319,7 +322,7 @@
 
 		if ( ((entryType == TYPE_DIR) && ((mode == Common::FSNode::kListDirectoriesOnly) || (mode == Common::FSNode::kListAll)))
 		||   ((entryType == TYPE_FILE) && ((mode == Common::FSNode::kListFilesOnly) || (mode == Common::FSNode::kListAll))) ) {
-			GBAMPFileSystemNode* dsfsn;
+			GBAMPFileSystemNode *dsfsn;
 
 			//consolePrintf("Fname: %s\n", fname);
 
@@ -348,15 +351,15 @@
 	return true;
 }
 
-AbstractFSNode* GBAMPFileSystemNode::getParent() const {
+AbstractFSNode *GBAMPFileSystemNode::getParent() const {
 //	consolePrintf("parent\n");
 	GBAMPFileSystemNode *p;
 
 	if (_path != "mp:/") {
-		char *path = (char *) _path.c_str();
+		const char *path = (const char *)_path.c_str();
 		int lastSlash = 4;
 
-		for (int r = 4; r < (int) strlen((char *) path); r++) {
+		for (uint r = 4; r < strlen(path); r++) {
 			if (path[r] == '/') {
 				lastSlash = r;
 			}
@@ -413,18 +416,12 @@
 }
 
 int32 DSFileStream::pos() const {
-	if (_writeBufferPos > 0) {
-		// Discard constness.  Bad, but I can't see another way.
-		((DSFileStream *) (this))->flush();
-	}
+	assert(_writeBufferPos == 0);	// This method may only be called when reading!
 	return std_ftell((FILE *)_handle);
 }
 
 int32 DSFileStream::size() const {
-	if (_writeBufferPos > 0) {
-		// Discard constness.  Bad, but I can't see another way.
-		((DSFileStream *) (this))->flush();
-	}
+	assert(_writeBufferPos == 0);	// This method may only be called when reading!
 	int32 oldPos = std_ftell((FILE *)_handle);
 	std_fseek((FILE *)_handle, 0, SEEK_END);
 	int32 length = std_ftell((FILE *)_handle);
@@ -444,16 +441,15 @@
 	if (_writeBufferPos > 0) {
 		flush();
 	}
-	return std_fread((byte *)ptr, 1, len, (FILE *)_handle);
+	return std_fread(ptr, 1, len, (FILE *)_handle);
 }
 
 uint32 DSFileStream::write(const void *ptr, uint32 len) {
 	if (_writeBufferPos + len < WRITE_BUFFER_SIZE) {
 		memcpy(_writeBuffer + _writeBufferPos, ptr, len);
 		_writeBufferPos += len;
-	}
-	else
-	{
+		return len;
+	} else {
 		if (_writeBufferPos > 0) {
 			flush();
 		}
@@ -483,31 +479,33 @@
 
 
 // Stdio replacements
-#define MAX_FILE_HANDLES 32
+enum {
+	MAX_FILE_HANDLES = 32
+};
 
-bool inited = false;
-DS::fileHandle handle[MAX_FILE_HANDLES];
+static bool inited = false;
+static DS::fileHandle s_handle[MAX_FILE_HANDLES];
 
-FILE* std_fopen(const char* name, const char* mode) {
+FILE *std_fopen(const char *name, const char *mode) {
 	if (!inited) {
 		for (int r = 0; r < MAX_FILE_HANDLES; r++) {
-			handle[r].used = false;
+			s_handle[r].used = false;
 		}
 		inited = true;
 		currentDir[0] = '\0';
 	}
 
-	char* realName = (char *) name;
+	char realName[MAXPATHLEN];
 
 	// Remove file system prefix
 	if ((name[0] == 'd') && (name[1] == 's') && (name[2] == ':') && (name[3] == '/')) {
-		realName += 4;
+		strlcpy(realName, name + 4, MAXPATHLEN);
+	} else if ((name[0] == 'm') && (name[1] == 'p') && (name[2] == ':') && (name[3] == '/')) {
+		strlcpy(realName, name + 4, MAXPATHLEN);
+	} else {
+		strlcpy(realName, name, MAXPATHLEN);
 	}
 
-	if ((name[0] == 'm') && (name[1] == 'p') && (name[2] == ':') && (name[3] == '/')) {
-		realName += 4;
-	}
-
 //	consolePrintf("Open file:");
 //	consolePrintf("'%s', [%s]", name, realName);
 
@@ -515,13 +513,14 @@
 		FAT_chdir("/");
 
 		// Turn all back slashes into forward slashes for gba_nds_fat
-		char* p = realName;
+		char *p = realName;
 		while (*p) {
-			if (*p == '\\') *p = '/';
+			if (*p == '\\')
+				*p = '/';
 			p++;
 		}
 
-		FAT_FILE* result = FAT_fopen(realName, mode);
+		FAT_FILE *result = FAT_fopen(realName, mode);
 
 		if (result == 0) {
 //			consolePrintf("Error code %d\n", result);
@@ -531,42 +530,21 @@
 		}
 //		MT_memoryReport();
 
-		return (FILE *) result;
+		return (FILE *)result;
 	}
 
 	// Fail to open file for writing.  It's in ROM!
 
 	// Allocate a file handle
 	int r = 0;
-	while (handle[r].used) {
+	while (s_handle[r].used) {
 		r++;
 		assert(r < MAX_FILE_HANDLES);
 	}
 
-#ifdef GBA_SRAM_SAVE
-	if (strchr(mode, 'w')) {
-//		consolePrintf("Writing %s\n", realName);
-		handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, true);
-	} else {
-//		consolePrintf("Reading %s\n", realName);
-		handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, false);
-	}
-#endif
+	char *data;
 
-	if (handle[r].sramFile) {
-		handle[r].used = true;
-		handle[r].pos = 0;
-		handle[r].data = NULL;
-		handle[r].size = handle[r].sramFile->getSize();
-//		consolePrintf("Found it");
-		return &handle[r];
-	}
-
-//	consolePrintf("Not in SRAM!");
-
-	char* data;
-
-	ZipFile* zip = DSFileSystemNode::getZip();
+	ZipFile *zip = DSFileSystemNode::getZip();
 	if (!zip) {
 //		consolePrintf("No zip yet!");
 		return NULL;
@@ -578,7 +556,7 @@
 
 	if (currentDir[0] != 0) {
 		char nameWithPath[128];
-		sprintf(nameWithPath, "%s\%s", currentDir, realName);
+		sprintf(nameWithPath, "%s\\%s", currentDir, realName);
 		strcpy(realName, nameWithPath);
 	}
 
@@ -589,17 +567,18 @@
 		zip->setAllFilesVisible(false);
 
 		// Allocate a file handle
-		int r = 0;
-		while (handle[r].used) r++;
+		r = 0;
+		while (s_handle[r].used)
+			r++;
 
 
-		handle[r].used = true;
-		handle[r].pos = 0;
-		handle[r].data = data;
-		handle[r].size = zip->getFileSize();
+		s_handle[r].used = true;
+		s_handle[r].pos = 0;
+		s_handle[r].data = data;
+		s_handle[r].size = zip->getFileSize();
 
 //		consolePrintf("Opened file %d: %s (%s)   ", r, realName, name);
-		return &handle[r];
+		return &s_handle[r];
 	} else {
 		zip->setAllFilesVisible(false);
 //		consolePrintf("Not found: %s (%s)  ", realName, name);
@@ -607,7 +586,7 @@
 	}
 }
 
-void std_fclose(FILE* handle) {
+void std_fclose(FILE *handle) {
 
 	if (DS::isGBAMPAvailable()) {
 		FAT_fclose((FAT_FILE *) handle);
@@ -615,19 +594,15 @@
 	}
 
 	handle->used = false;
-	if (handle->sramFile) {
-		delete handle->sramFile;
-		handle->sramFile = NULL;
-	}
 }
 
-size_t std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle) {
+size_t std_fread(void *ptr, size_t size, size_t numItems, FILE *handle) {
 //	consolePrintf("fread %d,%d %d ", size, numItems, ptr);
 
 	if (DS::isGBAMPAvailable()) {
 		readPastEndOfFile = false;
 
-		int bytes = FAT_fread((void *) ptr, size, numItems, (FAT_FILE *) handle);
+		int bytes = FAT_fread(ptr, size, numItems, (FAT_FILE *) handle);
 		if (!FAT_feof((FAT_FILE *) handle)) {
 			return numItems;
 		} else {
@@ -638,36 +613,22 @@
 		return numItems;
 	}
 
-	if (handle->sramFile) {
-		int bytes = 0;
-		int result = 1;
-		//consolePrintf("fread size=", size * numItems);
-		for (int r = 0; (r < (s32) size * (s32) numItems) && (result > 0); r++) {
-			result = handle->sramFile->read((void *) ( ((char *) (ptr)) + r), 1);
-			bytes += result;
-			//consolePrintf("'%d',", ((char *) (ptr))[0]);
-		}
-
-		handle->pos += bytes;
-
-		return bytes / size;
-	}
-
-	if ((int)(handle->pos + size * numItems) > handle->size) {
+	if (handle->pos > handle->size)
+		numItems = 0;
+	else if ((int)(handle->pos + size * numItems) > handle->size)
 		numItems = (handle->size - handle->pos) / size;
-		if (numItems < 0) numItems = 0;
-	}
 
 //	consolePrintf("read %d  ", size * numItems);
 
-	memcpy((void *) ptr, handle->data + handle->pos, size * numItems);
+	memcpy(ptr, handle->data + handle->pos, size * numItems);
 	handle->pos += size * numItems;
 
 	return numItems;
 }
 
-size_t std_fwrite(const void* ptr, size_t size, size_t numItems, FILE* handle) {
-	if ((handle == stdin)) return 0;
+size_t std_fwrite(const void *ptr, size_t size, size_t numItems, FILE *handle) {
+	if ((handle == stdin))
+		return 0;
 
 	if ((handle == stderr) || (handle == stdout)) {
 //		consolePrintf((char *) ptr);
@@ -677,7 +638,7 @@
 	//consolePrintf("fwrite size=%d\n", size * numItems);
 
 	if (DS::isGBAMPAvailable()) {
-		FAT_fwrite(((char *) (ptr)), size, numItems, (FAT_FILE *) handle);
+		FAT_fwrite(ptr, size, numItems, (FAT_FILE *) handle);
 		return numItems;
 
 		int length = size * numItems;
@@ -694,36 +655,27 @@
 		return numItems;
 	}
 
-	if (handle->sramFile) {
-		handle->sramFile->write(ptr, size);
-		return size;
-	} else {
-		return 0;
-	}
+	return 0;
 }
 
-bool std_feof(FILE* handle) {
+bool std_feof(FILE *handle) {
 //	consolePrintf("feof ");
 
 	if (DS::isGBAMPAvailable()) {
 		return readPastEndOfFile && FAT_feof((FAT_FILE *) handle);
 	}
 
-	if (handle->sramFile) {
-		return handle->sramFile->eos();
-	}
-
 //	consolePrintf("feof %s", handle->pos >= handle->size? "true": "false");
 	return handle->pos >= handle->size;
 }
 
-int std_fflush(FILE* handle) {
+int std_fflush(FILE *handle) {
 	//FIXME: not implemented?
 //	consolePrintf("fflush ");
 	return 0;
 }
 
-long int std_ftell(FILE* handle) {
+long int std_ftell(FILE *handle) {
 	if (DS::isGBAMPAvailable()) {
 		return FAT_ftell((FAT_FILE *) handle);
 	}
@@ -731,7 +683,7 @@
 	return handle->pos;
 }
 
-int std_fseek(FILE* handle, long int offset, int whence) {
+int std_fseek(FILE *handle, long int offset, int whence) {
 //	consolePrintf("fseek %d %d ", offset, whence);
 
 	if (DS::isGBAMPAvailable()) {
@@ -756,14 +708,14 @@
 	return 0;
 }
 
-int std_ferror(FILE* handle) {
+int std_ferror(FILE *handle) {
 	//FIXME: not implemented?
 //	consolePrintf("ferror ");
 
 	return readPastEndOfFile;
 }
 
-void std_clearerr(FILE* handle) {
+void std_clearerr(FILE *handle) {
 	//FIXME: not implemented?
 	readPastEndOfFile = false;
 //	consolePrintf("clearerr ");

Modified: scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.h
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.h	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/fs/ds/ds-fs.h	2010-08-10 23:21:08 UTC (rev 51961)
@@ -8,27 +8,30 @@
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- *
+
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
+
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
+ * $URL$
+ * $Id$
+ *
  */
 
 #ifndef _DS_FS_H
 #define _DS_FS_H
 
-//#include <NDS/ARM9/console.h>
 #include "common/fs.h"
+#include "common/stream.h"
+#include "backends/fs/abstract-fs.h"
+
 #include "zipreader.h"
-#include "ramsave.h"
 #include "fat/gba_nds_fat.h"
-#include "backends/fs/abstract-fs.h"
 
 namespace DS {
 
@@ -40,7 +43,7 @@
  */
 class DSFileSystemNode : public AbstractFSNode {
 protected:
-	static ZipFile* _zipFile;
+	static ZipFile *_zipFile;
 
 	Common::String _displayName;
 	Common::String _path;
@@ -96,7 +99,7 @@
 	 * Returns the zip file this node points to.
 	 * TODO: check this documentation.
 	 */
-	static ZipFile* getZip() { return _zipFile; }
+	static ZipFile *getZip() { return _zipFile; }
 };
 
  /**
@@ -161,16 +164,16 @@
 struct fileHandle {
 	int pos;
 	bool used;
-	char* data;
+	char *data;
 	int size;
-
-	DSSaveFile* sramFile;
 };
 
 
 class DSFileStream : public Common::SeekableReadStream, public Common::WriteStream, public Common::NonCopyable {
 protected:
-	static const int WRITE_BUFFER_SIZE = 512;
+	enum {
+		WRITE_BUFFER_SIZE = 512
+	};
 
 	/** File handle to the actual file. */
 	void 	*_handle;
@@ -206,24 +209,24 @@
 #undef stdout
 #undef stdin
 
-#define stdout ((DS::fileHandle*) -1)
-#define stderr ((DS::fileHandle*) -2)
-#define stdin ((DS::fileHandle*) -3)
+#define stdout ((DS::fileHandle *) -1)
+#define stderr ((DS::fileHandle *) -2)
+#define stdin ((DS::fileHandle *) -3)
 
 #define FILE DS::fileHandle
 
 // Please do not remove any of these prototypes that appear not to be required.
-FILE*	std_fopen(const char* name, const char* mode);
-void	std_fclose(FILE* handle);
-size_t	std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle);
-size_t	std_fwrite(const void* ptr, size_t size, size_t numItems, FILE* handle);
-bool	std_feof(FILE* handle);
-long int std_ftell(FILE* handle);
-int		std_fseek(FILE* handle, long int offset, int whence);
-void	std_clearerr(FILE* handle);
-int		std_fflush(FILE* handle);
-int		std_ferror(FILE* handle);
+FILE*	std_fopen(const char *name, const char *mode);
+void	std_fclose(FILE *handle);
+size_t	std_fread(void *ptr, size_t size, size_t numItems, FILE *handle);
+size_t	std_fwrite(const void *ptr, size_t size, size_t numItems, FILE *handle);
+bool	std_feof(FILE *handle);
+long int std_ftell(FILE *handle);
+int		std_fseek(FILE *handle, long int offset, int whence);
+void	std_clearerr(FILE *handle);
+int		std_fflush(FILE *handle);
+int		std_ferror(FILE *handle);
 
-} //namespace DS
+}	// End of namespace DS
 
 #endif //_DS_FS_H

Modified: scummvm/branches/gsoc2010-plugins/backends/fs/psp/psp-stream.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/fs/psp/psp-stream.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/fs/psp/psp-stream.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -24,6 +24,8 @@
  */
 #ifdef __PSP__
 
+#include <pspiofilemgr_stat.h>
+#include <pspiofilemgr.h>
 #include <SDL/SDL_thread.h>
 #include <SDL/SDL_mutex.h>
 
@@ -32,40 +34,63 @@
 
 #include <errno.h>
 
-//#define __PSP_PRINT_TO_FILE__
-//#define __PSP_DEBUG_FUNCS__ /* For debugging function calls */
+#define MIN2(a,b) ((a < b) ? a : b)
+#define MIN3(a,b,c) ( (a < b) ? (a < c ? a : c) : (b < c ? b : c) )
+
+//#define __PSP_PRINT_TO_FILE__ /* For debugging suspend stuff, we have no screen output */
+//#define __PSP_DEBUG_FUNCS__ 	/* For debugging function calls */
 //#define __PSP_DEBUG_PRINT__	/* For debug printouts */
+
 #include "backends/platform/psp/trace.h"
 
+//#define DEBUG_BUFFERS					/* to see the contents of the buffers being read */
+
+#ifdef DEBUG_BUFFERS
+void printBuffer(byte *ptr, uint32 len) {
+	uint32 printLen = len <= 10 ? len : 10;
+	
+	for (int i = 0; i < printLen; i++) {
+		PSP_INFO_PRINT("%x ", ptr[i]);		
+	}
+	
+	if (len > 10) {
+		PSP_INFO_PRINT("... ");
+		for (int i = len - 10; i < len; i++)
+			PSP_INFO_PRINT("%x ", ptr[i]);
+	}
+	
+	PSP_INFO_PRINT("\n");
+}
+#endif
+
+
 PSPIoStream::PSPIoStream(const Common::String &path, bool writeMode)
-		: StdioStream((void *)1), _path(path), _writeMode(writeMode) {
+		: StdioStream((void *)1), _path(path), _writeMode(writeMode),
+		  _ferror(false), _pos(0),
+		  _physicalPos(0), _fileSize(0), _inCache(false), _eos(false),
+		  _cacheStartOffset(-1), _cache(0),
+		  _errorSuspend(0), _errorSource(0),
+		  _errorPos(0), _errorHandle(0), _suspendCount(0) {
 	DEBUG_ENTER_FUNC();
 
-	assert(!path.empty());
+	// assert(!path.empty());	// do we need this?
 
 	_handle = (void *)0;		// Need to do this since base class asserts not 0.
-	_ferror = false;
-	_feof = false;
-	_pos = 0;
-
-	/* for error checking */
-	_errorSuspend = 0;
-	_errorSource = 0;
-	_errorPos = 0;
-	_errorHandle = 0;
-	_suspendCount = 0;
 }
 
 PSPIoStream::~PSPIoStream() {
 	DEBUG_ENTER_FUNC();
 
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked)
+	if (PowerMan.beginCriticalSection())
 		PSP_DEBUG_PRINT_FUNC("Suspended\n");
 
-	PowerMan.unregisterSuspend(this); // Unregister with powermanager to be suspended
-	// Must do this before fclose() or resume() will reopen.
+	PowerMan.unregisterForSuspend(this); // Unregister with powermanager to be suspended
+									  // Must do this before fclose() or resume() will reopen.
 
-	fclose((FILE *)_handle);	// We don't need a critical section(?). Worst case, the handle gets closed on its own
+	fclose((FILE *)_handle);		  // We don't need a critical section. Worst case, the handle gets closed on its own
+	
+	if (_cache)
+		free(_cache);
 
 	PowerMan.endCriticalSection();
 }
@@ -75,15 +100,26 @@
  */
 void *PSPIoStream::open() {
 	DEBUG_ENTER_FUNC();
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked) {
+	if (PowerMan.beginCriticalSection()) {
 		// No need to open. Just return the _handle resume() already opened.
 		PSP_DEBUG_PRINT_FUNC("Suspended\n");
 	}
 
 	_handle = fopen(_path.c_str(), _writeMode ? "wb" : "rb"); 	// open
 
-	PowerMan.registerSuspend(this);	 // Register with the powermanager to be suspended
+	if (_handle) {
+		// Get the file size. This way is much faster than going to the end of the file and back
+		SceIoStat stat;
+		sceIoGetstat(_path.c_str(), &stat);
+		_fileSize = *((uint32 *)(void *)&stat.st_size);	// 4GB file is big enough for us
+		PSP_DEBUG_PRINT("%s filesize = %d\n", _path.c_str(), _fileSize);
+	
+		// Allocate the cache
+		_cache = (char *)memalign(64, CACHE_SIZE);
+	}
 
+	PowerMan.registerForSuspend(this);	 // Register with the powermanager to be suspended
+
 	PowerMan.endCriticalSection();
 
 	return _handle;
@@ -91,120 +127,215 @@
 
 bool PSPIoStream::err() const {
 	DEBUG_ENTER_FUNC();
-	if (_ferror)
-		PSP_ERROR("mem_ferror[%d], source[%d], suspend error[%d], pos[%d], _errorPos[%d], _errorHandle[%p], suspendCount[%d]\n",
-		          _ferror, _errorSource, _errorSuspend, _pos, _errorPos, _errorHandle, _suspendCount);
+	
+	if (_ferror)	// We dump since no printing to screen with suspend
+		PSP_ERROR("mem_ferror[%d], source[%d], suspend error[%d], pos[%d], \
+		_errorPos[%d], _errorHandle[%p], suspendCount[%d]\n",
+		          _ferror, _errorSource, _errorSuspend, _pos,
+				  _errorPos, _errorHandle, _suspendCount);
 
 	return _ferror;
 }
 
 void PSPIoStream::clearErr() {
-	_ferror = false;	// Remove regular error bit
+	_ferror = false;
 }
 
 bool PSPIoStream::eos() const {
-	return _feof;
+	return _eos;
 }
 
 int32 PSPIoStream::pos() const {
 	return _pos;
 }
 
-
 int32 PSPIoStream::size() const {
-	DEBUG_ENTER_FUNC();
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked)
-		PSP_DEBUG_PRINT_FUNC("Suspended\n");
-
-	fseek((FILE *)_handle, 0, SEEK_END);
-	int32 length = ftell((FILE *)_handle);
-	fseek((FILE *)_handle, _pos, SEEK_SET);
-
-	if (_pos < 0 || length < 0) {	// Check for errors
-		_errorSource = 2;
-		PSP_ERROR("pos[%d] or length[%d] < 0!\n", _pos, length);
-		_ferror = true;
-		length = -1;				// If our oldPos is bad, we want length to be bad too to signal
-		clearerr((FILE *)_handle);
-	}
-
-	PowerMan.endCriticalSection();
-
-	return length;
+	return _fileSize;
 }
 
 bool PSPIoStream::seek(int32 offs, int whence) {
 	DEBUG_ENTER_FUNC();
-
-	// Check if we can access the file
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked)
-		PSP_DEBUG_PRINT_FUNC("Suspended\n");
-
-	int ret = fseek((FILE *)_handle, offs, whence);
-
-	if (ret != 0) {
+	PSP_DEBUG_PRINT_FUNC("offset[0x%x], whence[%d], _pos[0x%x], _physPos[0x%x]\n", offs, whence, _pos, _physicalPos);
+	_eos = false;
+	
+	int32 posToSearchFor = 0;
+	switch (whence) {
+	case SEEK_CUR:
+		posToSearchFor = _pos;
+		break;
+	case SEEK_END:
+		posToSearchFor = _fileSize;	// unsure. Does it take us here or to EOS - 1?
+		break;
+	}
+	posToSearchFor += offs;
+	
+	// Check for bad values
+	if (posToSearchFor < 0) {
 		_ferror = true;
-		PSP_ERROR("fseek returned with [%d], non-zero\n", ret);
-		clearerr((FILE *)_handle);
-		_feof = feof((FILE *)_handle);
-		_errorSource = 3;
-	} else {					// everything ok
-		_feof = false;		// Reset eof flag since we know it was ok
+		return false;
 	}
-
-	_pos = ftell((FILE *)_handle);	// update pos
-
-	PowerMan.endCriticalSection();
-
-	return (ret == 0);
+	
+	if (posToSearchFor > _fileSize) {
+		_ferror = true;
+		_eos = true;
+		return false;
+	}
+	
+	// See if we can find it in cache
+	if (isOffsetInCache(posToSearchFor)) {
+		PSP_DEBUG_PRINT("seek offset[0x%x] found in cache. Cache starts[0x%x]\n", posToSearchFor, _cacheStartOffset);
+		_inCache = true;		
+	} else {	// not in cache
+		_inCache = false;		
+	}	
+	_pos = posToSearchFor;		
+	return true;
 }
 
 uint32 PSPIoStream::read(void *ptr, uint32 len) {
 	DEBUG_ENTER_FUNC();
-	// Check if we can access the file
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked)
-		PSP_DEBUG_PRINT_FUNC("Suspended\n");
+	PSP_DEBUG_PRINT_FUNC("filename[%s], len[0x%x], ptr[%p]\n", _path.c_str(), len, ptr);
 
-	PSP_DEBUG_PRINT_FUNC("filename[%s], len[%d]\n", _path.c_str(), len);
+	if (_ferror || _eos)
+		return 0;
+		
+	byte *destPtr = (byte *)ptr;
+	uint32 lenFromFile = len;		// how much we read from the actual file
+	uint32 lenFromCache = 0;		// how much we read from cache
+	uint32 lenRemainingInFile = _fileSize - _pos;
+	
+	if (lenFromFile > lenRemainingInFile) {
+		lenFromFile = lenRemainingInFile;
+		_eos = true;
+	}	
+	
+	// Are we in cache?
+	if (_inCache && isCacheValid()) {
+		uint32 offsetInCache = _pos - _cacheStartOffset;
+		// We can read at most what's in the cache or the remaining size of the file
+		lenFromCache = MIN2(lenFromFile, CACHE_SIZE - offsetInCache); // unsure
+		
+		PSP_DEBUG_PRINT("reading 0x%x bytes from cache to %p. pos[0x%x] physPos[0x%x] cacheStart[0x%x]\n", lenFromCache, destPtr, _pos, _physicalPos, _cacheStartOffset);
+		
+		memcpy(destPtr, &_cache[offsetInCache], lenFromCache);
+		_pos += lenFromCache;		
+		
+		if (lenFromCache < lenFromFile) {	// there's more to copy from the file
+			lenFromFile -= lenFromCache;
+			lenRemainingInFile -= lenFromCache;	// since we moved pos
+			destPtr += lenFromCache;
+		} else {							// we're done
+#ifdef DEBUG_BUFFERS
+			printBuffer((byte *)ptr, len);
+#endif			
+			
+			return lenFromCache;			// how much we actually read
+		}		
+	}
 
-	size_t ret = fread((byte *)ptr, 1, len, (FILE *)_handle);
+	if (PowerMan.beginCriticalSection())
+		PSP_DEBUG_PRINT_FUNC("Suspended\n");
+	
+	
+	synchronizePhysicalPos();	// we need to update our physical position
+	
+	if (lenFromFile <= MIN_READ_SIZE) {	// We load the cache in case the read is small enough
+		// This optimization is based on the principle that reading 1 byte is as expensive as 1000 bytes
+		uint32 lenToCopyToCache = MIN2((uint32)MIN_READ_SIZE, lenRemainingInFile); // at most remaining file size
+		
+		PSP_DEBUG_PRINT("filling cache with 0x%x bytes from physicalPos[0x%x]. cacheStart[0x%x], pos[0x%x], fileSize[0x%x]\n", lenToCopyToCache, _physicalPos, _cacheStartOffset, _pos, _fileSize);
+		
+		size_t ret = fread(_cache, 1, lenToCopyToCache, (FILE *)_handle);
+		if (ret != lenToCopyToCache) {
+			PSP_ERROR("in filling cache, failed to get 0x%x bytes. Only got 0x%x\n", lenToCopyToCache, ret);
+			_ferror = true;
+			clearerr((FILE *)_handle);
+		}
+		_cacheStartOffset = _physicalPos;
+		_inCache = true;
+		
+		_physicalPos += ret;
+		
+		PSP_DEBUG_PRINT("copying 0x%x bytes from cache to %p\n", lenFromFile, destPtr);
+		
+		// Copy to the destination buffer from cache
+		memcpy(destPtr, _cache, lenFromFile);
+		_pos += lenFromFile;
+		
+	} else {	// Too big for cache. No caching
+		PSP_DEBUG_PRINT("reading 0x%x bytes from file to %p. Pos[0x%x], physPos[0x%x]\n", lenFromFile, destPtr, _pos, _physicalPos);
+		size_t ret = fread(destPtr, 1, lenFromFile, (FILE *)_handle);
 
-	_pos += ret;	// Update pos
+		_physicalPos += ret;	// Update pos
+		_pos = _physicalPos;
 
-	if (ret != len) {	// Check for eof
-		_feof = feof((FILE *)_handle);
-		if (!_feof) {	// It wasn't an eof. Must be an error
+		if (ret != lenFromFile) {	// error
+			PSP_ERROR("fread returned [0x%x] instead of len[0x%x]\n", ret, lenFromFile);
 			_ferror = true;
 			clearerr((FILE *)_handle);
-			_pos = ftell((FILE *)_handle);	// Update our position
-			_errorSource = 4;
-			PSP_ERROR("fread returned ret[%d] instead of len[%d]\n", ret, len);
+			_errorSource = 4;			
 		}
+		_inCache = false;
 	}
 
 	PowerMan.endCriticalSection();
 
-	return ret;
+#ifdef DEBUG_BUFFERS
+	printBuffer((byte *)ptr, len);
+#endif	
+		
+	return lenFromCache + lenFromFile;		// total of what was copied
 }
 
+// TODO: Test if seeking backwards/forwards has any effect on performance
+inline bool PSPIoStream::synchronizePhysicalPos() {
+	if (_pos != _physicalPos) {
+		if (fseek((FILE *)_handle, _pos - _physicalPos, SEEK_CUR) != 0)
+			return false;
+		_physicalPos = _pos;	
+	}
+	
+	return true;
+}
+
+inline bool PSPIoStream::isOffsetInCache(uint32 offset) {
+	if (_cacheStartOffset != -1 && 
+		offset >= (uint32)_cacheStartOffset && 
+		offset < (uint32)(_cacheStartOffset + CACHE_SIZE))
+		return true;
+	return false;
+}
+
 uint32 PSPIoStream::write(const void *ptr, uint32 len) {
 	DEBUG_ENTER_FUNC();
 	// Check if we can access the file
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked)
+	if (PowerMan.beginCriticalSection())
 		PSP_DEBUG_PRINT_FUNC("Suspended\n");
 
-	PSP_DEBUG_PRINT_FUNC("filename[%s], len[%d]\n", _path.c_str(), len);
+	PSP_DEBUG_PRINT_FUNC("filename[%s], len[0x%x]\n", _path.c_str(), len);
 
+	if (_ferror)
+		return 0;
+		
+	_eos = false;	// we can't have eos with write
+	synchronizePhysicalPos();
+	
 	size_t ret = fwrite(ptr, 1, len, (FILE *)_handle);
 
-	_pos += ret;
+	// If we're making the file bigger, adjust the size
+	if (_physicalPos + (int)ret > _fileSize)
+		_fileSize = _physicalPos + ret;
+	_physicalPos += ret;
+	_pos = _physicalPos;
+	_inCache = false;
+	_cacheStartOffset = -1;	// invalidate cache
 
 	if (ret != len) {	// Set error
 		_ferror = true;
 		clearerr((FILE *)_handle);
 		_pos = ftell((FILE *)_handle);	// Update pos
 		_errorSource = 5;
-		PSP_ERROR("fwrite returned[%d] instead of len[%d]\n", ret, len);
+		PSP_ERROR("fwrite returned[0x%x] instead of len[0x%x]\n", ret, len);
 	}
 
 	PowerMan.endCriticalSection();
@@ -215,7 +346,7 @@
 bool PSPIoStream::flush() {
 	DEBUG_ENTER_FUNC();
 	// Enter critical section
-	if (PowerMan.beginCriticalSection() == PowerManager::Blocked)
+	if (PowerMan.beginCriticalSection())
 		PSP_DEBUG_PRINT_FUNC("Suspended\n");
 
 	int ret = fflush((FILE *)_handle);
@@ -224,7 +355,7 @@
 		_ferror = true;
 		clearerr((FILE *)_handle);
 		_errorSource = 6;
-		PSP_ERROR("fflush returned ret[%u]\n", ret);
+		PSP_ERROR("fflush returned ret[%d]\n", ret);
 	}
 
 	PowerMan.endCriticalSection();
@@ -286,6 +417,9 @@
 	// Resume our previous position
 	if (_handle > 0 && _pos > 0) {
 		ret = fseek((FILE *)_handle, _pos, SEEK_SET);
+		
+		_physicalPos = _pos;
+		_inCache = false;
 
 		if (ret != 0) {		// Check for problem
 			_errorSuspend = ResumeError;

Modified: scummvm/branches/gsoc2010-plugins/backends/keymapper/remap-dialog.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/keymapper/remap-dialog.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/keymapper/remap-dialog.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -31,6 +31,8 @@
 #include "gui/ScrollBarWidget.h"
 #include "gui/ThemeEval.h"
 
+#include "common/translation.h"
+
 namespace Common {
 
 enum {
@@ -44,12 +46,12 @@
 	_keymapper = g_system->getEventManager()->getKeymapper();
 	assert(_keymapper);
 
-	_kmPopUpDesc = new GUI::StaticTextWidget(this, "KeyMapper.PopupDesc", "Keymap:");
+	_kmPopUpDesc = new GUI::StaticTextWidget(this, "KeyMapper.PopupDesc", _("Keymap:"));
 	_kmPopUp = new GUI::PopUpWidget(this, "KeyMapper.Popup");
 
 	_scrollBar = new GUI::ScrollBarWidget(this, 0, 0, 0, 0);
 
-	new GUI::ButtonWidget(this, "KeyMapper.Close", "Close", kCloseCmd);
+	new GUI::ButtonWidget(this, "KeyMapper.Close", _("Close"), 0, kCloseCmd);
 }
 
 RemapDialog::~RemapDialog() {
@@ -61,7 +63,7 @@
 	const Stack<Keymapper::MapRecord> &activeKeymaps = _keymapper->getActiveStack();
 
 	if (!(activeKeymaps.size() > 0)) {
-		_kmPopUp->appendEntry(activeKeymaps.top().keymap->getName() + " (Active)");
+		_kmPopUp->appendEntry(activeKeymaps.top().keymap->getName() + _(" (Active)"));
 		divider = true;
 	}
 
@@ -95,7 +97,7 @@
 		if (divider)
 			_kmPopUp->appendEntry("");
 		for (it = _globalKeymaps->begin(); it != _globalKeymaps->end(); ++it) {
-			_kmPopUp->appendEntry(it->_value->getName() + " (Global)", idx);
+			_kmPopUp->appendEntry(it->_value->getName() + _(" (Global)"), idx);
 			_keymapTable[idx++] = it->_value;
 		}
 		divider = true;
@@ -105,7 +107,7 @@
 		if (divider)
 			_kmPopUp->appendEntry("");
 		for (it = _gameKeymaps->begin(); it != _gameKeymaps->end(); ++it) {
-			_kmPopUp->appendEntry(it->_value->getName() + " (Game)", idx);
+			_kmPopUp->appendEntry(it->_value->getName() + _(" (Game)"), idx);
 			_keymapTable[idx++] = it->_value;
 		}
 	}
@@ -168,7 +170,7 @@
 			widg.actionText =
 				new GUI::StaticTextWidget(this, 0, 0, 0, 0, "", Graphics::kTextAlignRight);
 			widg.keyButton =
-				new GUI::ButtonWidget(this, 0, 0, 0, 0, "", kRemapCmd + i);
+				new GUI::ButtonWidget(this, 0, 0, 0, 0, "", 0, kRemapCmd + i);
 			_keymapWidgets.push_back(widg);
 		} else {
 			widg = _keymapWidgets[i];

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/alsa.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/alsa.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/alsa.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -24,7 +24,7 @@
 
 #include "common/scummsys.h"
 
-#if defined(UNIX) && defined(USE_ALSA)
+#if defined(USE_ALSA)
 
 #include "common/config-manager.h"
 #include "common/util.h"
@@ -48,6 +48,17 @@
 #define my_snd_seq_open(seqp) snd_seq_open(seqp, SND_SEQ_OPEN)
 #endif
 
+#define perm_ok(pinfo,bits) ((snd_seq_port_info_get_capability(pinfo) & (bits)) == (bits))
+
+static int check_permission(snd_seq_port_info_t *pinfo)
+{
+	if (perm_ok(pinfo, SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE)) {
+		if (!(snd_seq_port_info_get_capability(pinfo) & SND_SEQ_PORT_CAP_NO_EXPORT))
+			return 1;
+	}
+	return 0;
+}
+
 /*
  * parse address string
  */
@@ -56,7 +67,7 @@
 
 class MidiDriver_ALSA:public MidiDriver_MPU401 {
 public:
-	MidiDriver_ALSA();
+	MidiDriver_ALSA(int client, int port);
 	int open();
 	void close();
 	void send(uint32 b);
@@ -69,34 +80,19 @@
 	snd_seq_t *seq_handle;
 	int seq_client, seq_port;
 	int my_client, my_port;
-	static int parse_addr(const char *arg, int *client, int *port);
 };
 
-MidiDriver_ALSA::MidiDriver_ALSA()
- : _isOpen(false), seq_handle(0), seq_client(0), seq_port(0), my_client(0), my_port(0)
+MidiDriver_ALSA::MidiDriver_ALSA(int client, int port)
+ : _isOpen(false), seq_handle(0), seq_client(client), seq_port(port), my_client(0), my_port(0)
 {
 	memset(&ev, 0, sizeof(ev));
 }
 
 int MidiDriver_ALSA::open() {
-	const char *var = NULL;
-
 	if (_isOpen)
 		return MERR_ALREADY_OPEN;
 	_isOpen = true;
 
-	var = getenv("SCUMMVM_PORT");
-	if (!var && ConfMan.hasKey("alsa_port")) {
-		var = ConfMan.get("alsa_port").c_str();
-	}
-
-	if (var) {
-		if (parse_addr(var, &seq_client, &seq_port) < 0) {
-			error("Invalid port %s", var);
-			return -1;
-		}
-	}
-
 	if (my_snd_seq_open(&seq_handle) < 0) {
 		error("Can't open sequencer");
 		return -1;
@@ -108,39 +104,60 @@
 	}
 	snd_seq_set_client_group(seq_handle, "input");
 
-	my_port = snd_seq_create_simple_port(seq_handle, "SCUMMVM port 0",
-		SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE |
-		SND_SEQ_PORT_CAP_READ, SND_SEQ_PORT_TYPE_MIDI_GENERIC);
+	// According to http://www.alsa-project.org/~tiwai/alsa-subs.html
+	// you can set read or write capabilities to allow other clients to
+	// read or write the port. I don't think we need that, unless maybe
+	// to be able to record the sound, but I can't get that to work even
+	// with those capabilities.
 
+	my_port = snd_seq_create_simple_port(seq_handle, "SCUMMVM port 0", 0,
+		SND_SEQ_PORT_TYPE_MIDI_GENERIC | SND_SEQ_PORT_TYPE_APPLICATION);
+
 	if (my_port < 0) {
 		snd_seq_close(seq_handle);
 		error("Can't create port");
 		return -1;
 	}
 
-	if (var) {
-		if (seq_client != SND_SEQ_ADDRESS_SUBSCRIBERS) {
-			// subscribe to MIDI port
-			if (snd_seq_connect_to(seq_handle, my_port, seq_client, seq_port) < 0) {
-				error("Can't subscribe to MIDI port (%d:%d) see README for help", seq_client, seq_port);
+	if (seq_client != SND_SEQ_ADDRESS_SUBSCRIBERS) {
+		// Subscribe to MIDI port. Prefer one that doesn't already have
+		// any connections, unless we've forced a port number already.
+		if (seq_port == -1) {
+			snd_seq_client_info_t *cinfo;
+			snd_seq_port_info_t *pinfo;
+
+			snd_seq_client_info_alloca(&cinfo);
+			snd_seq_port_info_alloca(&pinfo);
+
+			snd_seq_get_any_client_info(seq_handle, seq_client, cinfo);
+
+			int first_port = -1;
+			int found_port = -1;
+
+			snd_seq_port_info_set_client(pinfo, seq_client);
+			snd_seq_port_info_set_port(pinfo, -1);
+			while (found_port == -1 && snd_seq_query_next_port(seq_handle, pinfo) >= 0) {
+				if (check_permission(pinfo)) {
+					if (first_port == -1)
+						first_port = snd_seq_port_info_get_port(pinfo);
+					if (found_port == -1 && snd_seq_port_info_get_write_use(pinfo) == 0)
+						found_port = snd_seq_port_info_get_port(pinfo);
+				}
 			}
+
+			if (found_port == -1) {
+				// Should we abort here? For now, use the first
+				// available port.
+				seq_port = first_port;
+				warning("MidiDriver_ALSA: All ports on client %d (%s) are already in use", seq_client, snd_seq_client_info_get_name(cinfo));
+			} else {
+				seq_port = found_port;
+			}
 		}
-	} else {
-		int defaultPorts[] = {
-			65, 0,
-			17, 0
-		};
-		int i;
 
-		for (i = 0; i < ARRAYSIZE(defaultPorts); i += 2) {
-			seq_client = defaultPorts[i];
-			seq_port = defaultPorts[i + 1];
-			if (snd_seq_connect_to(seq_handle, my_port, seq_client, seq_port) >= 0)
-				break;
+		if (snd_seq_connect_to(seq_handle, my_port, seq_client, seq_port) < 0) {
+			error("Can't subscribe to MIDI port (%d:%d) see README for help", seq_client, seq_port);
 		}
-
-		if (i >= ARRAYSIZE(defaultPorts))
-			error("Can't subscribe to MIDI port (65:0) or (17:0)");
 	}
 
 	printf("Connected to Alsa sequencer client [%d:%d]\n", seq_client, seq_port);
@@ -150,10 +167,13 @@
 }
 
 void MidiDriver_ALSA::close() {
-	_isOpen = false;
-	MidiDriver_MPU401::close();
-	if (seq_handle)
-		snd_seq_close(seq_handle);
+	if (_isOpen) {
+		_isOpen = false;
+		MidiDriver_MPU401::close();
+		if (seq_handle)
+			snd_seq_close(seq_handle);
+	} else
+		warning("MidiDriver_ALSA: Closing the driver before opening it");
 }
 
 void MidiDriver_ALSA::send(uint32 b) {
@@ -227,24 +247,6 @@
 	send_event(1);
 }
 
-int MidiDriver_ALSA::parse_addr(const char *arg, int *client, int *port) {
-	const char *p;
-
-	if (isdigit(*arg)) {
-		if ((p = strpbrk(arg, ADDR_DELIM)) == NULL)
-			return -1;
-		*client = atoi(arg);
-		*port = atoi(p + 1);
-	} else {
-		if (*arg == 's' || *arg == 'S') {
-			*client = SND_SEQ_ADDRESS_SUBSCRIBERS;
-			*port = 0;
-		} else
-			return -1;
-	}
-	return 0;
-}
-
 void MidiDriver_ALSA::send_event(int do_flush) {
 	snd_seq_ev_set_direct(&ev);
 	snd_seq_ev_set_source(&ev, my_port);
@@ -258,6 +260,37 @@
 
 // Plugin interface
 
+class AlsaDevice {
+public:
+	AlsaDevice(Common::String name, MusicType mt, int client);
+	Common::String getName();
+	MusicType getType();
+	int getClient();
+
+private:
+	Common::String _name;
+	MusicType _type;
+	int _client;
+};
+
+typedef Common::List<AlsaDevice> AlsaDevices;
+
+AlsaDevice::AlsaDevice(Common::String name, MusicType mt, int client)
+	: _name(name), _type(mt), _client(client) {
+}
+
+Common::String AlsaDevice::getName() {
+	return _name;
+}
+
+MusicType AlsaDevice::getType() {
+	return _type;
+}
+
+int AlsaDevice::getClient() {
+	return _client;
+}
+
 class AlsaMusicPlugin : public MusicPluginObject {
 public:
 	const char *getName() const {
@@ -268,26 +301,18 @@
 		return "alsa";
 	}
 
+	AlsaDevices getAlsaDevices() const;
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
+
+private:
+	static int parse_addr(const char *arg, int *client, int *port);
 };
 
-#define perm_ok(pinfo,bits) ((snd_seq_port_info_get_capability(pinfo) & (bits)) == (bits))
-
-static int check_permission(snd_seq_port_info_t *pinfo)
-{
-	if (perm_ok(pinfo, SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE)) {
-		if (!(snd_seq_port_info_get_capability(pinfo) & SND_SEQ_PORT_CAP_NO_EXPORT))
-			return 1;
-	}
-	return 0;
-}
-
-MusicDevices AlsaMusicPlugin::getDevices() const {
-	MusicDevices devices;
-
-	snd_seq_t *seq;
-	if (snd_seq_open(&seq, "default", SND_SEQ_OPEN_DUPLEX, 0) < 0)
+AlsaDevices AlsaMusicPlugin::getAlsaDevices() const {
+	AlsaDevices devices;
+	snd_seq_t *seq_handle;
+	if (my_snd_seq_open(&seq_handle) < 0)
 		return devices; // can't open sequencer
 
 	snd_seq_client_info_t *cinfo;
@@ -295,41 +320,147 @@
 	snd_seq_port_info_t *pinfo;
 	snd_seq_port_info_alloca(&pinfo);
 	snd_seq_client_info_set_client(cinfo, -1);
-	while (snd_seq_query_next_client(seq, cinfo) >= 0) {
+	while (snd_seq_query_next_client(seq_handle, cinfo) >= 0) {
 		bool found_valid_port = false;
 
 		/* reset query info */
 		snd_seq_port_info_set_client(pinfo, snd_seq_client_info_get_client(cinfo));
 		snd_seq_port_info_set_port(pinfo, -1);
-		while (!found_valid_port && snd_seq_query_next_port(seq, pinfo) >= 0) {
+		while (!found_valid_port && snd_seq_query_next_port(seq_handle, pinfo) >= 0) {
 			if (check_permission(pinfo)) {
 				found_valid_port = true;
-				// TODO: Return a different music type depending on the configuration
-				devices.push_back(MusicDevice(this, snd_seq_client_info_get_name(cinfo), MT_GM));
-				//snd_seq_client_info_get_client(cinfo) : snd_seq_port_info_get_port(pinfo)
+
+				const char *name = snd_seq_client_info_get_name(cinfo);
+				// TODO: Can we figure out the appropriate music type?
+				MusicType type = MT_GM;
+				int client = snd_seq_client_info_get_client(cinfo);
+				devices.push_back(AlsaDevice(name, type, client));
 			}
 		}
 	}
-	snd_seq_close(seq);
+	snd_seq_close(seq_handle);
 
 	return devices;
 }
 
-Common::Error AlsaMusicPlugin::createInstance(MidiDriver **mididriver) const {
-	*mididriver = new MidiDriver_ALSA();
+MusicDevices AlsaMusicPlugin::getDevices() const {
+	MusicDevices devices;
+	AlsaDevices::iterator d;
 
-	return Common::kNoError;
+	AlsaDevices alsaDevices = getAlsaDevices();
+
+	// Since the default behaviour is to use the first device in the list,
+	// try to put something sensible there. We used to have 17:0 and 65:0
+	// as defaults.
+
+	for (d = alsaDevices.begin(); d != alsaDevices.end();) {
+		const int client = d->getClient();
+
+		if (client == 17 || client == 65) {
+			devices.push_back(MusicDevice(this, d->getName(), d->getType()));
+			d = alsaDevices.erase(d);
+		} else {
+			++d;
+		}
+	}
+
+	// 128:0 is probably TiMidity, or something like that, so that's
+	// probably a good second choice.
+
+	for (d = alsaDevices.begin(); d != alsaDevices.end();) {
+		if (d->getClient() == 128) {
+			devices.push_back(MusicDevice(this, d->getName(), d->getType()));
+			d = alsaDevices.erase(d);
+		} else {
+			++d;
+		}
+	}
+
+	// Add the remaining devices in the order they were found.
+
+	for (d = alsaDevices.begin(); d != alsaDevices.end(); ++d)
+		devices.push_back(MusicDevice(this, d->getName(), d->getType()));
+
+	return devices;
 }
 
-MidiDriver *MidiDriver_ALSA_create() {
-	MidiDriver *mididriver;
+Common::Error AlsaMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle dev) const {
+	bool found = false;
+	int seq_client, seq_port;
 
-	AlsaMusicPlugin p;
-	p.createInstance(&mididriver);
+	const char *var = NULL;
 
-	return mididriver;
+	// TODO: Upgrade from old alsa_port setting. This probably isn't the
+	// right place to do that, though.
+
+	if (ConfMan.hasKey("alsa_port")) {
+		warning("AlsaMusicPlugin: Found old 'alsa_port' setting, which will be ignored");
+	}
+
+	// The SCUMMVM_PORT environment variable can still be used to override
+	// any config setting.
+
+	var = getenv("SCUMMVM_PORT");
+	if (var) {
+		warning("AlsaMusicPlugin: SCUMMVM_PORT environment variable overrides config settings");
+		if (parse_addr(var, &seq_client, &seq_port) >= 0) {
+			found = true;
+		} else {
+			warning("AlsaMusicPlugin: Invalid port %s, using config settings instead", var);
+		}
+	}
+
+	// Try to match the setting to an available ALSA device.
+
+	if (!found && dev) {
+		AlsaDevices alsaDevices = getAlsaDevices();
+
+		for (AlsaDevices::iterator d = alsaDevices.begin(); d != alsaDevices.end(); ++d) {
+			MusicDevice device(this, d->getName(), d->getType());
+
+			if (device.getCompleteId().equals(MidiDriver::getDeviceString(dev, MidiDriver::kDeviceId))) {
+				found = true;
+				seq_client = d->getClient();
+				seq_port = -1;
+				break;
+			}
+		}
+	}
+
+	// Still nothing? Try a sensible default.
+
+	if (!found) {
+		// TODO: What's a sensible default anyway? And exactly when do
+		// we get to this case?
+
+		warning("AlsaMusicPlugin: Using 17:0 as default ALSA port");
+		seq_client = 17;
+		seq_port = 0;
+	}
+
+	*mididriver = new MidiDriver_ALSA(seq_client, seq_port);
+
+	return Common::kNoError;
 }
 
+int AlsaMusicPlugin::parse_addr(const char *arg, int *client, int *port) {
+	const char *p;
+
+	if (isdigit(*arg)) {
+		if ((p = strpbrk(arg, ADDR_DELIM)) == NULL)
+			return -1;
+		*client = atoi(arg);
+		*port = atoi(p + 1);
+	} else {
+		if (*arg == 's' || *arg == 'S') {
+			*client = SND_SEQ_ADDRESS_SUBSCRIBERS;
+			*port = 0;
+		} else
+			return -1;
+	}
+	return 0;
+}
+
 //#if PLUGIN_ENABLED_DYNAMIC(ALSA)
 	//REGISTER_PLUGIN_DYNAMIC(ALSA, PLUGIN_TYPE_MUSIC, AlsaMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/camd.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/camd.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/camd.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -177,7 +177,7 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices CamdMusicPlugin::getDevices() const {
@@ -188,21 +188,12 @@
 	return devices;
 }
 
-Common::Error CamdMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error CamdMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	*mididriver = new MidiDriver_CAMD();
 
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_CAMD_create() {
-	MidiDriver *mididriver;
-
-	CamdMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(CAMD)
 	//REGISTER_PLUGIN_DYNAMIC(CAMD, PLUGIN_TYPE_MUSIC, CamdMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/coreaudio.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/coreaudio.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/coreaudio.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -218,7 +218,7 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices CoreAudioMusicPlugin::getDevices() const {
@@ -229,21 +229,12 @@
 	return devices;
 }
 
-Common::Error CoreAudioMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error CoreAudioMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	*mididriver = new MidiDriver_CORE();
 
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_CORE_create() {
-	MidiDriver *mididriver;
-
-	CoreAudioMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(COREAUDIO)
 	//REGISTER_PLUGIN_DYNAMIC(COREAUDIO, PLUGIN_TYPE_MUSIC, CoreAudioMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/coremidi.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/coremidi.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/coremidi.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -190,7 +190,7 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices CoreMIDIMusicPlugin::getDevices() const {
@@ -201,21 +201,12 @@
 	return devices;
 }
 
-Common::Error CoreMIDIMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error CoreMIDIMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	*mididriver = new MidiDriver_CoreMIDI();
 
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_CoreMIDI_create() {
-	MidiDriver *mididriver;
-
-	CoreMIDIMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(COREMIDI)
 	//REGISTER_PLUGIN_DYNAMIC(COREMIDI, PLUGIN_TYPE_MUSIC, CoreMIDIMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/dmedia.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/dmedia.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/dmedia.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -199,7 +199,7 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices DMediaMusicPlugin::getDevices() const {
@@ -224,21 +224,12 @@
 	return devices;
 }
 
-Common::Error DMediaMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error DMediaMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	*mididriver = new MidiDriver_DMEDIA();
 
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_DMEDIA_create() {
-	MidiDriver *mididriver;
-
-	DMediaMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(DMEDIA)
 	//REGISTER_PLUGIN_DYNAMIC(DMEDIA, PLUGIN_TYPE_MUSIC, DMediaMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/seq.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/seq.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/seq.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -28,8 +28,10 @@
  *    both the QuickTime support and (vkeybd http://www.alsa-project.org/~iwai/alsa.html)
  */
 
-#if defined(UNIX) && !defined(__BEOS__) && !defined(__MAEMO__) && !defined(__MINT__)
+#include "common/scummsys.h"
 
+#if defined(USE_SEQ_MIDI)
+
 #include "common/util.h"
 #include "sound/musicplugin.h"
 #include "sound/mpu401.h"
@@ -184,7 +186,7 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices SeqMusicPlugin::getDevices() const {
@@ -195,21 +197,12 @@
 	return devices;
 }
 
-Common::Error SeqMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error SeqMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	*mididriver = new MidiDriver_SEQ();
 
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_SEQ_create() {
-	MidiDriver *mididriver;
-
-	SeqMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(SEQ)
 	//REGISTER_PLUGIN_DYNAMIC(SEQ, PLUGIN_TYPE_MUSIC, SeqMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/stmidi.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/stmidi.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/stmidi.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -127,8 +127,7 @@
         }
 
         MusicDevices getDevices() const;
-        Common::Error createInstance(MidiDriver **mididriver)
- const;
+		Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices StMidiMusicPlugin::getDevices() const {
@@ -139,21 +138,12 @@
         return devices;
 }
 
-Common::Error StMidiMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error StMidiMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
         *mididriver = new MidiDriver_STMIDI();
 
         return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_STMIDI_create() {
-        MidiDriver *mididriver;
-
-        StMidiMusicPlugin p;
-        p.createInstance(&mididriver);
-
-        return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(STMIDI)
         //REGISTER_PLUGIN_DYNAMIC(STMIDI, PLUGIN_TYPE_MUSIC, StMidiMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/timidity.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/timidity.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/timidity.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -530,7 +530,7 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices TimidityMusicPlugin::getDevices() const {
@@ -539,21 +539,12 @@
 	return devices;
 }
 
-Common::Error TimidityMusicPlugin::createInstance(MidiDriver **mididriver) const {
+Common::Error TimidityMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle) const {
 	*mididriver = new MidiDriver_TIMIDITY();
 
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_TIMIDITY_create() {
-	MidiDriver *mididriver;
-
-	TimidityMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(TIMIDITY)
 	//REGISTER_PLUGIN_DYNAMIC(TIMIDITY, PLUGIN_TYPE_MUSIC, TimidityMusicPlugin);
 //#else

Modified: scummvm/branches/gsoc2010-plugins/backends/midi/windows.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/windows.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/windows.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -24,12 +24,15 @@
 
 #if defined(WIN32) && !defined(_WIN32_WCE)
 
+#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 // winnt.h defines ARRAYSIZE, but we want our own one...
 #undef ARRAYSIZE
 
 #include "sound/musicplugin.h"
 #include "sound/mpu401.h"
+#include "common/config-manager.h"
+#include "common/translation.h"
 
 #include <mmsystem.h>
 
@@ -46,11 +49,12 @@
 	HANDLE _streamEvent;
 	HMIDIOUT _mo;
 	bool _isOpen;
+	int _device;
 
 	void check_error(MMRESULT result);
 
 public:
-	MidiDriver_WIN() : _isOpen(false) { }
+	MidiDriver_WIN(int deviceIndex) : _isOpen(false), _device(deviceIndex) { }
 	int open();
 	void close();
 	void send(uint32 b);
@@ -62,7 +66,7 @@
 		return MERR_ALREADY_OPEN;
 
 	_streamEvent = CreateEvent(NULL, true, true, NULL);
-	MMRESULT res = midiOutOpen((HMIDIOUT *)&_mo, MIDI_MAPPER, (DWORD_PTR)_streamEvent, 0, CALLBACK_EVENT);
+	MMRESULT res = midiOutOpen((HMIDIOUT *)&_mo, _device, (DWORD_PTR)_streamEvent, 0, CALLBACK_EVENT);
 	if (res != MMSYSERR_NOERROR) {
 		check_error(res);
 		CloseHandle(_streamEvent);
@@ -150,7 +154,7 @@
 class WindowsMusicPlugin : public MusicPluginObject {
 public:
 	const char *getName() const {
-		return "Windows MIDI";
+		return _s("Windows MIDI");
 	}
 
 	const char *getId() const {
@@ -158,32 +162,43 @@
 	}
 
 	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
+	Common::Error createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle = 0) const;
 };
 
 MusicDevices WindowsMusicPlugin::getDevices() const {
 	MusicDevices devices;
-	// TODO: Return a different music type depending on the configuration
-	// TODO: List the available devices
-	devices.push_back(MusicDevice(this, "", MT_GM));
+	int numDevs = midiOutGetNumDevs();
+	MIDIOUTCAPS tmp;
+
+	for (int i = 0; i < numDevs; i++) {
+		if (midiOutGetDevCaps(i, &tmp, sizeof(MIDIOUTCAPS)) != MMSYSERR_NOERROR)
+			break;
+		// There is no way to detect the "MusicType" so I just set it to MT_GM
+		// The user will have to manually select his MT32 type device and his GM type device.
+		devices.push_back(MusicDevice(this, tmp.szPname, MT_GM));
+	}
 	return devices;
 }
 
-Common::Error WindowsMusicPlugin::createInstance(MidiDriver **mididriver) const {
-	*mididriver = new MidiDriver_WIN();
+Common::Error WindowsMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver::DeviceHandle dev) const {
+	int devIndex = 0;
+	bool found = false;
 
+	if (dev) {
+		MusicDevices i = getDevices();
+		for (MusicDevices::iterator d = i.begin(); d != i.end(); d++) {
+			if (d->getCompleteId().equals(MidiDriver::getDeviceString(dev, MidiDriver::kDeviceId))) {
+				found = true;
+				break;
+			}
+			devIndex++;
+		}
+	}
+
+	*mididriver = new MidiDriver_WIN(found ? devIndex : 0);
 	return Common::kNoError;
 }
 
-MidiDriver *MidiDriver_WIN_create() {
-	MidiDriver *mididriver;
-
-	WindowsMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
 //#if PLUGIN_ENABLED_DYNAMIC(WINDOWS)
 	//REGISTER_PLUGIN_DYNAMIC(WINDOWS, PLUGIN_TYPE_MUSIC, WindowsMusicPlugin);
 //#else

Deleted: scummvm/branches/gsoc2010-plugins/backends/midi/ypa1.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/ypa1.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/ypa1.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -1,150 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#include "common/util.h"
-#include "sound/musicplugin.h"
-#include "sound/mpu401.h"
-
-#include "Pa1Lib.h"
-
-class MidiDriver_YamahaPa1:public MidiDriver_MPU401 {
-public:
-	MidiDriver_YamahaPa1();
-	int open();
-	void close();
-	void send(uint32 b);
-
-private:
-	UInt8 _midiHandle;
-	Boolean _isOpen;
- };
-
-MidiDriver_YamahaPa1::MidiDriver_YamahaPa1() {
-	_isOpen = false;
-	_midiHandle = 0;
-}
-
-int MidiDriver_YamahaPa1::open() {
-	if (!(_isOpen = Pa1Lib_midiOpen(NULL, &_midiHandle)))
-		return MERR_DEVICE_NOT_AVAILABLE;
-
-	return 0;
-}
-
-void MidiDriver_YamahaPa1::close() {
-	if (_isOpen) {
-		_isOpen = false;
-		MidiDriver_MPU401::close();
-		for (UInt8 channel = 0; channel < 16; channel++) {
-			Pa1Lib_midiControlChange(_midiHandle, channel, 120,0); // all sound off
-			Pa1Lib_midiControlChange(_midiHandle, channel, 121,0); // reset all controller
-			Pa1Lib_midiControlChange(_midiHandle, channel, 123, 0); // all notes off
-		}
-		Pa1Lib_midiClose(_midiHandle);
-	}
-}
-
-void MidiDriver_YamahaPa1::send(uint32 b) {
-	if (!_isOpen)
-		return;
-
-	UInt8 midiCmd[4];
-	UInt8 chanID,mdCmd;
-
-	midiCmd[3] = (b & 0xFF000000) >> 24;
-	midiCmd[2] = (b & 0x00FF0000) >> 16;
-	midiCmd[1] = (b & 0x0000FF00) >> 8;
-	midiCmd[0] = (b & 0x000000FF);
-
-	chanID = (midiCmd[0] & 0x0F) ;
-	mdCmd = midiCmd[0] & 0xF0;
-
-	switch (mdCmd) {
-		case 0x80:	// note off
-			Pa1Lib_midiNoteOff(_midiHandle, chanID, midiCmd[1], 0);
-			break;
-
-		case 0x90:	// note on
-			Pa1Lib_midiNoteOn(_midiHandle, chanID, midiCmd[1], midiCmd[2]);
-			break;
-
-		case 0xB0:	// control change
-			Pa1Lib_midiControlChange(_midiHandle, chanID, midiCmd[1], midiCmd[2]);
-			break;
-
-		case 0xC0:	// progam change
-			Pa1Lib_midiProgramChange(_midiHandle, chanID, midiCmd[1]);
-			break;
-
-		case 0xE0:	// pitchBend
-			Pa1Lib_midiPitchBend(_midiHandle, chanID, (short)(midiCmd[1] | (midiCmd[2] << 8)));
-			break;
-	}
-}
-
-
-// Plugin interface
-
-class YamahaPa1MusicPlugin : public MusicPluginObject {
-public:
-	const char *getName() const {
-		return "Yamaha Pa1";
-	}
-
-	const char *getId() const {
-		return "ypa1";
-	}
-
-	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
-};
-
-MusicDevices YamahaPa1MusicPlugin::getDevices() const {
-	MusicDevices devices;
-	// TODO: Return a different music type depending on the configuration
-	// TODO: List the available devices
-	devices.push_back(MusicDevice(this, "", MT_GM));
-	return devices;
-}
-
-Common::Error YamahaPa1MusicPlugin::createInstance(MidiDriver **mididriver) const {
-	*mididriver = new MidiDriver_YamahaPa1();
-
-	return Common::kNoError;
-}
-
-MidiDriver *MidiDriver_YamahaPa1_create() {
-	MidiDriver *mididriver;
-
-	YamahaPa1MusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
-//#if PLUGIN_ENABLED_DYNAMIC(YPA1)
-	//REGISTER_PLUGIN_DYNAMIC(YPA1, PLUGIN_TYPE_MUSIC, YamahaPa1MusicPlugin);
-//#else
-	REGISTER_PLUGIN_STATIC(YPA1, PLUGIN_TYPE_MUSIC, YamahaPa1MusicPlugin);
-//#endif

Deleted: scummvm/branches/gsoc2010-plugins/backends/midi/zodiac.cpp
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/midi/zodiac.cpp	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/midi/zodiac.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -1,170 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#include "common/util.h"
-#include "sound/musicplugin.h"
-#include "sound/mpu401.h"
-
-#ifndef DISABLE_TAPWAVE
-
-#include <tapwave.h>
-
-
-class MidiDriver_Zodiac:public MidiDriver_MPU401 {
-public:
-	MidiDriver_Zodiac();
-	int open();
-	void close();
-	void send(uint32 b);
-	void sysEx(const byte *msg, uint16 length);
-
-private:
-	TwMidiHandle _midiHandle;
-	Boolean _isOpen;
-	Int32 _oldVol;
- };
-
-MidiDriver_Zodiac::MidiDriver_Zodiac() {
-	_isOpen = false;
-	_midiHandle = 0;
-}
-
-int MidiDriver_Zodiac::open() {
-	Err e;
-
-	if (e = TwMidiOpen(&_midiHandle))
-		return MERR_DEVICE_NOT_AVAILABLE;
-
-	TwMidiGetMasterVolume(&_oldVol);
-	TwMidiSetMasterVolume(twMidiMaxVolume); // TODO : set volume based on gVars
-
-	_isOpen = true;
-	return 0;
-}
-
-void MidiDriver_Zodiac::close() {
-	if (_isOpen) {
-		_isOpen = false;
-		MidiDriver_MPU401::close();
-
-		TwMidiSetMasterVolume(_oldVol);
-		TwMidiClose(_midiHandle);
-	}
-}
-
-void MidiDriver_Zodiac::send(uint32 b) {
-	if (!_isOpen)
-		return;
-
-	UInt8 midiCmd[4];
-	UInt8 chanID,mdCmd;
-
-	midiCmd[3] = (b & 0xFF000000) >> 24;
-	midiCmd[2] = (b & 0x00FF0000) >> 16;
-	midiCmd[1] = (b & 0x0000FF00) >> 8;
-	midiCmd[0] = (b & 0x000000FF);
-
-	chanID = (midiCmd[0] & 0x0F) ;
-	mdCmd = midiCmd[0] & 0xF0;
-
-	switch (mdCmd) {
-		case 0x80:	// note off
-			TwMidiNoteOff(_midiHandle, chanID, midiCmd[1], 0);
-			break;
-
-		case 0x90:	// note on
-			TwMidiNoteOn(_midiHandle, chanID, midiCmd[1], midiCmd[2]);
-			break;
-
-		case 0xB0:	// control change
-			TwMidiControlChange(_midiHandle, chanID, midiCmd[1], midiCmd[2]);
-			break;
-
-		case 0xC0:	// progam change
-			TwMidiProgramChange(_midiHandle, chanID, midiCmd[1]);
-			break;
-
-		case 0xE0:	// pitchBend
-			TwMidiPitchBend(_midiHandle, chanID, (short)(midiCmd[1] | (midiCmd[2] << 8)));
-			break;
-	}
-}
-
-void MidiDriver_Zodiac::sysEx(const byte *msg, uint16 length) {
-	unsigned char buf[266];
-
-	buf[0] = 0xF0;
-	memcpy(buf + 1, msg, length);
-	buf[length + 1] = 0xF7;
-
-	TwMidiSysEx(_midiHandle, 0, (byte *)buf, length + 2);
-}
-
-
-// Plugin interface
-
-class ZodiacMusicPlugin : public MusicPluginObject {
-public:
-	const char *getName() const {
-		return "Tapwave Zodiac";
-	}
-
-	const char *getId() const {
-		return "zodiac";
-	}
-
-	MusicDevices getDevices() const;
-	Common::Error createInstance(MidiDriver **mididriver) const;
-};
-
-MusicDevices ZodiacMusicPlugin::getDevices() const {
-	MusicDevices devices;
-	// TODO: Return a different music type depending on the configuration
-	// TODO: List the available devices
-	devices.push_back(MusicDevice(this, "", MT_GM));
-	return devices;
-}
-
-Common::Error ZodiacMusicPlugin::createInstance(MidiDriver **mididriver) const {
-	*mididriver = new MidiDriver_Zodiac();
-
-	return Common::kNoError;
-}
-
-MidiDriver *MidiDriver_Zodiac_create() {
-	MidiDriver *mididriver;
-
-	ZodiacMusicPlugin p;
-	p.createInstance(&mididriver);
-
-	return mididriver;
-}
-
-//#if PLUGIN_ENABLED_DYNAMIC(ZODIAC)
-	//REGISTER_PLUGIN_DYNAMIC(ZODIAC, PLUGIN_TYPE_MUSIC, ZodiacMusicPlugin);
-//#else
-	REGISTER_PLUGIN_STATIC(ZODIAC, PLUGIN_TYPE_MUSIC, ZodiacMusicPlugin);
-//#endif
-
-#endif

Modified: scummvm/branches/gsoc2010-plugins/backends/module.mk
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/module.mk	2010-08-10 22:18:51 UTC (rev 51960)
+++ scummvm/branches/gsoc2010-plugins/backends/module.mk	2010-08-10 23:21:08 UTC (rev 51961)
@@ -6,17 +6,9 @@
 	fs/abstract-fs.o \
 	fs/stdiostream.o \
 	fs/amigaos4/amigaos4-fs-factory.o \
-	fs/ds/ds-fs-factory.o \
-	fs/palmos/palmos-fs-factory.o \
 	fs/posix/posix-fs-factory.o \
-	fs/ps2/ps2-fs-factory.o \
-	fs/psp/psp-fs-factory.o \
-	fs/psp/psp-stream.o \
 	fs/symbian/symbian-fs-factory.o \
 	fs/windows/windows-fs-factory.o \
-	fs/wii/wii-fs-factory.o \
-	fs/n64/n64-fs-factory.o \
-	fs/n64/romfsstream.o \
 	keymapper/action.o \
 	keymapper/keymap.o \
 	keymapper/keymapper.o \
@@ -36,23 +28,56 @@
 	plugins/arm-loader.o \
 	plugins/elf-provider.o \
 	plugins/dc/dc-provider.o \
-	plugins/ds/ds-provider.o \
 	plugins/posix/posix-provider.o \
 	plugins/sdl/sdl-provider.o \
 	plugins/win32/win32-provider.o \
-	plugins/psp/psp-provider.o \
-	plugins/ps2/ps2-provider.o \
 	saves/savefile.o \
 	saves/default/default-saves.o \
 	saves/posix/posix-saves.o \
-	saves/psp/psp-saves.o \
 	timer/default/default-timer.o \
-	timer/psp/timer.o \
 	vkeybd/image-map.o \
 	vkeybd/polygon.o \
 	vkeybd/virtual-keyboard.o \
 	vkeybd/virtual-keyboard-gui.o \
 	vkeybd/virtual-keyboard-parser.o
 
+ifeq ($(BACKEND),dc)
+MODULE_OBJS += \
+	plugins/dc/dc-provider.o
+endif
+
+ifeq ($(BACKEND),ds)
+MODULE_OBJS += \
+	fs/ds/ds-fs-factory.o \
+	fs/ds/ds-fs.o \
+	plugins/ds/ds-provider.o
+endif
+
+ifeq ($(BACKEND),n64)
+MODULE_OBJS += \
+	fs/n64/n64-fs-factory.o \
+	fs/n64/romfsstream.o
+endif
+
+ifeq ($(BACKEND),ps2)
+MODULE_OBJS += \
+	fs/ps2/ps2-fs-factory.o \
+	plugins/ps2/ps2-provider.o
+endif
+
+ifeq ($(BACKEND),psp)
+MODULE_OBJS += \
+	fs/psp/psp-fs-factory.o \
+	fs/psp/psp-stream.o \
+	plugins/psp/psp-provider.o \
+	saves/psp/psp-saves.o \
+	timer/psp/timer.o
+endif
+
+ifeq ($(BACKEND),wii)
+MODULE_OBJS += \
+	fs/wii/wii-fs-factory.o
+endif
+
 # Include common rules
 include $(srcdir)/rules.mk

Deleted: scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build
===================================================================
--- scummvm/trunk/backends/platform/android/README.build	2010-08-09 21:43:31 UTC (rev 51947)
+++ scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build	2010-08-10 23:21:08 UTC (rev 51961)
@@ -1,91 +0,0 @@
-Building the ScummVM Android port
-=================================
-
-You will need these things to build:
-1. Android SDK
-2. An arm-oe-linux-androideabi GCC toolchain(*)
-
-In the example commands, we are going to build against the Android 1.5
-native ABI (but using the Android 1.6 SDK tools).  Other version
-combinations might/should be possible with a bit of tweaking.
-
-(*) Any other sane Android toolchain should be easy to use, but this
-is the toolchain prefix that is used by default.  You can trivially
-find and modify the single location where it appears in ./configure if
-you have some other prefix variation.
-
-
-In detail:
-
-1. Android SDK
-
-Download the SDK from http://developer.android.com/ and install
-somewhere.  You will need both the API level 8 (aka Android 2.2) and
-API level 3 (aka Android 1.5) platforms.
-
-2. arm-*-linux-androideabi GCC toolchain
-
-You have several choices for toolchains:
-
- - Use Google arm-eabi prebuilt toolchain.
-
-This is shipped with both the Android source release and Android NDK.
-The problem is that "arm-eabi-gcc" can't actually link anything
-successfully without extra command line flags.  To use this with the
-ScummVM configure/build environment you will need to create a family
-of shell wrapper scripts that convert "arm-oe-linux-androideabi-foo" to
-"arm-eabi-foo -mandroid".
-
-For example, I use this script:
- #!/bin/sh
- exec arm-eabi-${0##*-} -mandroid -DANDROID "$@"
-
-... and create a family of symlinks/hardlinks pointing to it called
-arm-oe-android-linuxeabi-gcc, arm-oe-android-linuxeabi-g++, etc.  For
-tools that don't take a "-mandroid" argument - like arm-eabi-strip - I
-bypass the shell wrapper and just create an arm-oe-android-linuxeabi-strip
-symlink to the tool directly.
-
-In practice you will probably need significant linker command line
-massaging in order to get the crtbegin/end and libraries all linked in
-the right way.  It's not hard to do manually, but it is annoying to
-script in a general purpose way.
-
- - Build your own arm-*-linux-androideabi toolchain from GCC source.
-
-This is lots of fun, but will become significantly easier once gcc-4.6
-is released.  In the interim, I suggest using my precompiled Android
-openembedded-based toolchain:
- wget http://commondatastorage.googleapis.com/anr/sdk/android-2.2-i686-linux-armv5te-linux-androideabi-toolchain-android.tar.bz2
- sudo tar jxf android-2.2-i686-linux-armv5te-linux-androideabi-toolchain-android.tar.bz2 -C /
- . /usr/local/android/arm/environment-setup
-
-Alternatively, do a websearch - there are several other cross-compile
-toolchains around.
-
-
-Building ScummVM
-================
-
-(Optionally) compress scummmodern.zip:
-(ScummVM usually ships it uncompressed, but Android can read it more
-efficiently if it is compressed *before* adding it to the apk)
-
- ( cd gui/themes/scummmodern && zip -f ../scummmodern.zip )
-
-Then build ScummVM:
-
- export ANDROID_SDK=<root of Android SDK>
-
- PATH=$ANDROID_SDK/platforms/android-1.6/tools:$ANDROID_SDK/tools:$PATH
- # You also want to ensure your arm-oe-linux-androideabi toolchain is in $PATH
-
- export ANDROID_TOP=<root of built Android source>
-
- ./configure --backend=android --host=android --enable-zlib #and any other flags
- make scummvm.apk
-
-This will build a "monolithic" ScummVM package, with the engines
-statically linked in.  If you want to build separate engine packages,
-like on the market, add "--enable-plugins --default-dynamic" to
-configure and also make scummvm-engine-scumm.apk, etc.

Copied: scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build (from rev 51947, scummvm/trunk/backends/platform/android/README.build)
===================================================================
--- scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build	                        (rev 0)
+++ scummvm/branches/gsoc2010-plugins/backends/platform/android/README.build	2010-08-10 23:21:08 UTC (rev 51961)
@@ -0,0 +1,91 @@
+Building the ScummVM Android port
+=================================
+
+You will need these things to build:
+1. Android SDK
+2. An arm-oe-linux-androideabi GCC toolchain(*)
+
+In the example commands, we are going to build against the Android 1.5
+native ABI (but using the Android 1.6 SDK tools).  Other version
+combinations might/should be possible with a bit of tweaking.
+
+(*) Any other sane Android toolchain should be easy to use, but this
+is the toolchain prefix that is used by default.  You can trivially
+find and modify the single location where it appears in ./configure if
+you have some other prefix variation.
+
+
+In detail:
+
+1. Android SDK
+
+Download the SDK from http://developer.android.com/ and install
+somewhere.  You will need both the API level 8 (aka Android 2.2) and
+API level 3 (aka Android 1.5) platforms.
+
+2. arm-*-linux-androideabi GCC toolchain
+
+You have several choices for toolchains:
+
+ - Use Google arm-eabi prebuilt toolchain.
+
+This is shipped with both the Android source release and Android NDK.
+The problem is that "arm-eabi-gcc" can't actually link anything
+successfully without extra command line flags.  To use this with the
+ScummVM configure/build environment you will need to create a family
+of shell wrapper scripts that convert "arm-oe-linux-androideabi-foo" to
+"arm-eabi-foo -mandroid".
+
+For example, I use this script:
+ #!/bin/sh
+ exec arm-eabi-${0##*-} -mandroid -DANDROID "$@"
+
+... and create a family of symlinks/hardlinks pointing to it called
+arm-oe-android-linuxeabi-gcc, arm-oe-android-linuxeabi-g++, etc.  For
+tools that don't take a "-mandroid" argument - like arm-eabi-strip - I
+bypass the shell wrapper and just create an arm-oe-android-linuxeabi-strip
+symlink to the tool directly.
+
+In practice you will probably need significant linker command line
+massaging in order to get the crtbegin/end and libraries all linked in
+the right way.  It's not hard to do manually, but it is annoying to
+script in a general purpose way.
+
+ - Build your own arm-*-linux-androideabi toolchain from GCC source.
+
+This is lots of fun, but will become significantly easier once gcc-4.6
+is released.  In the interim, I suggest using my precompiled Android
+openembedded-based toolchain:
+ wget http://commondatastorage.googleapis.com/anr/sdk/android-2.2-i686-linux-armv5te-linux-androideabi-toolchain-android.tar.bz2
+ sudo tar jxf android-2.2-i686-linux-armv5te-linux-androideabi-toolchain-android.tar.bz2 -C /
+ . /usr/local/android/arm/environment-setup
+
+Alternatively, do a websearch - there are several other cross-compile
+toolchains around.
+
+
+Building ScummVM
+================
+
+(Optionally) compress scummmodern.zip:
+(ScummVM usually ships it uncompressed, but Android can read it more
+efficiently if it is compressed *before* adding it to the apk)
+
+ ( cd gui/themes/scummmodern && zip -f ../scummmodern.zip )
+
+Then build ScummVM:
+
+ export ANDROID_SDK=<root of Android SDK>
+
+ PATH=$ANDROID_SDK/platforms/android-1.6/tools:$ANDROID_SDK/tools:$PATH
+ # You also want to ensure your arm-oe-linux-androideabi toolchain is in $PATH
+
+ export ANDROID_TOP=<root of built Android source>
+
+ ./configure --backend=android --host=android --enable-zlib #and any other flags
+ make scummvm.apk
+
+This will build a "monolithic" ScummVM package, with the engines
+statically linked in.  If you want to build separate engine packages,
+like on the market, add "--enable-plugins --default-dynamic" to
+configure and also make scummvm-engine-scumm.apk, etc.

Deleted: scummvm/branches/gsoc2010-plugins/backends/platform/android/android.cpp
===================================================================
--- scummvm/trunk/backends/platform/android/android.cpp	2010-08-09 21:43:31 UTC (rev 51947)
+++ scummvm/branches/gsoc2010-plugins/backends/platform/android/android.cpp	2010-08-10 23:21:08 UTC (rev 51961)
@@ -1,1412 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#include "backends/base-backend.h"
-#include "base/main.h"
-#include "graphics/surface.h"
-
-#include "backends/platform/android/video.h"
-
-#if defined(ANDROID_BACKEND)
-
-#include <jni.h>
-
-#include <string.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <sys/time.h>
-#include <time.h>
-
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-#include <android/log.h>
-
-#include "common/archive.h"
-#include "common/util.h"
-#include "common/rect.h"
-#include "common/queue.h"
-#include "common/mutex.h"
-#include "common/events.h"
-#include "common/config-manager.h"
-
-#include "backends/fs/posix/posix-fs-factory.h"
-#include "backends/keymapper/keymapper.h"
-#include "backends/saves/default/default-saves.h"
-#include "backends/timer/default/default-timer.h"
-#include "backends/plugins/posix/posix-provider.h"
-#include "sound/mixer_intern.h"
-
-#include "backends/platform/android/asset-archive.h"
-
-#undef LOG_TAG
-#define LOG_TAG "ScummVM"
-
-#if 0
-#define ENTER(args...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, args)
-#else
-#define ENTER(args...) /**/
-#endif
-
-// Fix JNIEXPORT declaration to actually do something useful
-#undef JNIEXPORT
-#define JNIEXPORT __attribute__ ((visibility("default")))
-
-// This replaces the bionic libc assert message with something that
-// actually prints the assertion failure before aborting.
-extern "C"
-void __assert(const char *file, int line, const char *expr) {
-	__android_log_assert(expr, LOG_TAG, "%s:%d: Assertion failure: %s",
-						 file, line, expr);
-}
-
-static JavaVM *cached_jvm;
-static jfieldID FID_Event_type;
-static jfieldID FID_Event_synthetic;
-static jfieldID FID_Event_kbd_keycode;
-static jfieldID FID_Event_kbd_ascii;
-static jfieldID FID_Event_kbd_flags;
-static jfieldID FID_Event_mouse_x;
-static jfieldID FID_Event_mouse_y;
-static jfieldID FID_Event_mouse_relative;
-static jfieldID FID_ScummVM_nativeScummVM;
-static jmethodID MID_Object_wait;
-
-JNIEnv* JNU_GetEnv() {
-	JNIEnv* env;
-	bool version_unsupported =
-		cached_jvm->GetEnv((void**)&env, JNI_VERSION_1_2);
-	assert(! version_unsupported);
-	return env;
-}
-
-static void JNU_ThrowByName(JNIEnv* env, const char* name, const char* msg) {
-	jclass cls = env->FindClass(name);
-	// if cls is NULL, an exception has already been thrown
-	if (cls != NULL)
-		env->ThrowNew(cls, msg);
-	env->DeleteLocalRef(cls);
-}
-
-// floating point.	use sparingly.
-template <class T>
-static inline T scalef(T in, float numerator, float denominator) {
-	return static_cast<float>(in) * numerator / denominator;
-}
-
-static inline GLfixed xdiv(int numerator, int denominator) {
-	assert(numerator < (1<<16));
-	return (numerator << 16) / denominator;
-}
-
-#ifdef DYNAMIC_MODULES
-class AndroidPluginProvider : public POSIXPluginProvider {
-protected:
-	virtual void addCustomDirectories(Common::FSList &dirs) const;
-};
-#endif
-
-
-#if 0
-#define CHECK_GL_ERROR() checkGlError(__FILE__, __LINE__)
-static const char* getGlErrStr(GLenum error) {
-	switch (error) {
-	case GL_NO_ERROR:		   return "GL_NO_ERROR";
-	case GL_INVALID_ENUM:	   return "GL_INVALID_ENUM";
-	case GL_INVALID_OPERATION: return "GL_INVALID_OPERATION";
-	case GL_STACK_OVERFLOW:	   return "GL_STACK_OVERFLOW";
-	case GL_STACK_UNDERFLOW:   return "GL_STACK_UNDERFLOW";
-	case GL_OUT_OF_MEMORY:	   return "GL_OUT_OF_MEMORY";
-	}
-
-	static char buf[40];
-	snprintf(buf, sizeof(buf), "(Unknown GL error code 0x%x)", error);
-	return buf;
-}
-static void checkGlError(const char* file, int line) {
-	GLenum error = glGetError();
-	if (error != GL_NO_ERROR)
-		warning("%s:%d: GL error: %s", file, line, getGlErrStr(error));
-}
-#else
-#define CHECK_GL_ERROR() do {} while (false)
-#endif
-
-class OSystem_Android : public BaseBackend {
-private:
-	jobject _back_ptr;	// back pointer to (java) peer instance
-	jmethodID MID_displayMessageOnOSD;
-	jmethodID MID_setWindowCaption;
-	jmethodID MID_initBackend;
-	jmethodID MID_audioSampleRate;
-	jmethodID MID_showVirtualKeyboard;
-	jmethodID MID_getSysArchives;
-	jmethodID MID_getPluginDirectories;
-	jmethodID MID_setupScummVMSurface;
-	jmethodID MID_destroyScummVMSurface;
-	jmethodID MID_swapBuffers;
-
-	int _screen_changeid;
-	int _egl_surface_width;
-	int _egl_surface_height;
-
-	bool _force_redraw;
-
-	// Game layer
-	GLESPaletteTexture* _game_texture;
-	int _shake_offset;
-	Common::Rect _focus_rect;
-	bool _full_screen_dirty;
-
-	// Overlay layer
-	GLES4444Texture* _overlay_texture;
-	bool _show_overlay;
-
-	// Mouse layer
-	GLESPaletteATexture* _mouse_texture;
-	Common::Point _mouse_hotspot;
-	int _mouse_targetscale;
-	bool _show_mouse;
-	bool _use_mouse_palette;
-
-	Common::Queue<Common::Event> _event_queue;
-	MutexRef _event_queue_lock;
-
-	bool _timer_thread_exit;
-	pthread_t _timer_thread;
-	static void* timerThreadFunc(void* arg);
-
-	bool _enable_zoning;
-	bool _virtkeybd_on;
-
-	Common::SaveFileManager *_savefile;
-	Audio::MixerImpl *_mixer;
-	Common::TimerManager *_timer;
-	FilesystemFactory *_fsFactory;
-	Common::Archive *_asset_archive;
-	timeval _startTime;
-
-	void setupScummVMSurface();
-	void destroyScummVMSurface();
-	void setupKeymapper();
-	void _setCursorPalette(const byte *colors, uint start, uint num);
-
-public:
-	OSystem_Android(jobject am);
-	virtual ~OSystem_Android();
-	bool initJavaHooks(JNIEnv* env, jobject self);
-
-	static OSystem_Android* fromJavaObject(JNIEnv* env, jobject obj);
-	virtual void initBackend();
-	void addPluginDirectories(Common::FSList &dirs) const;
-	void enableZoning(bool enable) { _enable_zoning = enable; }
-	void setSurfaceSize(int width, int height) {
-		_egl_surface_width = width;
-		_egl_surface_height = height;
-	}
-
-	virtual bool hasFeature(Feature f);
-	virtual void setFeatureState(Feature f, bool enable);
-	virtual bool getFeatureState(Feature f);
-	virtual const GraphicsMode *getSupportedGraphicsModes() const;
-	virtual int getDefaultGraphicsMode() const;
-	bool setGraphicsMode(const char *name);
-	virtual bool setGraphicsMode(int mode);
-	virtual int getGraphicsMode() const;
-	virtual void initSize(uint width, uint height,
-				  const Graphics::PixelFormat *format);
-	virtual int getScreenChangeID() const { return _screen_changeid; }
-	virtual int16 getHeight();
-	virtual int16 getWidth();
-	virtual void setPalette(const byte *colors, uint start, uint num);
-	virtual void grabPalette(byte *colors, uint start, uint num);
-	virtual void copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h);
-	virtual void updateScreen();
-	virtual Graphics::Surface *lockScreen();
-	virtual void unlockScreen();
-	virtual void setShakePos(int shakeOffset);
-	virtual void fillScreen(uint32 col);
-	virtual void setFocusRectangle(const Common::Rect& rect);
-	virtual void clearFocusRectangle();
-
-	virtual void showOverlay();
-	virtual void hideOverlay();
-	virtual void clearOverlay();
-	virtual void grabOverlay(OverlayColor *buf, int pitch);
-	virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
-	virtual int16 getOverlayHeight();
-	virtual int16 getOverlayWidth();
-	virtual Graphics::PixelFormat getOverlayFormat() const {
-		// RGBA 4444
-		Graphics::PixelFormat format;
-		format.bytesPerPixel = 2;
-		format.rLoss = 8 - 4;
-		format.gLoss = 8 - 4;
-		format.bLoss = 8 - 4;
-		format.aLoss = 8 - 4;
-		format.rShift = 3*4;
-		format.gShift = 2*4;
-		format.bShift = 1*4;
-		format.aShift = 0*4;
-		return format;
-	}
-
-	virtual bool showMouse(bool visible);
-
-	virtual void warpMouse(int x, int y);
-	virtual void setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale, const Graphics::PixelFormat *format);
-	virtual void setCursorPalette(const byte *colors, uint start, uint num);
-	virtual void disableCursorPalette(bool disable);
-
-	virtual bool pollEvent(Common::Event &event);
-	void pushEvent(const Common::Event& event);
-	virtual uint32 getMillis();
-	virtual void delayMillis(uint msecs);
-
-	virtual MutexRef createMutex(void);
-	virtual void lockMutex(MutexRef mutex);
-	virtual void unlockMutex(MutexRef mutex);
-	virtual void deleteMutex(MutexRef mutex);
-
-	virtual void quit();
-
-	virtual void setWindowCaption(const char *caption);

@@ 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