summaryrefslogtreecommitdiff
path: root/zttool.c
diff options
context:
space:
mode:
authormattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-28 22:43:08 +0000
committermattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-28 22:43:08 +0000
commitc679d33437b2fb47c428eb3414f85cc81d2b4f02 (patch)
tree2dae270401578d9b49c8990cf02b8bbe978ec71e /zttool.c
parentd6f13c2fd564d7e91299fbbf32b19b693511a74f (diff)
Fix for #8300
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@1655 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zttool.c')
-rw-r--r--zttool.c46
1 files changed, 29 insertions, 17 deletions
diff --git a/zttool.c b/zttool.c
index abb674d..3c71674 100644
--- a/zttool.c
+++ b/zttool.c
@@ -47,6 +47,7 @@
#endif
static int ctl = -1;
+static int span_max_chan_pos;
static ZT_SPANINFO s[ZT_MAX_SPANS];
@@ -199,14 +200,14 @@ static void show_bits(int span, newtComponent bitbox, newtComponent inuse, newtC
memset(tdbits,0, sizeof(tdbits));
memset(rcbits,0, sizeof(rcbits));
memset(rdbits,0, sizeof(rdbits));
- memset(tabits,32, s[span].totalchans);
- memset(tbbits,32, s[span].totalchans);
- memset(rabits,32, s[span].totalchans);
- memset(rbbits,32, s[span].totalchans);
- memset(tcbits,32, s[span].totalchans);
- memset(tdbits,32, s[span].totalchans);
- memset(rcbits,32, s[span].totalchans);
- memset(rdbits,32, s[span].totalchans);
+ memset(tabits,32, span_max_chan_pos);
+ memset(tbbits,32, span_max_chan_pos);
+ memset(rabits,32, span_max_chan_pos);
+ memset(rbbits,32, span_max_chan_pos);
+ memset(tcbits,32, span_max_chan_pos);
+ memset(tdbits,32, span_max_chan_pos);
+ memset(rcbits,32, span_max_chan_pos);
+ memset(rdbits,32, span_max_chan_pos);
for (x=0;x<ZT_MAX_CHANNELS;x++) {
memset(&zp, 0, sizeof(zp));
@@ -337,9 +338,9 @@ static void show_span(int span)
newtComponent syncsrc;
newtComponent irqmisses;
- char s1[] = " 1111111111222222222333";
- char s2[] = "1234567890123456789012345789012";
- int max;
+ char s1[] = " 1111111111222222222233";
+ char s2[] = "1234567890123456789012345678901";
+ int x;
int looped = 0;
struct newtExitStruct es;
@@ -364,14 +365,24 @@ static void show_span(int span)
newtFormAddComponents(form, back, loop, NULL);
- max = s[span].totalchans;
- if (max > 32)
- max = 32;
+ span_max_chan_pos = s[span].totalchans;
+ for (x=0;x<ZT_MAX_CHANNELS;x++) {
+ ZT_PARAMS zp;
+ int res;
+ memset(&zp, 0, sizeof(zp));
+ zp.channo = x;
+ res = ioctl(ctl, ZT_GET_PARAMS, &zp);
+ if (!res && zp.spanno == span && zp.chanpos > span_max_chan_pos )
+ span_max_chan_pos = zp.chanpos;
+ }
+
+ if (span_max_chan_pos > 32)
+ span_max_chan_pos = 32;
- s1[max] = '\0';
- s2[max] = '\0';
+ s1[span_max_chan_pos] = '\0';
+ s2[span_max_chan_pos] = '\0';
- bitbox = newtTextbox(8,10,max,9,0);
+ bitbox = newtTextbox(8,10,span_max_chan_pos,9,0);
newtFormAddComponent(form, bitbox);
label = newtLabel(8,8,s1);
@@ -482,6 +493,7 @@ out:
newtFormDestroy(form);
newtPopWindow();
newtPopHelpLine();
+ span_max_chan_pos = 0;
}
static void show_spans(void)