Home | History | Annotate | Download | only in linux
      1 #ifndef _VTX_H
      2 #define _VTX_H
      3 
      4 /*
      5  * Teletext (=Videotext) hardware decoders using interface /dev/vtx
      6  * Do not confuse with drivers using /dev/vbi which decode videotext by software
      7  *
      8  * Videotext IOCTLs changed in order to use _IO() macros defined in <linux/ioctl.h>,
      9  * unused tuner IOCTLs cleaned up by
     10  * Michael Geng <linux (at) MichaelGeng.de>
     11  *
     12  * Copyright (c) 1994-97 Martin Buck  <martin-2.buck (at) student.uni-ulm.de>
     13  * Read COPYING for more information
     14  *
     15  */
     16 
     17 
     18 /*
     19  *	Videotext ioctls
     20  */
     21 #define VTXIOCGETINFO	_IOR  (0x81,  1, vtx_info_t)
     22 #define VTXIOCCLRPAGE	_IOW  (0x81,  2, vtx_pagereq_t)
     23 #define VTXIOCCLRFOUND	_IOW  (0x81,  3, vtx_pagereq_t)
     24 #define VTXIOCPAGEREQ	_IOW  (0x81,  4, vtx_pagereq_t)
     25 #define VTXIOCGETSTAT	_IOW  (0x81,  5, vtx_pagereq_t)
     26 #define VTXIOCGETPAGE	_IOW  (0x81,  6, vtx_pagereq_t)
     27 #define VTXIOCSTOPDAU	_IOW  (0x81,  7, vtx_pagereq_t)
     28 #define VTXIOCPUTPAGE	_IO   (0x81,  8)
     29 #define VTXIOCSETDISP	_IO   (0x81,  9)
     30 #define VTXIOCPUTSTAT	_IO   (0x81, 10)
     31 #define VTXIOCCLRCACHE	_IO   (0x81, 11)
     32 #define VTXIOCSETVIRT	_IOW  (0x81, 12, long)
     33 
     34 /* for compatibility, will go away some day */
     35 #define VTXIOCGETINFO_OLD  0x7101  /* get version of driver & capabilities of vtx-chipset */
     36 #define VTXIOCCLRPAGE_OLD  0x7102  /* clear page-buffer */
     37 #define VTXIOCCLRFOUND_OLD 0x7103  /* clear bits indicating that page was found */
     38 #define VTXIOCPAGEREQ_OLD  0x7104  /* search for page */
     39 #define VTXIOCGETSTAT_OLD  0x7105  /* get status of page-buffer */
     40 #define VTXIOCGETPAGE_OLD  0x7106  /* get contents of page-buffer */
     41 #define VTXIOCSTOPDAU_OLD  0x7107  /* stop data acquisition unit */
     42 #define VTXIOCPUTPAGE_OLD  0x7108  /* display page on TV-screen */
     43 #define VTXIOCSETDISP_OLD  0x7109  /* set TV-mode */
     44 #define VTXIOCPUTSTAT_OLD  0x710a  /* set status of TV-output-buffer */
     45 #define VTXIOCCLRCACHE_OLD 0x710b  /* clear cache on VTX-interface (if avail.) */
     46 #define VTXIOCSETVIRT_OLD  0x710c  /* turn on virtual mode (this disables TV-display) */
     47 
     48 /*
     49  *	Definitions for VTXIOCGETINFO
     50  */
     51 
     52 #define SAA5243 0
     53 #define SAA5246 1
     54 #define SAA5249 2
     55 #define SAA5248 3
     56 #define XSTV5346 4
     57 
     58 typedef struct {
     59 	int version_major, version_minor;	/* version of driver; if version_major changes, driver */
     60 						/* is not backward compatible!!! CHECK THIS!!! */
     61 	int numpages;				/* number of page-buffers of vtx-chipset */
     62 	int cct_type;				/* type of vtx-chipset (SAA5243, SAA5246, SAA5248 or
     63   						 * SAA5249) */
     64 }
     65 vtx_info_t;
     66 
     67 
     68 /*
     69  *	Definitions for VTXIOC{CLRPAGE,CLRFOUND,PAGEREQ,GETSTAT,GETPAGE,STOPDAU,PUTPAGE,SETDISP}
     70  */
     71 
     72 #define MIN_UNIT   (1<<0)
     73 #define MIN_TEN    (1<<1)
     74 #define HR_UNIT    (1<<2)
     75 #define HR_TEN     (1<<3)
     76 #define PG_UNIT    (1<<4)
     77 #define PG_TEN     (1<<5)
     78 #define PG_HUND    (1<<6)
     79 #define PGMASK_MAX (1<<7)
     80 #define PGMASK_PAGE (PG_HUND | PG_TEN | PG_UNIT)
     81 #define PGMASK_HOUR (HR_TEN | HR_UNIT)
     82 #define PGMASK_MINUTE (MIN_TEN | MIN_UNIT)
     83 
     84 typedef struct
     85 {
     86 	int page;	/* number of requested page (hexadecimal) */
     87 	int hour;	/* requested hour (hexadecimal) */
     88 	int minute;	/* requested minute (hexadecimal) */
     89 	int pagemask;	/* mask defining which values of the above are set */
     90 	int pgbuf;	/* buffer where page will be stored */
     91 	int start;	/* start of requested part of page */
     92 	int end;	/* end of requested part of page */
     93 	void *buffer;	/* pointer to beginning of destination buffer */
     94 }
     95 vtx_pagereq_t;
     96 
     97 
     98 /*
     99  *	Definitions for VTXIOC{GETSTAT,PUTSTAT}
    100  */
    101 
    102 #define VTX_PAGESIZE (40 * 24)
    103 #define VTX_VIRTUALSIZE (40 * 49)
    104 
    105 typedef struct
    106 {
    107 	int pagenum;			/* number of page (hexadecimal) */
    108 	int hour;			/* hour (hexadecimal) */
    109 	int minute;			/* minute (hexadecimal) */
    110 	int charset;			/* national charset */
    111 	unsigned delete : 1;		/* delete page (C4) */
    112 	unsigned headline : 1;		/* insert headline (C5) */
    113 	unsigned subtitle : 1;		/* insert subtitle (C6) */
    114 	unsigned supp_header : 1;	/* suppress header (C7) */
    115 	unsigned update : 1;		/* update page (C8) */
    116 	unsigned inter_seq : 1;		/* interrupted sequence (C9) */
    117 	unsigned dis_disp : 1;		/* disable/suppress display (C10) */
    118 	unsigned serial : 1;		/* serial mode (C11) */
    119 	unsigned notfound : 1;		/* /FOUND */
    120 	unsigned pblf : 1;		/* PBLF */
    121 	unsigned hamming : 1;		/* hamming-error occurred */
    122 }
    123 vtx_pageinfo_t;
    124 
    125 #endif /* _VTX_H */
    126