Signed-off-by: Konke Radlow <korad...@gmail.com>
---
 utils/rds-ctl/rds-ctl.cpp |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/utils/rds-ctl/rds-ctl.cpp b/utils/rds-ctl/rds-ctl.cpp
index de76d9f..51536cf 100644
--- a/utils/rds-ctl/rds-ctl.cpp
+++ b/utils/rds-ctl/rds-ctl.cpp
@@ -550,6 +550,33 @@ static void print_rds_af(const struct v4l2_rds_af_set 
*af_set)
        }
 }
 
+static void print_rds_eon(const struct v4l2_rds_eon_set *eon_set)
+{
+       int counter = 0;
+
+       printf("\n\nEnhanced Other Network information: %u channels", 
eon_set->size);
+       for (int i = 0; i < eon_set->size; i++, counter++) {
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_PI)
+                       printf("\nPI(ON %02i) =  %04x", i, eon_set->eon[i].pi);
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_PS)
+                       printf("\nPS(ON %02i) =  %s", i, eon_set->eon[i].ps);
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_PTY)
+                       printf("\nPTY(ON %02i) =  %0u", i, eon_set->eon[i].pty);
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_LSF)
+                       printf("\nLSF(ON %02i) =  %0u", i, eon_set->eon[i].lsf);
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_AF)
+                       printf("\nPTY(ON %02i) =  %0u", i, eon_set->eon[i].pty);
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_TP)
+                       printf("\nTP(ON %02i): %s" ,i ,eon_set->eon[i].tp? 
"yes":"no");
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_TA)
+                       printf("\nTA(ON %02i): %s",i ,eon_set->eon[i].tp? 
"yes":"no");
+               if (eon_set->eon[i].valid_fields & V4L2_RDS_AF) {
+                       printf("\nAF(ON %02i): size=%i", i, 
eon_set->eon[i].af.size);
+                       print_rds_af(&(eon_set->eon[i].af));
+               }
+       }
+}
+
 static void print_rds_pi(const struct v4l2_rds *handle)
 {
        printf("\nArea Coverage: %s", v4l2_rds_get_coverage_str(handle));
@@ -662,6 +689,8 @@ static void read_rds_from_fd(const int fd)
 
        /* try to receive and decode RDS data */
        read_rds(rds_handle, fd, params.wait_limit);
+       if (rds_handle->valid_fields & V4L2_RDS_EON)
+               print_rds_eon(&rds_handle->rds_eon);
        print_rds_statistics(&rds_handle->rds_statistics);
 
        v4l2_rds_destroy(rds_handle);
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to