Hans Verkuil wrote:
> On Tuesday 06 April 2010 00:12:48 Hans Verkuil wrote:
>> On Monday 05 April 2010 23:47:10 Hans Verkuil wrote:
>>> Hi all,
>>>
>>> The new control framework makes it very easy to expose controls in sysfs.
>>> The way it is implemented now in the framework is that each device node
>>> will get a 'controls' subdirectory in sysfs. Below which are all the 
>>> controls
>>> associated with that device node.
>>>
>>> So different device nodes can have different controls if so desired.
>>>
>>> The name of each sysfs file is derived from the control name, basically 
>>> making
>>> it lowercase, replacing ' ', '-' and '_' with '_' and skipping any other 
>>> non-
>>> alphanumerical characters. Seems to work well.
>>>
>>> For numerical controls you can write numbers in decimal, octal or 
>>> hexadecimal.
>>>
>>> When you write to a button control it will ignore what you wrote, but still
>>> execute the action.
>>>
>>> It looks like this for ivtv:
>>>
>>> $ ls /sys/class/video4linux/video1
>>> controls  dev  device  index  name  power  subsystem  uevent
>>>
>>> $ ls /sys/class/video4linux/video1/controls
>>> audio_crc                    chroma_gain                   
>>> spatial_chroma_filter_type  video_bitrate_mode
>>> audio_emphasis               contrast                      spatial_filter   
>>>            video_encoding
>>> audio_encoding               hue                           
>>> spatial_filter_mode         video_gop_closure
>>> audio_layer_ii_bitrate       insert_navigation_packets     
>>> spatial_luma_filter_type    video_gop_size
>>> audio_mute                   median_chroma_filter_maximum  stream_type      
>>>            video_mute
>>> audio_sampling_frequency     median_chroma_filter_minimum  
>>> stream_vbi_format           video_mute_yuv
>>> audio_stereo_mode            median_filter_type            temporal_filter  
>>>            video_peak_bitrate
>>> audio_stereo_mode_extension  median_luma_filter_maximum    
>>> temporal_filter_mode        video_temporal_decimation
>>> balance                      median_luma_filter_minimum    video_aspect     
>>>            volume
>>> brightness                   mute                          video_b_frames
>>> chroma_agc                   saturation                    video_bitrate
>>>
>>>
>>> The question is, is this sufficient?
>> One thing that might be useful is to prefix the name with the control class
>> name. E.g. hue becomes user_hue and audio_crc becomes mpeg_audio_crc. It 
>> would
>> groups them better. Or one could make a controls/user and controls/mpeg
>> directory. That might not be such a bad idea actually.
> 
> Replying to your own mails is probably a bad sign, but I can't help myself :-)
> 
> I've changed the code to add a control class prefix for all but the user 
> controls.
> It looks much better now:
> 
> $ ls /sys/class/video4linux/video1/controls
> balance                           mpeg_insert_navigation_packets     
> mpeg_video_aspect
> brightness                        mpeg_median_chroma_filter_maximum  
> mpeg_video_b_frames
> chroma_agc                        mpeg_median_chroma_filter_minimum  
> mpeg_video_bitrate
> chroma_gain                       mpeg_median_filter_type            
> mpeg_video_bitrate_mode
> contrast                          mpeg_median_luma_filter_maximum    
> mpeg_video_encoding
> hue                               mpeg_median_luma_filter_minimum    
> mpeg_video_gop_closure
> mpeg_audio_crc                    mpeg_spatial_chroma_filter_type    
> mpeg_video_gop_size
> mpeg_audio_emphasis               mpeg_spatial_filter                
> mpeg_video_mute
> mpeg_audio_encoding               mpeg_spatial_filter_mode           
> mpeg_video_mute_yuv
> mpeg_audio_layer_ii_bitrate       mpeg_spatial_luma_filter_type      
> mpeg_video_peak_bitrate
> mpeg_audio_mute                   mpeg_stream_type                   
> mpeg_video_temporal_decimation
> mpeg_audio_sampling_frequency     mpeg_stream_vbi_format             mute
> mpeg_audio_stereo_mode            mpeg_temporal_filter               
> saturation
> mpeg_audio_stereo_mode_extension  mpeg_temporal_filter_mode          volume


It would be more intuitive if you group the classes with a few subdirs:

/video/balance
/video/brightness
...
/mpeg_audio/crc
/mpeg_audio/mute
...
/audio/volume
/audio/bass
/audio/treble
..

-- 

Cheers,
Mauro
--
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