Re: [PATCHv10 3/8] v4l2: video device: Add FM_TX controls default configurations

2009-07-25 Thread Hans Verkuil
On Friday 24 July 2009 18:37:23 Eduardo Valentin wrote:
 Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
 ---
  linux/drivers/media/video/v4l2-common.c |   63 
 ++-
  1 files changed, 62 insertions(+), 1 deletions(-)
 
 diff --git a/linux/drivers/media/video/v4l2-common.c 
 b/linux/drivers/media/video/v4l2-common.c
 index bd13702..6fc0559 100644
 --- a/linux/drivers/media/video/v4l2-common.c
 +++ b/linux/drivers/media/video/v4l2-common.c
 @@ -343,6 +343,12 @@ const char **v4l2_ctrl_get_menu(u32 id)
   Sepia,
   NULL
   };
 + static const char *fm_tx_preemphasis[] = {
 + No preemphasis,
 + 50 useconds,
 + 75 useconds,
 + NULL,
 + };
  
   switch (id) {
   case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
 @@ -381,6 +387,8 @@ const char **v4l2_ctrl_get_menu(u32 id)
   return camera_exposure_auto;
   case V4L2_CID_COLORFX:
   return colorfx;
 + case V4L2_CID_FM_TX_PREEMPHASIS:
 + return fm_tx_preemphasis;
   default:
   return NULL;
   }
 @@ -479,6 +487,28 @@ const char *v4l2_ctrl_get_name(u32 id)
   case V4L2_CID_ZOOM_CONTINUOUS:  return Zoom, Continuous;
   case V4L2_CID_PRIVACY:  return Privacy;
  
 + /* FM Radio Modulator control */
 + case V4L2_CID_FM_TX_CLASS:  return FM Radio Modulator 
 Controls;
 + case V4L2_CID_RDS_TX_PI:return RDS Program ID;
 + case V4L2_CID_RDS_TX_PTY:   return RDS Program Type;
 + case V4L2_CID_RDS_TX_DEVIATION: return RDS Signal Deviation;
 + case V4L2_CID_RDS_TX_PS_NAME:   return RDS PS Name;
 + case V4L2_CID_RDS_TX_RADIO_TEXT:return RDS Radio Text;
 + case V4L2_CID_AUDIO_LIMITER_ENABLED:return Audio Limiter Feature 
 Enabled;
 + case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME: return Audio Limiter Release 
 Time;
 + case V4L2_CID_AUDIO_LIMITER_DEVIATION:  return Audio Limiter 
 Deviation;
 + case V4L2_CID_AUDIO_COMPRESSION_ENABLED: return Audio Compression 
 Feature Enabled;
 + case V4L2_CID_AUDIO_COMPRESSION_GAIN:   return Audio Compression Gain;
 + case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD: return Audio Compression 
 Threshold;
 + case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME: return Audio Compression 
 Attack Time;
 + case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME: return Audio Compression 
 Release Time;
 + case V4L2_CID_PILOT_TONE_ENABLED:   return Pilot Tone Feature 
 Enabled;
 + case V4L2_CID_PILOT_TONE_DEVIATION: return Pilot Tone Deviation;
 + case V4L2_CID_PILOT_TONE_FREQUENCY: return Pilot Tone Frequency;
 + case V4L2_CID_FM_TX_PREEMPHASIS:return Pre-emphasis settings;
 + case V4L2_CID_TUNE_POWER_LEVEL: return Tune Power Level;
 + case V4L2_CID_TUNE_ANTENNA_CAPACITOR:   return Tune Antenna Capacitor;
 +
   default:
   return NULL;
   }
 @@ -500,7 +530,18 @@ EXPORT_SYMBOL(v4l2_ctrl_is_value64);
   * This information is used inside v4l2_compat_ioctl32. */
  int v4l2_ctrl_is_pointer(u32 id)
  {
 - return 0;
 + int is_pointer;
 +
 + switch (id) {
 + case V4L2_CID_RDS_TX_PS_NAME:
 + case V4L2_CID_RDS_TX_RADIO_TEXT:
 + is_pointer = 1;
 + break;
 + default:
 + is_pointer = 0;
 + }
 +
 + return is_pointer;
  }

There is no need for a temp variable. Just do this:

int v4l2_ctrl_is_pointer(u32 id)
{
switch (id) {
case V4L2_CID_RDS_TX_PS_NAME:
case V4L2_CID_RDS_TX_RADIO_TEXT:
return 1;
default:
return 0;
}
}

Regards,

Hans


-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom
--
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


Re: [PATCHv10 3/8] v4l2: video device: Add FM_TX controls default configurations

