summaryrefslogtreecommitdiff
path: root/fmrxd.h
blob: 5f95d6afec161f5812eb2de7855f87bc2256eb5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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	10

#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