[Scummvm-cvs-logs] SF.net SVN: scummvm: [29538] scummvm/branches/gsoc2007-mixer

dogmatixman at users.sourceforge.net dogmatixman at users.sourceforge.net
Sat Nov 17 13:11:54 CET 2007


Revision: 29538
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29538&view=rev
Author:   dogmatixman
Date:     2007-11-17 04:11:50 -0800 (Sat, 17 Nov 2007)

Log Message:
-----------
Merging trunk changes into the branch (revisions 28814:29537).  Removed stdafx.h references.

Modified Paths:
--------------
    scummvm/branches/gsoc2007-mixer/AUTHORS
    scummvm/branches/gsoc2007-mixer/COPYRIGHT
    scummvm/branches/gsoc2007-mixer/Makefile
    scummvm/branches/gsoc2007-mixer/Makefile.common
    scummvm/branches/gsoc2007-mixer/NEWS
    scummvm/branches/gsoc2007-mixer/README
    scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.cpp
    scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.h
    scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs.h
    scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/dc/dc-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.h
    scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/palmos/palmos-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/posix/posix-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/ps2/ps2-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/symbian/symbian-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/windows/windows-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/alsa.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/coreaudio.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/coremidi.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/morphos.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/quicktime.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/seq.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/windows.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/ypa1.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/zodiac.cpp
    scummvm/branches/gsoc2007-mixer/backends/module.mk
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/args.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/base_event.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/base_gfx.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/be_base.h
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/be_save.h
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/cd_aeroplayer.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/cd_default.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/cd_msa.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/cd_pockettunes.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/extend.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/init_sony.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/native/zodiacARM.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/os5_mouse.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/PalmOS/Src/snd_pa1.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/audio.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/dc.h
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/dcloader.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/dcmain.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/display.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/icon.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/input.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/label.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/selector.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/softkbd.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/time.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/dc/vmsave.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm7/source/main.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/makefile
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/blitters.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/cdaudio.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/compressor/lz.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/dsmain.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/dsmain.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/dsoptions.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/dsoptions.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/fat/disc_io.c
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/fat/disc_io.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/gbampsave.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/gbampsave.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/osystem_ds.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/osystem_ds.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/portdefs.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/portdefs.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/ramsave.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/ramsave.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/scummconsole.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/scummhelp.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/scummhelp.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/touchkeyboard.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/touchkeyboard.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/zipreader.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/zipreader.h
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/logoa.bmp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/logob.bmp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/logoc.bmp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp2x/events.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp2x/gp2x-common.h
    scummvm/branches/gsoc2007-mixer/backends/platform/gp2x/gp2x-hw.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/debug-gdbstub-usb.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32_launcher.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32_launcher.h
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32_main.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32_osys.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32_osys.h
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std_file.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std_grap.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std_input.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std_input.h
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std_memory.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/gp32/gp32std_sound.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/maemo/maemo-sdl.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/maemo/maemo-sdl.h
    scummvm/branches/gsoc2007-mixer/backends/platform/maemo/main.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/null/null.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ps2/systemps2.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ps2/systemps2.h
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/Makefile
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/osys_psp.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/osys_psp.h
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/osys_psp_gu.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/osys_psp_gu.h
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/psp_main.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/psp/trace.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/sdl/main.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/sdl/sdl.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/sdl/sdl.h
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/AdaptAllMMPs.pl
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/README
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/mmp/scummvm_base.mmp.in
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/res/scummvm.cer
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/res/scummvm.key
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/src/ScummVMApp.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/src/SymbianActions.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/src/SymbianActions.h
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/src/SymbianOS.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/src/SymbianOS.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/ARMscaler.s
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEActionsPocket.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEActionsPocket.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEActionsSmartphone.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEActionsSmartphone.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEDevice.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEDevice.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CELauncherDialog.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEScaler.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEScaler.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/GUIElement.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/GUIElement.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/ItemAction.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/ItemAction.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/ItemSwitch.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/ItemSwitch.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/Panel.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/Panel.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/PanelItem.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/PanelItem.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/PanelKeyboard.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/PanelKeyboard.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/SDL_ImageResource.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/SDL_ImageResource.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/Toolbar.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/Toolbar.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/ToolbarHandler.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEgui/ToolbarHandler.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEkeys/EventsBuffer.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/CEkeys/EventsBuffer.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/Makefile
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/missing/missing.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/missing/sys/stat.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/missing/time.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/portdefs.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/wince-sdl.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/wince-sdl.h
    scummvm/branches/gsoc2007-mixer/backends/platform/x11/x11.cpp
    scummvm/branches/gsoc2007-mixer/backends/plugins/dc/dc-provider.cpp
    scummvm/branches/gsoc2007-mixer/backends/plugins/dc/dc-provider.h
    scummvm/branches/gsoc2007-mixer/backends/plugins/dynamic-plugin.h
    scummvm/branches/gsoc2007-mixer/backends/plugins/posix/posix-provider.cpp
    scummvm/branches/gsoc2007-mixer/backends/plugins/posix/posix-provider.h
    scummvm/branches/gsoc2007-mixer/backends/plugins/sdl/sdl-provider.cpp
    scummvm/branches/gsoc2007-mixer/backends/plugins/sdl/sdl-provider.h
    scummvm/branches/gsoc2007-mixer/backends/plugins/win32/win32-provider.cpp
    scummvm/branches/gsoc2007-mixer/backends/plugins/win32/win32-provider.h
    scummvm/branches/gsoc2007-mixer/backends/saves/compressed/compressed-saves.cpp
    scummvm/branches/gsoc2007-mixer/backends/saves/compressed/compressed-saves.h
    scummvm/branches/gsoc2007-mixer/backends/saves/default/default-saves.cpp
    scummvm/branches/gsoc2007-mixer/backends/saves/default/default-saves.h
    scummvm/branches/gsoc2007-mixer/backends/saves/savefile.cpp
    scummvm/branches/gsoc2007-mixer/backends/timer/default/default-timer.cpp
    scummvm/branches/gsoc2007-mixer/base/commandLine.cpp
    scummvm/branches/gsoc2007-mixer/base/game.h
    scummvm/branches/gsoc2007-mixer/base/main.cpp
    scummvm/branches/gsoc2007-mixer/base/plugins.cpp
    scummvm/branches/gsoc2007-mixer/base/plugins.h
    scummvm/branches/gsoc2007-mixer/base/version.cpp
    scummvm/branches/gsoc2007-mixer/common/advancedDetector.cpp
    scummvm/branches/gsoc2007-mixer/common/advancedDetector.h
    scummvm/branches/gsoc2007-mixer/common/algorithm.h
    scummvm/branches/gsoc2007-mixer/common/array.h
    scummvm/branches/gsoc2007-mixer/common/config-file.cpp
    scummvm/branches/gsoc2007-mixer/common/config-manager.cpp
    scummvm/branches/gsoc2007-mixer/common/events.h
    scummvm/branches/gsoc2007-mixer/common/file.cpp
    scummvm/branches/gsoc2007-mixer/common/file.h
    scummvm/branches/gsoc2007-mixer/common/fs.cpp
    scummvm/branches/gsoc2007-mixer/common/fs.h
    scummvm/branches/gsoc2007-mixer/common/hashmap.h
    scummvm/branches/gsoc2007-mixer/common/iff_container.h
    scummvm/branches/gsoc2007-mixer/common/md5.cpp
    scummvm/branches/gsoc2007-mixer/common/mutex.cpp
    scummvm/branches/gsoc2007-mixer/common/savefile.h
    scummvm/branches/gsoc2007-mixer/common/scummsys.h
    scummvm/branches/gsoc2007-mixer/common/str.cpp
    scummvm/branches/gsoc2007-mixer/common/stream.cpp
    scummvm/branches/gsoc2007-mixer/common/stream.h
    scummvm/branches/gsoc2007-mixer/common/system.cpp
    scummvm/branches/gsoc2007-mixer/common/system.h
    scummvm/branches/gsoc2007-mixer/common/unzip.cpp
    scummvm/branches/gsoc2007-mixer/common/unzip.h
    scummvm/branches/gsoc2007-mixer/common/util.cpp
    scummvm/branches/gsoc2007-mixer/common/util.h
    scummvm/branches/gsoc2007-mixer/config.guess
    scummvm/branches/gsoc2007-mixer/configure
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/agi.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/agi.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/agos.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/agos.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/cine.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/cine.depend
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/cine.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/gob.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/gob.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/kyra.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/kyra.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/lure.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/lure.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/parallaction.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/parallaction.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/queen.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/saga.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/saga.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/scumm.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/scumm.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/scummvm.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/scummvm.depend
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/scummvm.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/scummvm.workspace
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/sky.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/sword1.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/sword2.layout
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/touche.cbp
    scummvm/branches/gsoc2007-mixer/dists/codeblocks/touche.layout
    scummvm/branches/gsoc2007-mixer/dists/devcpp/scummvm.dev
    scummvm/branches/gsoc2007-mixer/dists/msvc6/scummvm.dsp
    scummvm/branches/gsoc2007-mixer/dists/msvc7/scummvm.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/agi.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/drascula.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/gob.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/kyra.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/parallaction.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/saga.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/scumm.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/scummvm.sln
    scummvm/branches/gsoc2007-mixer/dists/msvc71/scummvm.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc71/touche.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/agi.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/cruise.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/kyra.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/parallaction.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/queen.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/saga.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/scummvm.sln
    scummvm/branches/gsoc2007-mixer/dists/msvc8/scummvm.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/touche.vcproj
    scummvm/branches/gsoc2007-mixer/engines/agi/agi.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/agi.h
    scummvm/branches/gsoc2007-mixer/engines/agi/checks.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/console.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/console.h
    scummvm/branches/gsoc2007-mixer/engines/agi/cycle.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/font.h
    scummvm/branches/gsoc2007-mixer/engines/agi/global.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/graphics.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/graphics.h
    scummvm/branches/gsoc2007-mixer/engines/agi/id.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/inv.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/keyboard.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/keyboard.h
    scummvm/branches/gsoc2007-mixer/engines/agi/loader_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/loader_v3.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/logic.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/logic.h
    scummvm/branches/gsoc2007-mixer/engines/agi/lzw.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/module.mk
    scummvm/branches/gsoc2007-mixer/engines/agi/motion.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/objects.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/op_cmd.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/op_dbg.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/op_test.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/picture.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/picture.h
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_mickey.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_mickey.h
    scummvm/branches/gsoc2007-mixer/engines/agi/predictive.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/sound.h
    scummvm/branches/gsoc2007-mixer/engines/agi/text.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/view.h
    scummvm/branches/gsoc2007-mixer/engines/agi/wagparser.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/agos.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/agos.h
    scummvm/branches/gsoc2007-mixer/engines/agos/animation.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/charset.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/contain.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/cursor.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/debug.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/debug.h
    scummvm/branches/gsoc2007-mixer/engines/agos/debugger.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/draw.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/event.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/gfx.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/icons.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/input.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/items.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/menus.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/midi.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/midiparser_s1d.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/oracle.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/res.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/res_ami.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/res_snd.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/rooms.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_e1.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_e2.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_ff.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_pp.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_s1.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_s2.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/script_ww.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/string.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/subroutine.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/verb.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/vga.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/vga_e2.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/vga_ff.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/vga_s1.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/vga_s2.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/vga_ww.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/window.cpp
    scummvm/branches/gsoc2007-mixer/engines/agos/zones.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/anim.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/bg.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/bg_list.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/bg_list.h
    scummvm/branches/gsoc2007-mixer/engines/cine/cine.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/cine.h
    scummvm/branches/gsoc2007-mixer/engines/cine/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/main_loop.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/msg.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/object.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/prc.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/rel.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/script.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/texte.h
    scummvm/branches/gsoc2007-mixer/engines/cine/unpack.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/unpack.h
    scummvm/branches/gsoc2007-mixer/engines/cine/various.cpp
    scummvm/branches/gsoc2007-mixer/engines/cine/various.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/actor.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/actor.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/background.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/background.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/backgroundIncrust.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/backgroundIncrust.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/cell.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/cell.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/cruise.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/cruise.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/cruise_main.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/cruise_main.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/ctp.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/ctp.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/dataLoader.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/dataLoader.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/decompiler.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/delphine-unpack.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/font.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/font.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/function.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/gfxModule.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/linker.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/mainDraw.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/mainDraw.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/mouse.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/mouse.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/object.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/object.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/overlay.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/overlay.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/perso.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/polys.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/script.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/script.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/stringSupport.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/stringSupport.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/various.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/various.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/vars.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/vars.h
    scummvm/branches/gsoc2007-mixer/engines/cruise/volume.cpp
    scummvm/branches/gsoc2007-mixer/engines/cruise/volume.h
    scummvm/branches/gsoc2007-mixer/engines/drascula/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/drascula/drascula.cpp
    scummvm/branches/gsoc2007-mixer/engines/drascula/drascula.h
    scummvm/branches/gsoc2007-mixer/engines/engine.cpp
    scummvm/branches/gsoc2007-mixer/engines/engine.h
    scummvm/branches/gsoc2007-mixer/engines/engines.mk
    scummvm/branches/gsoc2007-mixer/engines/gob/cdrom.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/coktelvideo.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/dataio.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/dataio.h
    scummvm/branches/gsoc2007-mixer/engines/gob/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/draw.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/draw_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/draw_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/driver_vga.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/game.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/game_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/game_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/global.h
    scummvm/branches/gsoc2007-mixer/engines/gob/gob.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/gob.h
    scummvm/branches/gsoc2007-mixer/engines/gob/goblin_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/goblin_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/init.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/init_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/init_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/init_v3.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/inter.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/inter_bargon.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/inter_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/inter_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/inter_v3.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/inter_v4.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/map.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/map_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/map_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/map_v4.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/mult.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/mult_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/mult_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/music.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/parse.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/parse_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/parse_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/saveload_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/saveload_v3.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/scenery.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/scenery_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/scenery_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/util.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/video.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/video_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/gob/video_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/animator_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/animator_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/debugger.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/debugger.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/gui_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/gui_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/items_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra_v1.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra_v2.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra_v3.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/kyra_v3.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/module.mk
    scummvm/branches/gsoc2007-mixer/engines/kyra/resource.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/resource.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/saveload_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/scene_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/scene_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/screen.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/screen.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/screen_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/screen_v2.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/script.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/script.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/script_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/script_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/seqplayer.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sequences_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sequences_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sound.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/sound_adlib.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sound_digital.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sound_towns.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sound_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/sprites.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/staticres.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/text.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/text.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/text_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/timer.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/timer_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/util.h
    scummvm/branches/gsoc2007-mixer/engines/kyra/vqa.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/wsamovie.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/wsamovie.h
    scummvm/branches/gsoc2007-mixer/engines/lure/animseq.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/debugger.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/debugger.h
    scummvm/branches/gsoc2007-mixer/engines/lure/decode.h
    scummvm/branches/gsoc2007-mixer/engines/lure/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/disk.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/disk.h
    scummvm/branches/gsoc2007-mixer/engines/lure/events.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/events.h
    scummvm/branches/gsoc2007-mixer/engines/lure/fights.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/fights.h
    scummvm/branches/gsoc2007-mixer/engines/lure/game.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/game.h
    scummvm/branches/gsoc2007-mixer/engines/lure/hotspots.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/hotspots.h
    scummvm/branches/gsoc2007-mixer/engines/lure/intro.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/intro.h
    scummvm/branches/gsoc2007-mixer/engines/lure/lure.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/luredefs.h
    scummvm/branches/gsoc2007-mixer/engines/lure/memory.h
    scummvm/branches/gsoc2007-mixer/engines/lure/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/menu.h
    scummvm/branches/gsoc2007-mixer/engines/lure/res.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/res.h
    scummvm/branches/gsoc2007-mixer/engines/lure/res_struct.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/res_struct.h
    scummvm/branches/gsoc2007-mixer/engines/lure/room.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/room.h
    scummvm/branches/gsoc2007-mixer/engines/lure/screen.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/screen.h
    scummvm/branches/gsoc2007-mixer/engines/lure/scripts.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/scripts.h
    scummvm/branches/gsoc2007-mixer/engines/lure/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/sound.h
    scummvm/branches/gsoc2007-mixer/engines/lure/strings.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/strings.h
    scummvm/branches/gsoc2007-mixer/engines/lure/surface.cpp
    scummvm/branches/gsoc2007-mixer/engines/lure/surface.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/callables_br.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/callables_ns.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/debug.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/debug.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/defs.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/dialogue.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/disk_br.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/disk_ns.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/exec_br.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/exec_ns.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/font.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/graphics.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/graphics.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/inventory.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/inventory.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/module.mk
    scummvm/branches/gsoc2007-mixer/engines/parallaction/objects.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/objects.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parallaction.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parallaction.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parallaction_br.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parallaction_ns.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parser.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parser.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parser_br.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/parser_ns.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/sound.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/staticres.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/walk.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/bankman.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/command.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/command.h
    scummvm/branches/gsoc2007-mixer/engines/queen/credits.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/cutaway.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/debug.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/display.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/display.h
    scummvm/branches/gsoc2007-mixer/engines/queen/graphics.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/grid.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/input.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/journal.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/logic.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/module.mk
    scummvm/branches/gsoc2007-mixer/engines/queen/music.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/music.h
    scummvm/branches/gsoc2007-mixer/engines/queen/musicdata.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/queen.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/queen.h
    scummvm/branches/gsoc2007-mixer/engines/queen/resource.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/sound.h
    scummvm/branches/gsoc2007-mixer/engines/queen/state.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/talk.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/walk.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/actor.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/actor.h
    scummvm/branches/gsoc2007-mixer/engines/saga/animation.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/animation.h
    scummvm/branches/gsoc2007-mixer/engines/saga/console.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/console.h
    scummvm/branches/gsoc2007-mixer/engines/saga/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/detection_tables.h
    scummvm/branches/gsoc2007-mixer/engines/saga/displayinfo.h
    scummvm/branches/gsoc2007-mixer/engines/saga/events.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/events.h
    scummvm/branches/gsoc2007-mixer/engines/saga/font.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/font.h
    scummvm/branches/gsoc2007-mixer/engines/saga/gfx.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/ihnm_introproc.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/image.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/input.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/interface.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/interface.h
    scummvm/branches/gsoc2007-mixer/engines/saga/isomap.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/ite_introproc.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/itedata.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/module.mk
    scummvm/branches/gsoc2007-mixer/engines/saga/music.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/objectmap.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/objectmap.h
    scummvm/branches/gsoc2007-mixer/engines/saga/palanim.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/render.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/render.h
    scummvm/branches/gsoc2007-mixer/engines/saga/rscfile.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/saga.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/saga.h
    scummvm/branches/gsoc2007-mixer/engines/saga/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/scene.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/scene.h
    scummvm/branches/gsoc2007-mixer/engines/saga/script.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/script.h
    scummvm/branches/gsoc2007-mixer/engines/saga/sfuncs.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/sndres.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/sound.h
    scummvm/branches/gsoc2007-mixer/engines/saga/sprite.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/sthread.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/actor.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/akos.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/base-costume.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/bomp.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/boxes.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/camera.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/charset.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/costume.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/cursor.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/debugger.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/detection_tables.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/dialogs.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/dialogs.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/file_nes.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/gfx.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/gfx.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/animation_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/cup_player_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/floodfill_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/intern_he.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/logic_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/logic_he.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/palette_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/resource_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/script_v100he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/script_v60he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/script_v70he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/script_v72he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/script_v80he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/script_v90he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/sound_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/sprite_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/he/wiz_he.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/help.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/imuse.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/imuse_part.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/imuse_player.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/instrument.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/instrument.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/sysex.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/sysex_samnmax.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse/sysex_scumm.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_bndmgr.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_codecs.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_music.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_script.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_sndmgr.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_sndmgr.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_tables.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/imuse_digi/dimuse_track.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/input.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/insane/insane.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/insane/insane_ben.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/insane/insane_enemy.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/insane/insane_iact.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/insane/insane_scenes.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/intern.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/midiparser_eup.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/midiparser_ro.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/nut_renderer.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/object.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/palette.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/player_mod.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/player_nes.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/player_v1.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/player_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/player_v2a.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/player_v3a.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/resource.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/resource_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/resource_v3.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/resource_v4.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/room.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/script.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/script_v0.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/script_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/script_v5.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/script_v6.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/script_v8.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/scumm.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/scumm.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/channel.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/chunk.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/codec1.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/codec37.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/codec47.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/imuse_channel.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/saud_channel.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/smush_font.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/smush_mixer.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/smush_mixer.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/smush/smush_player.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/string.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/thumbnail.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/usage_bits.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/util.h
    scummvm/branches/gsoc2007-mixer/engines/scumm/vars.cpp
    scummvm/branches/gsoc2007-mixer/engines/scumm/verbs.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/autoroute.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/autoroute.h
    scummvm/branches/gsoc2007-mixer/engines/sky/compact.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/control.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/control.h
    scummvm/branches/gsoc2007-mixer/engines/sky/debug.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/debug.h
    scummvm/branches/gsoc2007-mixer/engines/sky/disk.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/disk.h
    scummvm/branches/gsoc2007-mixer/engines/sky/grid.h
    scummvm/branches/gsoc2007-mixer/engines/sky/intro.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/intro.h
    scummvm/branches/gsoc2007-mixer/engines/sky/logic.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/logic.h
    scummvm/branches/gsoc2007-mixer/engines/sky/mouse.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/mouse.h
    scummvm/branches/gsoc2007-mixer/engines/sky/music/adlibchannel.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/music/adlibmusic.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/music/musicbase.h
    scummvm/branches/gsoc2007-mixer/engines/sky/rnc_deco.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/rnc_deco.h
    scummvm/branches/gsoc2007-mixer/engines/sky/screen.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/screen.h
    scummvm/branches/gsoc2007-mixer/engines/sky/sky.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/sky.h
    scummvm/branches/gsoc2007-mixer/engines/sky/skydefs.h
    scummvm/branches/gsoc2007-mixer/engines/sky/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/sound.h
    scummvm/branches/gsoc2007-mixer/engines/sky/text.cpp
    scummvm/branches/gsoc2007-mixer/engines/sky/text.h
    scummvm/branches/gsoc2007-mixer/engines/sword1/animation.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/control.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/credits.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/debug.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/eventman.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/logic.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/memman.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/mouse.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/music.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/objectman.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/resman.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/router.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/screen.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/staticres.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/sword1.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword1/text.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/animation.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/anims.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/console.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/controls.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/debug.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/events.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/function.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/icons.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/interpreter.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/layers.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/logic.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/maketext.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/memory.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/mouse.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/music.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/palette.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/protocol.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/render.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/resman.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/router.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/screen.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/scroll.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/sound.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/speech.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/sprite.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/startup.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/sword2.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/sync.cpp
    scummvm/branches/gsoc2007-mixer/engines/sword2/walker.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/graphics.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/graphics.h
    scummvm/branches/gsoc2007-mixer/engines/touche/midi.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/module.mk
    scummvm/branches/gsoc2007-mixer/engines/touche/opcodes.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/resource.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/staticres.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/touche.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/touche.h
    scummvm/branches/gsoc2007-mixer/graphics/cursorman.h
    scummvm/branches/gsoc2007-mixer/graphics/dxa_player.cpp
    scummvm/branches/gsoc2007-mixer/graphics/font.cpp
    scummvm/branches/gsoc2007-mixer/graphics/fontman.h
    scummvm/branches/gsoc2007-mixer/graphics/fonts/consolefont.cpp
    scummvm/branches/gsoc2007-mixer/graphics/fonts/newfont.cpp
    scummvm/branches/gsoc2007-mixer/graphics/fonts/newfont_big.cpp
    scummvm/branches/gsoc2007-mixer/graphics/fonts/scummfont.cpp
    scummvm/branches/gsoc2007-mixer/graphics/imagedec.h
    scummvm/branches/gsoc2007-mixer/graphics/imageman.h
    scummvm/branches/gsoc2007-mixer/graphics/mpeg_player.cpp
    scummvm/branches/gsoc2007-mixer/graphics/primitives.cpp
    scummvm/branches/gsoc2007-mixer/graphics/primitives.h
    scummvm/branches/gsoc2007-mixer/graphics/scaler/intern.h
    scummvm/branches/gsoc2007-mixer/graphics/scaler/scale2x.cpp
    scummvm/branches/gsoc2007-mixer/graphics/scaler/scale3x.cpp
    scummvm/branches/gsoc2007-mixer/graphics/scaler/scalebit.cpp
    scummvm/branches/gsoc2007-mixer/graphics/scaler/thumbnail.cpp
    scummvm/branches/gsoc2007-mixer/graphics/scaler.h
    scummvm/branches/gsoc2007-mixer/graphics/surface.cpp
    scummvm/branches/gsoc2007-mixer/graphics/surface.h
    scummvm/branches/gsoc2007-mixer/gui/Actions.cpp
    scummvm/branches/gsoc2007-mixer/gui/Actions.h
    scummvm/branches/gsoc2007-mixer/gui/EditTextWidget.cpp
    scummvm/branches/gsoc2007-mixer/gui/EditTextWidget.h
    scummvm/branches/gsoc2007-mixer/gui/Key.cpp
    scummvm/branches/gsoc2007-mixer/gui/Key.h
    scummvm/branches/gsoc2007-mixer/gui/KeysDialog.cpp
    scummvm/branches/gsoc2007-mixer/gui/ListWidget.cpp
    scummvm/branches/gsoc2007-mixer/gui/ListWidget.h
    scummvm/branches/gsoc2007-mixer/gui/PopUpWidget.cpp
    scummvm/branches/gsoc2007-mixer/gui/PopUpWidget.h
    scummvm/branches/gsoc2007-mixer/gui/ScrollBarWidget.cpp
    scummvm/branches/gsoc2007-mixer/gui/ScrollBarWidget.h
    scummvm/branches/gsoc2007-mixer/gui/TabWidget.cpp
    scummvm/branches/gsoc2007-mixer/gui/TabWidget.h
    scummvm/branches/gsoc2007-mixer/gui/ThemeClassic.cpp
    scummvm/branches/gsoc2007-mixer/gui/ThemeClassic.h
    scummvm/branches/gsoc2007-mixer/gui/ThemeModern.cpp
    scummvm/branches/gsoc2007-mixer/gui/ThemeModern.h
    scummvm/branches/gsoc2007-mixer/gui/about.cpp
    scummvm/branches/gsoc2007-mixer/gui/browser.cpp
    scummvm/branches/gsoc2007-mixer/gui/chooser.cpp
    scummvm/branches/gsoc2007-mixer/gui/console.cpp
    scummvm/branches/gsoc2007-mixer/gui/credits.h
    scummvm/branches/gsoc2007-mixer/gui/debugger.cpp
    scummvm/branches/gsoc2007-mixer/gui/dialog.cpp
    scummvm/branches/gsoc2007-mixer/gui/editable.cpp
    scummvm/branches/gsoc2007-mixer/gui/eval.cpp
    scummvm/branches/gsoc2007-mixer/gui/eval.h
    scummvm/branches/gsoc2007-mixer/gui/launcher.cpp
    scummvm/branches/gsoc2007-mixer/gui/massadd.cpp
    scummvm/branches/gsoc2007-mixer/gui/message.cpp
    scummvm/branches/gsoc2007-mixer/gui/newgui.cpp
    scummvm/branches/gsoc2007-mixer/gui/object.cpp
    scummvm/branches/gsoc2007-mixer/gui/options.cpp
    scummvm/branches/gsoc2007-mixer/gui/theme-config.cpp
    scummvm/branches/gsoc2007-mixer/gui/theme.cpp
    scummvm/branches/gsoc2007-mixer/gui/theme.h
    scummvm/branches/gsoc2007-mixer/gui/themebrowser.cpp
    scummvm/branches/gsoc2007-mixer/gui/themes/classic080.ini
    scummvm/branches/gsoc2007-mixer/gui/themes/modern.ini
    scummvm/branches/gsoc2007-mixer/gui/widget.cpp
    scummvm/branches/gsoc2007-mixer/gui/widget.h
    scummvm/branches/gsoc2007-mixer/sound/adpcm.cpp
    scummvm/branches/gsoc2007-mixer/sound/adpcm.h
    scummvm/branches/gsoc2007-mixer/sound/aiff.cpp
    scummvm/branches/gsoc2007-mixer/sound/aiff.h
    scummvm/branches/gsoc2007-mixer/sound/audiocd.cpp
    scummvm/branches/gsoc2007-mixer/sound/audiocd.h
    scummvm/branches/gsoc2007-mixer/sound/audiostream.cpp
    scummvm/branches/gsoc2007-mixer/sound/audiostream.h
    scummvm/branches/gsoc2007-mixer/sound/filter.cpp
    scummvm/branches/gsoc2007-mixer/sound/flac.h
    scummvm/branches/gsoc2007-mixer/sound/fmopl.cpp
    scummvm/branches/gsoc2007-mixer/sound/iff.cpp
    scummvm/branches/gsoc2007-mixer/sound/iff.h
    scummvm/branches/gsoc2007-mixer/sound/mididrv.cpp
    scummvm/branches/gsoc2007-mixer/sound/mididrv.h
    scummvm/branches/gsoc2007-mixer/sound/midiparser.cpp
    scummvm/branches/gsoc2007-mixer/sound/midiparser.h
    scummvm/branches/gsoc2007-mixer/sound/midiparser_smf.cpp
    scummvm/branches/gsoc2007-mixer/sound/midiparser_xmidi.cpp
    scummvm/branches/gsoc2007-mixer/sound/mixer.cpp
    scummvm/branches/gsoc2007-mixer/sound/mixer.h
    scummvm/branches/gsoc2007-mixer/sound/mods/module.cpp
    scummvm/branches/gsoc2007-mixer/sound/mods/protracker.cpp
    scummvm/branches/gsoc2007-mixer/sound/mods/protracker.h
    scummvm/branches/gsoc2007-mixer/sound/mods/rjp1.cpp
    scummvm/branches/gsoc2007-mixer/sound/mods/soundfx.cpp
    scummvm/branches/gsoc2007-mixer/sound/mp3.h
    scummvm/branches/gsoc2007-mixer/sound/mpu401.cpp
    scummvm/branches/gsoc2007-mixer/sound/mpu401.h
    scummvm/branches/gsoc2007-mixer/sound/null.cpp
    scummvm/branches/gsoc2007-mixer/sound/rate.cpp
    scummvm/branches/gsoc2007-mixer/sound/rate_arm.cpp
    scummvm/branches/gsoc2007-mixer/sound/rate_arm_asm.s
    scummvm/branches/gsoc2007-mixer/sound/softsynth/adlib.cpp
    scummvm/branches/gsoc2007-mixer/sound/softsynth/emumidi.h
    scummvm/branches/gsoc2007-mixer/sound/softsynth/fluidsynth.cpp
    scummvm/branches/gsoc2007-mixer/sound/softsynth/mt32/freeverb.cpp
    scummvm/branches/gsoc2007-mixer/sound/softsynth/mt32/partial.cpp
    scummvm/branches/gsoc2007-mixer/sound/softsynth/mt32/structures.h
    scummvm/branches/gsoc2007-mixer/sound/softsynth/mt32/synth.cpp
    scummvm/branches/gsoc2007-mixer/sound/softsynth/mt32.cpp
    scummvm/branches/gsoc2007-mixer/sound/softsynth/ym2612.h
    scummvm/branches/gsoc2007-mixer/sound/voc.cpp
    scummvm/branches/gsoc2007-mixer/sound/voc.h
    scummvm/branches/gsoc2007-mixer/sound/vorbis.h
    scummvm/branches/gsoc2007-mixer/sound/wave.cpp
    scummvm/branches/gsoc2007-mixer/sound/wave.h
    scummvm/branches/gsoc2007-mixer/test/common/array.h
    scummvm/branches/gsoc2007-mixer/test/common/hashmap.h
    scummvm/branches/gsoc2007-mixer/test/common/list.h
    scummvm/branches/gsoc2007-mixer/test/common/pack.h
    scummvm/branches/gsoc2007-mixer/test/common/seekablesubreadstream.h
    scummvm/branches/gsoc2007-mixer/test/common/str.h
    scummvm/branches/gsoc2007-mixer/test/common/subreadstream.h
    scummvm/branches/gsoc2007-mixer/tools/convbdf.c
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/create_kyradat.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/md5.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/md5.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/util.c
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/util.h
    scummvm/branches/gsoc2007-mixer/tools/create_lure/create_lure_dat.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_lure/create_lure_dat.h
    scummvm/branches/gsoc2007-mixer/tools/create_lure/process_actions.cpp
    scummvm/branches/gsoc2007-mixer/tools/credits.pl
    scummvm/branches/gsoc2007-mixer/tools/module.mk
    scummvm/branches/gsoc2007-mixer/tools/qtable/qtable.c
    scummvm/branches/gsoc2007-mixer/tools/skycpt/AsciiCptCompile.cpp
    scummvm/branches/gsoc2007-mixer/tools/skycpt/KmpSearch.cpp
    scummvm/branches/gsoc2007-mixer/tools/skycpt/KmpSearch.h
    scummvm/branches/gsoc2007-mixer/tools/skycpt/TextFile.cpp
    scummvm/branches/gsoc2007-mixer/tools/skycpt/TextFile.h
    scummvm/branches/gsoc2007-mixer/tools/skycpt/cptcompiler.cpp
    scummvm/branches/gsoc2007-mixer/tools/skycpt/cpthelp.cpp
    scummvm/branches/gsoc2007-mixer/tools/skycpt/cpthelp.h
    scummvm/branches/gsoc2007-mixer/tools/skycpt/idFinder.cpp
    scummvm/branches/gsoc2007-mixer/tools/skycpt/stdafx.h

