DD2-monitor/viz/curses/ecran.c

73 lines
1.4 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/utsname.h>
#include <getopt.h>
#include <ncurses.h>
#include "ecran.h"
int verbosity;
/* ---------------------------------------------------------------- */
int message(char *txt)
{
static int pass = 0;
fprintf(stderr, "%s [%s]\n", __func__, txt);
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(); */
}
/* ---------------------------------------------------------------- */
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, " ecran %dx%d ", COLS, LINES);
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;
}
/* ---------------------------------------------------------------- */