FreeCalypso > hg > fc-pcm-if
diff sw/mcsi-rxtx/record.c @ 13:315428573a25
fc-mcsi-rxtx: implement record function
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 28 Oct 2024 07:24:53 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sw/mcsi-rxtx/record.c Mon Oct 28 07:24:53 2024 +0000 @@ -0,0 +1,59 @@ +/* + * Here we implement the functionality of recording MCSI Rx streams + * into robe files. + */ + +#include <sys/types.h> +#include <stdio.h> +#include <stdlib.h> + +extern u_short rx_pcm_samples[160]; + +static FILE *record_file; + +void +record_process() +{ + unsigned n, samp; + + if (!record_file) + return; + for (n = 0; n < 160; n++) { + samp = rx_pcm_samples[n]; + putc(samp >> 8, record_file); + putc(samp, record_file); + } +} + +void +record_auto_stop() +{ + if (!record_file) + return; + fclose(record_file); + record_file = 0; +} + +void +cmd_record(argc, argv) + char **argv; +{ + if (record_file) { + printf("error: recording already in progress\n"); + return; + } + record_file = fopen(argv[1], "w"); + if (!record_file) + perror(argv[1]); +} + +void +cmd_record_stop() +{ + if (!record_file) { + printf("error: no recording in progress\n"); + return; + } + fclose(record_file); + record_file = 0; +}