Only in ../orig/SDL-1.2.7: SDL.spec Only in ./: alebm-sdl-ezx.diff diff -r -u ../orig/SDL-1.2.7/configure ./configure --- ../orig/SDL-1.2.7/configure 2004-02-22 18:32:33.000000000 -0300 +++ ./configure 2006-02-07 21:40:16.000000000 -0200 @@ -26977,7 +26977,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu OLD_CXX="$CXXFLAGS" - CXXFLAGS="-DQT_QWS_EBX -fno-rtti -fno-exceptions -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG" + CXXFLAGS="-DQT_QWS_EBX -fno-rtti -fno-exceptions -DQT_QWS_CUSTOM -DQWS -fomit-frame-pointer -mcpu=iwmmxt -mtune=iwmmxt -I${EZX_BASE}/include/qt -I${EZX_BASE}/include/ezx -DNO_DEBUG" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -26985,7 +26985,7 @@ cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include +#include int main () @@ -27031,17 +27031,17 @@ echo "$as_me:$LINENO: result: $video_qtopia" >&5 echo "${ECHO_T}$video_qtopia" >&6 if test x$video_qtopia = xyes; then - CFLAGS="$CFLAGS -DENABLE_QTOPIA -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -I${QPEDIR}/include -I${QTDIR}/include/ -DNO_DEBUG -fno-rtti -fno-exceptions" - SDL_LIBS="$SDL_LIBS -L${QPEDIR}/lib -L${QTDIR}/lib/ -lqpe -lqte" + CFLAGS="$CFLAGS -DENABLE_QTOPIA -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fomit-frame-pointer -mcpu=iwmmxt -mtune=iwmmxt -I${EZX_BASE}/include/qt -I${EZX_BASE}/include/ezx -DNO_DEBUG -fno-rtti -fno-exceptions" + SDL_LIBS="$SDL_LIBS -L${EZX_BASE}/lib -L${EZX_BASE}/lib/ezx/lib -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r" SDL_CFLAGS="$SDL_CFLAGS -DQWS" VIDEO_SUBDIRS="$VIDEO_SUBDIRS qtopia" VIDEO_DRIVERS="$VIDEO_DRIVERS qtopia/libvideo_qtopia.la" else { { echo "$as_me:$LINENO: error: -*** Failed to find Qtopia includes. Make sure that the QTDIR and QPEDIR +*** Failed to find Qtopia includes. Make sure that the EZX_BASE *** environment variables are set correctly." >&5 echo "$as_me: error: -*** Failed to find Qtopia includes. Make sure that the QTDIR and QPEDIR +*** Failed to find Qtopia includes. Make sure that the EZX_BASE *** environment variables are set correctly." >&2;} { (exit 1); exit 1; }; } fi diff -r -u ../orig/SDL-1.2.7/src/audio/SDL_audio.c ./src/audio/SDL_audio.c --- ../orig/SDL-1.2.7/src/audio/SDL_audio.c 2004-02-18 14:21:58.000000000 -0300 +++ ./src/audio/SDL_audio.c 2006-01-26 04:39:21.000000000 -0200 @@ -117,6 +117,59 @@ static int audio_configured = 0; #endif +// EZX Specific :/ move somewhere else? +#define CONFIG_ARCH_EZX_E680 +#define MAKE_FTR_HAPTICS +typedef unsigned int u32; +typedef unsigned char u8; +#include +#include +#include +#include +#include "soundcard.h" +#include "ezx-common.h" +#include "ezx-audio.h" + +void Start_EZX_Sound(); + +void Start_EZX_Sound() +{ + int fd, status, hstest, location = LOUDERSPEAKER_OUT; + + fd = open("/dev/mixer", O_RDONLY); + if(fd == -1) + { + perror("EZX, Can't open mixer device"); + return; + } + + status = ioctl(fd, SOUND_MIXER_READ_HEADSET_STATUS, &hstest); + if(status == -1) + perror("EZX, error input setting"); + switch(hstest) + { + case MONO_HEADSET: + location = HEADJACK_OUT; // Warning!! untested + break; + case STEREO_HEADSET: + location = HEADSET_OUT; + break; + } + status = ioctl(fd, SOUND_MIXER_WRITE_OUTSRC, &location); + if(status == -1) + perror("EZX, error setting output"); + + if(hstest) + { + location = HEADSET_INPUT; + status = ioctl(fd, SOUND_MIXER_WRITE_RECSRC, &location); + if(status == -1) + perror("EZX, error setting input"); + } + + close(fd); +} + /* The general mixing thread function */ int SDL_RunAudio(void *audiop) { @@ -510,7 +563,9 @@ #endif - return(0); + Start_EZX_Sound(); + + return(0); } SDL_audiostatus SDL_GetAudioStatus(void) Only in ./src/audio: ezx-a780.h Only in ./src/audio: ezx-audio.h Only in ./src/audio: ezx-common.h Only in ./src/audio: ezx-e680.h Only in ./src/audio: soundcard.h Only in ./src/audio: ssp_pcap.h diff -r -u ../orig/SDL-1.2.7/src/main/macosx/Makefile ./src/main/macosx/Makefile --- ../orig/SDL-1.2.7/src/main/macosx/Makefile 2004-02-22 18:33:22.000000000 -0300 +++ ./src/main/macosx/Makefile 2006-02-07 22:27:57.000000000 -0200 @@ -27,7 +27,7 @@ pkgincludedir = $(includedir)/SDL top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = /usr/bin/ginstall -c +INSTALL = /usr/bin/install -c install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -40,8 +40,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = i686-pc-linux-gnu -host_triplet = i686-pc-linux-gnu -target_triplet = i686-pc-linux-gnu +host_triplet = xscale-unknown-linux-gnu +target_triplet = xscale-unknown-linux-gnu subdir = src/main/macosx DIST_COMMON = $(srcdir)/Info.plist.in $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in @@ -64,30 +64,30 @@ AMDEP_FALSE = # AMDEP_TRUE = AMTAR = tar -AR = ar +AR = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-ar ARCH = linux -ARTSCCONFIG = /usr/local/bin/artsc-config -AS = as +ARTSCCONFIG = +AS = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-as ASFLAGS = -AUDIO_DRIVERS = disk/libaudio_disk.la dsp/libaudio_dsp.la dma/libaudio_dma.la arts/libaudio_arts.la esd/libaudio_esd.la -AUDIO_SUBDIRS = disk dsp dma arts esd +AUDIO_DRIVERS = dsp/libaudio_dsp.la dma/libaudio_dma.la +AUDIO_SUBDIRS = dsp dma AUTOCONF = autoconf AUTOHEADER = autoheader AUTOMAKE = automake-1.8 AWK = gawk -CC = gcc -CCAS = gcc +CC = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-gcc +CCAS = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-gcc CCASFLAGS = -CCDEPMODE = depmode=gcc +CCDEPMODE = depmode=gcc3 CDROM_DRIVERS = linux/libcdrom_linux.la CDROM_SUBDIRS = linux -CFLAGS = -g -O2 -Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN -DUSE_ASMBLIT -I./hermes -I$(top_srcdir)/src/hermes -DOSS_SUPPORT -DARTSC_SUPPORT -DARTSC_DYNAMIC=$(arts_lib) -I/usr/local/include/artsc -DESD_SUPPORT -DESD_DYNAMIC=$(esd_lib) -I/usr/X11R6/include -DENABLE_X11 -DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA -DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE -DXFREE86_XV -DHAVE_XINERAMA -Isrc/video -DENABLE_DGA -DENABLE_FBCON -DHAVE_OPENGL -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION -I$(top_srcdir)/include -I$(top_srcdir)/include/SDL -I$(top_srcdir)/src -I$(top_srcdir)/src/main/linux -I$(top_srcdir)/src/audio -I$(top_srcdir)/src/video -I$(top_srcdir)/src/video/XFree86/extensions -I$(top_srcdir)/src/events -I$(top_srcdir)/src/joystick -I$(top_srcdir)/src/cdrom -I$(top_srcdir)/src/thread -I$(top_srcdir)/src/timer -I$(top_srcdir)/src/endian -I$(top_srcdir)/src/file -I$(top_builddir)/src/thread -CPP = gcc -E +CFLAGS = -g -O2 -fexpensive-optimizations -Wall -DUSE_DLOPEN -DOSS_SUPPORT -DENABLE_QTOPIA -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fomit-frame-pointer -mcpu=iwmmxt -mtune=iwmmxt -I/home/zc/celular/ezx/dev-ezx-0.2.0//include/qt -I/home/zc/celular/ezx/dev-ezx-0.2.0//include/ezx -DNO_DEBUG -fno-rtti -fno-exceptions -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DPTHREAD_NO_RECURSIVE_MUTEX -DHAVE_SIGACTION -I$(top_srcdir)/include -I$(top_srcdir)/include/SDL -I$(top_srcdir)/src -I$(top_srcdir)/src/main/linux -I$(top_srcdir)/src/audio -I$(top_srcdir)/src/video -I$(top_srcdir)/src/video/XFree86/extensions -I$(top_srcdir)/src/events -I$(top_srcdir)/src/joystick -I$(top_srcdir)/src/cdrom -I$(top_srcdir)/src/thread -I$(top_srcdir)/src/timer -I$(top_srcdir)/src/endian -I$(top_srcdir)/src/file -I$(top_builddir)/src/thread +CPP = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-gcc -E CPPFLAGS = -CXX = g++ -CXXCPP = g++ -E -CXXDEPMODE = depmode=gcc -CXXFLAGS = -g -O2 -Wall -DENABLE_DUMMYVIDEO -DDISKAUD_SUPPORT -DUSE_DLOPEN -DUSE_ASMBLIT -I./hermes -I$(top_srcdir)/src/hermes -DOSS_SUPPORT -DARTSC_SUPPORT -DARTSC_DYNAMIC=$(arts_lib) -I/usr/local/include/artsc -DESD_SUPPORT -DESD_DYNAMIC=$(esd_lib) -I/usr/X11R6/include -DENABLE_X11 -DXTHREADS -I./include -I./src/video -DXFREE86_VM -DXFREE86_VMGAMMA -DXFREE86_DGAMOUSE -DDEFAULT_DGAMOUSE -DXFREE86_XV -DHAVE_XINERAMA -Isrc/video -DENABLE_DGA -DENABLE_FBCON -DHAVE_OPENGL -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DHAVE_SIGACTION -I$(top_srcdir)/include -I$(top_srcdir)/include/SDL -I$(top_srcdir)/src -I$(top_srcdir)/src/main/linux -I$(top_srcdir)/src/audio -I$(top_srcdir)/src/video -I$(top_srcdir)/src/video/XFree86/extensions -I$(top_srcdir)/src/events -I$(top_srcdir)/src/joystick -I$(top_srcdir)/src/cdrom -I$(top_srcdir)/src/thread -I$(top_srcdir)/src/timer -I$(top_srcdir)/src/endian -I$(top_srcdir)/src/file -I$(top_builddir)/src/thread +CXX = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-g++ +CXXCPP = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g -O2 -fexpensive-optimizations -Wall -DUSE_DLOPEN -DOSS_SUPPORT -DENABLE_QTOPIA -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fomit-frame-pointer -mcpu=iwmmxt -mtune=iwmmxt -I/home/zc/celular/ezx/dev-ezx-0.2.0//include/qt -I/home/zc/celular/ezx/dev-ezx-0.2.0//include/ezx -DNO_DEBUG -fno-rtti -fno-exceptions -DUSE_INPUT_EVENTS -D_REENTRANT -DSDL_USE_PTHREADS -DPTHREAD_NO_RECURSIVE_MUTEX -DHAVE_SIGACTION -I$(top_srcdir)/include -I$(top_srcdir)/include/SDL -I$(top_srcdir)/src -I$(top_srcdir)/src/main/linux -I$(top_srcdir)/src/audio -I$(top_srcdir)/src/video -I$(top_srcdir)/src/video/XFree86/extensions -I$(top_srcdir)/src/events -I$(top_srcdir)/src/joystick -I$(top_srcdir)/src/cdrom -I$(top_srcdir)/src/thread -I$(top_srcdir)/src/timer -I$(top_srcdir)/src/endian -I$(top_srcdir)/src/file -I$(top_builddir)/src/thread CYGPATH_W = echo DEFS = -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"SDL\" -DVERSION=\"1.2.7\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 DEPDIR = .deps @@ -104,13 +104,13 @@ ENABLE_STATIC_FALSE = # ENABLE_STATIC_TRUE = ESD_CFLAGS = -ESD_CONFIG = /usr/bin/esd-config -ESD_LIBS = -L/usr/lib -lesd -laudiofile -lm +ESD_CONFIG = +ESD_LIBS = EXEEXT = -F77 = g77 -FFLAGS = -g -O2 -HAVE_NASM_FALSE = # -HAVE_NASM_TRUE = +F77 = +FFLAGS = +HAVE_NASM_FALSE = +HAVE_NASM_TRUE = # INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} @@ -128,8 +128,8 @@ LT_RELEASE = 1.2 LT_REVISION = 0 MAKEINFO = makeinfo -NASM = /usr/local/bin/nasm -NASMFLAGS = -f elf +NASM = +NASMFLAGS = OBJC = OBJCDEPMODE = OBJCFLAGS = @@ -144,25 +144,25 @@ PATH_SEPARATOR = : PKG_CONFIG = PTH_CONFIG = -RANLIB = ranlib +RANLIB = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-ranlib SDL_BINARY_AGE = 7 -SDL_CFLAGS = -D_REENTRANT -SDL_EXTRADIRS = audio video events joystick cdrom thread timer endian file cpuinfo hermes -SDL_EXTRALIBS = audio/libaudio.la video/libvideo.la events/libevents.la joystick/libjoystick.la cdrom/libcdrom.la thread/libthread.la timer/libtimer.la endian/libendian.la file/libfile.la cpuinfo/libcpuinfo.la hermes/libhermes.la +SDL_CFLAGS = -DQWS -D_REENTRANT -Dmain=SDL_main +SDL_EXTRADIRS = audio video events joystick cdrom thread timer endian file cpuinfo +SDL_EXTRALIBS = audio/libaudio.la video/libvideo.la events/libevents.la joystick/libjoystick.la cdrom/libcdrom.la thread/libthread.la timer/libtimer.la endian/libendian.la file/libfile.la cpuinfo/libcpuinfo.la SDL_INTERFACE_AGE = 0 -SDL_LIBS = -lSDL -lpthread +SDL_LIBS = -lSDLmain -lSDL -L/home/zc/celular/ezx/dev-ezx-0.2.0//lib -L/home/zc/celular/ezx/dev-ezx-0.2.0//lib/ezx/lib -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r -lpthread SDL_MAJOR_VERSION = 1 SDL_MICRO_VERSION = 7 SDL_MINOR_VERSION = 2 SDL_RLD_FLAGS = -Wl,-rpath,${exec_prefix}/lib -SDL_STATIC_LIBS = -lSDL -lpthread +SDL_STATIC_LIBS = -lSDLmain -lSDL -L/home/zc/celular/ezx/dev-ezx-0.2.0//lib -L/home/zc/celular/ezx/dev-ezx-0.2.0//lib/ezx/lib -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r -lpthread SDL_VERSION = 1.2.7 SET_MAKE = SHARED_SYSTEM_LIBS = SHELL = /bin/sh -STATIC_SYSTEM_LIBS = -lm -ldl -L/usr/X11R6/lib -lX11 -lXext -STRIP = strip -SYSTEM_LIBS = -lm -ldl -L/usr/X11R6/lib -lX11 -lXext +STATIC_SYSTEM_LIBS = -lm -ldl +STRIP = /mnt/hda1/cross-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/arm-linux-strip +SYSTEM_LIBS = -lm -ldl TARGET_AIX_FALSE = TARGET_AIX_TRUE = # TARGET_BEOS_FALSE = @@ -187,8 +187,8 @@ TARGET_OPENBSD_TRUE = # TARGET_QNX_FALSE = TARGET_QNX_TRUE = # -TARGET_QTOPIA_FALSE = -TARGET_QTOPIA_TRUE = # +TARGET_QTOPIA_FALSE = # +TARGET_QTOPIA_TRUE = TARGET_SOLARIS_FALSE = TARGET_SOLARIS_TRUE = # TARGET_WIN32_FALSE = @@ -198,31 +198,31 @@ USE_DIRECTX_FALSE = USE_DIRECTX_TRUE = # VERSION = 1.2.7 -VIDEO_DRIVERS = dummy/libvideo_null.la x11/libvideo_x11.la XFree86/Xxf86vm/libXFree86_Xxf86vm.la XFree86/Xxf86dga/libXFree86_Xxf86dga.la XFree86/Xv/libXFree86_Xv.la XFree86/Xinerama/libXFree86_Xinerama.la dga/libvideo_dga.la fbcon/libvideo_fbcon.la -VIDEO_SUBDIRS = dummy x11 XFree86/Xxf86vm XFree86/Xxf86dga XFree86/Xv XFree86/Xinerama dga fbcon -X_CFLAGS = -I/usr/X11R6/include +VIDEO_DRIVERS = qtopia/libvideo_qtopia.la +VIDEO_SUBDIRS = qtopia +X_CFLAGS = X_EXTRA_LIBS = -X_LIBS = -L/usr/X11R6/lib -X_PRE_LIBS = -lSM -lICE -ac_ct_AR = ar +X_LIBS = +X_PRE_LIBS = +ac_ct_AR = ac_ct_AS = -ac_ct_CC = gcc -ac_ct_CXX = g++ +ac_ct_CC = +ac_ct_CXX = ac_ct_DLLTOOL = -ac_ct_F77 = g77 +ac_ct_F77 = ac_ct_OBJDUMP = -ac_ct_RANLIB = ranlib -ac_ct_STRIP = strip -am__fastdepCC_FALSE = -am__fastdepCC_TRUE = # -am__fastdepCXX_FALSE = -am__fastdepCXX_TRUE = # +ac_ct_RANLIB = +ac_ct_STRIP = +am__fastdepCC_FALSE = # +am__fastdepCC_TRUE = +am__fastdepCXX_FALSE = # +am__fastdepCXX_TRUE = am__fastdepOBJC_FALSE = am__fastdepOBJC_TRUE = # am__include = include am__leading_dot = . am__quote = -arts_lib = libartsc.so.0 +arts_lib = bindir = ${exec_prefix}/bin build = i686-pc-linux-gnu build_alias = @@ -230,16 +230,16 @@ build_os = linux-gnu build_vendor = pc datadir = ${prefix}/share -esd_lib = libesd.so.0 +esd_lib = exec_prefix = ${prefix} -host = i686-pc-linux-gnu -host_alias = -host_cpu = i686 +host = xscale-unknown-linux-gnu +host_alias = xscale-linux +host_cpu = xscale host_os = linux-gnu -host_vendor = pc +host_vendor = unknown includedir = ${prefix}/include infodir = ${prefix}/info -install_sh = /usr/src/SDL12/install-sh +install_sh = /home/zc/celular/ezx/dev-ezx-0.2.0/SDL-1.2.7/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localstatedir = ${prefix}/var @@ -251,11 +251,11 @@ sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com sysconfdir = ${prefix}/etc -target = i686-pc-linux-gnu +target = xscale-unknown-linux-gnu target_alias = -target_cpu = i686 +target_cpu = xscale target_os = linux-gnu -target_vendor = pc +target_vendor = unknown #hackhacknibdatadir = $(nibdatadir)/SDLMain.nib #hackhacknibdata_DATA = info.nib #nibdatadir = $(datadir)/sdl diff -r -u ../orig/SDL-1.2.7/src/main/qtopia/SDL_qtopia_main.cc ./src/main/qtopia/SDL_qtopia_main.cc --- ../orig/SDL-1.2.7/src/main/qtopia/SDL_qtopia_main.cc 2003-12-14 04:25:53.000000000 -0200 +++ ./src/main/qtopia/SDL_qtopia_main.cc 2006-01-16 16:16:22.000000000 -0200 @@ -7,16 +7,14 @@ #undef main #endif #ifdef QWS -#include #include -#include #include // Workaround for OPIE to remove taskbar icon. Also fixes // some issues in Qtopia where there are left-over qcop files in /tmp/. // I'm guessing this will also clean up the taskbar in the Sharp version // of Qtopia. -static inline void cleanupQCop() { +/*static inline void cleanupQCop() { QString appname(qApp->argv()[0]); int slash = appname.findRev("/"); if(slash != -1) { appname = appname.mid(slash+1); } @@ -25,8 +23,8 @@ cmd = "/tmp/qcop-msg-"+appname; unlink(cmd.latin1()); } - -static QPEApplication *app; +*/ +static QApplication *app; #endif extern int SDL_main(int argc, char *argv[]); @@ -36,10 +34,11 @@ #ifdef QWS // This initializes the Qtopia application. It needs to be done here // because it parses command line options. - app = new QPEApplication(argc, argv); + app = new QApplication(argc, argv); QWidget dummy; - app->showMainWidget(&dummy); - atexit(cleanupQCop); + app->setMainWidget(&dummy); + dummy.show(); + //atexit(cleanupQCop); #endif // Exit here because if return is used, the application // doesn't seem to quit correctly. diff -r -u ../orig/SDL-1.2.7/src/video/qtopia/SDL_QWin.cc ./src/video/qtopia/SDL_QWin.cc --- ../orig/SDL-1.2.7/src/video/qtopia/SDL_QWin.cc 2006-02-06 21:32:42.000000000 -0200 +++ ./src/video/qtopia/SDL_QWin.cc 2006-02-07 01:19:57.000000000 -0200 @@ -28,7 +28,6 @@ #include "SDL_QWin.h" #include -#include #include extern int fb_hwrot; @@ -47,6 +46,8 @@ { for (int i = 0; i < 5; i++) curAxis_[i] = 0; setBackgroundMode(NoBackground); + setFocusPolicy(QWidget::StrongFocus); + grabKeyboard(); } SDL_QWin::~SDL_QWin() { @@ -139,7 +140,7 @@ realPos.setX(realPos.x() - borderWidth); realPos.setY(realPos.y() - borderHeight); - fprintf(stderr, "setMousePos: realPos2(%d, %d)\n", realPos.x(), realPos.y()); + //fprintf(stderr, "setMousePos: realPos2(%d, %d)\n", realPos.x(), realPos.y()); switch (rotation_) { case 0: @@ -228,15 +229,6 @@ } static void -blitRotate1(Uint16 *dstBits, const QSize& dstSize, - const Uint16 *srcBits, const QSize& srcSize, - const QRect& srcBlitRect) -{ -// fprintf(stdout, "SDL_QT_ROTATION (1) is not implemented.\n"); - blitRotate3(dstBits, dstSize, srcBits, srcSize, srcBlitRect); -} - -static void blitRotate2(Uint16 *dstBits, const QSize& dstSize, const Uint16 *srcBits, const QSize& srcSize, QRect srcBlitRect) @@ -290,7 +282,7 @@ } } -#define BLIT_ROTATE_3_MOV32 +//#define BLIT_ROTATE_3_MOV32 static void blitRotate3(Uint16 *dstBits, const QSize& dstSize, @@ -410,6 +402,66 @@ } } +static void +blitRotate1(Uint16 *dstBits, const QSize& dstSize, + const Uint16 *srcBits, const QSize& srcSize, + const QRect& srcBlitRect) +{ + if (srcBlitRect.width() != dstSize.height() || + srcBlitRect.height() != dstSize.width()) { + // partial update + // I have not modified this 8( + const Uint16 *pSrc = srcBits + + (srcBlitRect.left() + srcBlitRect.top() * srcSize.width()); + + int dstBorderLeftRight = (dstSize.width() - srcSize.height()) >>1; + int dstBorderTopBottom = (dstSize.height() - srcSize.width()) >>1; + int dstStartOffsetX = dstBorderLeftRight; + int dstStartOffsetY = dstBorderTopBottom; + + int width = srcBlitRect.width(), height = srcBlitRect.height(), w; + int srcYAdd = srcSize.width() - srcBlitRect.width(); + int dstXAdd = dstSize.width(); + int dstYSub = (dstSize.width() * srcBlitRect.width()) + 1; + + Uint16 *pDst = dstBits + ( ( dstBorderTopBottom + srcSize.width() - srcBlitRect.left() - 1 ) * dstSize.width() ) + ( dstStartOffsetX + srcBlitRect.top() ); + + while (height--) { + w = width; + while (w--) { + *pDst = *pSrc++; + pDst -= dstXAdd; + } + pSrc += srcYAdd; + pDst += dstYSub; + } + // fprintf(stderr, "---- Blit end\n"); + } else { + // full update +#if !defined(BLIT_ROTATE_3_MOV32) + const Uint16 *src = srcBits; + Uint16 *dst = dstBits; + int w = srcBlitRect.width(); + int h = srcBlitRect.height(); + int i, dstSub = dstSize.width() * w + 1; + int dstAdd = dstSize.width(); + + dst += dstSub - dstAdd - 1; + while (h--) { + i = w; + while (i--) { + *dst = *src ++; + dst -= dstAdd; + } + dst += dstSub; + } +#else // BLIT_ROTATE_3_MOV32 + //todo +#endif // BLIT_ROTATE_3_MOV32 + + } +} + #endif // __i386__ void SDL_QWin::repaintRect(const QRect& rect) { diff -r -u ../orig/SDL-1.2.7/src/video/qtopia/SDL_sysevents.cc ./src/video/qtopia/SDL_sysevents.cc --- ../orig/SDL-1.2.7/src/video/qtopia/SDL_sysevents.cc 2004-02-18 14:22:08.000000000 -0300 +++ ./src/video/qtopia/SDL_sysevents.cc 2006-01-16 16:19:38.000000000 -0200 @@ -25,7 +25,7 @@ "@(#) $Id: SDL_sysevents.cc,v 1.2 2004/01/04 16:49:26 slouken Exp $"; #endif -#include +#include #include #include diff -r -u ../orig/SDL-1.2.7/src/video/qtopia/SDL_sysvideo.cc ./src/video/qtopia/SDL_sysvideo.cc --- ../orig/SDL-1.2.7/src/video/qtopia/SDL_sysvideo.cc 2006-02-06 21:31:44.000000000 -0200 +++ ./src/video/qtopia/SDL_sysvideo.cc 2006-02-07 21:24:09.000000000 -0200 @@ -43,8 +43,7 @@ #include #include -#include -#include +//#include #include #include #include @@ -106,6 +105,7 @@ MACHINE_SHARP_SLC760, MACHINE_SHARP_SLC860, MACHINE_SHARP_SL6000, + MACHINE_MOTOROLA_EZX, MACHINE_MAX } machine_t; @@ -119,6 +119,7 @@ { "Sharp", "SL-C760", 0 }, { "Sharp", "SL-C860", 0 }, { "Sharp", "SL-6000", 0 }, + { "Motorola", "EZX", 0 }, }; /* Name of the environment variable used to invert the screen rotation or not: @@ -341,7 +342,9 @@ /* Create the window / widget */ SDL_Win = new SDL_QWin(QSize(QT_HIDDEN_SIZE, QT_HIDDEN_SIZE)); - ((QPEApplication*)qApp)->showMainWidget(SDL_Win); + ((QApplication*)qApp)->setMainWidget(SDL_Win); + SDL_Win->show(); +// ((QApplication*)qApp)->showMainWidget(SDL_Win); /* Fill in some window manager capabilities */ _this->info.wm_available = 0; @@ -423,6 +426,8 @@ machine = MACHINE_SHARP_SLC760; else if (strstr(buf, "SHARP Boxer") != NULL) machine = MACHINE_SHARP_SLC860; + else if (strstr(buf, "Motorola Ezx") != NULL) + machine = MACHINE_MOTOROLA_EZX; } fclose(fp); } else { @@ -443,8 +448,8 @@ int rot = 0, is_qvga = 0; user = getenv("USER"); - snprintf(buf, sizeof(buf), "/tmp/qtembedded-%s/QtEmbedded-0.spec", - user ? user : "root"); + snprintf(buf, sizeof(buf), "/tmp/qtembedded-%s/QtEmbedded-0.spec", user ? user : "root"); + LOG("QT_GetRotation: Read spec from '%s'\n", buf); fp = fopen(buf, "rb"); @@ -581,7 +586,7 @@ }else { qteSize.setWidth(vinfo.yres); qteSize.setHeight(vinfo.xres); - qteRotation=3; + qteRotation=1; } if (isW100patch_kernel && (vinfo.xres == 320) && (vinfo.yres == 240)) { @@ -619,10 +624,10 @@ vinfo.yres_virtual = 480; qteRotation=0; }else { - vinfo.xres = 480; - vinfo.xres_virtual = 480; - vinfo.yres = 640; - vinfo.yres_virtual = 640; + vinfo.xres = 240; + vinfo.xres_virtual = 240; + vinfo.yres = 320; + vinfo.yres_virtual = 320; } if ( ioctl(console_fd, FBIOPUT_VSCREENINFO, &vinfo) < 0 ) { @@ -731,6 +736,9 @@ if (fb_hwrot == 1) sdlRotation = 0; + if (machine == MACHINE_MOTOROLA_EZX) + qteRotation = 2; + if (getenv(SDL_QT_INVERT_ROTATION_ENV_NAME) != NULL) { sdlRotation = (sdlRotation + 2) & 3; } @@ -761,6 +769,8 @@ qteKeyRotation = 3; else if (machine == MACHINE_SHARP_SLB500) qteKeyRotation = 3; + else if (machine == MACHINE_MOTOROLA_EZX) + qteKeyRotation = 0; if (isQteQvga && fb_hwrot == 1) qteKeyRotation = 1; @@ -930,11 +940,11 @@ static SDL_GrabMode QT_GrabInput(_THIS, SDL_GrabMode mode) { if(mode == SDL_GRAB_OFF) { - QPEApplication::grabKeyboard(); + qApp->mainWidget()->grabKeyboard(); qApp->processEvents(); - QPEApplication::ungrabKeyboard(); + qApp->mainWidget()->releaseKeyboard(); } else { - QPEApplication::grabKeyboard(); + qApp->mainWidget()->grabKeyboard(); } qApp->processEvents(); return mode; diff -r -u ../orig/SDL-1.2.7/test/testsprite.c ./test/testsprite.c --- ../orig/SDL-1.2.7/test/testsprite.c 2004-02-18 14:22:10.000000000 -0300 +++ ./test/testsprite.c 2006-01-05 03:29:36.000000000 -0200 @@ -165,8 +165,8 @@ numsprites = NUM_SPRITES; videoflags = SDL_SWSURFACE|SDL_ANYFORMAT; - width = 640; - height = 480; + width = 320; + height = 240; video_bpp = 8; while ( argc > 1 ) { --argc;