Added Paths:
-----------
    scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/palmos/palmos-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/palmos/palmos-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/posix/posix-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/posix/posix-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/ps2/ps2-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/ps2/ps2-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/psp/psp-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/psp/psp-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/psp/psp-fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/symbian/symbian-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/symbian/symbian-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/fs/windows/windows-fs-factory.cpp
    scummvm/branches/gsoc2007-mixer/backends/fs/windows/windows-fs-factory.h
    scummvm/branches/gsoc2007-mixer/backends/midi/dmedia.cpp
    scummvm/branches/gsoc2007-mixer/backends/midi/timidity.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/data/8x8font.tga
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/data/8x8font_tga.raw
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/arm9/source/blitters_arm.s
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/logod.bmp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/logoe.bmp
    scummvm/branches/gsoc2007-mixer/backends/platform/ds/logof.bmp
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_common.h
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_main.m
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_video.h
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_video.m
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/module.mk
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/osys_iphone.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/osys_iphone.h
    scummvm/branches/gsoc2007-mixer/backends/platform/symbian/mmp/scummvm_drascula.mmp.in
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/missing/gcc/direct.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/missing/gcc/errno.h
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/stub.cpp
    scummvm/branches/gsoc2007-mixer/common/error.h
    scummvm/branches/gsoc2007-mixer/config.sub
    scummvm/branches/gsoc2007-mixer/dists/iphone/
    scummvm/branches/gsoc2007-mixer/dists/iphone/Default.png
    scummvm/branches/gsoc2007-mixer/dists/iphone/Info.plist
    scummvm/branches/gsoc2007-mixer/dists/iphone/icon.png
    scummvm/branches/gsoc2007-mixer/dists/msvc71/igor.vcproj
    scummvm/branches/gsoc2007-mixer/dists/msvc8/igor.vcproj
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi.h
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_common.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_common.h
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_troll.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_troll.h
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_winnie.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_winnie.h
    scummvm/branches/gsoc2007-mixer/engines/igor/
    scummvm/branches/gsoc2007-mixer/engines/igor/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/igor.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/igor.h
    scummvm/branches/gsoc2007-mixer/engines/igor/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/module.mk
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_04.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_05.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_06.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_12.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_13.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_14.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_15.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_16.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_17.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_18.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_19.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_21.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_22.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_23.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_24.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_25.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_26.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_27.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_28.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_30.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_31.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_33.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_36.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_37.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_75.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_85.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_90.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_95.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_main.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/resource_ids.h
    scummvm/branches/gsoc2007-mixer/engines/igor/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/staticres.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/text_v2.cpp
    scummvm/branches/gsoc2007-mixer/engines/kyra/text_v2.h
    scummvm/branches/gsoc2007-mixer/engines/parallaction/gui_ns.cpp
    scummvm/branches/gsoc2007-mixer/engines/queen/midiadlib.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/actor_path.cpp
    scummvm/branches/gsoc2007-mixer/engines/saga/actor_walk.cpp
    scummvm/branches/gsoc2007-mixer/engines/touche/menu.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/create_igortbl.c
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/module.mk
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/resource_en_demo100.h
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/resource_en_demo110.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/module.mk
    scummvm/branches/gsoc2007-mixer/tools/create_lure/module.mk
    scummvm/branches/gsoc2007-mixer/tools/qtable/module.mk
    scummvm/branches/gsoc2007-mixer/tools/skycpt/module.mk

