Code Search for Developers
 
 
  

struct-v4l.c from aMSN at Krugle


Show struct-v4l.c syntax highlighted

#include <stdio.h>
#include <sys/ioctl.h>

#include "videodev.h"

#include "struct-dump.h"
#include "struct-v4l.h"

/* ---------------------------------------------------------------------- */

char *bits_vid_cap[32] = {
	"CAPTURE",
	"TUNER",
	"TELETEXT",
	"OVERLAY",
	"CHROMAKEY",
	"CLIPPING",
	"FRAMERAM",
	"SCALES",
	"MONOCHROME",
	"SUBCAPTURE",
	"MPEG_DECODER",
	"MPEG_ENCODER",
	"MJPEG_DECODER",
	"MJPEG_ENCODER",
};

char *bits_chan_flags[32] = {
	"TUNER",
	"AUDIO",
};

char *desc_chan_type[] = {
	[ VIDEO_TYPE_TV     ] = "TV",
	[ VIDEO_TYPE_CAMERA ] = "CAMERA",
};

char *bits_tuner_flags[32] = {
	"PAL",
	"NTSC",
	"SECAM",
	"LOW",
	"NORM",
	"?",
	"?",
	"STEREO_ON",
	"RDS_ON",
	"MBS_ON",
};

char *desc_tuner_mode[] = {
	[ VIDEO_MODE_PAL ]   = "PAL",
	[ VIDEO_MODE_NTSC ]  = "NTSC",
	[ VIDEO_MODE_SECAM ] = "SECAM",
	[ VIDEO_MODE_AUTO ]  = "AUTO",
};

char *desc_pict_palette[] = {
	[ VIDEO_PALETTE_GREY ]    = "GREY",
	[ VIDEO_PALETTE_HI240 ]   = "HI240",
	[ VIDEO_PALETTE_RGB565 ]  = "RGB565",
	[ VIDEO_PALETTE_RGB24 ]   = "RGB24",
	[ VIDEO_PALETTE_RGB32 ]   = "RGB32",
	[ VIDEO_PALETTE_RGB555 ]  = "RGB555",
	[ VIDEO_PALETTE_YUV422 ]  = "YUV422",
	[ VIDEO_PALETTE_YUYV ]    = "YUYV",
	[ VIDEO_PALETTE_UYVY ]    = "UYVY",
	[ VIDEO_PALETTE_YUV420 ]  = "YUV420",
	[ VIDEO_PALETTE_YUV411 ]  = "YUV411",
	[ VIDEO_PALETTE_RAW ]     = "RAW",
	[ VIDEO_PALETTE_YUV422P ] = "YUV422P",
	[ VIDEO_PALETTE_YUV411P ] = "YUV411P",
	[ VIDEO_PALETTE_YUV420P ] = "YUV420P",
	[ VIDEO_PALETTE_YUV410P ] = "YUV410P",
};

char *bits_audio_flags[32] = {
	"MUTE",
	"MUTABLE",
	"VOLUME",
	"BASS",
	"TREBLE",
	"BALANCE",
};

char *bits_audio_mode[32] = {
	"MONO",
	"STEREO",
	"LANG1",
	"LANG2",
};

/* ---------------------------------------------------------------------- */

struct struct_desc desc_video_capability[] = {{
	.type   = STRING,
	.name   = "name",
	.length = 32,
},{
	.type   = BITS32,
	.name   = "type",
	.bits   = bits_vid_cap,
},{
	.type   = SINT32,
	.name   = "channels",
},{
	.type   = SINT32,
	.name   = "audios",
},{
	.type   = SINT32,
	.name   = "maxwidth",
},{
	.type   = SINT32,
	.name   = "maxheight",
},{
	.type   = SINT32,
	.name   = "minwidth",
},{
	.type   = SINT32,
	.name   = "minheight",
},{
	/* end of list */
}};

struct struct_desc desc_video_channel[] = {{
	.type   = SINT32,
	.name   = "channel",
},{
	.type   = STRING,
	.name   = "name",
	.length = 32,
},{
	.type   = SINT32,
	.name   = "tuners",
},{
	.type   = BITS32,
	.name   = "flags",
	.bits   = bits_chan_flags
},{
	.type   = ENUM16,
	.name   = "type",
	.enums  = desc_chan_type,
	.length = sizeof(desc_chan_type) / sizeof(char*),
},{
	.type   = UINT16,
	.name   = "norm",
},{
	/* end of list */
}};

