]> git.kernelconcepts.de Git - rdstmc.git/blobdiff - decoder/rds_test.c
More decoding, some minor fixes
[rdstmc.git] / decoder / rds_test.c
index eb9bf7068404e378f50d4e9fd3259b6cdf8a55b4..b6aceca52353734ac871663034594dfa4ba0e2dc 100644 (file)
 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);
                }
        }