Removed Paths:
-------------
    scummvm/branches/gsoc2007-mixer/backends/fs/psp/psp_fs.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_common.h
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_main.m
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_video.h
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/iphone_video.m
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/module.mk
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/osys_iphone.cpp
    scummvm/branches/gsoc2007-mixer/backends/platform/iphone/osys_iphone.h
    scummvm/branches/gsoc2007-mixer/common/stdafx.h
    scummvm/branches/gsoc2007-mixer/dists/iphone/Default.png
    scummvm/branches/gsoc2007-mixer/dists/iphone/Info.plist
    scummvm/branches/gsoc2007-mixer/dists/iphone/icon.png
    scummvm/branches/gsoc2007-mixer/engines/agi/loader_preagi.cpp
    scummvm/branches/gsoc2007-mixer/engines/agi/preagi_input.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/detection.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/igor.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/igor.h
    scummvm/branches/gsoc2007-mixer/engines/igor/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/module.mk
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_04.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_05.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_06.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_12.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_13.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_14.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_15.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_16.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_17.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_18.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_19.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_21.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_22.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_23.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_24.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_25.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_26.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_27.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_28.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_30.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_31.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_33.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_36.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_37.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_75.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_85.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_90.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_95.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/parts/part_main.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/resource_ids.h
    scummvm/branches/gsoc2007-mixer/engines/igor/saveload.cpp
    scummvm/branches/gsoc2007-mixer/engines/igor/staticres.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/menu.cpp
    scummvm/branches/gsoc2007-mixer/engines/parallaction/menu.h
    scummvm/branches/gsoc2007-mixer/engines/saga/stream.h
    scummvm/branches/gsoc2007-mixer/engines/touche/ui.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/create_igortbl.c
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/module.mk
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/resource_en_demo100.h
    scummvm/branches/gsoc2007-mixer/tools/create_igortbl/resource_en_demo110.h

Property Changed:
----------------
    scummvm/branches/gsoc2007-mixer/backends/platform/wince/
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/Makefile
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/amiga.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/create_kyradat.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/create_kyradat.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/eng.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/esp.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/fre.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/ger.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/md5.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/md5.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/misc.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/pak.cpp
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/pak.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/towns.h
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/util.c
    scummvm/branches/gsoc2007-mixer/tools/create_kyradat/util.h
    scummvm/branches/gsoc2007-mixer/tools/create_lure/
    scummvm/branches/gsoc2007-mixer/tools/qtable/
    scummvm/branches/gsoc2007-mixer/tools/skycpt/

Modified: scummvm/branches/gsoc2007-mixer/AUTHORS
===================================================================
--- scummvm/branches/gsoc2007-mixer/AUTHORS	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/AUTHORS	2007-11-17 12:11:50 UTC (rev 29538)
@@ -26,6 +26,7 @@
 
     AGI:
        Stuart George        
+       Matthew Hoops        
        Filippos Karapetis   
        Pawel Kolodziejski   
        Eugene Sandulenko    
@@ -55,7 +56,7 @@
        Eugene Sandulenko    
 
     Cinematique evo 2:
-       Vincent Hamm         
+       Vincent Hamm          - original CruisE engine author
 
     FOTAQ:
        David Eriksson       
@@ -156,6 +157,7 @@
      Ralph Brorsen         - Help with GUI implementation
      Jamieson Christian    - iMUSE, MIDI, all things musical
      Ruediger Hanke        - Port: MorphOS
+     Vincent Hamm          - ScummVM co-founder, Original Cruise/CinE author
      Felix Jakschitsch     - Zak256 reverse engineering
      Mutwin Kraus          - Original MacOS porter
      Peter Moraliyski      - Port: GP32

Modified: scummvm/branches/gsoc2007-mixer/COPYRIGHT
===================================================================
--- scummvm/branches/gsoc2007-mixer/COPYRIGHT	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/COPYRIGHT	2007-11-17 12:11:50 UTC (rev 29538)
@@ -13,7 +13,6 @@
 Ralph Brorsen
 James Brown
 Stuart Caie
-Filippos Karapetis
 Jamieson Christian
 Marcus Comstedt
 Paolo Costabel
@@ -32,6 +31,7 @@
 Vincent Hamm
 Sven Hesse
 Jochen Hoenicke
+Matthew Hoops
 Max Horn
 Travis Howell
 Janne Huttunen
@@ -83,7 +83,7 @@
 Elio Blanca "eblanca76"
 David Breakey "dbreakey"
 Robert Buchholz "prendi"
-Filippos Karapetis "thebluegr"
+Rainer Canavan
 Mathieu Carot "yokna"
 Stefano Ceccherini "jackburton"
 Travis S Coady "theealien"
@@ -108,7 +108,6 @@
 Matt Hargett "matt_hargett"
 Stefan Haubenthal "polluks"
 Alexander Holler "holler"
-Matthew Hoops "clone2727"
 Falk Hueffner "mellum"
 Casey Hutchinson "nnooiissee"
 Gregor Jasny "gjasny"
@@ -116,6 +115,7 @@
 Joerg "macdrega"
 Matt Johnson "mattjon"
 Nicolas Joly "njoly"
+Filippos Karapetis "thebluegr"
 KeithS "keithscr"
 Sam Kenny "sam_k"
 Koen Kooi "koenkooi"
@@ -128,6 +128,7 @@
 Mark Lodato "itsr0y"
 Fridvin Logi "phillip_j_fry"
 Georg Lukas "ge0rg"
+Dmitry Marakasov "amdmi3"
 Markus "meist3r"
 Connor McLeod "mcleod2032"
 Mickey McMurray "metafox"
@@ -188,3 +189,4 @@
 phi1
 spookypeanut "spookypeanut"
 tbcarey
+Tim "tipabu"

Modified: scummvm/branches/gsoc2007-mixer/Makefile
===================================================================
--- scummvm/branches/gsoc2007-mixer/Makefile	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/Makefile	2007-11-17 12:11:50 UTC (rev 29538)
@@ -16,7 +16,7 @@
 MODULE_DIRS :=
 
 # Load the make rules generated by configure
-include config.mk
+-include config.mk
 
 CXXFLAGS:= -Wall $(CXXFLAGS)
 CXXFLAGS+= -Wno-long-long -Wno-multichar -Wno-unknown-pragmas
@@ -44,9 +44,14 @@
 
 # check if configure has been run or has been changed since last run
 config.mk: $(srcdir)/configure
-	@echo "You need to run ./configure before you can run make"
-	@echo "Either you haven't run it before or it has changed."
-	@exit 1
+ifdef CONFIG_MK_IS_PRESENT
+	@echo "Running $(srcdir)/configure with the last specified parameters"
+	@sleep 2s
+	LDFLAGS="$(SAVED_LDFLAGS)" CXX="$(SAVED_CXX)" CXXFLAGS="$(SAVED_CXXFLAGS)" CPPFLAGS="$(SAVED_CPPFLAGS)" \
+		$(srcdir)/configure $(SAVED_CONFIGFLAGS)
+else
+	$(error You need to run $(srcdir)/configure before you can run make. Check $(srcdir)/configure --help for a list of parameters)
+endif
 
 install: all
 	$(INSTALL) -d "$(DESTDIR)$(BINDIR)"
@@ -98,6 +103,15 @@
 	$(srcdir)/tools/credits.pl --rtf > $(bundle_name)/Contents/Resources/Credits.rtf
 	strip $(bundle_name)/Contents/MacOS/scummvm
 
+iphonebundle:
+	mkdir -p $(bundle_name)
+	cp $(srcdir)/dists/iphone/Info.plist $(bundle_name)/
+	cp $(srcdir)/gui/themes/modern.ini $(bundle_name)/
+	cp $(srcdir)/gui/themes/modern.zip $(bundle_name)/
+	cp scummvm $(bundle_name)/ScummVM
+	cp $(srcdir)/dists/iphone/icon.png $(bundle_name)/icon.png
+	cp $(srcdir)/dists/iphone/Default.png $(bundle_name)/Default.png
+
 # location of additional libs for OS X usually /sw/ for fink or
 # /opt/local/ for darwinports
 OSXOPT=/sw

Modified: scummvm/branches/gsoc2007-mixer/Makefile.common
===================================================================
--- scummvm/branches/gsoc2007-mixer/Makefile.common	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/Makefile.common	2007-11-17 12:11:50 UTC (rev 29538)
@@ -87,7 +87,7 @@
 .PHONY: all clean dist distclean plugins
 
 # Old (dumb) compile & dependcy rules
-#INCS	= scumm/scumm.h common/scummsys.h common/stdafx.h
+#INCS	= scumm/scumm.h common/scummsys.h
 #.cpp.o:
 #	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
 #$(OBJS): $(INCS)
@@ -109,6 +109,9 @@
 .cpp.o:
 	$(MKDIR) $(*D)/$(DEPDIR)
 	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
+.m.o:
+	$(MKDIR) $(*D)/$(DEPDIR)
+	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(OBJCFLAGS) -c $(<) -o $*.o
 endif
 
 ifdef HAVE_NASM
@@ -118,6 +121,5 @@
 	$(NASM) -O1 $(NASMFLAGS) -g -o $*.o $(<)
 endif
 
