hyphen/minus fixes in man pages
[dahdi/tools.git] / tonezone.h
1 /*
2  * BSD Telephony Of Mexico "Tormenta" Tone Zone Support 2/22/01
3  * 
4  * Working with the "Tormenta ISA" Card 
5  *
6  * Copyright (C) 2001-2008, Digium, Inc.
7  *
8  * Primary Author: Mark Spencer <markster@digium.com>
9  *
10  */
11
12 /*
13  * See http://www.asterisk.org for more information about
14  * the Asterisk project. Please do not directly contact
15  * any of the maintainers of this project for assistance;
16  * the project provides a web site, mailing lists and IRC
17  * channels for your use.
18  *
19  * This program is free software, distributed under the terms of
20  * the GNU Lesser General Public License Version 2.1 as published
21  * by the Free Software Foundation. See the LICENSE.LGPL file
22  * included with this program for more details.
23  *
24  * In addition, when this program is distributed with Asterisk in
25  * any form that would qualify as a 'combined work' or as a
26  * 'derivative work' (but not mere aggregation), you can redistribute
27  * and/or modify the combination under the terms of the license
28  * provided with that copy of Asterisk, instead of the license
29  * terms granted here.
30  */
31
32 #ifndef _TONEZONE_H
33 #define _TONEZONE_H
34
35 #include <dahdi/user.h>
36
37 struct tone_zone_sound {
38         int toneid;
39         char data[256];                         /* Actual zone description */
40         /* Description is a series of tones of the format:
41            [!]freq1[+freq2][/time] separated by commas.  There
42            are no spaces.  The sequence is repeated back to the 
43            first tone description not preceeded by !.  time is
44            specified in milliseconds */
45 };
46
47 struct tone_zone {
48         int zone;                               /* Zone number */
49         char country[10];                       /* Country code */
50         char description[40];                   /* Description */
51         int ringcadence[DAHDI_MAX_CADENCE];     /* Ring cadence */
52         struct tone_zone_sound tones[DAHDI_TONE_MAX];
53         int dtmf_high_level;                    /* Power level of high frequency component
54                                                    of DTMF, expressed in dBm0. */
55         int dtmf_low_level;                     /* Power level of low frequency component
56                                                    of DTMF, expressed in dBm0. */
57         int mfr1_level;                         /* Power level of MFR1, expressed in dBm0. */
58         int mfr2_level;                         /* Power level of MFR2, expressed in dBm0. */
59 };
60
61 extern struct tone_zone builtin_zones[];
62
63 /* Register a given two-letter tone zone if we can */
64 int tone_zone_register(int fd, char *country);
65
66 /* Register a given two-letter tone zone if we can */
67 int tone_zone_register_zone(int fd, struct tone_zone *z);
68
69 /* Retrieve a raw tone zone structure */
70 struct tone_zone *tone_zone_find(char *country);
71
72 /* Retrieve a raw tone zone structure by id instead of country*/
73 struct tone_zone *tone_zone_find_by_num(int id);
74
75 /* Retrieve a string name for a given tone id */
76 char *tone_zone_tone_name(int id);
77
78 /* Set a given file descriptor into a given country -- USE THIS
79    INTERFACE INSTEAD OF THE IOCTL ITSELF.  Auto-loads tone
80    zone if necessary */
81 int tone_zone_set_zone(int fd, char *country);
82
83 /* Get the current tone zone */
84 int tone_zone_get_zone(int fd);
85
86 /* Play a given tone, loading tone zone automatically
87    if necessary */
88 int tone_zone_play_tone(int fd, int toneid);
89
90 #endif