2009-07-25 Thread Eduardo Valentin
On Sat, Jul 25, 2009 at 03:03:33PM +0200, ext Hans Verkuil wrote:
 On Friday 24 July 2009 18:37:23 Eduardo Valentin wrote:
  Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
  ---
   linux/drivers/media/video/v4l2-common.c |   63 
  ++-
   1 files changed, 62 insertions(+), 1 deletions(-)
  
  diff --git a/linux/drivers/media/video/v4l2-common.c 
  b/linux/drivers/media/video/v4l2-common.c
  index bd13702..6fc0559 100644
  --- a/linux/drivers/media/video/v4l2-common.c
  +++ b/linux/drivers/media/video/v4l2-common.c
  @@ -343,6 +343,12 @@ const char **v4l2_ctrl_get_menu(u32 id)
  Sepia,
  NULL
  };
  +   static const char *fm_tx_preemphasis[] = {
  +   No preemphasis,
  +   50 useconds,
  +   75 useconds,
  +   NULL,
  +   };
   
  switch (id) {
  case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
  @@ -381,6 +387,8 @@ const char **v4l2_ctrl_get_menu(u32 id)
  return camera_exposure_auto;
  case V4L2_CID_COLORFX:
  return colorfx;
  +   case V4L2_CID_FM_TX_PREEMPHASIS:
  +   return fm_tx_preemphasis;
  default:
  return NULL;
  }
  @@ -479,6 +487,28 @@ const char *v4l2_ctrl_get_name(u32 id)
  case V4L2_CID_ZOOM_CONTINUOUS:  return Zoom, Continuous;
  case V4L2_CID_PRIVACY:  return Privacy;
   
  +   /* FM Radio Modulator control */
  +   case V4L2_CID_FM_TX_CLASS:  return FM Radio Modulator 
  Controls;
  +   case V4L2_CID_RDS_TX_PI:return RDS Program ID;
  +   case V4L2_CID_RDS_TX_PTY:   return RDS Program Type;
  +   case V4L2_CID_RDS_TX_DEVIATION: return RDS Signal Deviation;
  +   case V4L2_CID_RDS_TX_PS_NAME:   return RDS PS Name;
  +   case V4L2_CID_RDS_TX_RADIO_TEXT:return RDS Radio Text;
  +   case V4L2_CID_AUDIO_LIMITER_ENABLED:return Audio Limiter Feature 
  Enabled;
  +   case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME: return Audio Limiter Release 
  Time;
  +   case V4L2_CID_AUDIO_LIMITER_DEVIATION:  return Audio Limiter 
  Deviation;
  +   case V4L2_CID_AUDIO_COMPRESSION_ENABLED: return Audio Compression 
  Feature Enabled;
  +   case V4L2_CID_AUDIO_COMPRESSION_GAIN:   return Audio Compression Gain;
  +   case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD: return Audio Compression 
  Threshold;
  +   case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME: return Audio Compression 
  Attack Time;
  +   case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME: return Audio Compression 
  Release Time;
  +   case V4L2_CID_PILOT_TONE_ENABLED:   return Pilot Tone Feature 
  Enabled;
  +   case V4L2_CID_PILOT_TONE_DEVIATION: return Pilot Tone Deviation;
  +   case V4L2_CID_PILOT_TONE_FREQUENCY: return Pilot Tone Frequency;
  +   case V4L2_CID_FM_TX_PREEMPHASIS:return Pre-emphasis settings;
  +   case V4L2_CID_TUNE_POWER_LEVEL: return Tune Power Level;
  +   case V4L2_CID_TUNE_ANTENNA_CAPACITOR:   return Tune Antenna Capacitor;
  +
  default:
  return NULL;
  }
  @@ -500,7 +530,18 @@ EXPORT_SYMBOL(v4l2_ctrl_is_value64);
* This information is used inside v4l2_compat_ioctl32. */
   int v4l2_ctrl_is_pointer(u32 id)
   {
  -   return 0;
  +   int is_pointer;
  +
  +   switch (id) {
  +   case V4L2_CID_RDS_TX_PS_NAME:
  +   case V4L2_CID_RDS_TX_RADIO_TEXT:
  +   is_pointer = 1;
  +   break;
  +   default:
  +   is_pointer = 0;
  +   }
  +
  +   return is_pointer;
   }
 
 There is no need for a temp variable. Just do this:
 
 int v4l2_ctrl_is_pointer(u32 id)
 {
   switch (id) {
   case V4L2_CID_RDS_TX_PS_NAME:
   case V4L2_CID_RDS_TX_RADIO_TEXT:
   return 1;
   default:
   return 0;
   }
 }
 
 Regards,
 
   Hans


Right, resending v11 with this minor change.

 
 
 -- 
 Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom

-- 
Eduardo Valentin
--
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


[PATCHv10 3/8] v4l2: video device: Add FM_TX controls default configurations

2009-07-24 Thread Eduardo Valentin
Signed-off-by: Eduardo Valentin eduardo.valen...@nokia.com
---
 linux/drivers/media/video/v4l2-common.c |   63 ++-
 1 files changed, 62 insertions(+), 1 deletions(-)

diff --git a/linux/drivers/media/video/v4l2-common.c 
b/linux/drivers/media/video/v4l2-common.c
index bd13702..6fc0559 100644
--- a/linux/drivers/media/video/v4l2-common.c
+++ b/linux/drivers/media/video/v4l2-common.c
@@ -343,6 +343,12 @@ const char **v4l2_ctrl_get_menu(u32 id)
Sepia,
NULL
};
+   static const char *fm_tx_preemphasis[] = {
+   No preemphasis,
+   50 useconds,
+   75 useconds,
+   NULL,
+   };
 
