summaryrefslogtreecommitdiff
path: root/fmrxd.h
diff options
context:
space:
mode:
Diffstat (limited to 'fmrxd.h')
-rw-r--r--fmrxd.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/fmrxd.h b/fmrxd.h
new file mode 100644
index 0000000..e0e3b22
--- /dev/null
+++ b/fmrxd.h
@@ -0,0 +1,77 @@
+#ifndef FMRXD_H
+#define FMRXD_H
+
+#include <stddef.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <glib.h>
+
+#define BUS_NAME "com.javispedro.fmrxd"
+#define BUS_PATH "/com/javispedro/fmrxd"
+#define BUS_INTERFACE BUS_NAME
+
+#define SERVER_ON_DEMAND 1
+#define SERVER_LINGER_TIME 6
+
+#define RADIO_LINGER_TIME 2
+
+#define BT_DEV_ID 0
+
+#define ALSA_MIXER_NAME "hw:2"
+#define ALSA_PCM_CAPTURE_NAME "hw:2,0"
+#define ALSA_CAPTURE_RATE 48000
+
+#define RING_BUFFER_SIZE (ALSA_CAPTURE_RATE)
+
+#define TUNER_DEVICE "/dev/radio0"
+#define TUNER_DEVICE_ID 0
+
+#define CRAPPY_WL1273_RDS 1
+
+/* fmrxd.c */
+extern GMainLoop* main_loop;
+
+/* server.c */
+int server_start();
+void server_stop();
+void server_queue_stop();
+int server_new_client();
+size_t server_get_buffer(size_t size, void **buffer);
+void server_commit_buffer(size_t size);
+void server_notify_tuned(double mhz);
+void server_notify_stopped();
+void server_notify_pi(uint16_t pi);
+void server_notify_ps(const char *ps);
+void server_notify_rt(const char *rt);
+
+/* radio.c */
+bool radio_active();
+void radio_start();
+void radio_stop();
+void radio_queue_start();
+void radio_queue_stop();
+
+/* bt.c */
+bool configure_bt_muxer(bool on);
+
+/* capture.c */
+bool configure_mixer(bool on);
+bool configure_capture(bool on);
+
+/* tuner.c */
+bool configure_tuner(bool on);
+extern int tuner_fd;
+bool tuner_set_frequency(double mhz);
+bool tuner_search(bool forward);
+
+/* rds.c */
+bool configure_rds(bool on);
+void rds_reset();
+
+unsigned short rds_get_pi();
+unsigned char rds_get_pty();
+const char * rds_get_pty_text();
+gchar * rds_get_ps();
+gchar * rds_get_rt();
+
+#endif // FMRXD_H