10c0d06caSMauro Carvalho Chehab /*
20c0d06caSMauro Carvalho Chehab  *
30c0d06caSMauro Carvalho Chehab  *
40c0d06caSMauro Carvalho Chehab  *  Copyright (C) 2005 Mike Isely <isely@pobox.com>
50c0d06caSMauro Carvalho Chehab  *
60c0d06caSMauro Carvalho Chehab  *  This program is free software; you can redistribute it and/or modify
70c0d06caSMauro Carvalho Chehab  *  it under the terms of the GNU General Public License as published by
80c0d06caSMauro Carvalho Chehab  *  the Free Software Foundation; either version 2 of the License
90c0d06caSMauro Carvalho Chehab  *
100c0d06caSMauro Carvalho Chehab  *  This program is distributed in the hope that it will be useful,
110c0d06caSMauro Carvalho Chehab  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
120c0d06caSMauro Carvalho Chehab  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
130c0d06caSMauro Carvalho Chehab  *  GNU General Public License for more details.
140c0d06caSMauro Carvalho Chehab  *
150c0d06caSMauro Carvalho Chehab  *  You should have received a copy of the GNU General Public License
160c0d06caSMauro Carvalho Chehab  *  along with this program; if not, write to the Free Software
170c0d06caSMauro Carvalho Chehab  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
180c0d06caSMauro Carvalho Chehab  *
190c0d06caSMauro Carvalho Chehab  */
200c0d06caSMauro Carvalho Chehab #ifndef __PVRUSB2_STD_H
210c0d06caSMauro Carvalho Chehab #define __PVRUSB2_STD_H
220c0d06caSMauro Carvalho Chehab 
230c0d06caSMauro Carvalho Chehab #include <linux/videodev2.h>
240c0d06caSMauro Carvalho Chehab 
250c0d06caSMauro Carvalho Chehab // Convert string describing one or more video standards into a mask of V4L
260c0d06caSMauro Carvalho Chehab // standard bits.  Return true if conversion succeeds otherwise return
270c0d06caSMauro Carvalho Chehab // false.  String is expected to be of the form: C1-x/y;C2-a/b where C1 and
280c0d06caSMauro Carvalho Chehab // C2 are color system names (e.g. "PAL", "NTSC") and x, y, a, and b are
290c0d06caSMauro Carvalho Chehab // modulation schemes (e.g. "M", "B", "G", etc).
300c0d06caSMauro Carvalho Chehab int pvr2_std_str_to_id(v4l2_std_id *idPtr,const char *bufPtr,
310c0d06caSMauro Carvalho Chehab 		       unsigned int bufSize);
320c0d06caSMauro Carvalho Chehab 
330c0d06caSMauro Carvalho Chehab // Convert any arbitrary set of video standard bits into an unambiguous
340c0d06caSMauro Carvalho Chehab // readable string.  Return value is the number of bytes consumed in the
350c0d06caSMauro Carvalho Chehab // buffer.  The formatted string is of a form that can be parsed by our
360c0d06caSMauro Carvalho Chehab // sibling std_std_to_id() function.
370c0d06caSMauro Carvalho Chehab unsigned int pvr2_std_id_to_str(char *bufPtr, unsigned int bufSize,
380c0d06caSMauro Carvalho Chehab 				v4l2_std_id id);
390c0d06caSMauro Carvalho Chehab 
400c0d06caSMauro Carvalho Chehab // Create an array of suitable v4l2_standard structures given a bit mask of
410c0d06caSMauro Carvalho Chehab // video standards to support.  The array is allocated from the heap, and
420c0d06caSMauro Carvalho Chehab // the number of elements is returned in the first argument.
430c0d06caSMauro Carvalho Chehab struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr,
440c0d06caSMauro Carvalho Chehab 					   v4l2_std_id id);
450c0d06caSMauro Carvalho Chehab 
460c0d06caSMauro Carvalho Chehab // Return mask of which video standard bits are valid
470c0d06caSMauro Carvalho Chehab v4l2_std_id pvr2_std_get_usable(void);
480c0d06caSMauro Carvalho Chehab 
490c0d06caSMauro Carvalho Chehab #endif /* __PVRUSB2_STD_H */
500c0d06caSMauro Carvalho Chehab 
510c0d06caSMauro Carvalho Chehab /*
520c0d06caSMauro Carvalho Chehab   Stuff for Emacs to see, in order to encourage consistent editing style:
530c0d06caSMauro Carvalho Chehab   *** Local Variables: ***
540c0d06caSMauro Carvalho Chehab   *** mode: c ***
550c0d06caSMauro Carvalho Chehab   *** fill-column: 75 ***
560c0d06caSMauro Carvalho Chehab   *** tab-width: 8 ***
570c0d06caSMauro Carvalho Chehab   *** c-basic-offset: 8 ***
580c0d06caSMauro Carvalho Chehab   *** End: ***
590c0d06caSMauro Carvalho Chehab   */
60