From 9d2929b79b22765701e9db240d967877d7f7bab8 Mon Sep 17 00:00:00 2001 From: Dan Everton Date: Sat, 12 Aug 2006 10:28:30 +0000 Subject: Remove Win32 and X11 simulator sources. They've been deprecated for a while in favour of the SDL sim. Time to go. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10543 a1c6a512-1295-4272-9138-f99709370657 --- uisimulator/x11/Makefile | 60 ---- uisimulator/x11/README | 6 - uisimulator/x11/SOURCES | 14 - uisimulator/x11/archos/rockbox112.bmp | Bin 5222 -> 0 bytes uisimulator/x11/atoi.h | 2 - uisimulator/x11/button-x11.c | 321 ------------------- uisimulator/x11/config-x11.h | 362 --------------------- uisimulator/x11/kernel.c | 165 ---------- uisimulator/x11/lcd-x11.c | 262 --------------- uisimulator/x11/lcd-x11.h | 26 -- uisimulator/x11/oss_sound.c | 84 ----- uisimulator/x11/resources.c | 113 ------- uisimulator/x11/resources.h | 23 -- uisimulator/x11/screenhack.c | 579 ---------------------------------- uisimulator/x11/screenhack.h | 52 --- uisimulator/x11/sound.c | 140 -------- uisimulator/x11/sound.h | 22 -- uisimulator/x11/sprintf.h | 12 - uisimulator/x11/thread.c | 148 --------- uisimulator/x11/timefuncs.h | 7 - uisimulator/x11/uibasic.c | 277 ---------------- uisimulator/x11/utils.h | 22 -- uisimulator/x11/version.h | 1 - uisimulator/x11/visual.c | 544 -------------------------------- uisimulator/x11/visual.h | 29 -- uisimulator/x11/vroot.h | 126 -------- uisimulator/x11/xmu.h | 14 - 27 files changed, 3411 deletions(-) delete mode 100644 uisimulator/x11/Makefile delete mode 100644 uisimulator/x11/README delete mode 100644 uisimulator/x11/SOURCES delete mode 100644 uisimulator/x11/archos/rockbox112.bmp delete mode 100644 uisimulator/x11/atoi.h delete mode 100644 uisimulator/x11/button-x11.c delete mode 100644 uisimulator/x11/config-x11.h delete mode 100644 uisimulator/x11/kernel.c delete mode 100644 uisimulator/x11/lcd-x11.c delete mode 100644 uisimulator/x11/lcd-x11.h delete mode 100644 uisimulator/x11/oss_sound.c delete mode 100644 uisimulator/x11/resources.c delete mode 100644 uisimulator/x11/resources.h delete mode 100644 uisimulator/x11/screenhack.c delete mode 100644 uisimulator/x11/screenhack.h delete mode 100644 uisimulator/x11/sound.c delete mode 100644 uisimulator/x11/sound.h delete mode 100644 uisimulator/x11/sprintf.h delete mode 100644 uisimulator/x11/thread.c delete mode 100644 uisimulator/x11/timefuncs.h delete mode 100644 uisimulator/x11/uibasic.c delete mode 100644 uisimulator/x11/utils.h delete mode 100644 uisimulator/x11/version.h delete mode 100644 uisimulator/x11/visual.c delete mode 100644 uisimulator/x11/visual.h delete mode 100644 uisimulator/x11/vroot.h delete mode 100644 uisimulator/x11/xmu.h (limited to 'uisimulator/x11') diff --git a/uisimulator/x11/Makefile b/uisimulator/x11/Makefile deleted file mode 100644 index 989ac65223..0000000000 --- a/uisimulator/x11/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -############################################################################ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# -# Copyright (C) 2002 by Daniel Stenberg -# -# All files in this archive are subject to the GNU General Public License. -# See the file COPYING in the source tree root for full license agreement. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -############################################################################ - -SIMCOMMON = ../common - -DEPFILE = $(OBJDIR)/dep-sim - -RM = rm -f -DEBUG = -g - -# Use this for simulator-only files -INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR) \ - -I$(BUILDDIR) - -# This sets up 'SRC' based on the files mentioned in SOURCES -include $(TOOLSDIR)/makesrc.inc - -OBJS := $(SRC:%.c=$(OBJDIR)/%.o) - -DEFINES := -DHAVE_CONFIG_H -DGETTIMEOFDAY_TWO_ARGS -DSIMULATOR \ -$(TARGET) -DAPPSVERSION=\"$(VERSION)\" -DMEM=${MEMORYSIZE} $(EXTRA_DEFINES) - -SOURCES = $(SRC) - -DIRS = . - -CFLAGS = $(DEBUG) $(DEFINES) $(INCLUDES) $(GCCOPTS) - -OUTFILE = $(BUILDDIR)/libsim.a - -all: $(OUTFILE) - -include $(TOOLSDIR)/make.inc - -clean: - @echo "cleaning sim" - @$(RM) $(OBJS) *~ core $(OUTFILE) $(DEPFILE) - @$(MAKE) -C $(SIMCOMMON) clean - -$(OUTFILE): $(OBJS) - @echo "AR $@" - @$(AR) ruv $@ $(OBJS) >/dev/null 2>&1 - --include $(DEPFILE) diff --git a/uisimulator/x11/README b/uisimulator/x11/README deleted file mode 100644 index 0a293f6ad2..0000000000 --- a/uisimulator/x11/README +++ /dev/null @@ -1,6 +0,0 @@ -To build: - - $ ../tools/configure - [answer questions] - $ make - $ ./rockboxui diff --git a/uisimulator/x11/SOURCES b/uisimulator/x11/SOURCES deleted file mode 100644 index 0aabfb2c03..0000000000 --- a/uisimulator/x11/SOURCES +++ /dev/null @@ -1,14 +0,0 @@ -button-x11.c -kernel.c -lcd-x11.c -#if 0 /* if sound is enabled */ -oss_sound.c -#endif -resources.c -screenhack.c -thread.c -uibasic.c -visual.c -#if CONFIG_CODEC == SWCODEC -sound.c -#endif diff --git a/uisimulator/x11/archos/rockbox112.bmp b/uisimulator/x11/archos/rockbox112.bmp deleted file mode 100644 index 45392f9f7a..0000000000 Binary files a/uisimulator/x11/archos/rockbox112.bmp and /dev/null differ diff --git a/uisimulator/x11/atoi.h b/uisimulator/x11/atoi.h deleted file mode 100644 index 74474f110c..0000000000 --- a/uisimulator/x11/atoi.h +++ /dev/null @@ -1,2 +0,0 @@ - -int atoi(const char *); diff --git a/uisimulator/x11/button-x11.c b/uisimulator/x11/button-x11.c deleted file mode 100644 index 673f71ea7b..0000000000 --- a/uisimulator/x11/button-x11.c +++ /dev/null @@ -1,321 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Björn Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ -#include -#include "config.h" -#include "button.h" -#include "kernel.h" -#include "debug.h" -#include "backlight.h" -#include "misc.h" - -#include "X11/keysym.h" - -extern int screenhack_handle_events(bool *release); - -struct event_queue button_queue; - -static int button_state = 0; /* keeps track of pressed keys */ -static long lastbtn; /* Last valid button status */ - -/* how often we check to see if a button is pressed */ -#define POLL_FREQUENCY HZ/25 - -/* how long until repeat kicks in */ -#define REPEAT_START 8 - -/* the speed repeat starts at */ -#define REPEAT_INTERVAL_START 4 - -/* speed repeat finishes at */ -#define REPEAT_INTERVAL_FINISH 2 - -/* mostly copied from real button.c */ -void button_read (void); - -static void button_tick(void) -{ - static int tick = 0; - static int count = 0; - static int repeat_speed = REPEAT_INTERVAL_START; - static int repeat_count = 0; - static bool repeat = false; - static bool post = false; - int diff; - int btn; - - /* only poll every X ticks */ - if ( ++tick >= POLL_FREQUENCY ) - { - button_read(); - btn = button_state; - - /* Find out if a key has been released */ - diff = btn ^ lastbtn; - if(diff && (btn & diff) == 0) - { - queue_post(&button_queue, BUTTON_REL | diff, NULL); - } - else - { - if ( btn ) - { - /* normal keypress */ - if ( btn != lastbtn ) - { - post = true; - repeat = false; - repeat_speed = REPEAT_INTERVAL_START; - - } - else /* repeat? */ - { - if ( repeat ) - { - count--; - if (count == 0) { - post = true; - /* yes we have repeat */ - repeat_speed--; - if (repeat_speed < REPEAT_INTERVAL_FINISH) - repeat_speed = REPEAT_INTERVAL_FINISH; - count = repeat_speed; - - repeat_count++; - - } - } - else - { - if (count++ > REPEAT_START) - { - post = true; - repeat = true; - repeat_count = 0; - /* initial repeat */ - count = REPEAT_INTERVAL_START; - } - } - } - if ( post ) - { - if (repeat) - { - if (queue_empty(&button_queue)) - { - queue_post(&button_queue, BUTTON_REPEAT | btn, NULL); - post = false; - } - } - else - { - queue_post(&button_queue, btn, NULL); - post = false; - } -#ifdef HAVE_REMOTE_LCD - if(btn & BUTTON_REMOTE) - remote_backlight_on(); - else -#endif - backlight_on(); - - } - } - else - { - repeat = false; - count = 0; - } - } - lastbtn = btn & ~(BUTTON_REL | BUTTON_REPEAT); - tick = 0; - } -} - -/* - * Read X keys and translate to rockbox buttons - */ - -void button_read (void) -{ - int k; - bool release = false; /* is this a release event */ - int ev = screenhack_handle_events(&release); - - switch (ev) - { - case XK_KP_Left: - case XK_Left: - case XK_KP_4: - k = BUTTON_LEFT; - break; - - case XK_KP_Right: - case XK_Right: - case XK_KP_6: - k = BUTTON_RIGHT; - break; - - case XK_KP_Up: - case XK_Up: - case XK_KP_8: -#ifdef BUTTON_UP - k = BUTTON_UP; -#elif defined BUTTON_PLAY - k = BUTTON_PLAY; -#endif - break; - - case XK_KP_Down: - case XK_Down: - case XK_KP_2: -#ifdef BUTTON_DOWN - k = BUTTON_DOWN; -#elif defined BUTTON_STOP - k = BUTTON_STOP; -#endif - break; - -#ifdef BUTTON_ON - case XK_KP_Add: - case XK_Q: - case XK_q: - k = BUTTON_ON; - break; -#endif - -#ifdef BUTTON_OFF - case XK_KP_Enter: - case XK_A: - case XK_a: - k = BUTTON_OFF; - break; -#endif - -#ifdef BUTTON_F1 - case XK_KP_Divide: - case XK_1: - k = BUTTON_F1; - break; - - case XK_KP_Multiply: - case XK_2: - k = BUTTON_F2; - break; - - case XK_KP_Subtract: - case XK_3: - k = BUTTON_F3; - break; -#elif defined(BUTTON_REC) - case XK_KP_Divide: - case XK_1: - k = BUTTON_REC; - break; -#endif - - case XK_KP_Space: - case XK_KP_5: - case XK_KP_Begin: - case XK_space: -#ifdef BUTTON_PLAY - k = BUTTON_PLAY; -#elif defined(BUTTON_SELECT) - k = BUTTON_SELECT; -#endif - break; - -#ifdef HAVE_LCD_BITMAP - case XK_5: - if(!release) - screen_dump(); - break; -#endif - - case XK_KP_Separator: - case XK_KP_Insert: - case XK_Insert: -#ifdef BUTTON_MENU - k = BUTTON_MENU; -#elif defined(BUTTON_MODE) - k = BUTTON_MODE; -#endif - break; - - default: - k = 0; - if(ev) - DEBUGF("received ev %d\n", ev); - break; - } - - if (release) - button_state &= ~k; - else - button_state |= k; -} - -/* Again copied from real button.c... */ - -long button_get(bool block) -{ - struct event ev; - - if ( block || !queue_empty(&button_queue) ) - { - queue_wait(&button_queue, &ev); - return ev.id; - } - return BUTTON_NONE; -} - -long button_get_w_tmo(int ticks) -{ - struct event ev; - queue_wait_w_tmo(&button_queue, &ev, ticks); - return (ev.id != SYS_TIMEOUT)? ev.id: BUTTON_NONE; -} - -void button_init(void) -{ - tick_add_task(button_tick); -} - -int button_status(void) -{ - return lastbtn; -} - -void button_clear_queue(void) -{ - queue_clear(&button_queue); -} - -#ifdef HAS_BUTTON_HOLD -bool button_hold(void) { - /* temp fix for hold button on irivers */ - return false; -} -#endif - -#ifdef HAS_REMOTE_BUTTON_HOLD -bool remote_button_hold(void) { - /* temp fix for hold button on irivers */ - return false; -} -#endif diff --git a/uisimulator/x11/config-x11.h b/uisimulator/x11/config-x11.h deleted file mode 100644 index 1c520cfbac..0000000000 --- a/uisimulator/x11/config-x11.h +++ /dev/null @@ -1,362 +0,0 @@ -/* config.h. Generated automatically by configure. */ -/* config.h.in --- xscreensaver, Copyright (c) 1998 Jamie Zawinski. - * - * The best way to set these parameters is by running the included `configure' - * script. That examines your system, and generates `config.h' from - * `config.h.in'. - * - * If something goes very wrong, you can edit `config.h' directly, but beware - * that your changes will be lost if you ever run `configure' again. - */ - - -/* ************************************************************************* - CONFIGURING SERVER EXTENSIONS - ************************************************************************* */ - -/* Define this if you have the XReadDisplay extension (I think this is an - SGI-only thing; it's in .) A few of the - screenhacks will take advantage of this if it's available. - */ -/* #undef HAVE_READ_DISPLAY_EXTENSION */ - -/* Define this if you have the Iris Video Library (dmedia/vl.h on SGI.) - A few of the screenhacks will take advantage of this if it's available. - */ -/* #undef HAVE_SGI_VIDEO */ - -/* Define this if you have the XHPDisableReset function (an HP only thing.) - */ -/* #undef HAVE_XHPDISABLERESET */ - -/* First, some background: there are three distinct server extensions which - * are useful to a screen saver program: they are XIDLE, MIT-SCREEN-SAVER, - * and SCREEN_SAVER. - * - * The XIDLE extension resides in .../contrib/extensions/xidle/ on the X11R5 - * contrib tape. This extension lets the client get accurate idle-time - * information from the X server in a potentially more reliable way than by - * simply watching for keyboard and mouse activity. However, the XIDLE - * extension has apparently not been ported to X11R6. - * - * The SCREEN_SAVER extension is found (as far as I know) only in the SGI - * X server, and it exists in all releases since (at least) Irix 5. The - * relevant header file is /usr/include/X11/extensions/XScreenSaver.h. - * - * The similarly-named MIT-SCREEN-SAVER extension came into existence long - * after the SGI SCREEN_SAVER extension was already in use, and resides in - * .../contrib/extensions/screensaver/ on the X11R6 contrib tape. It is - * also found in certain recent X servers built in to NCD X terminals. - * - * The MIT extension does basically the same thing that the XIDLE extension - * does, but there are two things wrong with it: first, because of the way - * the extension was designed, the `fade' option to XScreenSaver will be - * uglier: just before the screen fades out, there will be an unattractive - * flicker to black, because this extension blanks the screen *before* - * telling us that it is time to do so. Second, this extension is known to - * be buggy; on the systems I use, it works, but some people have reported - * X server crashes as a result of using it. XScreenSaver uses this - * extension rather conservatively, because when I tried to use any of its - * more complicated features, I could get it to crash the server at the - * drop of a hat. - * - * In short, the MIT-SCREEN-SAVER extension is a piece of junk. The older - * SGI SCREEN_SAVER extension works great, as does XIDLE. It would be nice - * If those two existed on more systems, that is, would be adopted by the - * X Consortium in favor of their inferior "not-invented-here" entry. - */ - -/* Define this if you have the XIDLE extension installed. If you have the - * XIDLE extension, this is recommended. (You have this extension if the - * file /usr/include/X11/extensions/xidle.h exists.) Turning on this flag - * lets XScreenSaver work better with servers which support this extension; - * but it will still work with servers which do not suport it, so it's a good - * idea to compile in support for it if you can. - */ -/* #undef HAVE_XIDLE_EXTENSION */ - -/* Define this if you have the MIT-SCREEN-SAVER extension installed. See the - * caveats about this extension, above. (It's available if the file - * /usr/include/X11/extensions/scrnsaver.h exists.) - */ -#define HAVE_MIT_SAVER_EXTENSION 1 - -/* Define this if you have the SGI SCREEN_SAVER extension. This is standard - * on Irix systems, and not available elsewhere. - */ -/* #undef HAVE_SGI_SAVER_EXTENSION */ - -/* Define this if you have the SGI-VIDEO-CONTROL extension. This is standard - * on Irix systems, and not available elsewhere. - */ -/* #undef HAVE_SGI_VC_EXTENSION */ - -/* Define this if you have the XDPMS extension. This is standard on - * sufficiently-recent XFree86 systems, and possibly elsewhere. (It's - * available if the file /usr/include/X11/extensions/dpms.h exists.) - */ -/* #undef HAVE_DPMS_EXTENSION */ - -/* Define this if you have the functions XF86VidModeGetModeLine() and - * XF86VidModeGetViewPort(), in support of virtual desktops where the - * X server's root window is bigger than the actual screen. This is - * an XFree86 thing, and probably doesn't exist elsewhere. (It's - * available if the file /usr/include/X11/extensions/xf86vmode.h exists.) - */ -/* #undef HAVE_XF86VMODE */ - -/* Define this if you have a Linux-like /proc/interrupts file which can be - * examined to determine when keyboard activity has occurred. - */ -/* #undef HAVE_PROC_INTERRUPTS */ - - - -/* ************************************************************************* - CONFIGURING GRAPHICS TOOLKITS - ************************************************************************* */ - -/* Define this if you have Motif. - */ -#define HAVE_MOTIF 1 - -/* Define this if you have Gtk. - */ -/* #undef HAVE_GTK */ - -/* Define this if you have Athena (-Xaw). - */ -#define HAVE_ATHENA 1 - -/* Define this if you have Athena, and the version you have includes the - * XawViewportSetCoordinates function in Viewport.h (some old versions of - * the library didn't have this function.) - */ -#define HAVE_XawViewportSetCoordinates 1 - -/* Define this if you have the XPM library installed. Some of the demos can - * make use of this if it is available. - */ -#define HAVE_XPM 1 - -/* Define this if you have the Xmu library. This is standard part of X, and - * if your vendor doesn't ship it, you should report that as a bug. - */ -#define HAVE_XMU 1 - -/* Define this if you have OpenGL. Some of the demos require it, so if you - * don't have it, then those particular demos won't be built. (This won't - * affect the screen saver as a whole.) - */ -/* #undef HAVE_GL */ - -/* Define this if you have OpenGL, but it's the MesaGL variant. (The - libraries have different names.) (HAVE_GL should be defined too.) - */ -/* #undef HAVE_MESA_GL */ - -/* Define this if your version of OpenGL has the glBindTexture() routine. - This is the case for OpenGL 1.1, but not for OpenGL 1.0. - */ -/* #undef HAVE_GLBINDTEXTURE */ - -/* Define this if you have the -lgle and -lmatrix libraries (GL extrusion.) - */ -/* #undef HAVE_GLE */ - -/* Define this if the `xscreensaver' process itself (the driver process) - should be linked against GL. Most systems won't want this (in particular, - if you're using Linux and/or Mesa, you don't want this) but SGI systems - do want this. It may also be useful on other systems that have serious - GL support -- you only need this if you have a lot of different visuals, - not all of which work with GL programs. - */ -/* #undef DAEMON_USE_GL */ - -/* Define this if you have the X Shared Memory Extension. - */ -#define HAVE_XSHM_EXTENSION 1 - -/* Define this if you have the X Double Buffer Extension. - */ -#define HAVE_DOUBLE_BUFFER_EXTENSION 1 - -/* Some screenhacks like to run an external program to generate random pieces - of text; set this to the one you like ("yow" and "fortune" are the most - likely prospects.) Note that this is just the default; X resources can - be used to override it. - */ -#define ZIPPY_PROGRAM "/usr/local/libexec/emacs/20.4/sparc-sun-solaris2.6/yow" - - - -/* ************************************************************************* - CONFIGURING PASSWORD AUTHENTICATION - ************************************************************************* */ - -/* Define this to remove the option of locking the screen at all. - */ -/* #undef NO_LOCKING */ - -/* Define this if you want to use Kerberos authentication to lock/unlock the - * screen instead of your local password. This currently uses Kerberos V4, - * but a V5 server with V4 compatibility will work. WARNING: DO NOT USE AFS - * string-to-key passwords with this option. This option currently *only* - * works with standard Kerberos des_string_to_key. If your password is an - * AFS password and not a kerberos password, it will not authenticate - * properly. See the comments in driver/kpasswd.c for more information if you - * need it. - */ -/* #undef HAVE_KERBEROS */ - -/* Define this if you want to use PAM (Pluggable Authentication Modules) - * to lock/unlock the screen, instead of standard /etc/passwd authentication. - */ -/* #undef HAVE_PAM */ - -/* If PAM is being used, this is the name of the PAM service that xscreensaver - * will authenticate as. The default is "xscreensaver", which means that the - * PAM library will look for an "xscreensaver" line in /etc/pam.conf, or (on - * recent Linux systems) will look for a file called /etc/pam.d/xscreensaver. - * Some systems might already have a PAM installation that is configured for - * xlock, so setting this to "xlock" would also work in that case. - */ -#define PAM_SERVICE_NAME "xscreensaver" - -/* Define if you have PAM and pam_strerror() requires two arguments. */ -/* #undef PAM_STRERROR_TWO_ARGS */ - -/* Define this if your system uses `shadow' passwords, that is, the passwords - * live in /etc/shadow instead of /etc/passwd, and one reads them with - * getspnam() instead of getpwnam(). (Note that SCO systems do some random - * other thing; others might as well. See the ifdefs in driver/passwd-pwent.c - * if you're having trouble related to reading passwords.) - */ -#define HAVE_SHADOW_PASSWD 1 - -/* Define this if your system is Digital or SCO Unix with so-called ``Enhanced - Security'', that is, the passwords live in /tcb/files/auth// - instead of in /etc/passwd, and one reads them with getprpwnam() instead - of getpwnam(). - */ -/* #undef HAVE_ENHANCED_PASSWD */ - -/* Define this if your system is Solaris with ``adjunct'' passwords (this is - the version where one gets at the passwords with getpwanam() instead of - getpwnam().) I haven't tested this one, let me know if it works. - */ -/* #undef HAVE_ADJUNCT_PASSWD */ - -/* Define this if you are running HPUX with so-called ``Secure Passwords'' - (if you have /usr/include/hpsecurity.h, you probably have this.) I - haven't tested this one, let me know if it works. - */ -/* #undef HAVE_HPUX_PASSWD */ - -/* Define this if you are on a system that supports the VT_LOCKSWITCH and - VT_UNLOCKSWITCH ioctls. If this is defined, then when the screen is - locked, switching to another virtual terminal will also be prevented. - That is, the whole console will be locked, rather than just the VT on - which X is running. (Well, that's the theory anyway -- in practice, - I haven't yet figured out how to make that work.) - */ -/* #undef HAVE_VT_LOCKSWITCH */ - - -/* Define this if you the openlog(), syslog(), and closelog() functions. - This is used for logging failed login attempts. - */ -#define HAVE_SYSLOG 1 - - -/* ************************************************************************* - OTHER C ENVIRONMENT JUNK - ************************************************************************* */ - -/* Define this to void* if you're using X11R4 or earlier. */ -/* #undef XPointer */ - -/* Define if you have the nice function. */ -#define HAVE_NICE 1 - -/* Define if you have the setpriority function. */ -#define HAVE_SETPRIORITY 1 - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have that is POSIX.1 compatible. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define as __inline if that's what the C compiler calls it. */ -/* #undef inline */ - -/* Define to `int' if doesn't define. */ -/* #undef mode_t */ - -/* Define to `int' if doesn't define. */ -/* #undef pid_t */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if you can safely include both and . */ -#define TIME_WITH_SYS_TIME 1 - -/* Define if you have the gettimeofday function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define if gettimeofday requires two arguments. */ -#define GETTIMEOFDAY_TWO_ARGS 1 - -/* Define if you have the putenv function. */ -#define HAVE_PUTENV 1 - -/* Define if you have the select function. */ -#define HAVE_SELECT 1 - -/* Define if you have the getcwd function. */ -#define HAVE_GETCWD 1 - -/* Define if you have the getcwd function. */ -#define HAVE_GETWD 1 - -/* Define if you have the realpath function. */ -#define HAVE_REALPATH 1 - -/* Define if you have the uname function. */ -#define HAVE_UNAME 1 - -/* Define if you have the fcntl function. */ -#define HAVE_FCNTL 1 - -/* Define if you have the sigaction function. */ -#define HAVE_SIGACTION 1 - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the header file. */ -#define HAVE_CRYPT_H 1 - -/* Define if you have that defines fd_set and FD_SET. */ -#define HAVE_SYS_SELECT_H 1 - -/* Define to use sigaction() instead of signal() for SIGCHLD-related activity. - This is necessary at least on SCO OpenServer 5, due to a Unix kernel bug. - */ -/* #undef USE_SIGACTION */ - -/* Define this if you do pings with a `struct icmp' and a `icmp_id' slot. - */ -#define HAVE_ICMP 1 - -/* Define this if you do pings with a `struct icmphdr' and a `un.echo.id' slot. - */ -/* #undef HAVE_ICMPHDR */ diff --git a/uisimulator/x11/kernel.c b/uisimulator/x11/kernel.c deleted file mode 100644 index 947d82a550..0000000000 --- a/uisimulator/x11/kernel.c +++ /dev/null @@ -1,165 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2005 by Jens Arnold - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#include "kernel.h" -#include "thread.h" -#include "debug.h" - -static void (*tick_funcs[MAX_NUM_TICK_TASKS])(void); - -int set_irq_level (int level) -{ - static int _lv = 0; - return (_lv = level); -} - -void queue_init(struct event_queue *q) -{ - q->read = 0; - q->write = 0; -} - -void queue_delete(struct event_queue *q) -{ - (void)q; -} - -void queue_wait(struct event_queue *q, struct event *ev) -{ - while(q->read == q->write) - { - switch_thread(); - } - - *ev = q->events[(q->read++) & QUEUE_LENGTH_MASK]; -} - -void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks) -{ - unsigned int timeout = current_tick + ticks; - - while(q->read == q->write && TIME_BEFORE( current_tick, timeout )) - { - sleep(1); - } - - if(q->read != q->write) - { - *ev = q->events[(q->read++) & QUEUE_LENGTH_MASK]; - } - else - { - ev->id = SYS_TIMEOUT; - } -} - -void queue_post(struct event_queue *q, long id, void *data) -{ - int wr; - int oldlevel; - - oldlevel = set_irq_level(15<<4); - wr = (q->write++) & QUEUE_LENGTH_MASK; - - q->events[wr].id = id; - q->events[wr].data = data; - set_irq_level(oldlevel); -} - -bool queue_empty(const struct event_queue* q) -{ - return ( q->read == q->write ); -} - -void queue_clear(struct event_queue* q) -{ - /* fixme: This is potentially unsafe in case we do interrupt-like processing */ - q->read = 0; - q->write = 0; -} - -void switch_thread (void) -{ - yield (); -} - -void sim_tick_tasks(void) -{ - int i; - - /* Run through the list of tick tasks */ - for(i = 0;i < MAX_NUM_TICK_TASKS;i++) - { - if(tick_funcs[i]) - { - tick_funcs[i](); - } - } -} - -int tick_add_task(void (*f)(void)) -{ - int i; - - /* Add a task if there is room */ - for(i = 0;i < MAX_NUM_TICK_TASKS;i++) - { - if(tick_funcs[i] == NULL) - { - tick_funcs[i] = f; - return 0; - } - } - DEBUGF("Error! tick_add_task(): out of tasks"); - return -1; -} - -int tick_remove_task(void (*f)(void)) -{ - int i; - - /* Remove a task if it is there */ - for(i = 0;i < MAX_NUM_TICK_TASKS;i++) - { - if(tick_funcs[i] == f) - { - tick_funcs[i] = NULL; - return 0; - } - } - - return -1; -} - -void mutex_init(struct mutex *m) -{ - (void)m; -} - -void mutex_lock(struct mutex *m) -{ - (void)m; -} - -void mutex_unlock(struct mutex *m) -{ - (void)m; -} - diff --git a/uisimulator/x11/lcd-x11.c b/uisimulator/x11/lcd-x11.c deleted file mode 100644 index c85848c18b..0000000000 --- a/uisimulator/x11/lcd-x11.c +++ /dev/null @@ -1,262 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "screenhack.h" -#include "config.h" -#include "debug.h" - -/* - * Specific implementations for X11, using the generic LCD API and data. - */ - -#include "lcd-x11.h" -#include "lcd-playersim.h" - -#if LCD_DEPTH == 2 -#define YBLOCK 4 -#define ANDBIT 3 /* AND with this to get the color number */ -#else -#define YBLOCK 8 -#define ANDBIT 1 -#endif - -extern void screen_resized(int width, int height); -extern bool lcd_display_redraw; - -#ifdef HAVE_LCD_BITMAP -#if LCD_DEPTH==16 -fb_data lcd_framebuffer_copy[LCD_HEIGHT][LCD_WIDTH*2]; -#else -fb_data lcd_framebuffer_copy[LCD_HEIGHT/YBLOCK][LCD_WIDTH]; -#endif - -void lcd_update (void) -{ - /* update a full screen rect */ - lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT); -} - -void lcd_update_rect(int x_start, int y_start, - int width, int height) -{ - int x; - int yline=y_start; - int y; - int p=0; - int bit; - int xmax; - int ymax; - int colors[LCD_WIDTH * LCD_HEIGHT]; - struct coordinate points[LCD_WIDTH * LCD_HEIGHT]; - unsigned force_mask = lcd_display_redraw ? 0xFF : 0; - -#if 0 - fprintf(stderr, "%04d: lcd_update_rect(%d, %d, %d, %d)\n", - counter++, x_start, y_start, width, height); -#endif - /* The Y coordinates have to work on even YBLOCK pixel rows */ - ymax = (yline + height)/YBLOCK; - yline /= YBLOCK; - - xmax = x_start + width; - - if(xmax > LCD_WIDTH) - xmax = LCD_WIDTH; - if(ymax >= LCD_HEIGHT/YBLOCK) - ymax = LCD_HEIGHT/YBLOCK-1; - - for(; yline <= ymax; yline++) { - y = yline * YBLOCK; - for(x = x_start; x < xmax; x++) { - unsigned char diff = (lcd_framebuffer[yline][x] - ^ lcd_framebuffer_copy[yline][x]) - | force_mask; - if(diff) { - /* one or more bits/pixels are changed */ - unsigned char mask = ANDBIT; - for(bit = 0; bit < YBLOCK; bit++) { - if(diff & mask) { - /* pixel has changed */ - unsigned int col = lcd_framebuffer[yline][x] & mask; -#if LCD_DEPTH == 2 - colors[p] = col >> (bit * LCD_DEPTH); -#else - colors[p] = col ? 3 : 0; -#endif - points[p].x = x + MARGIN_X; - points[p].y = y + bit + MARGIN_Y; - p++; /* increase the point counter */ - } - mask <<= LCD_DEPTH; - } - - /* update the copy */ - lcd_framebuffer_copy[yline][x] = lcd_framebuffer[yline][x]; - } - } - } - - dots(colors, &points[0], p); - /* printf("lcd_update_rect: Draws %d pixels, clears %d pixels\n", p, cp);*/ - XtAppLock(app); - XSync(dpy,False); - XtAppUnlock(app); - lcd_display_redraw=false; -} - -#ifdef LCD_REMOTE_HEIGHT -extern unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]; -unsigned char lcd_remote_framebuffer_copy[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]; - -#define REMOTE_START_Y (LCD_HEIGHT + 2*MARGIN_Y) - -void lcd_remote_update (void) -{ - lcd_remote_update_rect(0, 0, LCD_REMOTE_WIDTH, LCD_REMOTE_HEIGHT); -} - -void lcd_remote_update_rect(int x_start, int y_start, - int width, int height) -{ - int x; - int yline=y_start; - int y; - int p=0; - int bit; - int xmax; - int ymax; - struct coordinate points[LCD_REMOTE_WIDTH * LCD_REMOTE_HEIGHT]; - int colors[LCD_REMOTE_WIDTH * LCD_REMOTE_HEIGHT]; - unsigned force_mask = lcd_display_redraw ? 0xFF : 0; - -#if 0 - fprintf(stderr, "%04d: lcd_update_rect(%d, %d, %d, %d)\n", - counter++, x_start, y_start, width, height); -#endif - /* The Y coordinates have to work on even 8 pixel rows */ - ymax = (yline + height)/8; - yline /= 8; - - xmax = x_start + width; - - if(xmax > LCD_REMOTE_WIDTH) - xmax = LCD_REMOTE_WIDTH; - if(ymax >= LCD_REMOTE_HEIGHT/8) - ymax = LCD_REMOTE_HEIGHT/8-1; - - for(; yline <= ymax; yline++) { - y = yline * 8; - for(x = x_start; x < xmax; x++) { - unsigned char diff = (lcd_remote_framebuffer[yline][x] - ^ lcd_remote_framebuffer_copy[yline][x]) - | force_mask; - if(diff) { - unsigned char mask = 1; - for(bit = 0; bit < 8; bit++) { - if(diff & mask) { - unsigned int col = lcd_remote_framebuffer[yline][x] & mask; - colors[p] = col ? 3 : 0; - points[p].x = x + MARGIN_X; - points[p].y = y + bit + (REMOTE_START_Y + MARGIN_Y); - p++; /* increase the point counter */ - } - mask <<= 1; - } - - /* update the copy */ - lcd_remote_framebuffer_copy[yline][x] = - lcd_remote_framebuffer[yline][x]; - } - } - } - - dots(colors, &points[0], p); - /* printf("lcd_update_rect: Draws %d pixels, clears %d pixels\n", p, cp);*/ - XtAppLock(app); - XSync(dpy,False); - XtAppUnlock(app); - lcd_display_redraw=false; -} - - -#endif - -#endif -#ifdef HAVE_LCD_CHARCELLS - -/* Defined in lcd-playersim.c */ -extern void lcd_print_char(int x, int y); -extern unsigned char lcd_buffer[2][11]; -extern void drawrect(int color, int x1, int y1, int x2, int y2); - -extern unsigned char hardware_buffer_lcd[11][2]; -static unsigned char lcd_buffer_copy[11][2]; - -void lcd_update (void) -{ - bool changed=false; - int x, y; - for (y=0; y<2; y++) { - for (x=0; x<11; x++) { - if (lcd_display_redraw || - lcd_buffer_copy[x][y] != hardware_buffer_lcd[x][y]) { - lcd_buffer_copy[x][y] = hardware_buffer_lcd[x][y]; - lcd_print_char(x, y); - changed=true; - } - } - } - if (changed) - { - XtAppLock(app); - XSync(dpy,False); - XtAppUnlock(app); - } - lcd_display_redraw=false; -} - -#endif - -#ifdef CONFIG_BACKLIGHT -void sim_backlight(int value) -{ - DEBUGF("backlight: %s\n", (value > 0) ? "on" : "off"); -} -#endif - -#ifdef HAVE_REMOTE_LCD -void sim_remote_backlight(int value) -{ - DEBUGF("remote backlight: %s\n", (value > 0) ? "on" : "off"); -} -#endif - diff --git a/uisimulator/x11/lcd-x11.h b/uisimulator/x11/lcd-x11.h deleted file mode 100644 index 07911b2530..0000000000 --- a/uisimulator/x11/lcd-x11.h +++ /dev/null @@ -1,26 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#define MARGIN_X 3 -#define MARGIN_Y 3 - -/* include the "real" lcd.h file here */ -#include - - diff --git a/uisimulator/x11/oss_sound.c b/uisimulator/x11/oss_sound.c deleted file mode 100644 index 51d85470e7..0000000000 --- a/uisimulator/x11/oss_sound.c +++ /dev/null @@ -1,84 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * - * Copyright (C) 2002 Dave Chapman - * - * oss_sound - a sound driver for Linux (and others?) OSS audio - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#include - -#include -#include "../common/sound.h" - -/* We want to use the "real" open in this file */ -#undef open - -int init_sound(sound_t* sound) { - sound->fd=open("/dev/dsp", O_WRONLY); - sound->freq=-1; - sound->channels=-1; - - if (sound->fd <= 0) { - fprintf(stderr,"Can not open /dev/dsp - simulating sound output\n"); - sound->fd=0; - } -} - -int config_sound(sound_t* sound, int sound_freq, int channels) { - int format=AFMT_S16_NE; - int setting=0x000C000D; // 12 fragments size 8kb ? WHAT IS THIS? - - sound->freq=sound_freq; - sound->channels=channels; - - if (sound->fd) { - if (ioctl(sound->fd,SNDCTL_DSP_SETFRAGMENT,&setting)==-1) { - perror("SNDCTL_DSP_SETFRAGMENT"); - } - - if (ioctl(sound->fd,SNDCTL_DSP_CHANNELS,&channels)==-1) { - perror("SNDCTL_DSP_STEREO"); - } - if (channels==0) { fprintf(stderr,"Warning, only mono supported\n"); } - - if (ioctl(sound->fd,SNDCTL_DSP_SETFMT,&format)==-1) { - perror("SNDCTL_DSP_SETFMT"); - } - - if (ioctl(sound->fd,SNDCTL_DSP_SPEED,&sound_freq)==-1) { - perror("SNDCTL_DSP_SPEED"); - } - } -} - -int output_sound(sound_t* sound,const void* buf, int count) { - unsigned long long t; - - if (sound->fd) { - return(write(sound->fd,buf,count)); - } else { - t=(unsigned int)(((unsigned int)(1000000/sound->channels)*count)/sound->freq); -// fprintf(stderr,"writing %d bytes at %d frequency - sleeping for %u microseconds\n",count,sound->freq,t); - usleep(t); - return(count); - } -} - -void close_sound(sound_t* sound) { - if (sound->fd) close(sound->fd); - sound->fd=-1; -} diff --git a/uisimulator/x11/resources.c b/uisimulator/x11/resources.c deleted file mode 100644 index feaf3b8216..0000000000 --- a/uisimulator/x11/resources.c +++ /dev/null @@ -1,113 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1997, 1998 - * Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "utils.h" -#include "resources.h" -#include - - -/* Resource functions. Assumes: */ - -extern char *progname; -extern char *progclass; -extern XrmDatabase db; - -#ifndef isupper -# define isupper(c) ((c) >= 'A' && (c) <= 'Z') -#endif -#ifndef _tolower -# define _tolower(c) ((c) - 'A' + 'a') -#endif - -char * -get_string_resource (char *res_name, char *res_class) -{ - XrmValue value; - char *type; - char full_name [1024], full_class [1024]; - strcpy (full_name, progname); - strcat (full_name, "."); - strcat (full_name, res_name); - strcpy (full_class, progclass); - strcat (full_class, "."); - strcat (full_class, res_class); - if (XrmGetResource (db, full_name, full_class, &type, &value)) - { - char *str = (char *) malloc (value.size + 1); - strncpy (str, (char *) value.addr, value.size); - str [value.size] = 0; - return str; - } - return 0; -} - -Bool -get_boolean_resource (char *res_name, char *res_class) -{ - char *tmp, buf [100]; - char *s = get_string_resource (res_name, res_class); - char *os = s; - if (! s) return 0; - for (tmp = buf; *s; s++) - *tmp++ = isupper (*s) ? _tolower (*s) : *s; - *tmp = 0; - free (os); - - while (*buf && - (buf[strlen(buf)-1] == ' ' || - buf[strlen(buf)-1] == '\t')) - buf[strlen(buf)-1] = 0; - - if (!strcmp (buf, "on") || !strcmp (buf, "true") || !strcmp (buf, "yes")) - return 1; - if (!strcmp (buf,"off") || !strcmp (buf, "false") || !strcmp (buf,"no")) - return 0; - fprintf (stderr, "%s: %s must be boolean, not %s.\n", - progname, res_name, buf); - return 0; -} - -unsigned int -get_pixel_resource (char *res_name, char *res_class, - Display *dpy, Colormap cmap) -{ - XColor color; - char *s = get_string_resource (res_name, res_class); - char *s2; - if (!s) goto DEFAULT; - - for (s2 = s + strlen(s) - 1; s2 > s; s2--) - if (*s2 == ' ' || *s2 == '\t') - *s2 = 0; - else - break; - - if (! XParseColor (dpy, cmap, s, &color)) - { - fprintf (stderr, "%s: can't parse color %s\n", progname, s); - goto DEFAULT; - } - if (! XAllocColor (dpy, cmap, &color)) - { - fprintf (stderr, "%s: couldn't allocate color %s\n", progname, s); - goto DEFAULT; - } - free (s); - return color.pixel; - DEFAULT: - if (s) free (s); - return ((strlen(res_class) >= 10 && - !strcmp ("Background", res_class + strlen(res_class) - 10)) - ? BlackPixel (dpy, DefaultScreen (dpy)) - : WhitePixel (dpy, DefaultScreen (dpy))); -} - diff --git a/uisimulator/x11/resources.h b/uisimulator/x11/resources.h deleted file mode 100644 index 1fbcfa7ce7..0000000000 --- a/uisimulator/x11/resources.h +++ /dev/null @@ -1,23 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1997 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#ifndef __XSCREENSAVER_RESOURCES_H__ -#define __XSCREENSAVER_RESOURCES_H__ -extern char *get_string_resource (char*,char*); -extern Bool get_boolean_resource (char*,char*); -extern int get_integer_resource (char*,char*); -extern double get_float_resource (char*,char*); -extern unsigned int get_pixel_resource (char*,char*,Display*,Colormap); -extern unsigned int get_minutes_resource (char*,char*); -extern unsigned int get_seconds_resource (char*,char*); -extern int parse_time (const char *string, Bool seconds_default_p, - Bool silent_p); -#endif /* __XSCREENSAVER_RESOURCES_H__ */ diff --git a/uisimulator/x11/screenhack.c b/uisimulator/x11/screenhack.c deleted file mode 100644 index c3aa2e4c63..0000000000 --- a/uisimulator/x11/screenhack.c +++ /dev/null @@ -1,579 +0,0 @@ -/* xscreensaver, Copyright (c) 1992, 1995, 1997, 1998 - * Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * And remember: X Windows is to graphics hacking as roman numerals are to - * the square root of pi. - */ - -/* This file contains simple code to open a window or draw on the root. - The idea being that, when writing a graphics hack, you can just link - with this .o to get all of the uninteresting junk out of the way. - - - create a procedure `screenhack(dpy, window)' - - - create a variable `char *progclass' which names this program's - resource class. - - - create a variable `char defaults []' for the default resources, and - null-terminate it. - - - create a variable `XrmOptionDescRec options[]' for the command-line, - and null-terminate it. - - And that's it... - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __sgi -# include /* for SgiUseSchemes() */ -#endif /* __sgi */ - -#ifdef HAVE_XMU -# ifndef VMS -# include -# else /* VMS */ -# include -# endif -#else -# include "xmu.h" -#endif -#include "lcd-x11.h" -#include "screenhack.h" -#include "version.h" -#include "vroot.h" - -#include "debug.h" -#include "config.h" - -#ifndef isupper -# define isupper(c) ((c) >= 'A' && (c) <= 'Z') -#endif -#ifndef _tolower -# define _tolower(c) ((c) - 'A' + 'a') -#endif - -#define KEYBOARD_GENERIC \ - "Keyboard Rockbox\n" \ - "-------- ------------\n" \ - "4, Left LEFT\n" \ - "6, Right RIGHT\n" - -#if CONFIG_KEYPAD == PLAYER_PAD -#define KEYBOARD_SPECIFIC \ - "8, Up PLAY\n" \ - "2, Down STOP\n" \ - "+, Q ON\n" \ - "., INS MENU\n" - -#elif CONFIG_KEYPAD == RECORDER_PAD -#define KEYBOARD_SPECIFIC \ - "8, Up UP\n" \ - "2, Down DOWN\n" \ - "5, Space PLAY\n" \ - "+, Q ON\n" \ - "Enter, A OFF\n" \ - "/, (1) F1\n" \ - "*, (2) F2\n" \ - "-, (3) F3\n" - -#elif CONFIG_KEYPAD == ONDIO_PAD -#define KEYBOARD_SPECIFIC \ - "8, Up UP\n" \ - "2, Down DOWN\n" \ - "., INS MENU\n" \ - "Enter, A OFF\n" - -#elif CONFIG_KEYPAD == IRIVER_H100_PAD -#define KEYBOARD_SPECIFIC \ - "8, Up UP\n" \ - "2, Down DOWN\n" \ - "5, Space SELECT\n" \ - "+, Q ON\n" \ - "Enter, A OFF\n" \ - "., INS MODE\n" \ - "/, (1) RECORD\n" - -#elif CONFIG_KEYPAD == IRIVER_H300_PAD -#define KEYBOARD_SPECIFIC \ - "[not written yet]" - -#elif CONFIG_KEYPAD == GMINI100_PAD -#define KEYBOARD_SPECIFIC \ - "8, Up UP\n" \ - "2, Down DOWN\n" \ - "5, Space PLAY\n" \ - "+, Q ON\n" \ - "Enter, A OFF\n" \ - "., INS MENU\n" - -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) -#define KEYBOARD_SPECIFIC \ - "[not written yet]" - -#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) -#define KEYBOARD_SPECIFIC \ - "[not written yet]" -#else -#error "Put your defines here" -#endif - - -char having_new_lcd=True; - -char *progname; -XrmDatabase db; -XtAppContext app; -Display* dpy; -Window window; -Bool mono_p; - -static XrmOptionDescRec default_options [] = { - { "-root", ".root", XrmoptionNoArg, "True" }, - { "-window", ".root", XrmoptionNoArg, "False" }, - { "-mono", ".mono", XrmoptionNoArg, "True" }, - { "-install", ".installColormap", XrmoptionNoArg, "True" }, - { "-noinstall", ".installColormap", XrmoptionNoArg, "False" }, - { "-visual", ".visualID", XrmoptionSepArg, 0 }, - { "-window-id", ".windowID", XrmoptionSepArg, 0 }, - { 0, 0, 0, 0 } -}; - -static char *default_defaults[] = { - ".root: false", -#define GEOMETRY_POSITION 1 - "*geometry: 120x68", /* to be replaced anyway */ - "*mono: false", - "*installColormap: false", - "*visualID: default", - "*windowID: ", - 0 -}; - -extern int display_zoom; -extern long current_tick; - -static XrmOptionDescRec *merged_options; -static int merged_options_size; -static char **merged_defaults; - -static void merge_options (void) -{ - int def_opts_size, opts_size; - int def_defaults_size, defaults_size; - - for (def_opts_size = 0; default_options[def_opts_size].option; - def_opts_size++) - ; - for (opts_size = 0; options[opts_size].option; opts_size++) - ; - - merged_options_size = def_opts_size + opts_size; - merged_options = (XrmOptionDescRec *) - malloc ((merged_options_size + 1) * sizeof(*default_options)); - memcpy (merged_options, default_options, - (def_opts_size * sizeof(*default_options))); - memcpy (merged_options + def_opts_size, options, - ((opts_size + 1) * sizeof(*default_options))); - - for (def_defaults_size = 0; default_defaults[def_defaults_size]; - def_defaults_size++) - ; - for (defaults_size = 0; defaults[defaults_size]; defaults_size++) - ; - - merged_defaults = (char **) - malloc ((def_defaults_size + defaults_size + 1) * sizeof (*defaults)); - - memcpy (merged_defaults, default_defaults, - def_defaults_size * sizeof(*defaults)); - memcpy (merged_defaults + def_defaults_size, defaults, - (defaults_size + 1) * sizeof(*defaults)); - - /* This totally sucks. Xt should behave like this by default. - If the string in `defaults' looks like ".foo", change that - to "Progclass.foo". - */ - { - char **s; - for (s = merged_defaults; *s; s++) - if (**s == '.') - { - const char *oldr = *s; - char *newr = (char *) malloc(strlen(oldr) - + strlen(progclass) + 3); - strcpy (newr, progclass); - strcat (newr, oldr); - *s = newr; - } - } -} - - -/* Make the X errors print out the name of this program, so we have some - clue which one has a bug when they die under the screensaver. - */ - -static int screenhack_ehandler (Display *dpy, XErrorEvent *error) -{ - fprintf (stderr, "\nX error in %s:\n", progname); - if (XmuPrintDefaultErrorMessage (dpy, error, stderr)) - exit (-1); - else - fprintf (stderr, " (nonfatal.)\n"); - return 0; -} - -static Bool MapNotify_event_p (Display *dpy, XEvent *event, XPointer window) -{ - (void)dpy; - return (event->xany.type == MapNotify && - event->xvisibility.window == (Window) window); -} - -static Atom XA_WM_PROTOCOLS, XA_WM_DELETE_WINDOW; - - -static void kb_disable_auto_repeat(bool on) -{ - XKeyboardControl kb; - - kb.auto_repeat_mode = on ? AutoRepeatModeOff : AutoRepeatModeDefault; - XChangeKeyboardControl(dpy, KBAutoRepeatMode, &kb); -} - -static void kb_restore_auto_repeat(void) /* registered as an exit handler */ -{ - kb_disable_auto_repeat(false); - XSync(dpy, false); /* force the X server to process that */ -} - -/* Dead-trivial event handling. - Exit if the WM_PROTOCOLS WM_DELETE_WINDOW ClientMessage is received. - */ -int screenhack_handle_event(XEvent *event, bool *release) -{ - int key=0; - - *release = FALSE; - - switch (event->xany.type) { - case KeyPress: - { - KeySym keysym; - unsigned char c = 0; - XLookupString (&event->xkey, (char *)&c, 1, &keysym, 0); - key = keysym; -#if 0 - DEBUGF("Got keypress: %c (%02x) %x, tick %ld\n", c, c, - event->xkey.keycode, current_tick); -#endif - } - break; - case KeyRelease: - { - KeySym keysym; - unsigned char c = 0; - XLookupString (&event->xkey, (char *)&c, 1, &keysym, 0); - key = keysym; -#if 0 - DEBUGF("Got keyrelease: %c (%02x) %x, tick %ld\n", c, c, - event->xkey.keycode, current_tick); -#endif - *release = TRUE; - } - break; - case Expose: - screen_redraw(); - break; - case FocusIn: - kb_disable_auto_repeat(true); - break; - case FocusOut: - kb_disable_auto_repeat(false); - break; - case ClientMessage: - if (event->xclient.message_type != XA_WM_PROTOCOLS) { - char *s = XGetAtomName(dpy, event->xclient.message_type); - if (!s) - s = "(null)"; - fprintf (stderr, "%s: unknown ClientMessage %s received!\n", - progname, s); - } - else if (event->xclient.data.l[0] != (int)XA_WM_DELETE_WINDOW) { - char *s1 = XGetAtomName(dpy, event->xclient.message_type); - char *s2 = XGetAtomName(dpy, event->xclient.data.l[0]); - if (!s1) - s1 = "(null)"; - if (!s2) - s2 = "(null)"; - fprintf (stderr, "%s: unknown ClientMessage %s[%s] received!\n", - progname, s1, s2); - } - else { - exit (0); - } - break; - default: - break; - } - return key; -} - - -int screenhack_handle_events(bool *release) -{ - int key=0; - XtAppLock(app); - if(XPending(dpy)) - { - XEvent event; - XNextEvent(dpy, &event); - key=screenhack_handle_event(&event, release); - } - XtAppUnlock(app); - return key; -} - - -static Visual *pick_visual (Screen *screen) -{ -#ifdef USE_GL - /* If we're linking against GL (that is, this is the version of - screenhack.o that the GL hacks will use, which is different from the - one that the non-GL hacks will use) then try to pick the "best" visual - by interrogating the GL library instead of by asking Xlib. GL knows - better. - */ - Visual *v = 0; - char *string = get_string_resource ("visualID", "VisualID"); - char *s; - - if (string) - for (s = string; *s; s++) - if (isupper (*s)) *s = _tolower (*s); - - if (!string || !*string || - !strcmp (string, "gl") || - !strcmp (string, "best") || - !strcmp (string, "color") || - !strcmp (string, "default")) - v = get_gl_visual (screen); /* from ../utils/visual-gl.c */ - - if (string) - free (string); - if (v) - return v; -#endif /* USE_GL */ - - return get_visual_resource (screen, "visualID", "VisualID", False); -} - -int main (int argc, char **argv) -{ - Widget toplevel; - Screen *screen; - Visual *visual; - Colormap cmap; - XEvent event; - char version[255]; - - sprintf(version,"rockboxui %s",ROCKBOXUI_VERSION); -#ifdef HAVE_LCD_BITMAP - display_zoom=2; - { - char *env=getenv("RECORDER_ZOOM"); - if (env) { - display_zoom=atoi(env); - } - } -#else - display_zoom=1; - { - char *env=getenv("PLAYER_ZOOM"); - if (env) { - display_zoom=atoi(env); - } - } -#endif - - if (argc > 1) - { - int x; - for (x=1; x= 100) progname[100] = 0; - - XSetErrorHandler (screenhack_ehandler); - - XA_WM_PROTOCOLS = XInternAtom (dpy, "WM_PROTOCOLS", False); - XA_WM_DELETE_WINDOW = XInternAtom (dpy, "WM_DELETE_WINDOW", False); - - - if (CellsOfScreen (DefaultScreenOfDisplay (dpy)) <= 2) - mono_p = True; - - { - Boolean def_visual_p; - visual = pick_visual (screen); - - if (toplevel->core.width <= 0) - toplevel->core.width = 600; - if (toplevel->core.height <= 0) - toplevel->core.height = 480; - - def_visual_p = (visual == DefaultVisualOfScreen (screen)); - - if (!def_visual_p) - { - unsigned int bg, bd; - Widget new; - - cmap = XCreateColormap (dpy, RootWindowOfScreen(screen), - visual, AllocNone); - bg = get_pixel_resource ("background", "Background", dpy, cmap); - bd = get_pixel_resource ("borderColor", "Foreground", dpy, cmap); - - new = XtVaAppCreateShell (progname, progclass, - topLevelShellWidgetClass, dpy, - XtNmappedWhenManaged, False, - XtNvisual, visual, - XtNdepth, visual_depth (screen, visual), - XtNwidth, toplevel->core.width, - XtNheight, toplevel->core.height, - XtNcolormap, cmap, - XtNbackground, (Pixel) bg, - XtNborderColor, (Pixel) bd, - XtNinput, True, /* for WM_HINTS */ - 0); - XtDestroyWidget (toplevel); - toplevel = new; - XtRealizeWidget (toplevel); - window = XtWindow (toplevel); - } - else - { - XtVaSetValues (toplevel, - XtNmappedWhenManaged, False, - XtNinput, True, /* for WM_HINTS */ - 0); - XtRealizeWidget (toplevel); - window = XtWindow (toplevel); - - if (get_boolean_resource ("installColormap", "InstallColormap")) - { - cmap = XCreateColormap (dpy, window, - DefaultVisualOfScreen (XtScreen - (toplevel)), - AllocNone); - XSetWindowColormap (dpy, window, cmap); - } - else - { - cmap = DefaultColormap (dpy, DefaultScreen (dpy)); - } - } - - XtPopup (toplevel, XtGrabNone); - - XtVaSetValues(toplevel, XtNtitle, version, 0); - - /* For screenhack_handle_events(): select KeyPress, and - announce that we accept WM_DELETE_WINDOW. */ - { - XWindowAttributes xgwa; - XGetWindowAttributes (dpy, window, &xgwa); - XSelectInput (dpy, window, - xgwa.your_event_mask | KeyPressMask | KeyRelease | - ButtonPressMask | ExposureMask | FocusChangeMask ); - XChangeProperty (dpy, window, XA_WM_PROTOCOLS, XA_ATOM, 32, - PropModeReplace, - (unsigned char *) &XA_WM_DELETE_WINDOW, 1); - } - } - - XSetWindowBackground (dpy, window, - get_pixel_resource ("background", "Background", - dpy, cmap)); - XClearWindow (dpy, window); - - /* wait for it to be mapped */ - XIfEvent (dpy, &event, MapNotify_event_p, (XPointer) window); - - XSync (dpy, False); - - atexit(kb_restore_auto_repeat); - kb_disable_auto_repeat(true); - screenhack(); /* doesn't return */ - return 0; -} diff --git a/uisimulator/x11/screenhack.h b/uisimulator/x11/screenhack.h deleted file mode 100644 index 5c2e5321ac..0000000000 --- a/uisimulator/x11/screenhack.h +++ /dev/null @@ -1,52 +0,0 @@ -/* xscreensaver, Copyright (c) 1992-1997 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#ifndef __SCREENHACK_H__ -#define __SCREENHACK_H__ - -#include -#include - -#include "config-x11.h" - -#ifdef __hpux - /* Which of the ten billion standards does values.h belong to? - What systems always have it? */ -# include -#endif - -#include - -#include -#include -#include -#include - -#include "resources.h" -#include "visual.h" - -extern Bool mono_p; -extern char *progname; -extern char *progclass; -extern XrmDatabase db; -extern XrmOptionDescRec options []; -extern char *defaults []; -extern XtAppContext app; -extern Display* dpy; -extern Window window; - -extern void screenhack(); -extern int screenhack_handle_event(XEvent*, bool *); -extern int screenhack_handle_events(bool *); -extern void screen_redraw(); -extern void screen_resized(); - -#endif /* __SCREENHACK_H__ */ diff --git a/uisimulator/x11/sound.c b/uisimulator/x11/sound.c deleted file mode 100644 index 06d9c014ff..0000000000 --- a/uisimulator/x11/sound.c +++ /dev/null @@ -1,140 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2005 by Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "autoconf.h" - -#ifdef ROCKBOX_HAS_SIMSOUND /* play sound in sim enabled */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "sound.h" - -static bool playing = false; - -int sim_sound_init(void) -{ - int fd; - int pcmbits; - int rc; - int channels; - int rate; - - fd = open("/dev/dsp", O_WRONLY); - if(-1 == fd) - return 1; - - pcmbits = 16; - rc = ioctl(fd, SOUND_PCM_WRITE_BITS, &pcmbits); - rc = ioctl(fd, SOUND_PCM_READ_BITS, &pcmbits); - - channels = 2; /* Number of channels, 1=mono */ - rc = ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &channels); - rc = ioctl(fd, SOUND_PCM_READ_CHANNELS, &channels); - - rate = 44100; /* Yeah. sampling rate */ - rc = ioctl(fd, SOUND_PCM_WRITE_RATE, &rate); - rc = ioctl(fd, SOUND_PCM_READ_RATE, &rate); - - return fd; -} - -void sim_sound_play(int soundfd, char *buffer, long len) -{ - write(soundfd, buffer, len); -} - -void sound_playback_thread(void) -{ - int soundfd = sim_sound_init(); - unsigned char *buf; - long size; - - while(-1 == soundfd) - sleep(100000); /* wait forever, can't play sound! */ - - do { - - while(!sound_get_pcm) - /* TODO: fix a fine thread-synch mechanism here */ - usleep(10000); - - do { - sound_get_pcm(&buf, &size); - if(!size) { - sound_get_pcm = NULL; - break; - } - sim_sound_play(soundfd, (char *)buf, size); - usleep(10000); - } while(size); - - } while(1); - -} - -/* Stubs for PCM audio playback. */ -bool pcm_is_playing(void) -{ - return playing; -} - -void pcm_mute(bool state) -{ - (void)state; -} - -void pcm_play_pause(bool state) -{ - (void)state; -} - -bool pcm_is_paused(void) -{ - return false; -} - -void pcm_play_stop(void) -{ - playing = false; -} - -void pcm_init(void) -{ -} - -void (*sound_get_pcm)(unsigned char** start, long* size); -void pcm_play_data(void (*get_more)(unsigned char** start, long* size)) -{ - sound_get_pcm = get_more; - playing = true; -} - -long pcm_get_bytes_waiting(void) -{ - return 0; -} - -#endif /* ROCKBOX_HAS_SIMSOUND */ diff --git a/uisimulator/x11/sound.h b/uisimulator/x11/sound.h deleted file mode 100644 index 87499cac8e..0000000000 --- a/uisimulator/x11/sound.h +++ /dev/null @@ -1,22 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2005 by Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -void sound_playback_thread(void); - -extern void (*sound_get_pcm)(unsigned char** start, long* size); diff --git a/uisimulator/x11/sprintf.h b/uisimulator/x11/sprintf.h deleted file mode 100644 index 64a22f3c6e..0000000000 --- a/uisimulator/x11/sprintf.h +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -int rockbox_snprintf (char *buf, size_t size, const char *fmt, ...); -int rockbox_vsnprintf (char *buf, int size, const char *fmt, va_list ap); -int rockbox_fprintf (int fd, const char *fmt, ...); - -#ifndef NO_REDEFINES_PLEASE -#define snprintf rockbox_snprintf -#define vsnprintf rockbox_vsnprintf -#define fprintf rockbox_fprintf -#endif diff --git a/uisimulator/x11/thread.c b/uisimulator/x11/thread.c deleted file mode 100644 index 6d9139c35d..0000000000 --- a/uisimulator/x11/thread.c +++ /dev/null @@ -1,148 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "autoconf.h" - -#include -#include - -#include "kernel.h" -#include - -#ifdef ROCKBOX_HAS_SIMSOUND -#include "sound.h" -#endif - -long current_tick = 0; -extern void sim_tick_tasks(void); - -static void msleep(int msec) -{ - struct timeval delay; - - delay.tv_sec = msec / 1000; - delay.tv_usec = (msec % 1000) * 1000; - select(0, NULL, NULL, NULL, &delay); /* portable sub-second sleep */ -} - -/* - * This is not a target thread, so it does not fall under the 1 thread at a - * time thing. - */ -static void update_tick_thread() -{ - struct timeval start, now; - long new_tick; - - gettimeofday(&start, NULL); - while (1) - { - msleep(5); /* check twice per simulated target tick */ - gettimeofday(&now, NULL); - new_tick = (now.tv_sec - start.tv_sec) * HZ - + (now.tv_usec - start.tv_usec) / (1000000/HZ); - if (new_tick > current_tick) - { - sim_tick_tasks(); - current_tick = new_tick; - } - } -} - -/* - * We emulate the target threads by using pthreads. We have a mutex that only - * allows one thread at a time to execute. It forces each thread to yield() - * for the other(s) to run. - */ - -pthread_mutex_t mp; - -void init_threads(void) -{ - pthread_t tick_tid; - - pthread_mutex_init(&mp, NULL); - /* get mutex to only allow one thread running at a time */ - pthread_mutex_lock(&mp); - - /* start a tick thread */ - pthread_create(&tick_tid, NULL, (void *(*)(void *)) update_tick_thread, - NULL); - -#ifdef ROCKBOX_HAS_SIMSOUND /* start thread that plays PCM data */ - { - pthread_t sound_tid; - pthread_create(&sound_tid, NULL, - (void *(*)(void *)) sound_playback_thread, - NULL); - } -#endif - -} -/* - int pthread_create(pthread_t *new_thread_ID, - const pthread_attr_t *attr, - void * (*start_func)(void *), void *arg); -*/ - -void yield(void) -{ - pthread_mutex_unlock(&mp); /* return */ - msleep(1); /* prevent busy loop */ - pthread_mutex_lock(&mp); /* get it again */ -} - -void newfunc(void (*func)(void)) -{ - pthread_mutex_lock(&mp); - func(); - pthread_mutex_unlock(&mp); -} - - -int create_thread(void (*fp)(void), void* sp, int stk_size) -{ - pthread_t tid; - int i; - int error; - - /* we really don't care about these arguments */ - (void)sp; - (void)stk_size; - error = pthread_create(&tid, - NULL, /* default attributes please */ - (void *(*)(void *)) newfunc, /* function to start */ - fp /* start argument */); - if(0 != error) - fprintf(stderr, "Couldn't run thread number %d, errno %d\n", i, error); - else - fprintf(stderr, "Thread %ld is running\n", (long)tid); - - yield(); - - return error; -} - -void sim_sleep(int ticks) -{ - pthread_mutex_unlock(&mp); /* return */ - msleep((1000/HZ) * ticks); - pthread_mutex_lock(&mp); /* get it again */ -} - diff --git a/uisimulator/x11/timefuncs.h b/uisimulator/x11/timefuncs.h deleted file mode 100644 index de17fcdc73..0000000000 --- a/uisimulator/x11/timefuncs.h +++ /dev/null @@ -1,7 +0,0 @@ -#include -#include - -/* struct tm defined */ -struct tm *get_time(void); -int set_time(const struct tm *tm); -bool valid_time(const struct tm *tm); diff --git a/uisimulator/x11/uibasic.c b/uisimulator/x11/uibasic.c deleted file mode 100644 index 57870c39d3..0000000000 --- a/uisimulator/x11/uibasic.c +++ /dev/null @@ -1,277 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "config.h" -#include "screenhack.h" - -#include "version.h" - -#include "lcd-x11.h" -#include "lcd-playersim.h" - -#define MAX(x,y) ((x)>(y)?(x):(y)) -#define MIN(x,y) ((x)<(y)?(x):(y)) - -#define PROGNAME "rockboxui" - -/* -- -- */ - -GC draw_gc; -static Colormap cmap; - -int display_zoom=1; -bool lcd_display_redraw=true; - -XrmOptionDescRec options [] = { - /* { "-subtractive", ".additive", XrmoptionNoArg, "false" }, */ - { "-server", ".server", XrmoptionSepArg, 0 }, - { "-help", ".help", XrmoptionNoArg, "false" }, - { 0, 0, 0, 0 } -}; -char *progclass = "rockboxui"; - -#ifdef IRIVER_H100_SERIES -#define BGCOLOR "lightblue" -#elif defined ARCHOS_GMINI120 -#define BGCOLOR "royalblue" -#else -#define BGCOLOR "lightgreen" -#endif - - -char *defaults [] = { - ".background: " BGCOLOR, - ".foreground: black", - "*help: false", - 0 -}; - -static XColor getcolor[4]; - -/* set a range of bitmap indices to a gradient from startcolour to endcolour - inherited from the win32 sim code by Jens Arnold */ -static void lcdcolors(int index, int count, XColor *start, XColor *end) -{ - int i; - count--; - for (i = 0; i <= count; i++) - { - getcolor[i+index].red = start->red - + (end->red - start->red) * i / count; - getcolor[i+index].green = start->green - + (end->green - start->green) * i / count; - getcolor[i+index].blue = start->blue - + (end->blue - start->blue) * i / count; - XAllocColor (dpy, cmap, &getcolor[i+index]); - } -} - - -void init_window () -{ - XGCValues gcv; - XWindowAttributes xgwa; - - XGetWindowAttributes (dpy, window, &xgwa); - XColor bg; - XColor fg; - - cmap = xgwa.colormap; - - XParseColor (dpy, cmap, BGCOLOR, &bg); - XParseColor (dpy, cmap, "black", &fg); - getcolor[0] = bg; - getcolor[1] = bg; - getcolor[2] = bg; - getcolor[3] = bg; - - lcdcolors(0, 4, &bg, &fg); - -#if 0 - for(i=0; i<4; i++) { - printf("color %d: %d %d %d\n", - i, - getcolor[i].red, - getcolor[i].green, - getcolor[i].blue); - } -#endif - - gcv.function = GXxor; - gcv.foreground = getcolor[3].pixel; - draw_gc = XCreateGC (dpy, window, GCForeground, &gcv); - - screen_resized(LCD_WIDTH, LCD_HEIGHT); -} - -void screen_resized(int width, int height) -{ - int maxx, maxy; - maxx = width; - maxy = height; - - XtAppLock(app); - XSetForeground(dpy, draw_gc, getcolor[0].pixel); - - XFillRectangle(dpy, window, draw_gc, 0, 0, width*display_zoom, - height*display_zoom); - XtAppUnlock(app); - screen_redraw(); -} - -void drawrect(int color, int x1, int y1, int x2, int y2) -{ - XtAppLock(app); - XSetForeground(dpy, draw_gc, getcolor[color].pixel); - XFillRectangle(dpy, window, draw_gc, x1*display_zoom, y1*display_zoom, - x2*display_zoom, y2*display_zoom); - XtAppUnlock(app); -} - -static void help(void) -{ - printf(PROGNAME " " ROCKBOXUI_VERSION " " __DATE__ "\n" - "usage: " PROGNAME "\n"); -} - -static void drawline(int color, int x1, int y1, int x2, int y2) -{ - XtAppLock(app); - XSetForeground(dpy, draw_gc, getcolor[color].pixel); - - XDrawLine(dpy, window, draw_gc, - (int)(x1*display_zoom), - (int)(y1*display_zoom), - (int)(x2*display_zoom), - (int)(y2*display_zoom)); - XtAppUnlock(app); -} - -void dots(int *colors, struct coordinate *points, int count) -{ - int color; - XtAppLock(app); - - while (count--) { - color = colors[count]; - XSetForeground(dpy, draw_gc, getcolor[color].pixel); - XFillRectangle(dpy, window, draw_gc, - points[count].x*display_zoom, - points[count].y*display_zoom, - display_zoom, - display_zoom); - } - XtAppUnlock(app); -} - -/* this is where the applicaton starts */ -extern void app_main(void); - -void screenhack() -{ - Bool helpme; - - /* This doesn't work, but I don't know why (Daniel 1999-12-01) */ - helpme = get_boolean_resource ("help", "Boolean"); - if(helpme) - help(); - - printf(PROGNAME " " ROCKBOXUI_VERSION " (" __DATE__ ")\n"); - - init_window(); - - screen_redraw(); - - app_main(); -} - -/* used for the player sim */ -void drawdots(int color, struct coordinate *points, int count) -{ - XtAppLock(app); - XSetForeground(dpy, draw_gc, getcolor[color==0?0:3].pixel); - - while (count--) { - XFillRectangle(dpy, window, draw_gc, - points[count].x*display_zoom, - points[count].y*display_zoom, - display_zoom, - display_zoom); - } - XtAppUnlock(app); -} - -/* used for the player sim */ -void drawrectangles(int color, struct rectangle *points, int count) -{ - XtAppLock(app); - - XSetForeground(dpy, draw_gc, getcolor[color==0?0:3].pixel); - while (count--) { - XFillRectangle(dpy, window, draw_gc, - points[count].x*display_zoom, - points[count].y*display_zoom, - points[count].width*display_zoom, - points[count].height*display_zoom); - } - XtAppUnlock(app); -} - - -void screen_redraw() -{ - /* draw a border around the screen */ -#define X1 0 -#define Y1 0 -#define X2 (LCD_WIDTH + 2*MARGIN_X - 1) -#define Y2 (LCD_HEIGHT + 2*MARGIN_Y - 1) - - drawline(1, X1, Y1, X2, Y1); - drawline(1, X2, Y1, X2, Y2); - drawline(1, X1, Y2, X2, Y2); - drawline(1, X1, Y1, X1, Y2); - lcd_display_redraw = true; - lcd_update(); -#ifdef LCD_REMOTE_HEIGHT - /* draw a border around the remote LCD screen */ -#define RX1 0 -#define RY1 (Y2 + 1) -#define RX2 (LCD_REMOTE_WIDTH + 2*MARGIN_X - 1) -#define RY2 (RY1 + LCD_REMOTE_HEIGHT + 2*MARGIN_Y - 1) - - drawline(1, RX1, RY1, RX2, RY1); - drawline(1, RX2, RY1, RX2, RY2); - drawline(1, RX1, RY2, RX2, RY2); - drawline(1, RX1, RY1, RX1, RY2); - lcd_display_redraw = true; - lcd_remote_update(); -#endif -} diff --git a/uisimulator/x11/utils.h b/uisimulator/x11/utils.h deleted file mode 100644 index 5045d4aa6d..0000000000 --- a/uisimulator/x11/utils.h +++ /dev/null @@ -1,22 +0,0 @@ -/* xscreensaver, Copyright (c) 1997 Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#ifdef HAVE_CONFIG_H -# include "config-x11.h" -#endif - -#include -#include -#include -#include - -#include -#include diff --git a/uisimulator/x11/version.h b/uisimulator/x11/version.h deleted file mode 100644 index 1d40c08781..0000000000 --- a/uisimulator/x11/version.h +++ /dev/null @@ -1 +0,0 @@ -#define ROCKBOXUI_VERSION "0.2" diff --git a/uisimulator/x11/visual.c b/uisimulator/x11/visual.c deleted file mode 100644 index 57b73151c5..0000000000 --- a/uisimulator/x11/visual.c +++ /dev/null @@ -1,544 +0,0 @@ -/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999 - * by Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -/* This file contains some code for intelligently picking the best visual - (where "best" is biased in the direction of either: high color counts; - or: having writable color cells...) - */ - -#include "utils.h" -#include "resources.h" /* for get_string_resource() */ -#include "visual.h" - -#include - -extern char *progname; - - -#ifndef isupper -# define isupper(c) ((c) >= 'A' && (c) <= 'Z') -#endif -#ifndef _tolower -# define _tolower(c) ((c) - 'A' + 'a') -#endif - - -static Visual *pick_best_visual (Screen *, Bool, Bool); -static Visual *pick_mono_visual (Screen *); -static Visual *pick_best_visual_of_class (Screen *, int); -static Visual *pick_best_gl_visual (Screen *); -static Visual *id_to_visual (Screen *, int); -static Visual *id_to_visual (Screen *screen, int id); - - -#define DEFAULT_VISUAL -1 -#define BEST_VISUAL -2 -#define MONO_VISUAL -3 -#define GRAY_VISUAL -4 -#define COLOR_VISUAL -5 -#define GL_VISUAL -6 -#define SPECIFIC_VISUAL -7 - -Visual * -get_visual (Screen *screen, const char *string, Bool prefer_writable_cells, - Bool verbose_p) -{ - char *v = (string ? strdup(string) : 0); - char c, *tmp; - int vclass; - unsigned long id; - Visual *result = 0; - - if (v) - for (tmp = v; *tmp; tmp++) - if (isupper (*tmp)) *tmp = _tolower (*tmp); - - if (!v || !*v) vclass = BEST_VISUAL; - else if (!strcmp (v, "default")) vclass = DEFAULT_VISUAL; - else if (!strcmp (v, "best")) vclass = BEST_VISUAL; - else if (!strcmp (v, "mono")) vclass = MONO_VISUAL; - else if (!strcmp (v, "monochrome")) vclass = MONO_VISUAL; - else if (!strcmp (v, "gray")) vclass = GRAY_VISUAL; - else if (!strcmp (v, "grey")) vclass = GRAY_VISUAL; - else if (!strcmp (v, "color")) vclass = COLOR_VISUAL; - else if (!strcmp (v, "gl")) vclass = GL_VISUAL; - else if (!strcmp (v, "staticgray")) vclass = StaticGray; - else if (!strcmp (v, "staticcolor")) vclass = StaticColor; - else if (!strcmp (v, "truecolor")) vclass = TrueColor; - else if (!strcmp (v, "grayscale")) vclass = GrayScale; - else if (!strcmp (v, "greyscale")) vclass = GrayScale; - else if (!strcmp (v, "pseudocolor")) vclass = PseudoColor; - else if (!strcmp (v, "directcolor")) vclass = DirectColor; - else if (1 == sscanf (v, " %ld %c", &id, &c)) vclass = SPECIFIC_VISUAL; - else if (1 == sscanf (v, " 0x%lx %c", &id, &c)) vclass = SPECIFIC_VISUAL; - else - { - fprintf (stderr, "%s: unrecognized visual \"%s\".\n", progname, v); - vclass = DEFAULT_VISUAL; - } - - if (vclass == DEFAULT_VISUAL) - result = DefaultVisualOfScreen (screen); - else if (vclass == BEST_VISUAL) - result = pick_best_visual (screen, prefer_writable_cells, False); - else if (vclass == MONO_VISUAL) - { - result = pick_mono_visual (screen); - if (!result && verbose_p) - fprintf (stderr, "%s: no monochrome visuals.\n", progname); - } - else if (vclass == GRAY_VISUAL) - { - if (prefer_writable_cells) - result = pick_best_visual_of_class (screen, GrayScale); - if (!result) - result = pick_best_visual_of_class (screen, StaticGray); - if (!result) - result = pick_best_visual_of_class (screen, GrayScale); - if (!result && verbose_p) - fprintf (stderr, "%s: no GrayScale or StaticGray visuals.\n", - progname); - } - else if (vclass == COLOR_VISUAL) - { - int class; - /* First see if the default visual will do. */ - result = DefaultVisualOfScreen (screen); - class = visual_class(screen, result); - if (class != TrueColor && - class != PseudoColor && - class != DirectColor && - class != StaticColor) - result = 0; - if (result && visual_depth(screen, result) <= 1) - result = 0; - - /* Else, find the best non-default color visual */ - if (!result) - result = pick_best_visual (screen, prefer_writable_cells, True); - - if (!result && verbose_p) - fprintf (stderr, "%s: no color visuals.\n", progname); - } - else if (vclass == GL_VISUAL) - { - Visual *visual = pick_best_gl_visual (screen); - if (visual) - result = visual; - else if (verbose_p) - fprintf (stderr, "%s: no visual suitable for GL.\n", progname); - } - else if (vclass == SPECIFIC_VISUAL) - { - result = id_to_visual (screen, id); - if (!result && verbose_p) - fprintf (stderr, "%s: no visual with id 0x%x.\n", progname, - (unsigned int) id); - } - else - { - Visual *visual = pick_best_visual_of_class (screen, vclass); - if (visual) - result = visual; - else if (verbose_p) - fprintf (stderr, "%s: no visual of class %s.\n", progname, v); - } - - if (v) free (v); - return result; -} - -Visual * -get_visual_resource (Screen *screen, char *name, char *class, - Bool prefer_writable_cells) -{ - char *string = get_string_resource (name, class); - Visual *v = get_visual (screen, string, prefer_writable_cells, True); - if (string) - free(string); - if (v) - return v; - else - return DefaultVisualOfScreen (screen); -} - - -static Visual * -pick_best_visual (Screen *screen, Bool prefer_writable_cells, Bool color_only) -{ - Visual *visual; - - if (!prefer_writable_cells) - { - /* If we don't prefer writable cells, then the "best" visual is the one - on which we can allocate the largest range and number of colors. - - Therefore, a TrueColor visual which is at least 16 bits deep is best. - (The assumption here being that a TrueColor of less than 16 bits is - really just a PseudoColor visual with a pre-allocated color cube.) - - The next best thing is a PseudoColor visual of any type. After that - come the non-colormappable visuals, and non-color visuals. - */ - if ((visual = pick_best_visual_of_class (screen, TrueColor)) && - visual_depth (screen, visual) >= 16) - return visual; - } - -#define TRY_CLASS(CLASS) \ - if ((visual = pick_best_visual_of_class (screen, CLASS)) && \ - (!color_only || visual_depth(screen, visual) > 1)) \ - return visual - TRY_CLASS(PseudoColor); - TRY_CLASS(TrueColor); - TRY_CLASS(DirectColor); - TRY_CLASS(StaticColor); - if (!color_only) - { - TRY_CLASS(GrayScale); - TRY_CLASS(StaticGray); - } -#undef TRY_CLASS - - visual = DefaultVisualOfScreen (screen); - if (!color_only || visual_depth(screen, visual) > 1) - return visual; - else - return 0; -} - -static Visual * -pick_mono_visual (Screen *screen) -{ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count; - - vi_in.depth = 1; - vi_in.screen = screen_number (screen); - vi_out = XGetVisualInfo (dpy, (VisualDepthMask | VisualScreenMask), - &vi_in, &out_count); - if (vi_out) - { - Visual *v = (out_count > 0 ? vi_out [0].visual : 0); - if (v && vi_out[0].depth != 1) - v = 0; - XFree ((char *) vi_out); - return v; - } - else - return 0; -} - - -static Visual * -pick_best_visual_of_class (Screen *screen, int visual_class) -{ - /* The best visual of a class is the one which on which we can allocate - the largest range and number of colors, which means the one with the - greatest depth and number of cells. - - (But actually, for XDaliClock, all visuals of the same class are - probably equivalent - either we have writable cells or we don't.) - */ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count; - - vi_in.class = visual_class; - vi_in.screen = screen_number (screen); - vi_out = XGetVisualInfo (dpy, (VisualClassMask | VisualScreenMask), - &vi_in, &out_count); - if (vi_out) - { - /* choose the 'best' one, if multiple */ - int i, best; - Visual *visual; -/* for (i = 0, best = 0; i < out_count; i++) */ - for (i = out_count-1, best = i; i >= 0; i--) /* go backwards */ - /* It's better if it's deeper, or if it's the same depth with - more cells (does that ever happen? Well, it could...) */ - if ((vi_out [i].depth > vi_out [best].depth) || - ((vi_out [i].depth == vi_out [best].depth) && - (vi_out [i].colormap_size > vi_out [best].colormap_size))) - best = i; - visual = (best < out_count ? vi_out [best].visual : 0); - XFree ((char *) vi_out); - return visual; - } - else - return 0; -} - -static Visual * -pick_best_gl_visual (Screen *screen) -{ - /* The best visual for GL is a TrueColor visual that is half as deep as - the screen. If such a thing doesn't exist, then TrueColor is best. - Failing that, the deepest available color visual is best. - - Compare this function to get_gl_visual() in visual-gl.c. - This function tries to find the best GL visual using Xlib calls, - whereas that function does the same thing using GLX calls. - */ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count; - Visual *result = 0; - - int ndepths = 0; - int *depths = XListDepths (dpy, screen_number (screen), &ndepths); - int screen_depth = depths[ndepths]; - XFree (depths); - - vi_in.class = TrueColor; - vi_in.screen = screen_number (screen); - vi_in.depth = screen_depth / 2; - vi_out = XGetVisualInfo (dpy, (VisualClassMask | VisualScreenMask | - VisualDepthMask), - &vi_in, &out_count); - if (out_count > 0) - result = vi_out[0].visual; - - if (vi_out) - XFree ((char *) vi_out); - - if (!result && screen_depth > 24) - { - /* If it's a 32-deep screen and we didn't find a depth-16 visual, - see if there's a depth-12 visual. */ - vi_in.class = TrueColor; - vi_in.screen = screen_number (screen); - vi_in.depth = 12; - vi_out = XGetVisualInfo (dpy, (VisualClassMask | VisualScreenMask | - VisualDepthMask), - &vi_in, &out_count); - if (out_count > 0) - result = vi_out[0].visual; - } - - if (!result) - /* No half-depth TrueColor? Ok, try for any TrueColor (the deepest.) */ - result = pick_best_visual_of_class (screen, TrueColor); - - if (!result) - /* No TrueColor? Ok, try for anything. */ - result = pick_best_visual (screen, False, False); - - return result; -} - - -static Visual * -id_to_visual (Screen *screen, int id) -{ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count; - vi_in.screen = screen_number (screen); - vi_in.visualid = id; - vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualIDMask), - &vi_in, &out_count); - if (vi_out) - { - Visual *v = vi_out[0].visual; - XFree ((char *) vi_out); - return v; - } - return 0; -} - -int -visual_depth (Screen *screen, Visual *visual) -{ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count, d; - vi_in.screen = screen_number (screen); - vi_in.visualid = XVisualIDFromVisual (visual); - vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask, - &vi_in, &out_count); - if (! vi_out) abort (); - d = vi_out [0].depth; - XFree ((char *) vi_out); - return d; -} - - -#if 0 -/* You very probably don't want to be using this. - Pixmap depth doesn't refer to the depths of pixmaps, but rather, to - the depth of protocol-level on-the-wire pixmap data, that is, XImages. - To get this info, you should be looking at XImage->bits_per_pixel - instead. (And allocating the data for your XImage structures by - multiplying ximage->bytes_per_line by ximage->height.) - */ -int -visual_pixmap_depth (Screen *screen, Visual *visual) -{ - Display *dpy = DisplayOfScreen (screen); - int vdepth = visual_depth (screen, visual); - int pdepth = vdepth; - int i, pfvc = 0; - XPixmapFormatValues *pfv = XListPixmapFormats (dpy, &pfvc); - - /* Return the first matching depth in the pixmap formats. If there are no - matching pixmap formats (which shouldn't be able to happen at all) then - return the visual depth instead. */ - for (i = 0; i < pfvc; i++) - if (pfv[i].depth == vdepth) - { - pdepth = pfv[i].bits_per_pixel; - break; - } - if (pfv) - XFree (pfv); - return pdepth; -} -#endif /* 0 */ - - -int -visual_class (Screen *screen, Visual *visual) -{ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count, c; - vi_in.screen = screen_number (screen); - vi_in.visualid = XVisualIDFromVisual (visual); - vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask, - &vi_in, &out_count); - if (! vi_out) abort (); - c = vi_out [0].class; - XFree ((char *) vi_out); - return c; -} - -Bool -has_writable_cells (Screen *screen, Visual *visual) -{ - switch (visual_class (screen, visual)) - { - case GrayScale: /* Mappable grays. */ - case PseudoColor: /* Mappable colors. */ - return True; - case StaticGray: /* Fixed grays. */ - case TrueColor: /* Fixed colors. */ - case StaticColor: /* (What's the difference again?) */ - case DirectColor: /* DirectColor visuals are like TrueColor, but have - three colormaps - one for each component of RGB. - Screw it. */ - return False; - default: - abort(); - return False; - } -} - -void -describe_visual (FILE *f, Screen *screen, Visual *visual, Bool private_cmap_p) -{ - char n[10]; - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count; - vi_in.screen = screen_number (screen); - vi_in.visualid = XVisualIDFromVisual (visual); - vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualIDMask), - &vi_in, &out_count); - if (! vi_out) abort (); - if (private_cmap_p) - sprintf(n, "%3d", vi_out->colormap_size); - else - strcpy(n, "default"); - - fprintf (f, "0x%02x (%s depth: %2d, cmap: %s)\n", - (unsigned int) vi_out->visualid, - (vi_out->class == StaticGray ? "StaticGray, " : - vi_out->class == StaticColor ? "StaticColor," : - vi_out->class == TrueColor ? "TrueColor, " : - vi_out->class == GrayScale ? "GrayScale, " : - vi_out->class == PseudoColor ? "PseudoColor," : - vi_out->class == DirectColor ? "DirectColor," : - "UNKNOWN: "), - vi_out->depth, n); - XFree ((char *) vi_out); -} - -int -screen_number (Screen *screen) -{ - Display *dpy = DisplayOfScreen (screen); - int i; - for (i = 0; i < ScreenCount (dpy); i++) - if (ScreenOfDisplay (dpy, i) == screen) - return i; - abort (); - return 0; -} - -int -visual_cells (Screen *screen, Visual *visual) -{ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - int out_count, c; - vi_in.screen = screen_number (screen); - vi_in.visualid = XVisualIDFromVisual (visual); - vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask, - &vi_in, &out_count); - if (! vi_out) abort (); - c = vi_out [0].colormap_size; - XFree ((char *) vi_out); - return c; -} - -Visual * -find_similar_visual(Screen *screen, Visual *old_visual) -{ - Display *dpy = DisplayOfScreen (screen); - XVisualInfo vi_in, *vi_out; - Visual *result = 0; - int out_count; - - vi_in.screen = screen_number (screen); - vi_in.class = visual_class (screen, old_visual); - vi_in.depth = visual_depth (screen, old_visual); - - /* Look for a visual of the same class and depth. - */ - vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualClassMask | - VisualDepthMask), - &vi_in, &out_count); - if (vi_out && out_count > 0) - result = vi_out[0].visual; - if (vi_out) XFree (vi_out); - vi_out = 0; - - /* Failing that, look for a visual of the same class. - */ - if (!result) - { - vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualClassMask), - &vi_in, &out_count); - if (vi_out && out_count > 0) - result = vi_out[0].visual; - if (vi_out) XFree (vi_out); - vi_out = 0; - } - - /* Failing that, return the default visual. */ - if (!result) - result = DefaultVisualOfScreen (screen); - - return result; -} diff --git a/uisimulator/x11/visual.h b/uisimulator/x11/visual.h deleted file mode 100644 index dd45708ea0..0000000000 --- a/uisimulator/x11/visual.h +++ /dev/null @@ -1,29 +0,0 @@ -/* xscreensaver, Copyright (c) 1993-1999 by Jamie Zawinski - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#ifndef __VISUAL_H__ -#define __VISUAL_H__ - -extern Visual *get_visual (Screen *, const char *name, Bool, Bool); -extern Visual *get_visual_resource (Screen *, char *, char *, Bool); -extern int visual_depth (Screen *, Visual *); -/* extern int visual_pixmap_depth (Screen *, Visual *); */ -extern int visual_class (Screen *, Visual *); -extern int visual_cells (Screen *, Visual *); -extern int screen_number (Screen *); -extern Visual *find_similar_visual (Screen *, Visual *old); -extern void describe_visual (FILE *f, Screen *, Visual *, Bool private_cmap_p); -extern Visual *get_overlay_visual (Screen *, unsigned long *pixel_return); -extern Bool has_writable_cells (Screen *screen, Visual *visual); - -Visual *get_gl_visual (Screen *screen); - -#endif /* __VISUAL_H__ */ diff --git a/uisimulator/x11/vroot.h b/uisimulator/x11/vroot.h deleted file mode 100644 index 83c7ba9acc..0000000000 --- a/uisimulator/x11/vroot.h +++ /dev/null @@ -1,126 +0,0 @@ -/*****************************************************************************/ -/** Copyright 1991 by Andreas Stolcke **/ -/** Copyright 1990 by Solbourne Computer Inc. **/ -/** Longmont, Colorado **/ -/** **/ -/** All Rights Reserved **/ -/** **/ -/** Permission to use, copy, modify, and distribute this software and **/ -/** its documentation for any purpose and without fee is hereby **/ -/** granted, provided that the above copyright notice appear in all **/ -/** copies and that both that copyright notice and this permis- **/ -/** sion notice appear in supporting documentation, and that the **/ -/** name of Solbourne not be used in advertising **/ -/** in publicity pertaining to distribution of the software without **/ -/** specific, written prior permission. **/ -/** **/ -/** ANDREAS STOLCKE AND SOLBOURNE COMPUTER INC. DISCLAIMS ALL WARRANTIES **/ -/** WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF **/ -/** MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ANDREAS STOLCKE **/ -/** OR SOLBOURNE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL **/ -/** DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA **/ -/** OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER **/ -/** TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE **/ -/** OR PERFORMANCE OF THIS SOFTWARE. **/ -/*****************************************************************************/ -/* - * vroot.h -- Virtual Root Window handling header file - * - * This header file redefines the X11 macros RootWindow and DefaultRootWindow, - * making them look for a virtual root window as provided by certain `virtual' - * window managers like swm and tvtwm. If none is found, the ordinary root - * window is returned, thus retaining backward compatibility with standard - * window managers. - * The function implementing the virtual root lookup remembers the result of - * its last invocation to avoid overhead in the case of repeated calls - * on the same display and screen arguments. - * The lookup code itself is taken from Tom LaStrange's ssetroot program. - * - * Most simple root window changing X programs can be converted to using - * virtual roots by just including - * - * #include - * - * after all the X11 header files. It has been tested on such popular - * X clients as xphoon, xfroot, xloadimage, and xaqua. - * It also works with the core clients xprop, xwininfo, xwd, and editres - * (and is necessary to get those clients working under tvtwm). - * It does NOT work with xsetroot; get the xsetroot replacement included in - * the tvtwm distribution instead. - * - * Andreas Stolcke , 9/7/90 - * - replaced all NULL's with properly cast 0's, 5/6/91 - * - free children list (suggested by Mark Martin ), 5/16/91 - * - include X11/Xlib.h and support RootWindowOfScreen, too 9/17/91 - */ - -#ifndef _VROOT_H_ -#define _VROOT_H_ - -#if !defined(lint) && !defined(SABER) -static const char vroot_rcsid[] = "#Id: vroot.h,v 1.4 1991/09/30 19:23:16 stolcke Exp stolcke #"; -#endif - -#include -#include -#include - -static Window -#ifdef __STDC__ /* ANSIfication added by jwz, to avoid superfluous warnings. */ -VirtualRootWindowOfScreen(Screen *screen) -#else /* !__STDC__ */ -VirtualRootWindowOfScreen(screen) Screen *screen; -#endif /* !__STDC__ */ -{ - static Screen *save_screen = (Screen *)0; - static Window root = (Window)0; - - if (screen != save_screen) { - Display *dpy = DisplayOfScreen(screen); - Atom __SWM_VROOT = None; - unsigned int i; - Window rootReturn, parentReturn, *children; - unsigned int numChildren; - - root = RootWindowOfScreen(screen); - - /* go look for a virtual root */ - __SWM_VROOT = XInternAtom(dpy, "__SWM_VROOT", False); - if (XQueryTree(dpy, root, &rootReturn, &parentReturn, - &children, &numChildren)) { - for (i = 0; i < numChildren; i++) { - Atom actual_type; - int actual_format; - unsigned long nitems, bytesafter; - Window *newRoot = (Window *)0; - - if (XGetWindowProperty(dpy, children[i], - __SWM_VROOT, 0, 1, False, XA_WINDOW, - &actual_type, &actual_format, - &nitems, &bytesafter, - (unsigned char **) &newRoot) == Success - && newRoot) { - root = *newRoot; - break; - } - } - if (children) - XFree((char *)children); - } - - save_screen = screen; - } - - return root; -} - -#undef RootWindowOfScreen -#define RootWindowOfScreen(s) VirtualRootWindowOfScreen(s) - -#undef RootWindow -#define RootWindow(dpy,screen) VirtualRootWindowOfScreen(ScreenOfDisplay(dpy,screen)) - -#undef DefaultRootWindow -#define DefaultRootWindow(dpy) VirtualRootWindowOfScreen(DefaultScreenOfDisplay(dpy)) - -#endif /* _VROOT_H_ */ diff --git a/uisimulator/x11/xmu.h b/uisimulator/x11/xmu.h deleted file mode 100644 index 48084f747e..0000000000 --- a/uisimulator/x11/xmu.h +++ /dev/null @@ -1,14 +0,0 @@ -/* This file contains compatibility routines for systems without Xmu. - * You would be better served by installing Xmu on your machine or - * yelling at your vendor to ship it. - */ - -#ifndef __XMU_H__ -#define __XMU_H__ - -#include -#include - -int XmuPrintDefaultErrorMessage (Display *dpy, XErrorEvent *event, FILE *fp); - -#endif /* __XMU_H__ */ -- cgit v1.2.3