Kenneth Aafl?y wrote: > info.h: > ---------------------------------------------------- > typedef _vid_dev_type { > VID_DEV_TYPE_ANALOG > VID_DEV_TYPE_DVB_CABLE, > VID_DEV_TYPE_DVB_SATELLITE, > VID_DEV_TYPE_DVB_TERRESTIAL, > VID_DEV_TYPE_ATSC, > } vid_dev_type_t; > > struct _vid_dev_info { > char * name; > vid_dev_type_t type; > } vid_dev_info_t; Please don't use typedefs unless you are explicitly defining opaque data types. It makes it more difficult to see what's going on. > /** > * Tune to the current parameters set in the state machine. > */ > int vid_dev_tune(vid_dev_t *); ... > int vid_dev_set_frequency(vid_dev_t *, unsigned long frequency); > int vid_dev_set_inversion(vid_dev_t *, vid_dev_inversion_t); > int vid_dev_set_fec_rate(vid_dev_t *, vid_dev_fec_rate_t); > int vid_dev_set_low_fec_rate(vid_dev_t *, vid_dev_fec_rate_t); > int vid_dev_set_modulation(vid_dev_t *, vid_dev_modulation_t); > int vid_dev_set_bandwidth(vid_dev_t *, vid_dev_bandwidth_t); > int vid_dev_set_transmission_mode(vid_dev_t *, vid_dev_transmission_mode_t); > int vid_dev_set_guard_interval(vid_dev_t *, vid_dev_guard_interval_t); > int vid_dev_set_hierarchy(vid_dev_t *, vid_dev_hierarchy_t); I don't think this is useful. If you want to tune you pass all data you have in one call. Johannes