struct struct_desc desc_video_tuner[] = {{
	.type   = SINT32,
	.name   = "tuner",
},{
	.type   = STRING,
	.name   = "name",
	.length = 32,
},{
	.type   = UINT32,
	.name   = "rangelow",
},{
	.type   = UINT32,
	.name   = "rangehigh",
},{
	.type   = BITS32,
	.name   = "flags",
	.bits   = bits_tuner_flags,
},{
	.type   = ENUM16,
	.name   = "mode",
	.enums  = desc_tuner_mode,
	.length = sizeof(desc_tuner_mode) / sizeof(char*),
},{
	.type   = UINT16,
	.name   = "signal",
},{
	/* end of list */
}};

struct struct_desc desc_video_picture[] = {{
	.type   = UINT16,
	.name   = "brightness",
},{
	.type   = UINT16,
	.name   = "hue",
},{
	.type   = UINT16,
	.name   = "colour",
},{
	.type   = UINT16,
	.name   = "contrast",
},{
	.type   = UINT16,
	.name   = "whiteness",
},{
	.type   = UINT16,
	.name   = "depth",
},{
	.type   = ENUM16,
	.name   = "palette",
	.enums  = desc_pict_palette,
	.length = sizeof(desc_pict_palette) / sizeof(char*),
},{
	/* end of list */
}};

struct struct_desc desc_video_audio[] = {{
	.type   = SINT32,
	.name   = "audio",
},{
	.type   = UINT16,
	.name   = "volume",
},{
	.type   = UINT16,
	.name   = "bass",
},{
	.type   = UINT16,
	.name   = "treble",
},{
	.type   = PADDING,
	.name   = "pad",
	.length = 2,
},{
	.type   = BITS32,
	.name   = "flags",
	.bits   = bits_audio_flags,
},{
	.type   = STRING,
	.name   = "name",
	.length = 16,
},{
	.type   = BITS16,
	.name   = "mode",
	.bits   = bits_audio_mode,
},{
	.type   = UINT16,
	.name   = "balance",
},{
	.type   = UINT16,
	.name   = "step",
},{
	/* end of list */
}};

struct struct_desc desc_video_window[] = {{
	.type   = UINT32,
	.name   = "x",
},{
	.type   = UINT32,
	.name   = "y",
},{
	.type   = UINT32,
	.name   = "width",
},{
	.type   = UINT32,
	.name   = "height",
},{
	.type   = UINT32,
	.name   = "chromakey",
},{
	.type   = UINT32,
	.name   = "flags",
},{
	/* end of list */
}};

struct struct_desc desc_video_buffer[] = {{
	.type   = PTR,
	.name   = "base",
},{
	.type   = SINT32,
	.name   = "height",
},{
	.type   = SINT32,
	.name   = "width",
},{
	.type   = SINT32,
	.name   = "depth",
},{
	.type   = SINT32,
	.name   = "bytesperline",
},{
	/* end of list */
}};

struct struct_desc desc_video_mmap[] = {{
	.type   = UINT32,
	.name   = "frame",
},{
	.type   = SINT32,
	.name   = "height",
},{
	.type   = SINT32,
	.name   = "width",
},{
	.type   = UINT32,
	.name   = "format",
},{
	/* end of list */
}};

struct struct_desc desc_video_mbuf[] = {{
	.type   = SINT32,
	.name   = "size",
},{
	.type   = SINT32,
	.name   = "frames",
},{
	.type   = SINT32,
	.name   = "offsets",
        /* FIXME len=32 */
},{
	/* end of list */
}};

/* ---------------------------------------------------------------------- */

