1
0
Fork 0
DD2-monitor/viz/curses/ecran.c

77 linhas
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/utsname.h>
#include <getopt.h>
#include <ncurses.h>
#include "ecran.h"
extern int verbosity;
/* ---------------------------------------------------------------- */
int message(char *txt)
{
static int pass = 0;
#if TRACE
fprintf(stderr, "%s [%s]\n", __func__, txt);
#endif
standout();
mvhline(LINES-1, 0, '~', COLS);
mvaddch(LINES-1, 0, "\\|/-"[(pass++)%4]);
mvaddstr(LINES-1, 2, txt);
standend();
refresh();
return 0;
}
/* ---------------------------------------------------------------- */
void barre_inverse(char c, int ligne)
{
int foo;
standout();
for (foo=0; foo<COLS; foo++)
mvaddch(ligne, foo, c);
standend();
/* refresh(); */
}
/* ---------------------------------------------------------------- */
/* make display on the standard screen (stdscr) */
int fond_ecran(char *title)
{
char *tp;
struct utsname utsn;
int foo;
char buffer[200];
tp = " DD2 Monitoring by tTh 2019 ";
if (NULL != title) tp = title;
barre_inverse(' ', 0);
standout();
mvaddstr(0, 2, tp);
if (verbosity) {
sprintf(buffer, " ecr: %dx%d ", COLS, LINES);
fprintf(stderr, "%s ==> %s\n", __func__, buffer);
foo = strlen(buffer);
mvaddstr(0, COLS-2-foo, buffer);
}
/* get and display hostname */
foo = uname(&utsn);
if ( !foo ) {
mvaddstr(0, 2+strlen(tp), "on");
mvaddstr(0, 5+strlen(tp), utsn.nodename);
}
standend();
refresh();
return 0;
}
/* ---------------------------------------------------------------- */