switch (id) {
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
@@ -381,6 +387,8 @@ const char **v4l2_ctrl_get_menu(u32 id)
return camera_exposure_auto;
case V4L2_CID_COLORFX:
return colorfx;
+   case V4L2_CID_FM_TX_PREEMPHASIS:
+   return fm_tx_preemphasis;
default:
return NULL;
}
@@ -479,6 +487,28 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_ZOOM_CONTINUOUS:  return Zoom, Continuous;
case V4L2_CID_PRIVACY:  return Privacy;
 
+   /* FM Radio Modulator control */
+   case V4L2_CID_FM_TX_CLASS:  return FM Radio Modulator 
Controls;
+   case V4L2_CID_RDS_TX_PI:return RDS Program ID;
+   case V4L2_CID_RDS_TX_PTY:   return RDS Program Type;
+   case V4L2_CID_RDS_TX_DEVIATION: return RDS Signal Deviation;
+   case V4L2_CID_RDS_TX_PS_NAME:   return RDS PS Name;
+   case V4L2_CID_RDS_TX_RADIO_TEXT:return RDS Radio Text;
+   case V4L2_CID_AUDIO_LIMITER_ENABLED:return Audio Limiter Feature 
Enabled;
+   case V4L2_CID_AUDIO_LIMITER_RELEASE_TIME: return Audio Limiter Release 
Time;
+   case V4L2_CID_AUDIO_LIMITER_DEVIATION:  return Audio Limiter 
Deviation;
+   case V4L2_CID_AUDIO_COMPRESSION_ENABLED: return Audio Compression 
Feature Enabled;
+   case V4L2_CID_AUDIO_COMPRESSION_GAIN:   return Audio Compression Gain;
+   case V4L2_CID_AUDIO_COMPRESSION_THRESHOLD: return Audio Compression 
Threshold;
+   case V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME: return Audio Compression 
Attack Time;
+   case V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME: return Audio Compression 
Release Time;
+   case V4L2_CID_PILOT_TONE_ENABLED:   return Pilot Tone Feature 
Enabled;
+   case V4L2_CID_PILOT_TONE_DEVIATION: return Pilot Tone Deviation;
+   case V4L2_CID_PILOT_TONE_FREQUENCY: return Pilot Tone Frequency;
+   case V4L2_CID_FM_TX_PREEMPHASIS:return Pre-emphasis settings;
+   case V4L2_CID_TUNE_POWER_LEVEL: return Tune Power Level;
+   case V4L2_CID_TUNE_ANTENNA_CAPACITOR:   return Tune Antenna Capacitor;
+
default:
return NULL;
}
@@ -500,7 +530,18 @@ EXPORT_SYMBOL(v4l2_ctrl_is_value64);
  * This information is used inside v4l2_compat_ioctl32. */
 int v4l2_ctrl_is_pointer(u32 id)
 {
-   return 0;
+   int is_pointer;
+
+   switch (id) {
+   case V4L2_CID_RDS_TX_PS_NAME:
+   case V4L2_CID_RDS_TX_RADIO_TEXT:
+   is_pointer = 1;
+   break;
+   default:
+   is_pointer = 0;
+   }
+
+   return is_pointer;
 }
 EXPORT_SYMBOL(v4l2_ctrl_is_pointer);
 
@@ -530,6 +571,9 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 
min, s32 max, s32 ste
case V4L2_CID_EXPOSURE_AUTO_PRIORITY:
case V4L2_CID_FOCUS_AUTO:
case V4L2_CID_PRIVACY:
+   case V4L2_CID_AUDIO_LIMITER_ENABLED:
+   case V4L2_CID_AUDIO_COMPRESSION_ENABLED:
+   case V4L2_CID_PILOT_TONE_ENABLED:
qctrl-type = V4L2_CTRL_TYPE_BOOLEAN;
min = 0;
max = step = 1;
@@ -558,12 +602,18 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, 
s32 min, s32 max, s32 ste
case V4L2_CID_MPEG_STREAM_VBI_FMT:
case V4L2_CID_EXPOSURE_AUTO:
case V4L2_CID_COLORFX:
+   case V4L2_CID_FM_TX_PREEMPHASIS:
qctrl-type = V4L2_CTRL_TYPE_MENU;
step = 1;
break;
+   case V4L2_CID_RDS_TX_PS_NAME:
+   case V4L2_CID_RDS_TX_RADIO_TEXT:
+   qctrl-type = V4L2_CTRL_TYPE_STRING;
+   break;
case V4L2_CID_USER_CLASS:
case V4L2_CID_CAMERA_CLASS:
case V4L2_CID_MPEG_CLASS:
+   case V4L2_CID_FM_TX_CLASS:
qctrl-type = V4L2_CTRL_TYPE_CTRL_CLASS;
qctrl-flags |= V4L2_CTRL_FLAG_READ_ONLY;
min = max = step = def = 0;
@@ -592,6 +642,17 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 
min, s32 max, s32 ste
case V4L2_CID_BLUE_BALANCE:
case V4L2_CID_GAMMA:
case