Kernel tree reorganization stage 2: Major cvs repository work.
[dragonfly.git] / usr.sbin / i4b / isdntel / defs.h
1 /*
2  * Copyright (c) 1997, 1999 Hellmuth Michaelis. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23  * SUCH DAMAGE.
24  *
25  *---------------------------------------------------------------------------
26  *
27  *      isdntel - isdn4bsd telephone answering support
28  *      ==============================================
29  *
30  *      $Id: defs.h,v 1.10 1999/12/13 21:25:26 hm Exp $ 
31  *
32  * $FreeBSD: src/usr.sbin/i4b/isdntel/defs.h,v 1.6.2.1 2001/08/01 17:45:06 obrien Exp $
33  * $DragonFly: src/usr.sbin/i4b/isdntel/defs.h,v 1.3 2003/08/08 04:18:45 dillon Exp $
34  *
35  *      last edit-date: [Mon Dec 13 21:53:50 1999]
36  *
37  *----------------------------------------------------------------------------*/
38
39 #include <ncurses.h>
40 #include <stdio.h>
41 #include <signal.h>
42 #include <errno.h>
43 #include <string.h>
44 #include <stdlib.h>
45 #include <stdarg.h>
46 #include <unistd.h>
47 #include <fcntl.h>
48 #include <ctype.h>
49 #include <sys/time.h>
50 #if defined(__FreeBSD__) && __FreeBSD__ >= 3
51 #include <dirent.h>
52 #else
53 #include <sys/dir.h>
54 #endif
55 #include <sys/param.h>
56
57 #include <i4b_machine/i4b_ioctl.h>
58
59 #define GOOD    0
60 #define ERROR   (-1)
61 #define WARNING (-2)
62
63 #define SPOOLDIR        "/var/isdn"
64 #define PLAYCMD         "cat %s | g711conv -a >/dev/audio"
65
66 /* reread timeout in seconds */
67
68 #define REREADTIMEOUT   60
69
70 /* window dimensions */
71
72 #define START_O         3       /* main window start  */
73
74 #define DAT_POS         0
75 #define TIM_POS         (DAT_POS+10)
76 #define DST_POS         (TIM_POS+8)
77 #define SRC_POS         (DST_POS+17)
78 #define ALI_POS         (SRC_POS+17)
79 #define SEC_POS         (ALI_POS+21)
80 #define LAST_POS        (SEC_POS+5)
81
82 /* fullscreen mode menu window */
83
84 #define WMITEMS         5               /* no of items */
85 #define WMENU_LEN       18              /* window width */
86 #define WMENU_HGT       (WMITEMS+4)     /* window height */
87 #define WMENU_TITLE     "Command"
88 #define WMENU_POSLN     8               /* window position: lines */
89 #define WMENU_POSCO     20              /* window position: columns */
90
91 #define CR              0x0d
92 #define LF              0x0a
93 #define TAB             0x09
94 #define CNTRL_D         0x04
95 #define CNTRL_L         0x0c
96
97 struct onefile {
98         char    *fname;         /* filename */
99         char    *date;
100         char    *time;
101         char    *srcnumber;
102         char    *dstnumber;
103         char    *seconds;
104         char    *alias;
105         int     len;
106         struct onefile *next;   /* ptr to next entry */
107         struct onefile *prev;   /* prt to previous entry */
108 };
109
110 #ifdef MAIN
111
112 int curses_ready = 0;           /* flag, curses display is initialized */
113
114 struct onefile *cur_file = NULL;/* the CURRENT filename */
115 struct onefile *first = NULL;   /* init dir-list head-ptr */
116 struct onefile *last = NULL;    /* init dir-list tail-ptr */
117
118 WINDOW *main_w;                 /* curses main window pointer */
119
120 int nofiles = 0;
121 int cur_pos = 0;
122
123 char *spooldir = SPOOLDIR;
124 char *playstring = PLAYCMD;
125
126 #else
127
128 extern int curses_ready;
129
130 extern struct onefile *cur_file;
131 extern struct onefile *first;
132 extern struct onefile *last;
133
134 extern WINDOW *main_w;
135
136 extern int nofiles;
137 extern int cur_pos;
138
139 extern char *spooldir;
140 extern char *playstring;
141
142 #endif
143
144 extern void init_alias( char *filename );
145 extern void init_files( int inipos );
146 extern void init_screen ( void );
147 extern void do_menu ( void );
148 extern int fill_list( void );
149 extern char *get_alias( char *number );
150 extern int main ( int argc, char **argv );
151 extern void do_quit ( int exitval );
152 extern void fatal ( char *fmt, ... );
153 extern void error ( char *fmt, ... );
154 extern void play ( struct onefile * );
155 extern void delete ( struct onefile * );
156 extern void reread( void );
157
158 /* EOF */