annotate src/libsst.h @ 5911:48386fd60fd0

GMP functions that take doubles choke on non-finite values, avoid that. src/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * floatfns.c (double_to_integer): Rename this from float_to_int to fit our newer, bignum-compatible terminology. GMP can signal SIGFPE when asked to turn NaN or infinity into a bignum, and we're not prepared to handle that signal if the OS float library routines don't do that, so check for those values explicitly. * floatfns.c (ceiling_two_float): * floatfns.c (ceiling_one_float): * floatfns.c (floor_two_float): * floatfns.c (floor_one_float): * floatfns.c (round_two_float): * floatfns.c (round_one_float): * floatfns.c (truncate_two_float): * floatfns.c (truncate_one_float): Call double_to_integer() with its new name. * number.c: Don't use the {bignum,ratio,bigfloat}_set_double functions directly here, with GMP they can choke when handed non-finite C doubles, call Ftruncate() and the new float_to_bigfloat() from floatfns.c. Maybe we should extend number-gmp.c with GMP-specific implementations that check for non-finite values. tests/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Backslash a few parentheses in the first column for the sake of fontification. * automated/lisp-tests.el: Check that the rounding functions signal Lisp errors correctly when handed positive and negative infinity and NaN.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 10 May 2015 19:07:09 +0100
parents aa5ed11f473b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 /* libsst.h - include file for SPARC sound tools library
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 **
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 ** Copyright (C) 1989 by Jef Poskanzer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 **
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 ** Permission to use, copy, modify, and distribute this software and its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 ** documentation for any purpose and without fee is hereby granted, provided
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 ** that the above copyright notice appear in all copies and that both that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 ** copyright notice and this permission notice appear in supporting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 ** documentation. This software is provided "as is" without express or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 ** implied warranty.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 /* Synched up with: Not in FSF. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14
563
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 398
diff changeset
15 /* This file Mule-ized by Ben Wing, 5-15-01. */
183866b06e0b [xemacs-hg @ 2001-05-24 07:50:48 by ben]
ben
parents: 398
diff changeset
16
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
17 #ifndef INCLUDED_libsst_h_
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
18 #define INCLUDED_libsst_h_
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
19
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 #include <sys/ioctl.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 #define AUDIO_4_0_3_COMPAT
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 #define AUDIO_CHIP
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 #define AMD_CHIP /* SparcStation 1, 2, IPC, and IPX */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 #include <sbusdev/audio_79C30.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 #include <multimedia/libaudio.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 #include <multimedia/audio_device.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 #include <sun/audioio.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 #define SAMPLES_PER_SECOND 8192
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 int sst_open( );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 void sst_close( /* int fd */ );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 void sst_set_ger( /* int fd, value */ );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 void sst_set_gr( /* int fd, value */ );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 void sst_set_gx( /* int fd, value */ );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 void sst_tones( /* int fd, dhz1, dhz2, thz, rhz, usec */ );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 void sst_dtmf( /* int fd, char *dial, int usecper, usecpause */ );
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
41 #endif /* INCLUDED_libsst_h_ */