diff options
Diffstat (limited to 'xpp/perl_modules/Dahdi/Config/Gen.pm')
-rw-r--r-- | xpp/perl_modules/Dahdi/Config/Gen.pm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/xpp/perl_modules/Dahdi/Config/Gen.pm b/xpp/perl_modules/Dahdi/Config/Gen.pm new file mode 100644 index 0000000..01d602d --- /dev/null +++ b/xpp/perl_modules/Dahdi/Config/Gen.pm @@ -0,0 +1,48 @@ +package Dahdi::Config::Gen; +require Exporter; +@ISA = qw(Exporter); + +@EXPORT_OK = qw(is_true); + +use strict; + +sub is_true($) { + my $val = shift || die; + return $val =~ /^(1|y|yes)$/i; +} + +sub show_gconfig($) { + my $gconfig = shift || die; + + print "Global configuration:\n"; + foreach my $key (sort keys %{$gconfig}) { + printf " %-20s %s\n", $key, $gconfig->{$key}; + } +} + +sub bchan_range($) { + my $span = shift || die; + my $first_chan = ($span->chans())[0]; + my $first_num = $first_chan->num(); + my $range_start = $first_num; + my @range; + my $prev = undef; + + die unless $span->is_digital(); + foreach my $c (@{$span->bchan_list()}) { + my $curr = $c + $first_num; + if(!defined($prev)) { + $prev = $curr; + } elsif($curr != $prev + 1) { + push(@range, sprintf("%d-%d", $range_start, $prev)); + $range_start = $curr; + } + $prev = $curr; + } + if($prev >= $first_num) { + push(@range, sprintf("%d-%d", $range_start, $prev)); + } + return join(',', @range); +} + +1; |