RADIO(4)

NAME
radio - device-independent radio driver layer

SYNOPSIS
radio* at az?
radio* at bktr?
radio* at gtp?
radio* at rt?
radio* at rtii?
radio* at sf2r?
radio* at slurm?
radio* at udsbr?

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/radioio.h>

DESCRIPTION
The radio driver provides support for various FM radio cards. It provides an uniform programming interface layer above different underlying radio hardware drivers.

For radio tuner controlling there is a single device file available: /dev/radio.

The following ioctl(2) commands are supported:

RIOCSSRCH (int)
    This command assumes that a signal search is required and gives direction of search to the driver - 0 to search down and any non-zero value to search up.
RIOCGINFO (struct radio_info)
RIOCSINFO (struct radio_info)
    Get or set the current hardware device information into the struct radio_info structure.

        struct radio_info {
        	int	mute;
        	int	volume;
        	int	stereo;
        	int	rfreq;	/* reference frequency */
        	int	lock;	/* locking field strength */
        	uint32_t	freq;	/* in kHz */
        	uint32_t	caps;	/* card capabilities */
        #define RADIO_CAPS_DETECT_STEREO	(1<<0)
        #define RADIO_CAPS_DETECT_SIGNAL	(1<<1)
        #define RADIO_CAPS_SET_MONO		(1<<2)
        #define RADIO_CAPS_HW_SEARCH		(1<<3)
        #define RADIO_CAPS_HW_AFC		(1<<4)
        #define RADIO_CAPS_REFERENCE_FREQ	(1<<5)
        #define RADIO_CAPS_LOCK_SENSITIVITY	(1<<6)
        #define RADIO_CARD_TYPE			(0xFF<<16)
        	uint32_t	info;
        #define RADIO_INFO_STEREO		(1<<0)
        #define RADIO_INFO_SIGNAL		(1<<1)
        };

    The mute field is a boolean.

    The volume field holds the card volume information and can be at most 255.

    The stereo field is a boolean.

    The rfreq holds information about the card reference frequency (not all cards support this feature).

    The lock field holds information about the card locking field strength during an automatic search for cards that support this feature.

    The freq field is the frequency in kHz the card is tuned to.

    The caps field is read-only and describes the card capabilities. The capabilities can have following values:
    RADIO_CAPS_DETECT_STEREO
        The device can determine is it tuned to a stereo signal.
    RADIO_CAPS_DETECT_SIGNAL
        The device can determine is it tuned or not.
    RADIO_CAPS_SET_MONO
        The device capable to forcible set its output to mono.
    RADIO_CAPS_HW_SEARCH
        The device can do hardware search.
    RADIO_CAPS_HW_AFC
        The device has an internal hardware automatic frequency control.
    RADIO_CAPS_REFERENCE_FREQ
        The device allow to change the reference frequency of a received signal.
    RADIO_CAPS_LOCK_SENSITIVITY
        The device allow to change the station lock sensitivity used during search operation.
    RADIO_CARD_TYPE
        Some cards have several different incarnations. This allow to determine the variant of the card. Currently not used.

    The info field is read-only and describes the current state of the card - tuned/not tuned, stereo signal/mono signal.
    RADIO_INFO_STEREO
        Informs whether the device receives a stereo or mono signal.
    RADIO_INFO_SIGNAL
        Informs whether the device receives a valid signal or noise.

FILES
/dev/radio

SEE ALSO
radioctl(1), ioctl(2), az(4), bktr(4), gtp(4), rt(4), rtii(4), sf2r(4), slurm(4), udsbr(4)

HISTORY
The radio device driver appeared in OpenBSD 3.0 and NetBSD 1.6.

AUTHORS
-nosplit The radio driver was written by Vladimir Popov and Maxim Tsyplakov for OpenBSD and ported to NetBSD by Lennart Augustsson. The man page was written by Vladimir Popov.