diff pcm-br/record_ctrl.c @ 35:499d065ee591

new program itt-pcm-br (PCM bridge)
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 28 Aug 2024 05:00:38 +0000
parents pcm/record_ctrl.c@631f2db08538
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pcm-br/record_ctrl.c	Wed Aug 28 05:00:38 2024 +0000
@@ -0,0 +1,63 @@
+/*
+ * Here we implement stdin commands that control recording of E1 timeslot
+ * read stream.
+ */
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <osmocom/core/select.h>
+
+#include "globals.h"
+
+void cmd_record_a_start(int argc, char **argv)
+{
+	if (argc != 2) {
+		printf("error: record-a command needs 1 argument\n");
+		return;
+	}
+	if (rec_file_a) {
+		printf("error: recording of ts A already in progress\n");
+		return;
+	}
+	rec_file_a = fopen(argv[1], "w");
+	if (!rec_file_a)
+		perror(argv[1]);
+}
+
+void cmd_record_a_stop(int argc, char **argv)
+{
+	if (!rec_file_a) {
+		printf("error: no recording of ts A in progress\n");
+		return;
+	}
+	fclose(rec_file_a);
+	rec_file_a = NULL;
+}
+
+void cmd_record_b_start(int argc, char **argv)
+{
+	if (argc != 2) {
+		printf("error: record-b command needs 1 argument\n");
+		return;
+	}
+	if (rec_file_b) {
+		printf("error: recording of ts B already in progress\n");
+		return;
+	}
+	rec_file_b = fopen(argv[1], "w");
+	if (!rec_file_b)
+		perror(argv[1]);
+}
+
+void cmd_record_b_stop(int argc, char **argv)
+{
+	if (!rec_file_b) {
+		printf("error: no recording of ts B in progress\n");
+		return;
+	}
+	fclose(rec_file_b);
+	rec_file_b = NULL;
+}