diff options
Diffstat (limited to 'audio/rsynth/files/freebsdplay.c')
-rw-r--r-- | audio/rsynth/files/freebsdplay.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/audio/rsynth/files/freebsdplay.c b/audio/rsynth/files/freebsdplay.c deleted file mode 100644 index 065b21fb9e1..00000000000 --- a/audio/rsynth/files/freebsdplay.c +++ /dev/null @@ -1,140 +0,0 @@ -#include <config.h> - -/*****************************************************************/ -/*** ***/ -/*** Play out a file on FreeBSD ***/ -/*** (conf/linuxplay.c with changes) ***/ -/*** ***/ -/*****************************************************************/ - -#include <useconfig.h> -#include <stdio.h> -#include <math.h> -#include <errno.h> -#include <ctype.h> - -#include <fcntl.h> -#include <sys/file.h> -#include <sys/stat.h> -#include <sys/param.h> -#include <sys/signal.h> - -#include <sys/ioctl.h> - -#include <machine/soundcard.h> -#include "proto.h" -#include "getargs.h" -#include "hplay.h" - -#define SAMP_RATE 8000 -long samp_rate = SAMP_RATE; - -/* Audio Parameters */ - -static int dev_fd = -1; - /* file descriptor for audio device */ -char *dev_file = "/dev/dsp"; - -static int linear_fd = -1; - -static char *linear_file = NULL; - -char *prog = "hplay"; - -static int -audio_open(void) -{ - dev_fd = open(dev_file, O_WRONLY | O_NDELAY); - if (dev_fd < 0) - { - perror(dev_file); - return 0; - } - return 1; -} - -int -audio_init(int argc, char *argv[]) -{ - int rate_set = 0; - int use_audio = 1; - - prog = argv[0]; - - argc = getargs("freebsd Audio",argc, argv, - "r", "%d", &rate_set, "Sample rate", - "a", NULL, &use_audio, "Audio enable", - NULL); - - if (help_only) - return argc; - - if (use_audio) - audio_open(); - - if (rate_set) - samp_rate = rate_set; - - if (dev_fd > 0) - { - ioctl(dev_fd, SNDCTL_DSP_SPEED, &samp_rate); - printf("Actual sound rate: %ld\n", samp_rate); - } - - return argc; -} - -void -audio_term() -{ - int dummy; - - /* Close audio system */ - if (dev_fd >= 0) - { - ioctl(dev_fd, SNDCTL_DSP_SYNC, &dummy); - close(dev_fd); - dev_fd = -1; - } - - /* Finish linear file */ - if (linear_fd >= 0) - { - ftruncate(linear_fd, lseek(linear_fd, 0L, SEEK_CUR)); - close(linear_fd); - linear_fd = -1; - } -} - -void -audio_play(int n, short *data) -{ - if (n > 0) - { - unsigned char *converted = (unsigned char *) malloc(n); - int i; - - if (converted == NULL) - { - fprintf(stderr, "Could not allocate memory for conversion\n"); - exit(3); - } - - for (i = 0; i < n; i++) - converted[i] = (data[i] - 32768) / 256; - - if (linear_fd >= 0) - { - if (write(linear_fd, converted, n) != n) - perror("write"); - } - - if (dev_fd >= 0) - { - if (write(dev_fd, converted, n) != n) - perror("write"); - } - - free(converted); - } -} |