sqlite3 *lcl_db;
int OutputFlags;
-void test_rds_PI_cb(unsigned short PI, unsigned char ccode, unsigned char ptype, unsigned char pref)
+void test_rds_PI_cb(unsigned short PI, unsigned char ccode, unsigned char ptype, unsigned char pref, void *udata)
{
printf("New PI=%d ccode=%X ptype=%X '%s' '%s' pref=%d\n", PI, ccode, ptype, ptype_stext[ptype], ptype_ltext[ptype], pref);
}
-void test_rds_radiotext_cb(char *radio_text)
+void test_rds_radiotext_cb(char *radio_text, void *udata)
{
printf("New RT: '%s'\n", radio_text);
}
-void test_rds_date_time_cb(struct tm *rds_time)
+void test_rds_date_time_cb(struct tm *rds_time, void *udata)
{
printf("RDS date/time: %s", asctime(rds_time));
}
-void test_rds_sname_cb(char *sname)
+void test_rds_sname_cb(char *sname, void *udata)
{
printf("RDS sname='%s'\n", sname);
}
unsigned short rdsgroup[4];
int rds_fd, i;
+ rds_init();
+ tmc_init();
+
i = 1;
while (i < argc) {
if (strncmp("-all", argv[i], 4) == 0)
if (strncmp("-rd", argv[i], 3) == 0)
if (argc > i)
strcpy(rdevname, argv[++i]);
- if (strncmp("-rt", argv[i], 3) == 0)
- OutputFlags |= RDS_OUTPUT_RADIO_TEXT;
- if (strncmp("-ri", argv[i], 3) == 0)
- OutputFlags |= RDS_OUTPUT_STATION_ID;
- if (strncmp("-tmc", argv[i], 4) == 0)
- OutputFlags |= RDS_OUTPUT_TMC;
+ if (strncmp("-rt", argv[i], 3) == 0) {
+ // OutputFlags |= RDS_OUTPUT_RADIO_TEXT;
+ rds_set_radiotext_cb(test_rds_radiotext_cb, NULL);
+ }
+ if (strncmp("-ri", argv[i], 3) == 0) {
+ // OutputFlags |= RDS_OUTPUT_STATION_ID;
+ rds_set_sname_cb(test_rds_sname_cb, NULL);
+ }
+ if (strncmp("-tmc", argv[i], 4) == 0) {
+ // OutputFlags |= RDS_OUTPUT_TMC;
+ tmc_set_msg_cb(test_tmc_msg_cb, NULL);
+ }
if (strncmp("-eon", argv[i], 4) == 0)
OutputFlags |= RDS_OUTPUT_EON;
- if (strncmp("-dt", argv[i], 3) == 0)
- OutputFlags |= RDS_OUTPUT_DATETIME;
+ if (strncmp("-dt", argv[i], 3) == 0) {
+ // OutputFlags |= RDS_OUTPUT_DATETIME;
+ rds_set_date_time_cb(test_rds_date_time_cb, NULL);
+ }
if (strncmp("-ug", argv[i], 3) == 0)
OutputFlags |= RDS_OUTPUT_UNKNGRP;
- if (strncmp("-pi", argv[i], 3) == 0)
- OutputFlags |= RDS_RECEIVE_INDICATOR;
+ if (strncmp("-pi", argv[i], 3) == 0) {
+ // OutputFlags |= RDS_RECEIVE_INDICATOR;
+ rds_set_PI_cb(test_rds_PI_cb, NULL);
+ }
i++;
}
+
if (!(rds_fd = open_radio(rdevname))) {
perror("open radio:");
return -1;
}
+
if (sqlite3_open("lcl.db", &lcl_db) != SQLITE_OK) {
- perror("open radio:");
+ perror("open LCL database:");
close(rds_fd);
return -1;
}
- rds_init();
- tmc_init();
-
- //rds_set_PI_cb(test_rds_PI_cb);
- //rds_set_radiotext_cb(test_rds_radiotext_cb);
- //rds_set_date_time_cb(test_rds_date_time_cb);
- //rds_set_sname_cb(test_rds_sname_cb);
-
- tmc_set_msg_cb(test_tmc_msg_cb, NULL);
-
while (1) {
if (rds_receive_group(rds_fd, rdsgroup)) {
- // group complete, start decode
+ /* group complete, start decode */
rds_decode_group(rdsgroup);
}
}