/* This is free software. See LICENSE for terms. * Copyright 2004 - 2015, Patricia Kirk. */ #ifndef SALMON_H #define SALMON_H #include <X11/xpm.h> #include "config.h" #ifndef WITH_SUID #define WITH_SUID 0 #endif /* WITH_SUID */ #ifndef WITH_COMMANDS #define WITH_COMMANDS 0 #endif /* WITH_COMMANDS */ #ifndef WITH_GRAPHICS #define WITH_GRAPHICS 0 #endif /* WITH_GRAPHICS */ #ifndef WITH_REMEXEC #define WITH_REMEXEC 0 #endif /* WITH_REMEXEC */ #ifndef WITH_TIMESYNC #define WITH_TIMESYNC 0 #endif /* WITH_TIMESYNC */ #ifndef WITH_STEPEXEC #define WITH_STEPEXEC 0 #endif /* WITH_STEPEXEC */ #ifndef WITH_DETACH #define WITH_DETACH 0 #endif /* WITH_DETACH */ #ifndef WITH_CONTROL #define WITH_CONTROL 0 #endif /* WITH_CONTROL */ #define DATADIR DATA_ROOT_DIR"/salmon" #define CFGFILE CFG_DIR"/salmon.cfg" #define TEMPDIR "/tmp" /* Default helper executables including AUDIOCMD. * Any required arguments are separated from the * command before the locate database is used to * find the executable. */ #define UNZIP "gunzip <" #define RESIZE "mogrify -colors 20 -scale" #define TILER "montage -geometry" #define TALKER "flite" #if defined(__FreeBSD__) #define MIXER "mixer" #elif defined(__NetBSD__) || defined(__OpenBSD__) #define MIXER "mixerctl" #elif defined(__linux__) #define MIXER "aumix" #endif /* __FreeBSD__ */ #if defined(__FreeBSD__) #define AUDIOCMD "cat" #define AUDIODEV "/dev/dsp0" #define BEEPER AUDIODEV #elif defined(__NetBSD__) #define AUDIOCMD "cat" #define AUDIODEV "/dev/sound" #define BEEPER AUDIODEV #elif defined(__OpenBSD__) #define AUDIOCMD "aucat -r 4000 -e s8 -i" #define AUDIODEV "" #define BEEPER "/dev/audio" #elif defined(__linux__) #define AUDIOCMD "cat" #define AUDIODEV "/dev/dsp" #define BEEPER AUDIODEV #endif /* __FreeBSD__ */ #define LODYNAMIC 49152 /* Lowest dynamic/private port. */ #define HIDYNAMIC 65535 /* highest dynamic/private port. */ /* These definitions are the sizes and offsets in the * forexpm pixmap. There are ten characters in * each row so the ascii number of the character %10 * and /10 point to the character in the pixmap. */ #define CHARWIDTH 5 #define CHARHEIGHT 7 #define ASCEN 30 /* up arrow, used as an offset into forexpm characters */ #define DSCEN 31 /* down arrow */ #define SPACE 32 #define DASH 45 #define SLASH 47 #define AZERO 48 /* ascii zero, used as an offset into forexpm digits */ #define ANINE 57 #define GIGS 71 #define KEYS 75 #define MEGS 77 #define PIPE 124 /* vertical bar */ #define DEG 127 /* degrees */ /* The default background and foreground colors, the * reduction amount for the foreground color and the * positions in the colors array. */ #define BACKGROUND "#000000" #define FOREGROUND "#ff8c69" #define SHUTDOWN "#fFfF01010101" /* shutdown notice color */ #define LITE 1.00 /* the brighter color in forexpm */ #define DARK 0.55 /* the darker color in forexpm */ #define BACK 0 #define FORE 1 #define FALSE 0 #define TRUE 1 #define ISIZE 64 #define SHOWBUF 20 #define SMALBUF 129 #define BUFSIZE 1025 #define BUFPLUS BUFSIZE * 2 #define SWAPDEVICES 100 /* maximum number of devices or files */ #define MAXTRIES 1 << 26 /* maximum tries to find a random port 67108864 */ #define CELSIUS 2732 /* Zero degrees Celsius is ~273.16 kelvins */ #if defined(__NetBSD__) #define GETOPT getopt_long #else #define GETOPT getopt_long_only #endif #define FREE(a) { \ if (a) { \ free(a); \ (a) = NULL; \ } \ } #define STRDUP(a,b) { \ FREE(a); \ if (strlen((b)) >= BUFSIZE) \ gdayMate("strdup() argument size", NULL); \ if (!((a) = strdup(b))) \ gdayMate("strdup() failed", (b)); \ } #define CALLOC(a,b,c,d) { \ if (!(a = calloc(b, c))) \ allocFailed(d); \ } #define DAEMON (!g.running || (g.daemonize && getpid() == g.ppid)) #endif /* SALMON_H */