Fix formatting of "show codecs" CLI command.

Make "show translations" CLI command have dynamic widths.

Also display g726 codec in both commands.
There are probably other places where "11" is hardcoded...


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39965 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jason Parker
2006-08-16 03:48:36 +00:00
parent 9f9a5f1984
commit f7d117d24f
2 changed files with 30 additions and 14 deletions

10
frame.c
View File

@@ -615,13 +615,13 @@ static int show_codecs(int fd, int argc, char *argv[])
ast_cli(fd, "Disclaimer: this command is for informational purposes only.\n"
"\tIt does not indicate anything about your configuration.\n");
ast_cli(fd, "%11s %9s %10s TYPE %5s %s\n","INT","BINARY","HEX","NAME","DESC");
ast_cli(fd, "%11s %9s %10s TYPE %8s %s\n","INT","BINARY","HEX","NAME","DESC");
ast_cli(fd, "--------------------------------------------------------------------------------\n");
if ((argc == 2) || (!strcasecmp(argv[1],"audio"))) {
found = 1;
for (i=0;i<11;i++) {
for (i=0;i<12;i++) {
snprintf(hex,25,"(0x%x)",1<<i);
ast_cli(fd, "%11u (1 << %2d) %10s audio %5s (%s)\n",1 << i,i,hex,ast_getformatname(1<<i),ast_codec2str(1<<i));
ast_cli(fd, "%11u (1 << %2d) %10s audio %8s (%s)\n",1 << i,i,hex,ast_getformatname(1<<i),ast_codec2str(1<<i));
}
}
@@ -629,7 +629,7 @@ static int show_codecs(int fd, int argc, char *argv[])
found = 1;
for (i=16;i<18;i++) {
snprintf(hex,25,"(0x%x)",1<<i);
ast_cli(fd, "%11u (1 << %2d) %10s image %5s (%s)\n",1 << i,i,hex,ast_getformatname(1<<i),ast_codec2str(1<<i));
ast_cli(fd, "%11u (1 << %2d) %10s image %8s (%s)\n",1 << i,i,hex,ast_getformatname(1<<i),ast_codec2str(1<<i));
}
}
@@ -637,7 +637,7 @@ static int show_codecs(int fd, int argc, char *argv[])
found = 1;
for (i=18;i<22;i++) {
snprintf(hex,25,"(0x%x)",1<<i);
ast_cli(fd, "%11u (1 << %2d) %10s video %5s (%s)\n",1 << i,i,hex,ast_getformatname(1<<i),ast_codec2str(1<<i));
ast_cli(fd, "%11u (1 << %2d) %10s video %8s (%s)\n",1 << i,i,hex,ast_getformatname(1<<i),ast_codec2str(1<<i));
}
}

View File

@@ -482,8 +482,9 @@ static void rebuild_matrix(int samples)
/*! \brief CLI "show translation" command handler */
static int show_translation(int fd, int argc, char *argv[])
{
#define SHOW_TRANS 11
#define SHOW_TRANS 12
int x, y, z;
int curlen = 0, longest = 0;
if (argc > 4)
return RESULT_SHOWUSAGE;
@@ -507,7 +508,13 @@ static int show_translation(int fd, int argc, char *argv[])
}
ast_cli(fd, " Translation times between formats (in milliseconds)\n");
ast_cli(fd, " Source Format (Rows) Destination Format(Columns)\n\n");
ast_cli(fd, " Source Format (Rows) Destination Format (Columns)\n\n");
/* Get the length of the longest (usable?) codec name, so we know how wide the left side should be */
for (x = 0; x < SHOW_TRANS; x++) {
curlen = strlen(ast_getformatname(1 << (x + 1)));
if (curlen > longest)
longest = curlen;
}
for (x = -1; x < SHOW_TRANS; x++) {
char line[80];
char *buf = line;
@@ -516,14 +523,23 @@ static int show_translation(int fd, int argc, char *argv[])
*buf++ = ' ';
*buf = '\0';
for (y = -1; y < SHOW_TRANS; y++) {
if (x >= 0 && y >= 0 && tr_matrix[x][y].step) /* XXX what is 99999 ? */
ast_build_string(&buf, &left, " %5d", tr_matrix[x][y].cost >= 99999 ? 0 : tr_matrix[x][y].cost);
else if (((x == -1 && y >= 0) || (y == -1 && x >= 0))) {
ast_build_string(&buf, &left, " %5s", ast_getformatname(1 << (x + y + 1)) );
} else if (x != -1 && y != -1) {
ast_build_string(&buf, &left, " -");
curlen = strlen(ast_getformatname(1 << (y)));
if (x >= 0 && y >= 0 && tr_matrix[x][y].step) {
/* XXX 999 is a little hackish
We don't want this number being larger than the shortest (or current) codec
For now, that is "gsm" */
ast_build_string(&buf, &left, "%*d", curlen + 1, tr_matrix[x][y].cost > 999 ? 0 : tr_matrix[x][y].cost);
} else if (x == -1 && y >= 0) {
/* Top row - use a dynamic size */
ast_build_string(&buf, &left, "%*s", curlen + 1, ast_getformatname(1 << (x + y + 1)) );
} else if (y == -1 && x >= 0) {
/* Left column - use a static size. */
ast_build_string(&buf, &left, "%*s", longest, ast_getformatname(1 << (x + y + 1)) );
} else if (x >= 0 && y >= 0) {
ast_build_string(&buf, &left, "%*s", curlen + 1, "-");
} else {
ast_build_string(&buf, &left, " ");
ast_build_string(&buf, &left, "%*s", longest, "");
}
}
ast_build_string(&buf, &left, "\n");