struct ioctl_desc ioctls_v4l1[256] = {
	[_IOC_NR(VIDIOCGCAP)] = {
		.name = "VIDIOCGCAP",
		.desc = desc_video_capability,
	},
	[_IOC_NR(VIDIOCGCHAN)] = {
		.name = "VIDIOCGCHAN",
		.desc = desc_video_channel,
	},
	[_IOC_NR(VIDIOCSCHAN)] = {
		.name = "VIDIOCSCHAN",
		.desc = desc_video_channel,
	},
	[_IOC_NR(VIDIOCGTUNER)] = {
		.name = "VIDIOCGTUNER",
		.desc = desc_video_tuner,
	},
	[_IOC_NR(VIDIOCSTUNER)] = {
		.name = "VIDIOCSTUNER",
		.desc = desc_video_tuner,
	},
	[_IOC_NR(VIDIOCGPICT)] = {
		.name = "VIDIOCGPICT",
		.desc = desc_video_picture,
	},
	[_IOC_NR(VIDIOCSPICT)] = {
		.name = "VIDIOCSPICT",
		.desc = desc_video_picture,
	},
	[_IOC_NR(VIDIOCCAPTURE)] = {
		.name = "VIDIOCCAPTURE",
		.desc = desc_int,
	},
	[_IOC_NR(VIDIOCGWIN)] = {
		.name = "VIDIOCGWIN",
		.desc = desc_video_window,
	},
	[_IOC_NR(VIDIOCSWIN)] = {
		.name = "VIDIOCSWIN",
		.desc = desc_video_window,
	},
	[_IOC_NR(VIDIOCGFBUF)] = {
		.name = "VIDIOCGFBUF",
		.desc = desc_video_buffer,
	},
	[_IOC_NR(VIDIOCSFBUF)] = {
		.name = "VIDIOCSFBUF",
		.desc = desc_video_buffer,
	},
	[_IOC_NR(VIDIOCKEY)] = {
		.name = "VIDIOCKEY",
//		.desc = desc_video_key,
	},
	[_IOC_NR(VIDIOCGFREQ)] = {
		.name = "VIDIOCGFREQ",
		.desc = desc_long,
	},
	[_IOC_NR(VIDIOCSFREQ)] = {
		.name = "VIDIOCSFREQ",
		.desc = desc_long,
	},
	[_IOC_NR(VIDIOCGAUDIO)] = {
		.name = "VIDIOCGAUDIO",
		.desc = desc_video_audio,
	},
	[_IOC_NR(VIDIOCSAUDIO)] = {
		.name = "VIDIOCSAUDIO",
		.desc = desc_video_audio,
	},
	[_IOC_NR(VIDIOCSYNC)] = {
		.name = "VIDIOCSYNC",
		.desc = desc_int,
	},
	[_IOC_NR(VIDIOCMCAPTURE)] = {
		.name = "VIDIOCMCAPTURE",
		.desc = desc_video_mmap,
	},
	[_IOC_NR(VIDIOCGMBUF)] = {
		.name = "VIDIOCGMBUF",
		.desc = desc_video_mbuf,
	},
	[_IOC_NR(VIDIOCGUNIT)] = {
		.name = "VIDIOCGUNIT",
//		.desc = desc_video_unit,
	},
	[_IOC_NR(VIDIOCGCAPTURE)] = {
		.name = "VIDIOCGCAPTURE",
//		.desc = desc_video_capture,
	},
	[_IOC_NR(VIDIOCSCAPTURE)] = {
		.name = "VIDIOCSCAPTURE",
//		.desc = desc_video_capture,
	},
	[_IOC_NR(VIDIOCSPLAYMODE)] = {
		.name = "VIDIOCSPLAYMODE",
//		.desc = desc_video_play_mode,
	},
	[_IOC_NR(VIDIOCSWRITEMODE)] = {
		.name = "VIDIOCSWRITEMODE",
		.desc = desc_int,
	},
	[_IOC_NR(VIDIOCGPLAYINFO)] = {
		.name = "VIDIOCGPLAYINFO",
//		.desc = desc_video_info,
	},
	[_IOC_NR(VIDIOCSMICROCODE)] = {
		.name = "VIDIOCSMICROCODE",
//		.desc = desc_video_code,
	},
	[_IOC_NR(VIDIOCGVBIFMT)] = {
		.name = "VIDIOCGVBIFMT",
//		.desc = desc_vbi_format,
	},
	[_IOC_NR(VIDIOCSVBIFMT)] = {
		.name = "VIDIOCSVBIFMT",
//		.desc = desc_vbi_format,
	},
};

/* ---------------------------------------------------------------------- */
/*
 * Local variables:
 * c-basic-offset: 8
 * End:
 */




See more files for this project here

aMSN

A very nice MSN compatible messenger application, aMSN Messenger is a multiplatform MSN messenger clone. Works pretty much like its Windows based counterpart. Perfect for keeping in touch with those friends who have not yet seen the light. Works on linux

Project homepage: http://sourceforge.net/projects/amsn
Programming language(s): C,C++,PHP,Tcl,XML
License: other

  ioctl2desc
  struct-dump.c
  struct-dump.h
  struct-v4l.c
  struct-v4l.h
  struct-v4l2.c
  struct-v4l2.h
  struct2desc