X-Git-Url: https://git.karo-electronics.de/?p=rdstmc.git;a=blobdiff_plain;f=decoder%2Frds_test.c;fp=decoder%2Frds_test.c;h=b6aceca52353734ac871663034594dfa4ba0e2dc;hp=eb9bf7068404e378f50d4e9fd3259b6cdf8a55b4;hb=676e37ddd2faa27593615e47d42a50446bf10fac;hpb=1d60a58e4c7c7ab477df4520fd48726e42d66b75 diff --git a/decoder/rds_test.c b/decoder/rds_test.c index eb9bf70..b6aceca 100644 --- a/decoder/rds_test.c +++ b/decoder/rds_test.c @@ -25,22 +25,22 @@ 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); } @@ -67,6 +67,9 @@ char rdevname[PATH_MAX] = "/dev/radio0"; unsigned short rdsgroup[4]; int rds_fd, i; + rds_init(); + tmc_init(); + i = 1; while (i < argc) { if (strncmp("-all", argv[i], 4) == 0) @@ -76,45 +79,47 @@ int rds_fd, i; 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); } }