-# Include the dependency tracking files. We add /dev/null at the end
-# of the list to avoid a warning/error if no .d file exist
--include $(wildcard $(addsuffix /*.d,$(DEPDIRS))) /dev/null
+# Include the dependency tracking files.
+-include $(wildcard $(addsuffix /*.d,$(DEPDIRS)))

Modified: scummvm/branches/gsoc2007-mixer/NEWS
===================================================================
--- scummvm/branches/gsoc2007-mixer/NEWS	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/NEWS	2007-11-17 12:11:50 UTC (rev 29538)
@@ -2,28 +2,44 @@
         http://scummvm.sourceforge.net/daily/ChangeLog
 
 0.11.0 (????-??-??)
+ New Games:
+   - Added support for Elvira: Mistress of the Dark.
+   - Added support for Elvira 2: The Jaws of Cerberus.
+   - Added support for I Have no Mouth, and I Must Scream.
+   - Added support for preAGI game Troll's Tale.
+ 
  General:
    - Added ARM assembly routines for code in the sound mixer and SCUMM
      video playback, resulting in some nice speedups on several ports.
    - Improved the way keyboard input is handled internally, resolving
      some odd quirks in some game / port combinations.
    - Added optional 'confirm exit' dialog to the SDL backend.
+   - Added support for TiMidity++ MIDI server.
 
  AGOS:
    - Fixed crashes related to OmniTV playback in The Feeble Files.
 
  Broken Sword 1:
    - Added support for FLAC encoded music.
+ 
+ IRIX:
+   - Added DMedia MIDI driver for IRIX.
 
  SCUMM:
    - Added subtitle skipping (via '.' key) in older games which didn't have
      this feature so far (e.g. Zak, MM, Indy3, Loom).
-   - Added support for Chinese COMI
+   - Added support for Chinese COMI.
 
  SAGA:
-   - Added support for compressed sound effects, voices and music
+   - Added support for compressed sound effects, voices and music.
 
+ Kyrandia:
+   - Added support for Macintosh version.
 
+ WinCE Port:
+   - Switched compilers again. Now using cegcc (http://cegcc.sourceforge.net/).
+   - Plugins now supported for WinCE.
+
 0.10.0 (2007-06-20)
  New Games:
    - Added Cinematique evo 1 engine. Currently only Future Wars is supported.

Modified: scummvm/branches/gsoc2007-mixer/README
===================================================================
--- scummvm/branches/gsoc2007-mixer/README	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/README	2007-11-17 12:11:50 UTC (rev 29538)
@@ -46,8 +46,9 @@
  * 7.4 MIDI emulation
  * 7.5 Native MIDI support
  * 7.6 UNIX native and ALSA sequencer support
- * 7.7 Using compressed audio files (MP3, Ogg Vorbis, Flac)
- * 7.8 Output sample rate
+ * 7.7 TiMidity++ MIDI server support
+ * 7.8 Using compressed audio files (MP3, Ogg Vorbis, Flac)
+ * 7.9 Output sample rate
 8.0) Configuration Files
 9.0) Compiling
 
@@ -248,7 +249,7 @@
 
      Other Humongous Entertainment games
 
-Please be aware that the engine may contain bugs and unimplemented features
+Please be aware that the engines may contain bugs and unimplemented features
 that sometimes make it impossible to finish the game. Save often, and please
 file a bug report (instructions on submitting bug reports are above) if you
 encounter such a bug in a 'supported' game.
@@ -326,7 +327,7 @@
   * You try to feed ScummVM with the FULL ROM and not just the PRG section.
 
 It is also possible to extract the separate LFL files from the PRG section.
-To do so use the extract_mm_nes utility from the tools package.
+To do so use the 'extract_mm_nes' utility from the tools package.
 
 
 3.4) Macintosh games notes:
@@ -366,16 +367,7 @@
 if you create a directory with the correct combination of files. Usually, when
 a file appears on more than one CD you can pick either of them.
 
-These instructions are written for the PC versions (which in some case is the
-only version) of the games. Windows and DOS use case-insensitive file systems,
-so if one CD has a file called MONKEY.DAT and another has a file called
-monkey.dat, they are the same files. These instructions give file names in all
-lower-case names, even if that's not always how they appear on the CDs. In
-fact, on case-sensitive file systems you will have to make sure that all
-filenames use either all upper- or all lower-case letters for ScummVM to be
-able to find the files.
 
-
 3.6) The Curse of Monkey Island notes:
 ---- ---------------------------------
 For this game, you will need the comi.la0, comi.la1 and comi.la2 files. The
@@ -403,9 +395,9 @@
 FLAC and zlib support.
 
 For systems that are too slow to handle the decoding of FLAC audio,
-the audio for these cutscenes is provided separately as OGG Vorbis audio
-too. Viewing these cutscenes with OGG Vorbis audio requires a version of
-ScummVM compiled with both libVorbis and zlib support. 
+the audio for these cutscenes is also provided separately as OGG Vorbis audio.
+Viewing these cutscenes with OGG Vorbis audio requires a version of ScummVM
+compiled with both libVorbis and zlib support. 
 
 The cutscenes should be placed in the main game data directory. Note that
 currently this requires either copying the game to hard disk or burning
@@ -711,12 +703,6 @@
 
 5.0) Running ScummVM:
 ---- ----------------
-Before you run the engine, you need to put the game's data files in a
-directory. The filenames must not be in mixed case on *nix systems
-(for example, these are valid names: "monkey2.000", "MONKEY2.000", while
-this is a bad one: "Monkey2.000"). If you use a game with speech, the file
-monster.sou must reside in the same directory as the data files.
-
 Please note that by default, ScummVM will save games in the directory
 it is executed from, so you should refrain from running it from more than
 one location. Further information, including how to specify a specific save
@@ -776,6 +762,7 @@
                            acorn, amiga, atari, c64, fmtowns, mac, nes, pc,
                            pce, segacd, windows)
   --savepath=PATH          Path to where savegames are stored
+  --extrapath=PATH         Extra path to additional game data
   --soundfont=FILE         Select the SoundFont for MIDI playback (Only
                            supported by some MIDI drivers)
   --multi-midi             Enable combination of Adlib and native MIDI
@@ -1136,6 +1123,7 @@
                      a hardware MIDI synthesizer.
         qt         - Quicktime sound, for Macintosh users.
         seq        - Use /dev/sequencer for MIDI, *nix users. See below.
+        timidity   - Connect to TiMidity++ MIDI server. See below.
         windows    - Windows MIDI. Uses built-in sequencer, for Windows users
 
 To select a sound driver, select it in the Launcher, or pass its name
@@ -1239,8 +1227,8 @@
 MIDI music with Adlib sound effects.
 
 
-7.6.0) Playing sound with Sequencer MIDI:                        [UNIX ONLY]
------- ----------------------------------
+7.6) Playing sound with Sequencer MIDI:                          [UNIX ONLY]
+---- ----------------------------------
 If your soundcard driver supports a sequencer, you may set the environment
 variable "SCUMMVM_MIDI" to your sequencer device -- for example, to
 /dev/sequencer
@@ -1303,7 +1291,25 @@
 command as described earlier in this section.
 
 
-7.7.0) Using MP3 files for CD audio:
+7.7) Using TiMidity++ MIDI server:
+---- -----------------------------
+If you system lacks any MIDI sequencer, but you still want better MIDI quality
+than default Adlib emulation can offer, you can try TiMidity++ MIDI server. See
+http://timidity.sourceforge.net/ for download and install instructions.
+
+First, you need to start a daemon:
+
+timidity -ir 7777
+
+Now you can start scummvm and try selection TiMidity music output.  By default,
+it will connect to localhost:7777, but you can change host/port by defining
+"TIMIDITY_HOST" environment variable.
+
+
+7.8) Using compressed audio files
+---- ----------------------------
+
+7.8.0) Using MP3 files for CD audio:
 ------ -----------------------------
 Use LAME or some other MP3 encoder to rip the cd audio tracks to files. Name
 the files track1.mp3 track2.mp3 etc. ScummVM must be compiled with MAD support
@@ -1314,7 +1320,7 @@
   lame -t -q 0 -b 96 track1.wav track1.mp3
 
 
-7.7.1) Using Ogg Vorbis files for CD audio:
+7.8.1) Using Ogg Vorbis files for CD audio:
 ------ ------------------------------------
 Use oggenc or some other vorbis encoder to encode the audio tracks to files.
 Name the files track1.ogg track2.ogg etc. ScummVM must be compiled with vorbis
@@ -1326,7 +1332,7 @@
   oggenc -q 5 track1.wav
 
 
-7.7.2) Using Flac files for CD audio:
+7.8.2) Using Flac files for CD audio:
 ------ ------------------------------------
 Use flac or some other flac encoder to encode the audio tracks to files.
 Name the files track1.flac track2.flac etc. In your filesystem only allows
@@ -1341,7 +1347,7 @@
 affect the encoding time and resulting filesize.
 
 
-7.7.3) Compressing MONSTER.SOU with MP3:
+7.8.3) Compressing MONSTER.SOU with MP3:
 ------ ---------------------------------
 You need LAME, and our 'compress_scumm_sou' utility from the scummvm-tools
 package to perform this task, and ScummVM must be compiled with MAD support.
@@ -1352,7 +1358,7 @@
 to your game directory. You can safely remove the monster.sou file.
 
 
-7.7.4) Compressing MONSTER.SOU with Ogg Vorbis:
+7.8.4) Compressing MONSTER.SOU with Ogg Vorbis:
 ------ ----------------------------------------
 As above, but ScummVM must be compiled with OGG support. Run:
 
@@ -1363,7 +1369,7 @@
 than MP3, so have a good book handy.
 
 
-7.7.5) Compressing MONSTER.SOU with Flac:
+7.8.5) Compressing MONSTER.SOU with Flac:
 ------ ----------------------------------------
 As above, but ScummVM must be compiled with Flac support. Run:
 
@@ -1377,7 +1383,7 @@
 to read the encoder documentation before you use other values.
 
 
-7.7.6) Compressing music/sfx/speech in AGOS games
+7.8.6) Compressing music/sfx/speech in AGOS games
 ------ -----------------------------------------------------------------
 Use our 'compress_agos' utility from the scummvm-tools package to perform this
 task. You can choose between multiple target formats, but note that you can
@@ -1412,7 +1418,7 @@
 file to your game directory. You can safely remove the old file.
 
 
-7.7.7) Compressing speech/music in Broken Sword 1
+7.8.7) Compressing speech/music in Broken Sword 1
 ------ ------------------------------------------
 The 'compress_sword1' tool from the scummvm-tools package can encode music and
 speech to MP3 as well as Ogg Vorbis.
@@ -1431,7 +1437,7 @@
 Use "compress_sword1 --help" to get a full list of the options.
 
 
-7.7.8) Compressing speech/music in Broken Sword 2
+7.8.8) Compressing speech/music in Broken Sword 2
 ------ ------------------------------------------
 Use our 'compress_sword2' utility from the scummvm-tools package to perform this
 task. You can choose between multiple target formats, but note  that you can
@@ -1456,7 +1462,7 @@
 nor will it work with the speech files from Broken Sword 1.
 
 
-7.8) Output sample rate:
+7.9) Output sample rate:
 ---- -------------------
 The output sample rate tells ScummVM how many sound samples to play per channel
 per second. There is much that could be said on this subject, but most of it

Modified: scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.cpp
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.cpp	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -25,14 +25,71 @@
 
 #if !defined(DISABLE_DEFAULT_EVENTMANAGER)
 
-#include "common/stdafx.h"
 #include "common/config-manager.h"
 #include "common/system.h"
+#include "common/config-manager.h"
 #include "backends/events/default/default-events.h"
 
 #include "engines/engine.h"
 #include "gui/message.h"
 
+#define RECORD_SIGNATURE 0x54455354
+#define RECORD_VERSION 1
+
+void readRecord(Common::InSaveFile *inFile, uint32 &diff, Common::Event &event) {
+	diff = inFile->readUint32LE();
+
+	event.type = (Common::EventType)inFile->readUint32LE();
+
+	switch(event.type) {
+	case Common::EVENT_KEYDOWN:
+	case Common::EVENT_KEYUP:
+		event.kbd.keycode = (Common::KeyCode)inFile->readSint32LE();
+		event.kbd.ascii = inFile->readUint16LE();
+		event.kbd.flags = inFile->readByte();
+		break;
+	case Common::EVENT_MOUSEMOVE:
+	case Common::EVENT_LBUTTONDOWN:
+	case Common::EVENT_LBUTTONUP:
+	case Common::EVENT_RBUTTONDOWN:
+	case Common::EVENT_RBUTTONUP:
+	case Common::EVENT_WHEELUP:
+	case Common::EVENT_WHEELDOWN:
+		event.mouse.x = inFile->readSint16LE();
+		event.mouse.y = inFile->readSint16LE();
+		break;
+	default:
+		break;
+	}	
+}
+
+void writeRecord(Common::OutSaveFile *outFile, uint32 diff, Common::Event &event) {
+	outFile->writeUint32LE(diff);
+
+	outFile->writeUint32LE((uint32)event.type);
+
+	switch(event.type) {
+	case Common::EVENT_KEYDOWN:
+	case Common::EVENT_KEYUP:
+		outFile->writeSint32LE(event.kbd.keycode);
+		outFile->writeUint16LE(event.kbd.ascii);
+		outFile->writeByte(event.kbd.flags);
+		break;
+	case Common::EVENT_MOUSEMOVE:
+	case Common::EVENT_LBUTTONDOWN:
+	case Common::EVENT_LBUTTONUP:
+	case Common::EVENT_RBUTTONDOWN:
+	case Common::EVENT_RBUTTONUP:
+	case Common::EVENT_WHEELUP:
+	case Common::EVENT_WHEELDOWN:
+		outFile->writeSint16LE(event.mouse.x);
+		outFile->writeSint16LE(event.mouse.y);
+		break;
+	default:
+		break;
+	}
+}
+
 DefaultEventManager::DefaultEventManager(OSystem *boss) :
 	_boss(boss),
 	_buttonState(0),
@@ -41,16 +98,279 @@
 
  	assert(_boss);
 
+	_recordFile = NULL;
+	_recordTimeFile = NULL;
+	_playbackFile = NULL;
+	_playbackTimeFile = NULL;
+	_timeMutex = _boss->createMutex();
+	_recorderMutex = _boss->createMutex();
+
+	_eventCount = 0;
+	_lastEventCount = 0;
+	_lastMillis = 0;
+
+	Common::String recordModeString = ConfMan.get("record_mode");
+	if (recordModeString.compareToIgnoreCase("record") == 0) {
+		_recordMode = kRecorderRecord;
+	} else {
+		if (recordModeString.compareToIgnoreCase("playback") == 0) {
+			_recordMode = kRecorderPlayback;
+		} else {
+			_recordMode = kPassthrough;
+		}
+	}
+
+	_recordFileName = ConfMan.get("record_file_name");
+	if (_recordFileName.empty()) {
+		_recordFileName = "record.bin";
+	}
+	_recordTempFileName = ConfMan.get("record_temp_file_name");
+	if (_recordTempFileName.empty()) {
+		_recordTempFileName = "record.tmp";
+	}
+	_recordTimeFileName = ConfMan.get("record_time_file_name");
+	if (_recordTimeFileName.empty()) {
+		_recordTimeFileName = "record.time";
+	}
+
 	// Reset key repeat
 	_currentKeyDown.keycode = 0;
+
+	// recorder stuff
+	if (_recordMode == kRecorderRecord) {
+		_recordCount = 0;
+		_recordTimeCount = 0;
+		_recordFile = _boss->getSavefileManager()->openForSaving(_recordTempFileName.c_str());
+		_recordTimeFile = _boss->getSavefileManager()->openForSaving(_recordTimeFileName.c_str());
+		_recordSubtitles = ConfMan.getBool("subtitles");
+	}
+
+	uint32 sign;
+	uint32 version;
+	uint32 randomSourceCount;
+	if (_recordMode == kRecorderPlayback) {
+		_playbackCount = 0;
+		_playbackTimeCount = 0;
+		_playbackFile = _boss->getSavefileManager()->openForLoading(_recordFileName.c_str());
+		_playbackTimeFile = _boss->getSavefileManager()->openForLoading(_recordTimeFileName.c_str());
+
+		if (!_playbackFile) {
+			warning("Cannot open playback file %s. Playback was switched off", _recordFileName.c_str());
+			_recordMode = kPassthrough;
+		}
+
+		if (!_playbackTimeFile) {
+			warning("Cannot open playback time file %s. Playback was switched off", _recordTimeFileName.c_str());
+			_recordMode = kPassthrough;
+		}
+	}
+
+	if (_recordMode == kRecorderPlayback) {
+		sign = _playbackFile->readUint32LE();
+		if (sign != RECORD_SIGNATURE) {
+			error("Unknown record file signature");
+		}
+		version = _playbackFile->readUint32LE();
+
+		// conf vars
+		ConfMan.setBool("subtitles", _playbackFile->readByte() != 0);
+		
+		_recordCount = _playbackFile->readUint32LE();
+		_recordTimeCount = _playbackFile->readUint32LE();
+		randomSourceCount = _playbackFile->readUint32LE();
+		for (uint i = 0; i < randomSourceCount; ++i) {
+			RandomSourceRecord rec;
+			rec.name = "";
+			uint32 sLen = _playbackFile->readUint32LE();
+			for (uint j = 0; j < sLen; ++j) {
+				char c = _playbackFile->readSByte();
+				rec.name += c;
+			}
+			rec.seed = _playbackFile->readUint32LE();
+			_randomSourceRecords.push_back(rec);
+		}
+
+		_hasPlaybackEvent = false;
+	}
 }
 
+DefaultEventManager::~DefaultEventManager() {
+	_boss->lockMutex(_timeMutex);
+	_boss->lockMutex(_recorderMutex);
+	_recordMode = kPassthrough;
+	_boss->unlockMutex(_timeMutex);
+	_boss->unlockMutex(_recorderMutex);
+
+	if (_playbackFile != NULL) {
+		delete _playbackFile;
+	}
+	if (_playbackTimeFile != NULL) {
+		delete _playbackTimeFile;
+	}
+
+	if (_recordFile != NULL) {
+		_recordFile->finalize();
+		delete _recordFile;
+		_recordTimeFile->finalize();
+		delete _recordTimeFile;
+
+		_playbackFile = _boss->getSavefileManager()->openForLoading(_recordTempFileName.c_str());
+
+		_recordFile = _boss->getSavefileManager()->openForSaving(_recordFileName.c_str());
+		_recordFile->writeUint32LE(RECORD_SIGNATURE);
+		_recordFile->writeUint32LE(RECORD_VERSION);
+
+		// conf vars
+		_recordFile->writeByte(_recordSubtitles ? 1 : 0);
+
+		_recordFile->writeUint32LE(_recordCount);
+		_recordFile->writeUint32LE(_recordTimeCount);
+
+		_recordFile->writeUint32LE(_randomSourceRecords.size());
+		for (uint i = 0; i < _randomSourceRecords.size(); ++i) {
+			_recordFile->writeUint32LE(_randomSourceRecords[i].name.size());
+			_recordFile->writeString(_randomSourceRecords[i].name);
+			_recordFile->writeUint32LE(_randomSourceRecords[i].seed);
+		}
+
+		for (uint i = 0; i < _recordCount; ++i) {
+			uint32 tempDiff;
+			Common::Event tempEvent;
+			readRecord(_playbackFile, tempDiff, tempEvent);
+			writeRecord(_recordFile, tempDiff, tempEvent);
+		}
+
+		_recordFile->finalize();
+		delete _recordFile;
+		delete _playbackFile;
+
+		//TODO: remove recordTempFileName'ed file
+	}
+	_boss->deleteMutex(_timeMutex);
+	_boss->deleteMutex(_recorderMutex);
+}
+
+bool DefaultEventManager::playback(Common::Event &event) {
+
+	if (!_hasPlaybackEvent) {
+		if (_recordCount > _playbackCount) {
+			readRecord(_playbackFile, const_cast<uint32&>(_playbackDiff), _playbackEvent);
+			_playbackCount++;
+			_hasPlaybackEvent = true;
+		}
+	}
+
+	if (_hasPlaybackEvent) {
+		if (_playbackDiff <= (_eventCount - _lastEventCount)) {
+			switch(_playbackEvent.type) {
+			case Common::EVENT_MOUSEMOVE:
+			case Common::EVENT_LBUTTONDOWN:
+			case Common::EVENT_LBUTTONUP:
+			case Common::EVENT_RBUTTONDOWN:
+			case Common::EVENT_RBUTTONUP:
+			case Common::EVENT_WHEELUP:
+			case Common::EVENT_WHEELDOWN:
+				_boss->warpMouse(_playbackEvent.mouse.x, _playbackEvent.mouse.y);
+				break;
+			default:
+				break;
+			}	
+			event = _playbackEvent;
+			_hasPlaybackEvent = false;
+			_lastEventCount = _eventCount;
+			return true;
+		}
+	}
+
+	return false;
+}
+
+void DefaultEventManager::record(Common::Event &event) {
+	writeRecord(_recordFile, _eventCount - _lastEventCount, event);
+
+	_recordCount++;
+	_lastEventCount = _eventCount;
+}
+
+void DefaultEventManager::registerRandomSource(Common::RandomSource &rnd, const char *name) {
+
+	if (_recordMode == kRecorderRecord) {
+		RandomSourceRecord rec;
+		rec.name = name;
+		rec.seed = rnd.getSeed();
+		_randomSourceRecords.push_back(rec);
+	}
+
+	if (_recordMode == kRecorderPlayback) {
+		for (uint i = 0; i < _randomSourceRecords.size(); ++i) {
+			if (_randomSourceRecords[i].name == name) {
+				rnd.setSeed(_randomSourceRecords[i].seed);
+				_randomSourceRecords.remove_at(i);
+				break;
+			}
+		}
+	}
+}
+
+void DefaultEventManager::processMillis(uint32 &millis) {
+	uint32 d;
+	if (_recordMode == kPassthrough) {
+		return;
+	}
+
+	_boss->lockMutex(_timeMutex);
+	if (_recordMode == kRecorderRecord) {
+		//Simple RLE compression
+		d = millis - _lastMillis;
+		if (d >= 0xff) {
+			_recordTimeFile->writeByte(0xff);
+			_recordTimeFile->writeUint32LE(d);
+		} else {
+			_recordTimeFile->writeByte(d);
+		}
+		_recordTimeCount++;
+	}
+
+	if (_recordMode == kRecorderPlayback) {
+		if (_recordTimeCount > _playbackTimeCount) {
+			d = _playbackTimeFile->readByte();
+			if (d == 0xff) {
+				d = _playbackTimeFile->readUint32LE();
+			}
+			millis = _lastMillis + d;
+			_playbackTimeCount++;
+		}
+	}
+
+	_lastMillis = millis;
+	_boss->unlockMutex(_timeMutex);
+}
+
 bool DefaultEventManager::pollEvent(Common::Event &event) {
 	uint32 time = _boss->getMillis();
 	bool result;
-	
+
 	result = _boss->pollEvent(event);
-	
+
+	if (_recordMode != kPassthrough)  {
+
+		_boss->lockMutex(_recorderMutex);
+		_eventCount++;
+
+		if (_recordMode == kRecorderPlayback)  {
+			if (event.type != Common::EVENT_QUIT) {
+				result = playback(event);
+			}
+		} else {		
+			if (_recordMode == kRecorderRecord) {
+				if (result) {
+					record(event);
+				}
+			}
+		}
+		_boss->unlockMutex(_recorderMutex);
+	}
+
 	if (result) {
 		event.synthetic = false;
 		switch (event.type) {
@@ -124,7 +444,7 @@
 			result = true;
 		}
 	}
-	
+
 	return result;
 }
 

Modified: scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.h
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.h	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/events/default/default-events.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -26,8 +26,8 @@
 #if !defined(BACKEND_EVENTS_DEFAULT_H) && !defined(DISABLE_DEFAULT_EVENTMANAGER)
 #define BACKEND_EVENTS_DEFAULT_H
 
-#include "common/stdafx.h"
 #include "common/events.h"
+#include "common/savefile.h"
 
 /*
 At some point we will remove pollEvent from OSystem and change
@@ -48,7 +48,45 @@
 	int _buttonState;
 	int _modifierState;
 	bool _shouldQuit;
+	
+	class RandomSourceRecord {
+	public:
+		Common::String name;
+		uint32 seed;
+	};
+	Common::Array<RandomSourceRecord> _randomSourceRecords; 
 
+	bool _recordSubtitles;
+	volatile uint32 _recordCount;
+	volatile uint32 _lastRecordEvent;
+	volatile uint32 _recordTimeCount;
+	Common::OutSaveFile *_recordFile;
+	Common::OutSaveFile *_recordTimeFile;
+	Common::MutexRef _timeMutex;
+	Common::MutexRef _recorderMutex;
+	volatile uint32 _lastMillis;
+
+	volatile uint32 _playbackCount;
+	volatile uint32 _playbackDiff;
+	volatile bool _hasPlaybackEvent;
+	volatile uint32 _playbackTimeCount;
+	Common::Event _playbackEvent;	
+	Common::InSaveFile *_playbackFile;
+	Common::InSaveFile *_playbackTimeFile;
+
+	volatile uint32 _eventCount;
+	volatile uint32 _lastEventCount;
+
+	enum RecordMode {
+		kPassthrough = 0,
+		kRecorderRecord = 1,
+		kRecorderPlayback = 2
+	};
+	volatile RecordMode _recordMode;
+	Common::String _recordFileName;
+	Common::String _recordTempFileName;
+	Common::String _recordTimeFileName;
+	
 	// for continuous events (keyDown)
 	enum {
 		kKeyRepeatInitialDelay = 400,
@@ -62,10 +100,15 @@
 	} _currentKeyDown;
 	uint32 _keyRepeatTime;
 
+	void record(Common::Event &event);
+	bool playback(Common::Event &event);
 public:
 	DefaultEventManager(OSystem *boss);
+	~DefaultEventManager();
 
 	virtual bool pollEvent(Common::Event &event);
+	virtual void registerRandomSource(Common::RandomSource &rnd, const char *name);
+	virtual void processMillis(uint32 &millis);
 
 	virtual Common::Point getMousePos() const { return _mousePos; }
 	virtual int getButtonState() const { return _buttonState; }

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.cpp (from rev 29510, scummvm/trunk/backends/fs/abstract-fs-factory.cpp)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,87 @@
+/* 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/fs/abstract-fs-factory.h"
+
+/*
+ * All the following includes choose, at compile time, which specific backend will be used
+ * during the execution of the ScummVM.
+ * 
+ * It has to be done this way because not all the necessary libraries will be available in
+ * all build environments. Additionally, this results in smaller binaries.
+ */
+#if defined(__amigaos4__)
+	#include "backends/fs/amigaos4/amigaos4-fs-factory.cpp"
+#elif defined(__DC__)
+	#include "backends/fs/dc/ronincd-fs-factory.cpp"
+#elif defined(__DS__)
+	#include "backends/fs/ds/ds-fs-factory.cpp"
+#elif defined(__GP32__)
+	#include "backends/fs/gp32/gp32-fs-factory.cpp"
+#elif defined(__MORPHOS__)
+	#include "backends/fs/morphos/abox-fs-factory.cpp"
+#elif defined(PALMOS_MODE)
+	#include "backends/fs/palmos/palmos-fs-factory.cpp"
+#elif defined(__PLAYSTATION2__)
+	#include "backends/fs/ps2/ps2-fs-factory.cpp"
+#elif defined(__PSP__)
+	#include "backends/fs/psp/psp-fs-factory.cpp"
+#elif defined(__SYMBIAN32__)
+	#include "backends/fs/symbian/symbian-fs-factory.cpp"
+#elif defined(UNIX)
+	#include "backends/fs/posix/posix-fs-factory.cpp"
+#elif defined(WIN32)
+	#include "backends/fs/windows/windows-fs-factory.cpp"
+#endif
+
+/**
+ * Creates concrete FilesystemFactory objects depending on the current architecture.
+ * 
+ * @return AbstractFilesystemFactory* The specific factory for the current architecture. 
+ */
+AbstractFilesystemFactory *AbstractFilesystemFactory::makeFSFactory() {
+	#if defined(__amigaos4__)
+		return &AmigaOSFilesystemFactory::instance();
+	#elif defined(__DC__)
+		return &RoninCDFilesystemFactory::instance();
+	#elif defined(__DS__)
+		return &DSFilesystemFactory::instance();
+	#elif defined(__GP32__)
+		return &GP32FilesystemFactory::instance();
+	#elif defined(__MORPHOS__)
+		return &ABoxFilesystemFactory::instance();
+	#elif defined(PALMOS_MODE)
+		return &PalmOSFilesystemFactory::instance();
+	#elif defined(__PLAYSTATION2__)
+		return &Ps2FilesystemFactory::instance();
+	#elif defined(__PSP__)
+		return &PSPFilesystemFactory::instance();
+	#elif defined(__SYMBIAN32__)
+		return &SymbianFilesystemFactory::instance();
+	#elif defined(UNIX)
+		return &POSIXFilesystemFactory::instance();
+	#elif defined(WIN32)
+		return &WindowsFilesystemFactory::instance();
+	#endif
+}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.h (from rev 29510, scummvm/trunk/backends/fs/abstract-fs-factory.h)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.h	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs-factory.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,80 @@
+/* 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$
+ */
+
+#ifndef ABSTRACT_FILESYSTEM_FACTORY_H
+#define ABSTRACT_FILESYSTEM_FACTORY_H
+
+#include "common/str.h"
+#include "backends/fs/abstract-fs.h"
+
+/**
+ * Creates concrete FilesystemNode objects depending on the current architecture.
+ */
+class AbstractFilesystemFactory {
+public:
+	typedef Common::String String;
+
+	/**
+	 * Destructor.
+	 */
+	virtual ~AbstractFilesystemFactory() {}
+
+	/**
+	 * Returns a node representing the "current directory".
+	 * If your system does not support this concept, you can either try to
+	 * emulate it or simply return some "sensible" default directory node,
+	 * e.g. the same value as getRoot() returns.
+	 */
+	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const = 0;
+
+	/**
+	 * Construct a node based on a path; the path is in the same format as it
+	 * would be for calls to fopen().
+	 *
+	 * Furthermore getNodeForPath(oldNode.path()) should create a new node
+	 * identical to oldNode. Hence, we can use the "path" value for persistent
+	 * storage e.g. in the config file.
+	 *
+	 * @param path The path string to create a FilesystemNode for.
+	 */
+	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const = 0;
+
+	/**
+	 * Returns a special node representing the filesystem root.
+	 * The starting point for any file system browsing.
+	 *
+	 * On Unix, this will be simply the node for / (the root directory).
+	 * On Windows, it will be a special node which "contains" all drives (C:, D:, E:).
+	 */
+	virtual AbstractFilesystemNode *makeRootFileNode() const = 0;
+
+
+	/**
+	 * Meta-factory method which returns a concrete AbstractFilesystemFactory
+	 * instance depending on the current architecture.
+	 */
+	static AbstractFilesystemFactory *makeFSFactory();
+};
+
+#endif /*ABSTRACT_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs.h
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs.h	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/abstract-fs.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -27,7 +27,6 @@
 
 #include "common/array.h"
 #include "common/str.h"
-
 #include "common/fs.h"
 
 class AbstractFilesystemNode;
@@ -47,88 +46,112 @@
 	friend class FilesystemNode;
 	typedef Common::String String;
 	typedef FilesystemNode::ListMode ListMode;
-
+	
 	/**
-	 * The parent node of this directory.
-	 * The parent of the root is the root itself.
-	 */
-	virtual AbstractFilesystemNode *parent() const = 0;
-
-	/**
-	 * The child node with the given name. If no child with this name
+	 * Returns the child node with the given name. If no child with this name
 	 * exists, returns 0. When called on a non-directory node, it should
 	 * handle this gracefully by returning 0.
 	 *
+	 * Example:
+	 * 			Calling getChild() for a node with path "/foo/bar" using name="file.txt",
+	 * 			would produce a new node with "/foo/bar/file.txt" as path.
+	 * 
+	 * @note This function will append a separator char (\ or /) to the end of the
+	 * path if needed.
+	 * 
 	 * @note Handling calls on non-dir nodes gracefully makes it possible to
 	 * switch to a lazy type detection scheme in the future.
+	 * 
+	 * @param name String containing the name of the child to create a new node.
 	 */
-	virtual AbstractFilesystemNode *child(const String &name) const = 0;
+	virtual AbstractFilesystemNode *getChild(const String &name) const = 0;
 
+	/**
+	 * The parent node of this directory.
+	 * The parent of the root is the root itself.
+	 */
+	virtual AbstractFilesystemNode *getParent() const = 0;
 
+public:
 	/**
-	 * Returns a special node representing the FS root. The starting point for
-	 * any file system browsing.
-	 * On Unix, this will be simply the node for / (the root directory).
-	 * On Windows, it will be a special node which "contains" all drives (C:, D:, E:).
+	 * Destructor.
 	 */
-	static AbstractFilesystemNode *getRoot();
+	virtual ~AbstractFilesystemNode() {}
+	
+	/*
+	 * Indicates whether the object referred by this path exists in the filesystem or not.
+	 */
+	virtual bool exists() const = 0;
 
 	/**
-	 * Returns a node representing the "current directory". If your system does
-	 * not support this concept, you can either try to emulate it or
-	 * simply return some "sensible" default directory node, e.g. the same
-	 * value as getRoot() returns.
+	 * Return a list of child nodes of this directory node. If called on a node
+	 * that does not represent a directory, false is returned.
+	 * 
+	 * @param list List to put the contents of the directory in.
+	 * @param mode Mode to use while listing the directory.
+	 * @param hidden Whether to include hidden files or not in the results.
+	 * 
+	 * @return true if succesful, false otherwise (e.g. when the directory does not exist).
 	 */
-	static AbstractFilesystemNode *getCurrentDirectory();
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const = 0;
 
-
 	/**
-	 * Construct a node based on a path; the path is in the same format as it
-	 * would be for calls to fopen().
-	 *
-	 * Furthermore getNodeForPath(oldNode.path()) should create a new node
-	 * identical to oldNode. Hence, we can use the "path" value for persistent
-	 * storage e.g. in the config file.
-	 *
-	 * @todo: This is of course a place where non-portable code easily will sneak
-	 *        in, because the format of the path used here is not well-defined.
-	 *        So we really should reconsider this API and try to come up with
-	 *        something which is more portable but still flexible enough for our
-	 *        purposes.
+	 * Returns a human readable path string.
+	 * 
+	 * @note By default, this method returns the value of getName().
 	 */
-	static AbstractFilesystemNode *getNodeForPath(const String &path);
-
-
-public:
-	virtual ~AbstractFilesystemNode() {}
-
-	virtual String name() const = 0;
+	virtual String getDisplayName() const { return getName(); }
 	
-	// By default, we use the actual file name as 'display name'.
-	virtual String displayName() const { return name(); }
-
-	virtual bool isValid() const = 0;
-
+	/**
+	 * Returns the last component of the path pointed by this FilesystemNode.
+	 * 
+	 * Examples (POSIX):
+	 * 			/foo/bar.txt would return /bar.txt
+	 * 			/foo/bar/    would return /bar/
+	 *  
+	 * @note This method is very architecture dependent, please check the concrete implementation for more information.
+	 */
+	virtual String getName() const = 0;
+	
+	/**
+	 * Returns the 'path' of the current node, usable in fopen().
+	 */
+	virtual String getPath() const = 0;
+	
+	/**
+	 * Indicates whether this path refers to a directory or not.
+	 */
 	virtual bool isDirectory() const = 0;
 	
 	/**
-	 * Return the 'path' of the current node, usable in fopen(). See also
-	 * the static getNodeForPath() method.
+	 * Indicates whether the object referred by this path can be read from or not.
+	 * 
+	 * If the path refers to a directory, readability implies being able to read 
+	 * and list the directory entries.
+	 * 
+	 * If the path refers to a file, readability implies being able to read the 
+	 * contents of the file.
+	 * 
+	 * @return bool true if the object can be read, false otherwise.
 	 */
-	virtual String path() const = 0;
-	virtual bool listDir(AbstractFSList &list, ListMode mode) const = 0;
+	virtual bool isReadable() const = 0;
+	
+	/**
+	 * Indicates whether the object referred by this path can be written to or not.
+	 * 
+	 * If the path refers to a directory, writability implies being able to modify
+	 * the directory entry (i.e. rename the directory, remove it or write files inside of it).
+	 * 
+	 * If the path refers to a file, writability implies being able to write data
+	 * to the file.
+	 * 
+	 * @return bool true if the object can be written to, false otherwise.
+	 */
+	virtual bool isWritable() const = 0;
 
-
 	/* TODO:
-	bool exists();
-
-	bool isDirectory();
 	bool isFile();
-
-	bool isReadable();
-	bool isWriteable();
 	*/
 };
 
-
-#endif
+#endif //BACKENDS_ABSTRACT_FS_H

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.cpp (from rev 29510, scummvm/trunk/backends/fs/amigaos4/amigaos4-fs-factory.cpp)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,40 @@
+/* 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/fs/amigaos4/amigaos4-fs-factory.h"
+#include "backends/fs/amigaos4/amigaos4-fs.cpp"
+
+DECLARE_SINGLETON(AmigaOSFilesystemFactory);
+
+AbstractFilesystemNode *AmigaOSFilesystemFactory::makeRootFileNode() const {
+	return new AmigaOSFilesystemNode();
+}
+
+AbstractFilesystemNode *AmigaOSFilesystemFactory::makeCurrentDirectoryFileNode() const {
+	return new AmigaOSFilesystemNode();
+}
+
+AbstractFilesystemNode *AmigaOSFilesystemFactory::makeFileNodePath(const String &path) const {
+	return new AmigaOSFilesystemNode(path);
+}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.h (from rev 29510, scummvm/trunk/backends/fs/amigaos4/amigaos4-fs-factory.h)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.h	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs-factory.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,51 @@
+/* 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$
+ */
+
+#ifndef AMIGAOS_FILESYSTEM_FACTORY_H
+#define AMIGAOS_FILESYSTEM_FACTORY_H
+
+#include "common/singleton.h"
+#include "backends/fs/abstract-fs-factory.h"
+
+/**
+ * Creates AmigaOSFilesystemNode objects.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemFactory.
+ */
+class AmigaOSFilesystemFactory : public AbstractFilesystemFactory, public Common::Singleton<AmigaOSFilesystemFactory> {	
+public:
+	typedef Common::String String;
+		
+	virtual AbstractFilesystemNode *makeRootFileNode() const;
+	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	
+protected:
+	AmigaOSFilesystemFactory() {};
+		
+private:
+	friend class Common::Singleton<SingletonBaseType>;
+};
+
+#endif /*AMIGAOS_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs.cpp
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs.cpp	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/amigaos4/amigaos4-fs.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -35,59 +35,107 @@
 #include <strings.h>
 #endif
 
-#include <common/stdafx.h>
-
 #include "common/util.h"
-
 #include "engines/engine.h"
 #include "backends/fs/abstract-fs.h"
 
 #define ENTER() /* debug(6, "Enter") */
 #define LEAVE() /* debug(6, "Leave") */
 
-
 const uint32 kExAllBufferSize = 40960; // TODO: is this okay for sure?
 
+/**
+ * Implementation of the ScummVM file system API.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
+ */
 class AmigaOSFilesystemNode : public AbstractFilesystemNode {
-	protected:
-		BPTR _pFileLock;
-		String _sDisplayName;
-		bool _bIsDirectory;
-		bool _bIsValid;
-		String _sPath;
+protected:
+	BPTR _pFileLock;
+	String _sDisplayName;
+	String _sPath;
+	bool _bIsDirectory;
+	bool _bIsValid;
+	
+	/**
+	 * Obtain the FileInfoBlock protection value for this FilesystemNode,
+	 * as defined in the <proto/dos.h> header.
+	 * 
+	 * @return -1 if there were errors, 0 or a positive integer otherwise.
+	 */
+	virtual int getFibProtection() const;
 
-	public:
-		AmigaOSFilesystemNode();
-		AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayName = 0);
-		AmigaOSFilesystemNode(const String &p);
+public:
+	/**
+	 * Creates a AmigaOSFilesystemNode with the root node as path.
+	 */
+	AmigaOSFilesystemNode();
+	
+	/**
+	 * Creates a AmigaOSFilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 */
+	AmigaOSFilesystemNode(const String &p);
+	
+	/**
+	 * FIXME: document this constructor.
+	 */
+	AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayName = 0);
 
