Em Mon, 11 May 2009 12:31:43 +0300 Eduardo Valentin <eduardo.valentin@xxxxxxxxx> escreveu: > This patch adds a new class of extended controls. This class > is intended to support Radio Modulators properties such as: > rds, audio limiters, audio compression, pilot tone generation, > tuning power levels and region related properties. > > Signed-off-by: Eduardo Valentin <eduardo.valentin@xxxxxxxxx> > --- > include/linux/videodev2.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 45 insertions(+), 0 deletions(-) > > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h > index ebb2ea6..7559299 100644 > --- a/include/linux/videodev2.h > +++ b/include/linux/videodev2.h > @@ -803,6 +803,7 @@ struct v4l2_ext_controls { > #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ > #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ > #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ > +#define V4L2_CTRL_CLASS_FMTX 0x009b0000 /* FM Radio Modulator class controls */ > > #define V4L2_CTRL_ID_MASK (0x0fffffff) > #define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL) > @@ -1141,6 +1142,50 @@ enum v4l2_exposure_auto_type { > > #define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16) > > +/* FM Radio Modulator class control IDs */ > +#define V4L2_CID_FMTX_CLASS_BASE (V4L2_CTRL_CLASS_FMTX | 0x900) > +#define V4L2_CID_FMTX_CLASS (V4L2_CTRL_CLASS_FMTX | 1) > + > +#define V4L2_CID_RDS_ENABLED (V4L2_CID_FMTX_CLASS_BASE + 1) > +#define V4L2_CID_RDS_PI (V4L2_CID_FMTX_CLASS_BASE + 2) > +#define V4L2_CID_RDS_PTY (V4L2_CID_FMTX_CLASS_BASE + 3) > +#define V4L2_CID_RDS_PS_NAME (V4L2_CID_FMTX_CLASS_BASE + 4) > +#define V4L2_CID_RDS_RADIO_TEXT (V4L2_CID_FMTX_CLASS_BASE + 5) > + > +#define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FMTX_CLASS_BASE + 6) > +#define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FMTX_CLASS_BASE + 7) > +#define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FMTX_CLASS_BASE + 8) > + > +#define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FMTX_CLASS_BASE + 9) > +#define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FMTX_CLASS_BASE + 10) > +#define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FMTX_CLASS_BASE + 11) > +#define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FMTX_CLASS_BASE + 12) > +#define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FMTX_CLASS_BASE + 13) > + > +#define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FMTX_CLASS_BASE + 14) > +#define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FMTX_CLASS_BASE + 15) > +#define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FMTX_CLASS_BASE + 16) > + > +#define V4L2_CID_REGION (V4L2_CID_FMTX_CLASS_BASE + 17) > +enum v4l2_fmtx_region { > + V4L2_FMTX_REGION_USA = 0, > + V4L2_FMTX_REGION_AUSTRALIA = 1, > + V4L2_FMTX_REGION_EUROPE = 2, > + V4L2_FMTX_REGION_JAPAN = 3, > + V4L2_FMTX_REGION_JAPAN_WIDE_BAND = 4, > +}; Hmm... the region is not just a derived parameter, based on preemphasis/frequencies, and channel stepping? What this parameter controls? > +#define V4L2_CID_REGION_BOTTOM_FREQUENCY (V4L2_CID_FMTX_CLASS_BASE + 18) > +#define V4L2_CID_REGION_TOP_FREQUENCY (V4L2_CID_FMTX_CLASS_BASE + 19) > +#define V4L2_CID_REGION_PREEMPHASIS (V4L2_CID_FMTX_CLASS_BASE + 20) > +enum v4l2_fmtx_preemphasis { > + V4L2_FMTX_PREEMPHASIS_75_uS = 0, > + V4L2_FMTX_PREEMPHASIS_50_uS = 1, > + V4L2_FMTX_PREEMPHASIS_DISABLED = 2, > +}; > +#define V4L2_CID_REGION_CHANNEL_SPACING (V4L2_CID_FMTX_CLASS_BASE + 21) > +#define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FMTX_CLASS_BASE + 22) > +#define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FMTX_CLASS_BASE + 23) > + > /* > * T U N I N G > */ Cheers, Mauro -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html