diff options
author | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-11-28 22:43:08 +0000 |
---|---|---|
committer | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-11-28 22:43:08 +0000 |
commit | c679d33437b2fb47c428eb3414f85cc81d2b4f02 (patch) | |
tree | 2dae270401578d9b49c8990cf02b8bbe978ec71e /zttool.c | |
parent | d6f13c2fd564d7e91299fbbf32b19b693511a74f (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.c | 46 |
1 files changed, 29 insertions, 17 deletions
@@ -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) |