-	    // Note: Copy constructor is needed because it duplicates the file lock
-		AmigaOSFilesystemNode(const AmigaOSFilesystemNode &node);
-		
-		virtual ~AmigaOSFilesystemNode();
+    /**
+     * Copy constructor.
+     * 
+     * @note Needed because it duplicates the file lock
+     */
+	AmigaOSFilesystemNode(const AmigaOSFilesystemNode &node);
+	
+	/**
+	 * Destructor.
+	 */
+	virtual ~AmigaOSFilesystemNode();
 
-		virtual String displayName() const { return _sDisplayName; };
-		virtual String name() const { return _sDisplayName; };
-		virtual bool isValid() const { return _bIsValid; };
-		virtual bool isDirectory() const { return _bIsDirectory; };
-		virtual String path() const { return _sPath; };
-
-		virtual bool listDir(AbstractFSList &list, ListMode mode) const;
-		virtual AbstractFSList listVolumes() const;
-		virtual AbstractFilesystemNode *parent() const;
-		virtual AbstractFilesystemNode *child(const String &n) const;
+	virtual bool exists() const;
+	virtual String getDisplayName() const { return _sDisplayName; };
+	virtual String getName() const { return _sDisplayName; };
+	virtual String getPath() const { return _sPath; };
+	virtual bool isDirectory() const { return _bIsDirectory; };
+	virtual bool isReadable() const;
+	virtual bool isWritable() const;
+	
+	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
+	virtual AbstractFilesystemNode *getParent() const;
+	
+	/**
+	 * Creates a list with all the volumes present in the root node.
+	 */
+	virtual AbstractFSList listVolumes() const;
 };
 
