I have done some experimentation, had a look at it. I did read some pages on the RDS protocol. I have run out of time to work on the code.

Version 0.61 Adds support for PCATS tuner in FM/MW/LS/SW and Weather band. I will have to leave RDS decoding until I have some more free time, or maybe someone else will give it a go.

All I want to do is decode the station name and some program text.

I hacked some crude test code into player_tuner_common.c, but have not done much with it so far.

Code:

//�!3orld = C2 04 21 33 6F 72 6C 64 player: tuner_visual_display_rds() - got 8 bytes of RDS data
int rds_fd=-1;
tuner_visual_display_rds(char mode)
{
        unsigned char buff[4096];
        int numbytes=0;

        // At the moment only for FM mode and only on the empeg unit
        if (mode!='f')
                return;
#ifndef EMPEG
        return;
#endif

        if (rds_fd<1)
                rds_fd = open("/dev/rds0", O_RDONLY);                                           // empeg rds device
        if (rds_fd<1)
        {
                perror("cant open rds");
                exit(1);
        }

        numbytes=read(rds_fd,&buff,sizeof(buff));                                               // read as large a chunk as driver allows
        printf("%s: tuner_visual_display_rds() - got %d bytes of RDS data\n",PROGNAME,numbytes);
//printf("[%s] = ",buff);
dump_as_hex(&buff[0],numbytes);

        if ( (buff[0]==0xC2) & (buff[1]==0x04) & (buff[2]==0x21) & (buff[3]==0x33 ) )
                printf("[%s] = ",buff);
        fflush(stdout);
}


Thanks,
Jon