X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=usounds.c;fp=usounds.c;h=aabb9eef35dbeb7b4ecdffe74b5b663d871f5d95;hb=14bd89bc510fb6ff864b235fbac39044079f131f;hp=0000000000000000000000000000000000000000;hpb=dff5f0dd4004751e4453c6efa405f2c0c29b562e;p=xboard.git diff --git a/usounds.c b/usounds.c new file mode 100644 index 0000000..aabb9ee --- /dev/null +++ b/usounds.c @@ -0,0 +1,176 @@ +/* + * usounds.c -- sound handling for XBoard (through external player) + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, + * Massachusetts. + * + * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, + * 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * 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 permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL 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. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard + * distributed by the Free Software Foundation: + * ------------------------------------------------------------------------ + * + * GNU XBoard is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * GNU XBoard is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://www.gnu.org/licenses/. * + * + *------------------------------------------------------------------------ + ** See the file ChangeLog for a revision history. */ + +#include "config.h" + +#include +#include +#include +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +extern char *getenv(); +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_UNISTD_H +# include +#endif + +#include "common.h" +#include "frontend.h" + + +void +PlaySound (char *name) +{ + if (*name == NULLCHAR) { + return; + } else if (strcmp(name, "$") == 0) { + putc(BELLCHAR, stderr); + } else { + char buf[2048]; + char *prefix = "", *sep = ""; + if(appData.soundProgram[0] == NULLCHAR) return; + if(!strchr(name, '/')) { prefix = appData.soundDirectory; sep = "/"; } + snprintf(buf, sizeof(buf), "%s '%s%s%s' &", appData.soundProgram, prefix, sep, name); + system(buf); + } +} + +void +RingBell () +{ + PlaySound(appData.soundMove); +} + +void +PlayIcsWinSound () +{ + PlaySound(appData.soundIcsWin); +} + +void +PlayIcsLossSound () +{ + PlaySound(appData.soundIcsLoss); +} + +void +PlayIcsDrawSound () +{ + PlaySound(appData.soundIcsDraw); +} + +void +PlayIcsUnfinishedSound () +{ + PlaySound(appData.soundIcsUnfinished); +} + +void +PlayAlarmSound () +{ + PlaySound(appData.soundIcsAlarm); +} + +void +PlayTellSound () +{ + PlaySound(appData.soundTell); +} + +void +PlaySoundForColor (ColorClass cc) +{ + switch (cc) { + case ColorShout: + PlaySound(appData.soundShout); + break; + case ColorSShout: + PlaySound(appData.soundSShout); + break; + case ColorChannel1: + PlaySound(appData.soundChannel1); + break; + case ColorChannel: + PlaySound(appData.soundChannel); + break; + case ColorKibitz: + PlaySound(appData.soundKibitz); + break; + case ColorTell: + PlaySound(appData.soundTell); + break; + case ColorChallenge: + PlaySound(appData.soundChallenge); + break; + case ColorRequest: + PlaySound(appData.soundRequest); + break; + case ColorSeek: + PlaySound(appData.soundSeek); + break; + case ColorNormal: + case ColorNone: + default: + break; + } +} + +