-AbstractFilesystemNode *AbstractFilesystemNode::getCurrentDirectory() {
-	return AbstractFilesystemNode::getRoot();
-}
+/**
+ * Returns the last component of a given path.
+ * 
+ * @param str String containing the path.
+ * @return Pointer to the first char of the last component inside str.
+ */
+const char *lastPathComponent(const Common::String &str) {
+	int offset = str.size();
+		
+	if (offset <= 0) {
+		debug(6, "Bad offset");
+		return 0;
+	}
+	
+	const char *p = str.c_str();
 
-AbstractFilesystemNode *AbstractFilesystemNode::getRoot() {
-	return new AmigaOSFilesystemNode();
-}
+	while (offset > 0 && (p[offset-1] == '/' || p[offset-1] == ':'))
+		offset--;
 
-AbstractFilesystemNode *AbstractFilesystemNode::getNodeForPath(const String	&path) {
-	return new AmigaOSFilesystemNode(path);
+	while (offset > 0 && (p[offset-1] != '/' && p[offset-1] != ':'))
+		offset--;
+
+	return p + offset;
 }
 
 AmigaOSFilesystemNode::AmigaOSFilesystemNode() {
@@ -100,7 +148,6 @@
 	LEAVE();
 }
 
-
 AmigaOSFilesystemNode::AmigaOSFilesystemNode(const String &p) {
 	ENTER();
 
@@ -114,19 +161,7 @@
 	}
 
 	_sPath = p;
-
-	// Extract last	component from path
-	const char *str = p.c_str();
-
-	while (offset > 0 && (str[offset-1] == '/' || str[offset-1] == ':'))
-		offset--;
-
-	while (offset > 0 && (str[offset-1] != '/' && str[offset-1] != ':')) {
-		len++;
-		offset--;
-	}
-
-	_sDisplayName = String(str + offset, len);
+	_sDisplayName = lastPathComponent(_sPath);
 	_pFileLock = 0;
 	_bIsDirectory = false;
 
@@ -150,7 +185,6 @@
 				const char c = _sPath.lastChar();
 				if (c != '/' && c != ':')
 					_sPath += '/';
-
 			}
 			else {
 				//_bIsDirectory = false;
@@ -170,7 +204,7 @@
 	int bufSize = MAXPATHLEN;
 	_pFileLock = 0;
 
-	while (1) {
+	while (true) {
 		char *n = new char[bufSize];
 		if (IDOS->NameFromLock(pLock, (STRPTR)n, bufSize) != DOSFALSE) {
 			_sPath = n;
@@ -186,6 +220,7 @@
 			delete [] n;
 			return;
 		}
+		
 		bufSize *= 2;
 		delete [] n;
 	}
@@ -238,9 +273,63 @@
 	LEAVE();
 }
 
-bool AmigaOSFilesystemNode::listDir(AbstractFSList &myList, ListMode mode) const {
+bool AmigaOSFilesystemNode::exists() const {
 	ENTER();
+	if(_sPath.empty())
+		return false;
+	
+	bool nodeExists = false;
+	
+	struct FileInfoBlock *fib = (struct FileInfoBlock *)IDOS->AllocDosObject(DOS_FIB, NULL);
+	if (!fib) {
+		debug(6, "FileInfoBlock is NULL");
+		LEAVE();
+		return false;
+	}
+	
+	BPTR pLock = IDOS->Lock((STRPTR)_sPath.c_str(), SHARED_LOCK);
+	if (pLock) {
+		if (IDOS->Examine(pLock, fib) != DOSFALSE)
+			nodeExists = true;
+		IDOS->UnLock(pLock);
+	}
+	
+	IDOS->FreeDosObject(DOS_FIB, fib);
+	LEAVE();
+	return nodeExists;
+}
 
+AbstractFilesystemNode *AmigaOSFilesystemNode::getChild(const String &n) const {
+	ENTER();
+	if (!_bIsDirectory) {
+		debug(6, "Not a directory");
+		return 0;
+	}
+
+	String newPath(_sPath);
+
+	if (_sPath.lastChar() != '/')
+		newPath += '/';
+
+	newPath += n;
+	BPTR lock = IDOS->Lock(newPath.c_str(), SHARED_LOCK);
+
+	if (!lock) {
+		debug(6, "Bad path");
+		return 0;
+	}
+
+	IDOS->UnLock(lock);
+
+	LEAVE();
+	return new AmigaOSFilesystemNode(newPath);
+}
+
+bool AmigaOSFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool hidden) const {
+	ENTER();
+
+	//TODO: honor the hidden flag
+
 	if (!_bIsValid) {
 		debug(6, "Invalid node");
 		LEAVE();
@@ -289,7 +378,12 @@
 						if (lock) {
 							AmigaOSFilesystemNode *entry = new AmigaOSFilesystemNode(lock, (char *)ead->ed_Name);
 							if (entry) {
-								if (entry->isValid())
+								//FIXME: since the isValid() function is no longer part of the AbstractFilesystemNode
+								//       specification, the following call had to be changed:
+								//       	if (entry->isValid())
+								//		 Please verify that the logic of the code remains coherent. Also, remember
+								//		 that the isReadable() and isWritable() methods are available.
+								if (entry->exists())
 								    myList.push_back(entry);
 								else
 									delete entry;
@@ -308,12 +402,37 @@
 	}
 
 	LEAVE();
+	
 	return true;
 }
 
-AbstractFilesystemNode *AmigaOSFilesystemNode::parent() const {
+int AmigaOSFilesystemNode::getFibProtection() const {
 	ENTER();
+	
+	int fibProt = -1;
+	struct FileInfoBlock *fib = (struct FileInfoBlock *)IDOS->AllocDosObject(DOS_FIB, NULL);
+	if (!fib) {
+		debug(6, "FileInfoBlock is NULL");
+		LEAVE();
+		return fibProt;
+	}
+	
+	BPTR pLock = IDOS->Lock((STRPTR)_sPath.c_str(), SHARED_LOCK);
+	if (pLock) {
+		if (IDOS->Examine(pLock, fib) != DOSFALSE) {
+			fibProt = fib->fib_Protection;
+		}
+		IDOS->UnLock(pLock);
+	}
+	
+	IDOS->FreeDosObject(DOS_FIB, fib);
+	LEAVE();
+	return fibProt;
+}
 
+AbstractFilesystemNode *AmigaOSFilesystemNode::getParent() const {
+	ENTER();
+
 	if (!_bIsDirectory) {
 		debug(6, "Not a directory");
 		LEAVE();
@@ -337,33 +456,40 @@
 		node = new AmigaOSFilesystemNode();
 
 	LEAVE();
+	
 	return node;
 }
 
-AbstractFilesystemNode *AmigaOSFilesystemNode::child(const String &n) const {
+bool AmigaOSFilesystemNode::isReadable() const {
+	bool readable = false;
+	int fibProt = getFibProtection();
 	
-	if (!_bIsDirectory) {
-		debug(6, "Not a directory");
-		return 0;
+	if (fibProt >= 0) {
+		/* The fib_Protection flag is low-active or inverted, thus the negation.
+		 * 
+		 * For more information, consult the compiler/include/dos/dos.h
+		 * file from the AROS source (http://aros.sourceforge.net/).
+		 */
+		readable = !(fibProt & FIBF_READ);
 	}
+	
+	return readable;
+}
 
-	String newPath(_sPath);
-
-	if (_sPath.lastChar() != '/')
-		newPath += '/';
-
-	newPath += n;
-
-	BPTR lock = IDOS->Lock(newPath.c_str(), SHARED_LOCK);
-
-	if (!lock) {
-		debug(6, "Bad path");
-		return 0;
+bool AmigaOSFilesystemNode::isWritable() const {
+	bool writable = false;
+	int fibProt = getFibProtection();
+	
+	if (fibProt >= 0) {
+		/* The fib_Protection flag is low-active or inverted, thus the negation.
+		 * 
+		 * For more information, consult the compiler/include/dos/dos.h
+		 * file from the AROS source (http://aros.sourceforge.net/).
+		 */
+		writable = !(fibProt & FIBF_WRITE);
 	}
-
-	IDOS->UnLock(lock);
-
-	return new AmigaOSFilesystemNode(newPath);
+	
+	return writable;
 }
 
 AbstractFSList AmigaOSFilesystemNode::listVolumes()	const {
@@ -414,7 +540,12 @@
 
 				AmigaOSFilesystemNode *entry = new AmigaOSFilesystemNode(volumeLock, buffer);
 				if (entry) {
-					if (entry->isValid())
+					//FIXME: since the isValid() function is no longer part of the AbstractFilesystemNode
+					//       specification, the following call had to be changed:
+					//       	if (entry->isValid())
+					//		 Please verify that the logic of the code remains coherent. Also, remember
+					//		 that the isReadable() and isWritable() methods are available.
+					if(entry->exists())
 						myList.push_back(entry);
 					else
 						delete entry;
@@ -431,7 +562,8 @@
 	IDOS->UnLockDosList(kLockFlags);
 
 	LEAVE();
+	
 	return myList;
 }
 
-#endif
+#endif //defined(__amigaos4__)

Modified: scummvm/branches/gsoc2007-mixer/backends/fs/dc/dc-fs.cpp
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/dc/dc-fs.cpp	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/dc/dc-fs.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -24,42 +24,65 @@
 
 #if defined(__DC__)
 
-#include "common/stdafx.h"
-
 #include "backends/fs/abstract-fs.h"
 
 #include <ronin/cdfs.h>
 #include <stdio.h>
 #include <unistd.h>
 
-/*
- * Implementation of the ScummVM file system API based on ronin.
+/**
+ * Implementation of the ScummVM file system API based on Ronin.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
  */
-
 class RoninCDFilesystemNode : public AbstractFilesystemNode {
 protected:
 	String _displayName;
+	String _path;
 	bool _isDirectory;
 	bool _isValid;
-	String _path;
 
 public:
+	/**
+	 * Creates a RoninCDFilesystemNode with the root node as path.
+	 */
 	RoninCDFilesystemNode();
+	
+	/**
+	 * Creates a RoninCDFilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 * @param verify true if the isValid and isDirectory flags should be verified during the construction.
+	 */
 	RoninCDFilesystemNode(const String &path, bool verify);
 
-	virtual String displayName() const { return _displayName; }
-	virtual String name() const { return _displayName; }
-	virtual bool isValid() const { return _isValid; }
+	virtual bool exists() const { return true; }		//FIXME: this is just a stub
+	virtual String getDisplayName() const { return _displayName; }
+	virtual String getName() const { return _displayName; }
+	virtual String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
-	virtual String path() const { return _path; }
+	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
+	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
 
-	virtual bool listDir(AbstractFSList &list, ListMode mode) const;
-	virtual AbstractFilesystemNode *parent() const;
-	virtual AbstractFilesystemNode *child(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
+	virtual AbstractFilesystemNode *getParent() const;
 };
 
-
-static const char *lastPathComponent(const Common::String &str) {
+/**
+ * Returns the last component of a given path.
+ * 
+ * Examples:
+ * 			/foo/bar.txt would return /bar.txt
+ * 			/foo/bar/    would return /bar/
+ *  
+ * @param str String containing the path.
+ * @return Pointer to the first char of the last component inside str.
+ */
+const char *lastPathComponent(const Common::String &str) {
+	if(str.empty())
+		return "";
+	
 	const char *start = str.c_str();
 	const char *cur = start + str.size() - 2;
 
@@ -70,22 +93,6 @@
 	return cur + 1;
 }
 
-
-AbstractFilesystemNode *AbstractFilesystemNode::getCurrentDirectory() {
-	// Since there is no way to _set_ the current directory,
-	// it will always be /...
-
-	return getRoot();
-}
-
-AbstractFilesystemNode *AbstractFilesystemNode::getRoot() {
-	return new RoninCDFilesystemNode();
-}
-
-AbstractFilesystemNode *AbstractFilesystemNode::getNodeForPath(const String &path) {
-	return new RoninCDFilesystemNode(path, true);
-}
-
 RoninCDFilesystemNode::RoninCDFilesystemNode() {
 	// The root dir.
 	_path = "/";
@@ -105,11 +112,11 @@
 	if (verify) {
 		int fd;
 
-		if((fd = open(_path.c_str(), O_RDONLY)) >= 0) {
+		if ((fd = open(_path.c_str(), O_RDONLY)) >= 0) {
 			close(fd);
 			_isDirectory = false;
 		}
-		else if((fd = open(_path.c_str(), O_DIR|O_RDONLY)) >= 0) {
+		else if ((fd = open(_path.c_str(), O_DIR|O_RDONLY)) >= 0) {
 			close(fd);
 		}
 		else {
@@ -118,10 +125,25 @@
 	}
 }
 
-bool RoninCDFilesystemNode::listDir(AbstractFSList &myList, ListMode mode) const {
+AbstractFilesystemNode *RoninCDFilesystemNode::getChild(const String &n) const {
+	// FIXME: Pretty lame implementation! We do no error checking to speak
+	// of, do not check if this is a special node, etc.
 	assert(_isDirectory);
+	
+	String newPath(_path);
+	if (_path.lastChar() != '/')
+		newPath += '/';
+	newPath += n;
+
+	return new RoninCDFilesystemNode(newPath, true);
+}
+
+bool RoninCDFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool hidden) const {
+	assert(_isDirectory);
+	
+	//TODO: honor the hidden flag
+	
 	DIR *dirp = opendir(_path.c_str());
-
 	struct dirent *dp;
 
 	if (dirp == NULL)
@@ -150,35 +172,22 @@
 
 		if (entry._isDirectory)
 			entry._path += "/";
+			
 		myList.push_back(new RoninCDFilesystemNode(entry));
 	}
 	closedir(dirp);
+	
 	return true;
 }
 
-AbstractFilesystemNode *RoninCDFilesystemNode::parent() const {
+AbstractFilesystemNode *RoninCDFilesystemNode::getParent() const {
 	if (_path == "/")
 		return 0;
 
 	const char *start = _path.c_str();
 	const char *end = lastPathComponent(_path);
 
-	RoninCDFilesystemNode *p = new RoninCDFilesystemNode(String(start, end - start), false);
-
-	return p;
+	return new RoninCDFilesystemNode(String(start, end - start), false);
 }
 
-AbstractFilesystemNode *RoninCDFilesystemNode::child(const String &n) const {
-	// FIXME: Pretty lame implementation! We do no error checking to speak
-	// of, do not check if this is a special node, etc.
-	assert(_isDirectory);
-	String newPath(_path);
-	if (_path.lastChar() != '/')
-		newPath += '/';
-	newPath += n;
-	RoninCDFilesystemNode *p = new RoninCDFilesystemNode(newPath, true);
-
-	return p;
-}
-
 #endif // defined(__DC__)

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.cpp (from rev 29510, scummvm/trunk/backends/fs/dc/ronincd-fs-factory.cpp)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,40 @@
+/* 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/fs/dc/ronincd-fs-factory.h"
+#include "backends/fs/dc/dc-fs.cpp"
+
+DECLARE_SINGLETON(RoninCDFilesystemFactory);
+
+AbstractFilesystemNode *RoninCDFilesystemFactory::makeRootFileNode() const {
+	return new RoninCDFilesystemNode();
+}
+
+AbstractFilesystemNode *RoninCDFilesystemFactory::makeCurrentDirectoryFileNode() const {
+	return new RoninCDFilesystemNode();
+}
+
+AbstractFilesystemNode *RoninCDFilesystemFactory::makeFileNodePath(const String &path) const {
+	return new RoninCDFilesystemNode(path, true);
+}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.h (from rev 29510, scummvm/trunk/backends/fs/dc/ronincd-fs-factory.h)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.h	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/dc/ronincd-fs-factory.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,51 @@
+/* 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$
+ */
+
+#ifndef RONINCD_FILESYSTEM_FACTORY_H
+#define RONINCD_FILESYSTEM_FACTORY_H
+
+#include "common/singleton.h"
+#include "backends/fs/abstract-fs-factory.h"
+
+/**
+ * Creates RoninCDFilesystemNode objects.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemFactory.
+ */
+class RoninCDFilesystemFactory : public AbstractFilesystemFactory, public Common::Singleton<RoninCDFilesystemFactory> {	
+public:
+	typedef Common::String String;
+		
+	virtual AbstractFilesystemNode *makeRootFileNode() const;
+	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	
+protected:
+	RoninCDFilesystemFactory() {};
+		
+private:
+	friend class Common::Singleton<SingletonBaseType>;
+};
+
+#endif /*RONINCD_FILESYSTEM_FACTORY_H*/

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.cpp (from rev 29510, scummvm/trunk/backends/fs/ds/ds-fs-factory.cpp)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,53 @@
+/* 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/fs/ds/ds-fs-factory.h"
+#include "backends/fs/ds/ds-fs.h"
+#include "dsmain.h" //for the isGBAMPAvailable() function
+
+DECLARE_SINGLETON(DSFilesystemFactory);
+
+AbstractFilesystemNode *DSFilesystemFactory::makeRootFileNode() const {
+	if (DS::isGBAMPAvailable()) {
+		return new DS::GBAMPFileSystemNode();
+	} else {
+		return new DS::DSFileSystemNode();
+	}
+}
+
+AbstractFilesystemNode *DSFilesystemFactory::makeCurrentDirectoryFileNode() const {
+	if (DS::isGBAMPAvailable()) {
+		return new DS::GBAMPFileSystemNode();
+	} else {
+		return new DS::DSFileSystemNode();
+	}
+}
+
+AbstractFilesystemNode *DSFilesystemFactory::makeFileNodePath(const String &path) const {
+	if (DS::isGBAMPAvailable()) {
+		return new DS::GBAMPFileSystemNode(path);
+	} else {
+		return new DS::DSFileSystemNode(path);
+	}
+}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.h (from rev 29510, scummvm/trunk/backends/fs/ds/ds-fs-factory.h)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.h	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs-factory.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,51 @@
+/* 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$
+ */
+
+#ifndef DS_FILESYSTEM_FACTORY_H
+#define DS_FILESYSTEM_FACTORY_H
+
+#include "common/singleton.h"
+#include "backends/fs/abstract-fs-factory.h"
+
+/**
+ * Creates DSFilesystemNode objects.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemFactory.
+ */
+class DSFilesystemFactory : public AbstractFilesystemFactory, public Common::Singleton<DSFilesystemFactory> {	
+public:
+	typedef Common::String String;
+		
+	virtual AbstractFilesystemNode *makeRootFileNode() const;
+	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	
+protected:
+	DSFilesystemFactory() {};
+		
+private:
+	friend class Common::Singleton<SingletonBaseType>;
+};
+
+#endif /*DS_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.cpp
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.cpp	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -20,10 +20,7 @@
  *
  */
 
-
-#include "stdafx.h"
 #include "str.h"
-#include "fs.h"
 #include "common/util.h"
 //#include <NDS/ARM9/console.h> //basic print funcionality
 #include "ds-fs.h"
@@ -31,13 +28,11 @@
 #include "gba_nds_fat.h"
 
 
+
 namespace DS {
 
-
-
-
 //////////////////////////////////////////////////////////////
-// DSFileSystemNode - Flash ROM file system using Zip files
+// DSFileSystemNode - Flash ROM file system using Zip files //
 //////////////////////////////////////////////////////////////
 
 ZipFile*   	DSFileSystemNode::_zipFile = NULL;
@@ -66,7 +61,6 @@
 	char disp[128];
 	char* pathStr = (char *) path.c_str();
 	
-	
 	int lastSlash = 3;
 	for (int r = 0; r < (int) strlen(pathStr) - 1; r++) {
 		if (path[r] == '\\') {
@@ -81,13 +75,10 @@
 //	_isValid = true;
 //	_isDirectory = false;
 
-
-
 	if (!strncmp(pathStr, "ds:/", 4)) {
 		pathStr += 4;
 	}
 	
-
 	if (*pathStr == '\0') {
 		_isValid = true;
 		_isDirectory = true;
@@ -130,35 +121,10 @@
 }
 
 DSFileSystemNode::DSFileSystemNode(const DSFileSystemNode* node) {
-
+	//TODO: not implemented?
 }
 
-AbstractFilesystemNode* DSFileSystemNode::parent() const {
-//	consolePrintf("parent\n");
-	DSFileSystemNode *p;
-
-	if (_path != "ds:/") {  
-		char *path = (char *) _path.c_str();
-		int lastSlash = 4;
-		
-		for (int r = 4; r < (int) strlen((char *) path); r++) {
-			if (path[r] == '\\') {
-				lastSlash = r;
-			}
-		}
-
-		p = new DSFileSystemNode(String(path, lastSlash));
-		((DSFileSystemNode *) (p))->_isDirectory = true;
-	} else {
-		p = new DSFileSystemNode();
-	}
-
-	return p;
-
-}
-
-
-AbstractFilesystemNode *DSFileSystemNode::child(const Common::String& n) const {
+AbstractFilesystemNode *DSFileSystemNode::getChild(const Common::String& n) const {
 	if (_path.lastChar() == '\\') {
 		return new DSFileSystemNode(_path + n);
 	} else {
@@ -168,14 +134,12 @@
 	return NULL;
 }
 
-
-bool DSFileSystemNode::listDir(AbstractFSList &dirList, ListMode mode) const {
+bool DSFileSystemNode::getChildren(AbstractFSList &dirList, ListMode mode, bool hidden) const {
 //	consolePrintf("Listdir\n");
-
-	
 //	consolePrintf("Directory\n");
 
-	
+	//TODO: honor the hidden flag
+
 	char temp[128];
 	strcpy(temp, _path.c_str());
 
@@ -190,14 +154,13 @@
 /*			// This is the root dir, so add the RAM folder
 			DSFileSystemNode* dsfsn = new DSFileSystemNode("ds:/ram");
 			dsfsn->_isDirectory = true;
-			dirList->push_back(wrap(dsfsn));*/
+			dirList->push_back(wrap(dsfsn));
+*/
 		}
 	} else {
 		_zipFile->changeDirectory(temp);
 	}
 	
-	
-	
 	if (_zipFile->restartFile()) {
 		do {
 			char n[128];	
@@ -218,13 +181,33 @@
 	return true;
 }
 
+AbstractFilesystemNode* DSFileSystemNode::getParent() const {
+//	consolePrintf("parent\n");
+	DSFileSystemNode *p;
 
+	if (_path != "ds:/") {  
+		char *path = (char *) _path.c_str();
+		int lastSlash = 4;
+		
+		for (int r = 4; r < (int) strlen((char *) path); r++) {
+			if (path[r] == '\\') {
+				lastSlash = r;
+			}
+		}
 
+		p = new DSFileSystemNode(String(path, lastSlash));
+		((DSFileSystemNode *) (p))->_isDirectory = true;
+	} else {
+		p = new DSFileSystemNode();
+	}
 
-/////////////////////////////////////////////////////////////////////////
-// GBAMPFileSystemNode - File system using GBA Movie Player and CF card
-/////////////////////////////////////////////////////////////////////////
+	return p;
+}
 
+//////////////////////////////////////////////////////////////////////////
+// GBAMPFileSystemNode - File system using GBA Movie Player and CF card //
+//////////////////////////////////////////////////////////////////////////
+
 GBAMPFileSystemNode::GBAMPFileSystemNode() {
 	_displayName = "mp:/";
 	_path = "mp:/";
@@ -290,35 +273,10 @@
 
 
 GBAMPFileSystemNode::GBAMPFileSystemNode(const GBAMPFileSystemNode* node) {
-
+	//TODO: not implemented?
 }
 
-
-AbstractFilesystemNode* GBAMPFileSystemNode::parent() const {
-//	consolePrintf("parent\n");
-	GBAMPFileSystemNode *p;
-
-	if (_path != "mp:/") {  
-		char *path = (char *) _path.c_str();
-		int lastSlash = 4;
-		
-		for (int r = 4; r < (int) strlen((char *) path); r++) {
-			if (path[r] == '/') {
-				lastSlash = r;
-			}
-		}
-
-		p = new GBAMPFileSystemNode(String(path, lastSlash));
-		p->_isDirectory = true;
-	} else {
-		p = new GBAMPFileSystemNode();
-	}
-
-	return p;
-
-}
-
-AbstractFilesystemNode *GBAMPFileSystemNode::child(const Common::String& n) const {
+AbstractFilesystemNode *GBAMPFileSystemNode::getChild(const Common::String& n) const {
 	if (_path.lastChar() == '\\') {
 		return new DSFileSystemNode(_path + n);
 	} else {
@@ -328,12 +286,14 @@
 	return NULL;
 }
 
-bool GBAMPFileSystemNode::listDir(AbstractFSList& dirList, ListMode mode) const {
+bool GBAMPFileSystemNode::getChildren(AbstractFSList& dirList, ListMode mode, bool hidden) const {
 //	consolePrintf("Listdir\n");
 
+	//TODO: honor the hidden flag
+
 	enum { TYPE_NO_MORE = 0, TYPE_FILE = 1, TYPE_DIR = 2 };
 	
-	char temp[128], fname[128], *path, *pathTemp;
+	char temp[128], fname[256], *path, *pathTemp;
 	strcpy(temp, _path.c_str());
 	
 	path = temp + 3;
@@ -346,17 +306,18 @@
 		pathTemp++;
 	}
 
-
-//	consolePrintf("This dir: %s\n", path);
+	consolePrintf("This dir: %s\n", path);
 	FAT_chdir(path);
 	
-	int entryType = FAT_FindFirstFile(fname);
+	int entryType = FAT_FindFirstFileLFN(fname);
 	
 	while (entryType != TYPE_NO_MORE) {
 	
 		if ( ((entryType == TYPE_DIR) && ((mode == FilesystemNode::kListDirectoriesOnly) || (mode == FilesystemNode::kListAll)))
 		||   ((entryType == TYPE_FILE) && ((mode == FilesystemNode::kListFilesOnly) || (mode == FilesystemNode::kListAll))) ) {
 			GBAMPFileSystemNode* dsfsn;
+
+			consolePrintf("Fname: %s\n", fname);
 			
 			if (strcmp(fname, ".") && strcmp(fname, "..")) {
 				
@@ -369,13 +330,11 @@
 //				dsfsn->_isDirectory = entryType == DIR;
 				dirList.push_back((dsfsn));
 			}
-		
-		
 		} else {
 //			consolePrintf("Skipping %s\n", fname);
 		}
 		
-		entryType = FAT_FindNextFile(fname);
+		entryType = FAT_FindNextFileLFN(fname);
 	}
 	
 //	consolePrintf("No more");
@@ -385,7 +344,29 @@
 	return true;
 }
 
+AbstractFilesystemNode* GBAMPFileSystemNode::getParent() const {
+//	consolePrintf("parent\n");
+	GBAMPFileSystemNode *p;
 
+	if (_path != "mp:/") {  
+		char *path = (char *) _path.c_str();
+		int lastSlash = 4;
+		
+		for (int r = 4; r < (int) strlen((char *) path); r++) {
+			if (path[r] == '/') {
+				lastSlash = r;
+			}
+		}
+
+		p = new GBAMPFileSystemNode(String(path, lastSlash));
+		p->_isDirectory = true;
+	} else {
+		p = new GBAMPFileSystemNode();
+	}
+
+	return p;
+}
+
 // Stdio replacements
 #define MAX_FILE_HANDLES 32
 
@@ -393,9 +374,6 @@
 DS::fileHandle handle[MAX_FILE_HANDLES];
 
 FILE* std_fopen(const char* name, const char* mode) {
-
-	
-
 	if (!inited) {
 		for (int r = 0; r < MAX_FILE_HANDLES; r++) {
 			handle[r].used = false;
@@ -403,17 +381,14 @@
 		inited = true;
 		currentDir[0] = '\0';
 	}
-
-
 	
-	
 	char* realName = (char *) name;
 	
 	// Remove file system prefix
 	if ((name[0] == 'd') && (name[1] == 's') && (name[2] == ':') && (name[3] == '/')) {
 		realName += 4;
 	}
-
+	
 	if ((name[0] == 'm') && (name[1] == 'p') && (name[2] == ':') && (name[3] == '/')) {
 		realName += 4;
 	}
@@ -421,7 +396,6 @@
 //	consolePrintf("Open file:");
 //	consolePrintf("'%s', [%s]", realName, mode);
 
-
 	if (DS::isGBAMPAvailable()) {
 		FAT_chdir("/");
 		
@@ -443,10 +417,9 @@
 		
 		return (FILE *) result;
 	}
-
 	
 	// Fail to open file for writing.  It's in ROM!
-
+	
 	// Allocate a file handle
 	int r = 0;
 	while (handle[r].used) r++;
@@ -459,7 +432,6 @@
 		handle[r].sramFile = (DSSaveFile *) DSSaveFileManager::instance()->openSavefile(realName, false);
 	}
 
-	
 	if (handle[r].sramFile) {
 		handle[r].used = true;
 		handle[r].pos = 0;
@@ -513,6 +485,7 @@
 		return NULL;
 	}
 }
+
 void std_fclose(FILE* handle) {
 
 	if (DS::isGBAMPAvailable()) {
@@ -528,14 +501,9 @@
 }
 
 size_t std_fread(const void* ptr, size_t size, size_t numItems, FILE* handle) {
-
 //	consolePrintf("fread %d,%d %d ", size, numItems, ptr);
-	
-	
 
 	if (DS::isGBAMPAvailable()) {
-	
-		
 		int bytes = FAT_fread((void *) ptr, size, numItems, (FAT_FILE *) handle);
 		if (!std_feof(handle)) {
 			return numItems;
@@ -560,27 +528,24 @@
 		
 		}
 		
-		return item;*/
-
-
+		return item;
+*/
 		int items = 0;
 	
 		//for (int r = 0; r < numItems; r++) {
 			if (!std_feof(handle)) {
-				
-
-				
 /*				for (int t = 0; t < size; t++) {
 					if (feof(handle)) eof = true;
 					*(((char *) (ptr)) + r * size + t) = getc(handle);
 				}*/
 				int left = size * numItems;
 				int bytesRead = -1;
+				
 				while ((left > 0) && (!FAT_feof((FAT_FILE *) handle))) {
 					int amount = left > 8192? 8192: left;
 //					do {
 						bytesRead = FAT_fread((void *) ptr, 1, amount, (FAT_FILE *) handle);
-	/*					if (bytesRead == 0) {
+/*						if (bytesRead == 0) {
 							consolePrintf("Pos:%d items:%d num:%d amount:%d read:%d\n", ftell(handle), items, numItems, amount, bytesRead);
 							left++;
 							
@@ -592,27 +557,24 @@
 							fread(ptr, 1024, 1, handle);
 							swiWaitForVBlank();
 							//while (true);
-						}*/
-					//} while (bytesRead == 0);
+						}
+
+					} while (bytesRead == 0);
+*/
 					left -= bytesRead;
 					ptr = ((char *) (ptr)) + bytesRead;				
 				}
 				
 				items = numItems - (left / size);
-				
-			
-		
-				
+
 //				FAT_fread((void *) ptr, size, 1, ((int) (handle)) - 1);
-	//			ptr = ((char *) (ptr)) + size;
-				
+//				ptr = ((char *) (ptr)) + size;	
 			}
-		//}
+//		}
 		
 //		consolePrintf("...done %d \n", items)
 
 		return items;
-		
 	}
 	
 	if (handle->sramFile) {
@@ -630,7 +592,6 @@
 		return bytes / size;
 	}
 
-
 	if (handle->pos + size * numItems > handle->size) {
 		numItems = (handle->size - handle->pos) / size;
 		if (numItems < 0) numItems = 0;
@@ -639,10 +600,8 @@
 //	consolePrintf("read %d  ", size * numItems);
 
 	memcpy((void *) ptr, handle->data + handle->pos, size * numItems);
-
 	handle->pos += size * numItems;
 
-	
 	return numItems;
 }
 
@@ -657,7 +616,6 @@
 	//consolePrintf("fwrite size=%d\n", size * numItems);
 
 	if (DS::isGBAMPAvailable()) {
-
 		FAT_fwrite(((char *) (ptr)), size, numItems, (FAT_FILE *) handle);
 		return numItems;
 		
@@ -675,7 +633,6 @@
 		return numItems;
 	}
 
-
 	if (handle->sramFile) {
 		handle->sramFile->write(ptr, size);
 		return size;
@@ -704,6 +661,7 @@
 }
 
 void std_fflush(FILE* handle) {
+	//FIXME: not implemented?
 //	consolePrintf("fflush ");
 }
 
@@ -711,7 +669,6 @@
 //	consolePrintf("fgets file=%d ", file);
 	
 	if (DS::isGBAMPAvailable()) {
-		
 		char* s = str;
 		while ((*s++ = std_getc(file)) >= 32) {
 //			consolePrintf("%d ", *s);
@@ -723,7 +680,6 @@
 		return str;
 	}
 	
-	
 	if (file->sramFile) {
 		file->pos--;
 		int p = -1;
@@ -743,7 +699,6 @@
 }
 
 long int std_ftell(FILE* handle) {
-
 	if (DS::isGBAMPAvailable()) {
 		return FAT_ftell((FAT_FILE *) handle);
 	}
@@ -758,39 +713,30 @@
 		return FAT_fseek((FAT_FILE *) handle, offset, whence);
 	}
 
-
 	switch (whence) {
-		case SEEK_CUR: {
+		case SEEK_CUR:
 			handle->pos += offset;
 			break;
-		}
-		
-		case SEEK_SET: {
+		case SEEK_SET:
 			handle->pos = offset;
 			break;
-		}
-		
-		case SEEK_END: {
+		case SEEK_END:
 			handle->pos = handle->size + offset;
 			break;
-		}
-		
-		default: {
+		default:
 			handle->pos = offset;
 			break;
-		}
-		
 	}
 	
 	return 0;
 }
 
 void std_clearerr(FILE* handle) {
+	//FIXME: not implemented?
 //	consolePrintf("clearerr ");
 }
 
 int std_getc(FILE* handle) {
-
 	if (DS::isGBAMPAvailable()) {
 		char c;
 		FAT_fread(&c, 1, 1, (FAT_FILE *) handle);
@@ -843,7 +789,7 @@
 		if (*(currentDir + strlen(currentDir) - 1) == '/') {
 			*(currentDir + strlen(currentDir) - 1) = '\0';
 		}
-		consolePrintf("CWD: %s\n", currentDir);
+//		consolePrintf("CWD: %s\n", currentDir);
 	}	
 }
 
@@ -853,23 +799,24 @@
 
 } // namespace DS
 
-// These functions are added to AbstractFileSystemNode and are therefore outside
-// the DS namespace.
+/**
+ * Returns the last component of a given path.
+ * 
+ * Examples:
+ * 			/foo/bar.txt would return /bar.txt
+ * 			/foo/bar/    would return /bar/
+ *  
+ * @param str String containing the path.
+ * @return Pointer to the first char of the last component inside str.
+ */
+const char *lastPathComponent(const Common::String &str) {
+	const char *start = str.c_str();
+	const char *cur = start + str.size() - 2;
 
-AbstractFilesystemNode *AbstractFilesystemNode::getCurrentDirectory() {
-//	consolePrintf("New node");
-        
-	if (DS::isGBAMPAvailable()) {
-		return new DS::GBAMPFileSystemNode();
-	} else {
-		return new DS::DSFileSystemNode();
+	while (cur >= start && *cur != '/' && *cur != '\\') {
+		--cur;
 	}
-}
 
-AbstractFilesystemNode* AbstractFilesystemNode::getNodeForPath(const String& path) {
-	if (DS::isGBAMPAvailable()) {
-		return new DS::GBAMPFileSystemNode(path);
-	} else {
-		return new DS::DSFileSystemNode(path);
-	}
+	return cur + 1;
 }
+

Modified: scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.h
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.h	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/ds/ds-fs.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -23,8 +23,6 @@
 #ifndef _DS_FS_H
 #define _DS_FS_H
 
-
-
 //#include <NDS/ARM9/console.h>
 #include "fs.h"
 #include "zipreader.h"
@@ -32,81 +30,135 @@
 #include "scummconsole.h"
 #include "gba_nds_fat.h"
 #include "backends/fs/abstract-fs.h"
-//#include "backends/fs/fs.h"
 
 namespace DS {
 
 /**
+ * Implementation of the ScummVM file system API.
  * This class is used when a Flash cart is in use.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
  */
 class DSFileSystemNode : public AbstractFilesystemNode {
 protected:
+	typedef class Common::String String;
+
 	static ZipFile* _zipFile;
 
-	typedef class Common::String String;
-
 	String _displayName;
+	String _path;
 	bool _isDirectory;
 	bool _isValid;
-	String _path;
 	int _refCountVal;
 	
 public:
+	/**
+	 * Creates a DSFilesystemNode with the root node as path.
+	 */
 	DSFileSystemNode();
+	
+	/**
+	 * Creates a DSFilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 */
 	DSFileSystemNode(const String &path);
-	DSFileSystemNode(const DSFileSystemNode *node);
+	
+	/**
+	 * Creates a DSFilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 * @param path true if path is a directory, false otherwise.
+	 */
 	DSFileSystemNode(const String& path, bool isDir);
 	
-	virtual String displayName() const {  return _displayName; }
-	virtual String name() const {  return _displayName; }
-	virtual bool isValid() const { return _isValid; }
+	/**
+	 * Copy constructor.
+	 */
+	DSFileSystemNode(const DSFileSystemNode *node);
+	
+	virtual bool exists() const { return true; }		//FIXME: this is just a stub
+	virtual String getDisplayName() const {  return _displayName; }
+	virtual String getName() const {  return _displayName; }
+	virtual String getPath() const { return _path; }
 	virtual bool isDirectory() const { return _isDirectory; }
-	virtual String path() const { return _path; }
+	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
+	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
 	
-	virtual bool listDir(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly) const;
-	virtual AbstractFilesystemNode *parent() const;
+	/**
+	 * Returns a copy of this node.
+	 */
 	virtual AbstractFilesystemNode *clone() const { return new DSFileSystemNode(this); }
-	virtual AbstractFilesystemNode *child(const Common::String& name) const;
+	virtual AbstractFilesystemNode *getChild(const Common::String& name) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly, bool hidden = false) const;
+	virtual AbstractFilesystemNode *getParent() const;
+	
+	/**
+	 * Returns the zip file this node points to.
+	 * TODO: check this documentation.
+	 */
 	static ZipFile* getZip() { return _zipFile; }
 };
 
-
-/**
+ /**
+ * Implementation of the ScummVM file system API.
  * This class is used when the GBAMP (GBA Movie Player) is used with a CompactFlash card.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
  */
 class GBAMPFileSystemNode : public AbstractFilesystemNode {
 protected:
 	typedef class Common::String String;
 
 	String _displayName;
+	String _path;
 	bool _isDirectory;
 	bool _isValid;
-	String _path;
-	
 	int _refCountVal;
 	
 public:
+	/**
+	 * Creates a GBAMPFilesystemNode with the root node as path.
+	 */
 	GBAMPFileSystemNode();
+	
+	/**
+	 * Creates a GBAMPFilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 */
 	GBAMPFileSystemNode(const String &path);
+	
+	/**
+	 * Creates a DSFilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 * @param path true if path is a directory, false otherwise.
+	 */
 	GBAMPFileSystemNode(const String &path, bool isDirectory);
+	
+	/**
+	 * Copy constructor.
+	 */
 	GBAMPFileSystemNode(const GBAMPFileSystemNode *node);
 
-	virtual String displayName() const {  return _displayName; }
-	virtual String name() const {  return _displayName; }
+	virtual bool exists() const { return true; }		//FIXME: this is just a stub
+	virtual String getDisplayName() const {  return _displayName; }
+	virtual String getName() const {  return _displayName; }
+	virtual String getPath() const { return _path; }
+	virtual bool isDirectory() const { return _isDirectory; }
+	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
+	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
 	
-	virtual bool isValid() const { return _isValid; }
-	virtual bool isDirectory() const { return _isDirectory; }
-	virtual String path() const { return _path; }
-	virtual bool listDir(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly) const;
-	virtual AbstractFilesystemNode *parent() const;
+	/**
+	 * Returns a copy of this node.
+	 */
 	virtual AbstractFilesystemNode *clone() const { return new GBAMPFileSystemNode(this); }
-	virtual AbstractFilesystemNode *child(const Common::String& name) const;
-	
+	virtual AbstractFilesystemNode *getChild(const Common::String& name) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode = FilesystemNode::kListDirectoriesOnly, bool hidden = false) const;
+	virtual AbstractFilesystemNode *getParent() const;
 };
 
-
-
-
 struct fileHandle {
 	int pos;
 	bool used;
@@ -116,7 +168,6 @@
 	DSSaveFile* sramFile;
 };
 
-
 #undef stderr
 #undef stdout
 #undef stdin
@@ -140,6 +191,6 @@
 void 	std_cwd(char* dir);
 void 	std_fflush(FILE* handle);
 
-}
+} //namespace DS
 
-#endif
+#endif //_DS_FS_H

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.cpp (from rev 29510, scummvm/trunk/backends/fs/gp32/gp32-fs-factory.cpp)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,40 @@
+/* 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/fs/gp32/gp32-fs-factory.h"
+#include "backends/fs/gp32/gp32-fs.cpp"
+
+DECLARE_SINGLETON(GP32FilesystemFactory);
+
+AbstractFilesystemNode *GP32FilesystemFactory::makeRootFileNode() const {
+	return new GP32FilesystemNode();
+}
+
+AbstractFilesystemNode *GP32FilesystemFactory::makeCurrentDirectoryFileNode() const {
+	return new GP32FilesystemNode();
+}
+
+AbstractFilesystemNode *GP32FilesystemFactory::makeFileNodePath(const String &path) const {
+	return new GP32FilesystemNode(path);
+}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.h (from rev 29510, scummvm/trunk/backends/fs/gp32/gp32-fs-factory.h)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.h	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs-factory.h	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,51 @@
+/* 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$
+ */
+
+#ifndef GP32_FILESYSTEM_FACTORY_H
+#define GP32_FILESYSTEM_FACTORY_H
+
+#include "common/singleton.h"
+#include "backends/fs/abstract-fs-factory.h"
+
+/**
+ * Creates GP32FilesystemNode objects.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemFactory.
+ */
+class GP32FilesystemFactory : public AbstractFilesystemFactory, public Common::Singleton<GP32FilesystemFactory> {	
+public:
+	typedef Common::String String;
+		
+	virtual AbstractFilesystemNode *makeRootFileNode() const;
+	virtual AbstractFilesystemNode *makeCurrentDirectoryFileNode() const;
+	virtual AbstractFilesystemNode *makeFileNodePath(const String &path) const;
+	
+protected:
+	GP32FilesystemFactory() {};
+		
+private:
+	friend class Common::Singleton<SingletonBaseType>;
+};
+
+#endif /*GP32_FILESYSTEM_FACTORY_H*/

Modified: scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs.cpp
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs.cpp	2007-11-17 11:03:18 UTC (rev 29537)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/gp32/gp32-fs.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -23,39 +23,83 @@
  *
  */
 
-#include "stdafx.h"
-
 #include "backends/fs/abstract-fs.h"
 
+#define MAX_PATH_SIZE 256
+
+/**
+ * Implementation of the ScummVM file system API.
+ * 
+ * Parts of this class are documented in the base interface class, AbstractFilesystemNode.
+ */
 class GP32FilesystemNode : public AbstractFilesystemNode {
 protected:
 	String _displayName;
+	String _path;
 	bool _isDirectory;
 	bool _isRoot;
-	String _path;
 
 public:
+	/**
+	 * Creates a GP32FilesystemNode with the root node as path.
+	 */
 	GP32FilesystemNode();
+	
+	/**
+	 * Creates a GP32FilesystemNode for a given path.
+	 * 
+	 * @param path String with the path the new node should point to.
+	 */
 	GP32FilesystemNode(const String &path);
 
-	virtual String displayName() const { return _displayName; }
-	virtual String name() const { return _displayName; }
+	virtual bool exists() const { return true; }		//FIXME: this is just a stub
+	virtual String getDisplayName() const { return _displayName; }
+	virtual String getName() const { return _displayName; }
+	virtual String getPath() const { return _path; }
+	virtual bool isDirectory() const { return _isDirectory; }
 	// FIXME: isValid should return false if this Node can't be used!
-	// client code can rely on the return value.
-	virtual bool isValid() const { return true; }
-	virtual bool isDirectory() const { return _isDirectory; }
-	virtual String path() const { return _path; }
+	// so client code can rely on the return value.
+	virtual bool isReadable() const { return true; }	//FIXME: this is just a stub
+	virtual bool isWritable() const { return true; }	//FIXME: this is just a stub
 
-	virtual bool listDir(AbstractFSList &list, ListMode mode) const;
-	virtual AbstractFilesystemNode *parent() const;
-	virtual AbstractFilesystemNode *child(const String &n) const;
+	virtual AbstractFilesystemNode *getChild(const String &n) const;
+	virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
+	virtual AbstractFilesystemNode *getParent() const;
 };
 
-#define MAX_PATH_SIZE 256
-
 const char gpRootPath[] = "gp:\\";
 //char gpCurrentPath[MAX_PATH_SIZE] = "gp:\\";		// must end with '\'
 
+/**
+ * Returns the last component of a given path.
+ * 
+ * Examples:
+ * 			gp:\foo\bar.txt would return "\bar.txt"
+ * 			gp:\foo\bar\    would return "\bar\"
+ *  
+ * @param str Path to obtain the last component from.
+ * @return Pointer to the first char of the last component inside str.
+ */
+const char *lastPathComponent(const Common::String &str) {
+	if(str.empty())
+		return "";
+	
+	const char *start = str.c_str();
+	const char *cur = start + str.size() - 2;
+
+	while (cur >= start && *cur != '\\') {
+		--cur;
+	}
+
+	return cur + 1;
+}
+
+/**
+ * FIXME: document this function.
+ * 
+ * @param path
+ * @param convPath
+ */
 int gpMakePath(const char *path, char *convPath) {
 	// copy root or current directory
 	const char *p;
@@ -106,18 +150,6 @@
 	return 0;
 }
 
-AbstractFilesystemNode *AbstractFilesystemNode::getCurrentDirectory() {
-	return AbstractFilesystemNode::getRoot();
-}
-
-AbstractFilesystemNode *AbstractFilesystemNode::getRoot() {
-	return new GP32FilesystemNode();
-}
-
-AbstractFilesystemNode *AbstractFilesystemNode::getNodeForPath(const String &path) {
-	return new GP32FilesystemNode(path);
-}
-
 GP32FilesystemNode::GP32FilesystemNode() {
 	_isDirectory = true;
 	_isRoot = true;
@@ -132,8 +164,8 @@
 	gpMakePath(path.c_str(), convPath);
 
 	_path = convPath;
-
 	pos = convPath;
+	
 	while (*pos)
 		if (*pos++ == '\\')
 			dsplName = pos;
@@ -150,14 +182,27 @@
 	_isDirectory = true;
 }
 
-bool GP32FilesystemNode::listDir(AbstractFSList &myList, ListMode mode) const {
+AbstractFilesystemNode *GP32FilesystemNode::getChild(const String &n) const {
+	// FIXME: Pretty lame implementation! We do no error checking to speak
+	// of, do not check if this is a special node, etc.
 	assert(_isDirectory);
+	
+	String newPath(_path);
+	if (_path.lastChar() != '\\')
+		newPath += '\\';
+	newPath += n;
 
+	return new GP32FilesystemNode(newPath);
+}
+
+bool GP32FilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool hidden) const {
+	assert(_isDirectory);
+
+	//TODO: honor the hidden flag
+
 	GPDIRENTRY dirEntry;
 	GPFILEATTR attr;
-
 	GP32FilesystemNode entry;
-
 	uint32 read;
 
 	if (mode == FilesystemNode::kListAll)
@@ -168,9 +213,11 @@
 	int startIdx = 0; // current file
 	String listDir(_path);
 	//listDir += "/";
+	
 	while (GpDirEnumList(listDir.c_str(), startIdx++, 1, &dirEntry, &read)  == SM_OK) {
-		if (dirEntry.name[0] == '.')
+da			if (dirEntry.name[0] == '.')
 			continue;
+			
 		entry._displayName = dirEntry.name;
 		entry._path = _path;
 		entry._path += dirEntry.name;
@@ -194,19 +241,8 @@
 	return true;
 }
 
-static const char *lastPathComponent(const Common::String &str) {
-	const char *start = str.c_str();
-	const char *cur = start + str.size() - 2;
-
-	while (cur >= start && *cur != '\\') {
-		--cur;
-	}
-
-	return cur + 1;
-}
-
-AbstractFilesystemNode *GP32FilesystemNode::parent() const {
-	if(_isRoot)
+AbstractFilesystemNode *GP32FilesystemNode::getParent() const {
+	if (_isRoot)
 		return 0;
 
 	const char *start = _path.c_str();
@@ -218,16 +254,3 @@
 
 	return p;
 }
-
-AbstractFilesystemNode *GP32FilesystemNode::child(const String &n) const {
-	// FIXME: Pretty lame implementation! We do no error checking to speak
-	// of, do not check if this is a special node, etc.
-	assert(_isDirectory);
-	String newPath(_path);
-	if (_path.lastChar() != '\\')
-		newPath += '\\';
-	newPath += n;
-	GP32FilesystemNode *p = new GP32FilesystemNode(newPath);
-
-	return p;
-}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs-factory.cpp (from rev 29510, scummvm/trunk/backends/fs/morphos/abox-fs-factory.cpp)
===================================================================
--- scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs-factory.cpp	                        (rev 0)
+++ scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs-factory.cpp	2007-11-17 12:11:50 UTC (rev 29538)
@@ -0,0 +1,40 @@
+/* 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/fs/morphos/abox-fs-factory.h"
+#include "backends/fs/morphos/abox-fs.cpp"
+
+DECLARE_SINGLETON(ABoxFilesystemFactory);
+
+AbstractFilesystemNode *ABoxFilesystemFactory::makeRootFileNode() const {
+	return new ABoxFilesystemNode();
+}
+
+AbstractFilesystemNode *ABoxFilesystemFactory::makeCurrentDirectoryFileNode() const {
+	return new ABoxFilesystemNode();
+}
+
+AbstractFilesystemNode *ABoxFilesystemFactory::makeFileNodePath(const String &path) const {
+	return new ABoxFilesystemNode(path);
+}

Copied: scummvm/branches/gsoc2007-mixer/backends/fs/morphos/abox-fs-factory.h (from rev 29510, scummvm/trunk/backends/fs/morphos/abox-fs-factory.h)

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