ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / linux / videotext.h
1 #ifndef _VTX_H
2 #define _VTX_H
3
4 /* $Id: videotext.h,v 1.1 1998/03/30 22:26:39 alan Exp $
5  *
6  * Copyright (c) 1994-97 Martin Buck  <martin-2.buck@student.uni-ulm.de>
7  * Read COPYING for more information
8  *
9  */
10
11
12 /*
13  *      Videotext ioctls
14  */
15 #define VTXIOCGETINFO  0x7101  /* get version of driver & capabilities of vtx-chipset */
16 #define VTXIOCCLRPAGE  0x7102  /* clear page-buffer */
17 #define VTXIOCCLRFOUND 0x7103  /* clear bits indicating that page was found */
18 #define VTXIOCPAGEREQ  0x7104  /* search for page */
19 #define VTXIOCGETSTAT  0x7105  /* get status of page-buffer */
20 #define VTXIOCGETPAGE  0x7106  /* get contents of page-buffer */
21 #define VTXIOCSTOPDAU  0x7107  /* stop data acquisition unit */
22 #define VTXIOCPUTPAGE  0x7108  /* display page on TV-screen */
23 #define VTXIOCSETDISP  0x7109  /* set TV-mode */
24 #define VTXIOCPUTSTAT  0x710a  /* set status of TV-output-buffer */
25 #define VTXIOCCLRCACHE 0x710b  /* clear cache on VTX-interface (if avail.) */
26 #define VTXIOCSETVIRT  0x710c  /* turn on virtual mode (this disables TV-display) */
27
28
29 /* 
30  *      Definitions for VTXIOCGETINFO
31  */
32  
33 #define SAA5243 0
34 #define SAA5246 1
35 #define SAA5249 2
36 #define SAA5248 3
37 #define XSTV5346 4
38
39 typedef struct {
40         int version_major, version_minor;       /* version of driver; if version_major changes, driver */
41                                                 /* is not backward compatible!!! CHECK THIS!!! */  
42         int numpages;                           /* number of page-buffers of vtx-chipset */
43         int cct_type;                           /* type of vtx-chipset (SAA5243, SAA5246, SAA5248 or
44                                                  * SAA5249) */
45 }
46 vtx_info_t;
47
48
49 /*
50  *      Definitions for VTXIOC{CLRPAGE,CLRFOUND,PAGEREQ,GETSTAT,GETPAGE,STOPDAU,PUTPAGE,SETDISP}
51  */
52
53 #define MIN_UNIT   (1<<0)
54 #define MIN_TEN    (1<<1)
55 #define HR_UNIT    (1<<2)
56 #define HR_TEN     (1<<3)
57 #define PG_UNIT    (1<<4)
58 #define PG_TEN     (1<<5)
59 #define PG_HUND    (1<<6)
60 #define PGMASK_MAX (1<<7)
61 #define PGMASK_PAGE (PG_HUND | PG_TEN | PG_UNIT)
62 #define PGMASK_HOUR (HR_TEN | HR_UNIT)
63 #define PGMASK_MINUTE (MIN_TEN | MIN_UNIT)
64
65 typedef struct 
66 {
67         int page;       /* number of requested page (hexadecimal) */
68         int hour;       /* requested hour (hexadecimal) */
69         int minute;     /* requested minute (hexadecimal) */
70         int pagemask;   /* mask defining which values of the above are set */
71         int pgbuf;      /* buffer where page will be stored */
72         int start;      /* start of requested part of page */
73         int end;        /* end of requested part of page */
74         void *buffer;   /* pointer to beginning of destination buffer */
75 }
76 vtx_pagereq_t;
77
78
79 /*
80  *      Definitions for VTXIOC{GETSTAT,PUTSTAT}
81  */
82  
83 #define VTX_PAGESIZE (40 * 24)
84 #define VTX_VIRTUALSIZE (40 * 49)
85
86 typedef struct 
87 {
88         int pagenum;                    /* number of page (hexadecimal) */
89         int hour;                       /* hour (hexadecimal) */
90         int minute;                     /* minute (hexadecimal) */
91         int charset;                    /* national charset */
92         unsigned delete : 1;            /* delete page (C4) */
93         unsigned headline : 1;          /* insert headline (C5) */
94         unsigned subtitle : 1;          /* insert subtitle (C6) */
95         unsigned supp_header : 1;       /* suppress header (C7) */
96         unsigned update : 1;            /* update page (C8) */
97         unsigned inter_seq : 1;         /* interrupted sequence (C9) */
98         unsigned dis_disp : 1;          /* disable/suppress display (C10) */
99         unsigned serial : 1;            /* serial mode (C11) */
100         unsigned notfound : 1;          /* /FOUND */
101         unsigned pblf : 1;              /* PBLF */
102         unsigned hamming : 1;           /* hamming-error occurred */
103 }
104 vtx_pageinfo_t;
105
106
107 /*
108  *      Definitions for VTXIOCSETDISP
109  */
110  
111 typedef enum { 
112         DISPOFF, DISPNORM, DISPTRANS, DISPINS, INTERLACE_OFFSET 
113 } vtxdisp_t;
114
115
116
117 /*
118  *      Tuner ioctls
119  */
120  
121 #define TUNIOCGETINFO  0x7201  /* get version of driver & capabilities of tuner */
122 #define TUNIOCRESET    0x7202  /* reset tuner */
123 #define TUNIOCSETFREQ  0x7203  /* set tuning frequency (unit: kHz) */
124 #define TUNIOCGETFREQ  0x7204  /* get tuning frequency (unit: kHz) */
125 #define TUNIOCSETCHAN  0x7205  /* set tuning channel */
126 #define TUNIOCGETCHAN  0x7206  /* get tuning channel */
127
128
129 typedef struct 
130 {
131         int version_major, version_minor;       /* version of driver; if version_major changes, driver */
132                                                 /* is not backward compatible!!! CHECK THIS!!! */  
133         unsigned freq : 1;                      /* tuner can be set to given frequency */
134         unsigned chan : 1;                      /* tuner stores several channels */
135         unsigned scan : 1;                      /* tuner supports scanning */
136         unsigned autoscan : 1;          /* tuner supports scanning with automatic stop */
137         unsigned afc : 1;                       /* tuner supports AFC */
138         unsigned dummy1, dummy2, dummy3, dummy4, dummy5, dummy6, dummy7, dummy8, dummy9, dummy10,
139                 dummy11 : 1;
140         int dummy12, dummy13, dummy14, dummy15, dummy16, dummy17, dummy18, dummy19;
141 } tuner_info_t;
142
143
144 #endif /* _VTX_H */