Annotation of embedaddon/mtr/display.c, revision 1.1

1.1     ! misho       1: /*
        !             2:     mtr  --  a network diagnostic tool
        !             3:     Copyright (C) 1997,1998  Matt Kimball
        !             4: 
        !             5:     This program is free software; you can redistribute it and/or modify
        !             6:     it under the terms of the GNU General Public License version 2 as 
        !             7:     published by the Free Software Foundation.
        !             8: 
        !             9:     This program is distributed in the hope that it will be useful,
        !            10:     but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            11:     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            12:     GNU General Public License for more details.
        !            13: 
        !            14:     You should have received a copy of the GNU General Public License
        !            15:     along with this program; if not, write to the Free Software
        !            16:     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
        !            17: */
        !            18: 
        !            19: #include <config.h>
        !            20: #include <stdio.h>
        !            21: #include <stdlib.h>
        !            22: #include <sys/types.h>
        !            23: 
        !            24: #include "mtr.h"
        !            25: #include "display.h"
        !            26: #include "mtr-curses.h"
        !            27: #include "mtr-gtk.h"
        !            28: #include "report.h"
        !            29: #include "select.h"
        !            30: #include "raw.h"
        !            31: #include "dns.h"
        !            32: #ifndef NO_IPINFO
        !            33: #include <asn.h>
        !            34: #endif
        !            35: 
        !            36: extern int DisplayMode;
        !            37: 
        !            38: #ifdef NO_CURSES
        !            39: #define mtr_curses_open()
        !            40: #define mtr_curses_close()
        !            41: #define mtr_curses_redraw()
        !            42: #define mtr_curses_keyaction()
        !            43: #define mtr_curses_clear()
        !            44: #else
        !            45: #include "mtr-curses.h"
        !            46: #endif
        !            47: 
        !            48: #ifdef NO_GTK
        !            49: #define gtk_open()
        !            50: #define gtk_close()
        !            51: #define gtk_redraw()
        !            52: #define gtk_keyaction() 0
        !            53: #define gtk_loop() {fprintf (stderr, "No GTK support. Sorry.\n"); exit (1); } 
        !            54: #else
        !            55: #include "mtr-gtk.h"
        !            56: #endif
        !            57: 
        !            58: #ifdef NO_SPLIT
        !            59: #define split_open()
        !            60: #define split_close()
        !            61: #define split_redraw()
        !            62: #define split_keyaction() 0
        !            63: #else
        !            64: #include "split.h"
        !            65: #endif
        !            66: 
        !            67: void display_detect(int *argc, char ***argv) {
        !            68:   DisplayMode = DisplayReport;
        !            69: 
        !            70: #ifndef NO_CURSES
        !            71:   DisplayMode = DisplayCurses;
        !            72: #endif
        !            73: 
        !            74: #ifndef NO_GTK
        !            75:   if(gtk_detect(argc, argv)) {
        !            76:     DisplayMode = DisplayGTK;
        !            77:   }
        !            78: #endif
        !            79: }
        !            80: 
        !            81: 
        !            82: void display_open(void)
        !            83: {
        !            84:   switch(DisplayMode) {
        !            85: 
        !            86:   case DisplayReport:
        !            87:     report_open();
        !            88:     break;
        !            89:   case DisplayTXT:
        !            90:     txt_open();
        !            91:     break;
        !            92:   case DisplayXML:
        !            93:     xml_open();
        !            94:     break;
        !            95:   case DisplayCSV:
        !            96:     csv_open();
        !            97:     break;
        !            98:   case DisplayCurses:
        !            99:     mtr_curses_open();  
        !           100: #ifndef NO_IPINFO
        !           101:     if (ipinfo_no >= 0)
        !           102:         asn_open();
        !           103: #endif
        !           104:     break;
        !           105:   case DisplaySplit:
        !           106:     split_open();
        !           107:     break;
        !           108:   case DisplayGTK:
        !           109:     gtk_open();
        !           110:     break;
        !           111:   }
        !           112: }
        !           113: 
        !           114: 
        !           115: void display_close(time_t now)
        !           116: {
        !           117:   switch(DisplayMode) {
        !           118:   case DisplayReport:
        !           119:     report_close();
        !           120:     break;
        !           121:   case DisplayTXT:
        !           122:     txt_close();
        !           123:     break;
        !           124:   case DisplayXML:
        !           125:     xml_close();
        !           126:     break;
        !           127:   case DisplayCSV:
        !           128:     csv_close(now);
        !           129:     break;
        !           130:   case DisplayCurses:
        !           131: #ifndef NO_IPINFO
        !           132:     if (ipinfo_no >= 0)
        !           133:         asn_close();
        !           134: #endif
        !           135:     mtr_curses_close();
        !           136:     break;
        !           137:   case DisplaySplit:
        !           138:     split_close();
        !           139:     break;
        !           140:   case DisplayGTK:
        !           141:     gtk_close();
        !           142:     break;
        !           143:   }
        !           144: }
        !           145: 
        !           146: 
        !           147: void display_redraw(void)
        !           148: {
        !           149:   switch(DisplayMode) {
        !           150: 
        !           151:   case DisplayCurses:
        !           152:     mtr_curses_redraw();
        !           153:     break;
        !           154: 
        !           155:   case DisplaySplit:
        !           156:     split_redraw();
        !           157:     break;
        !           158: 
        !           159:   case DisplayGTK:
        !           160:     gtk_redraw();
        !           161:     break;
        !           162:   }
        !           163: }
        !           164: 
        !           165: 
        !           166: int display_keyaction(void)
        !           167: {
        !           168:   switch(DisplayMode) {
        !           169:   case DisplayCurses:
        !           170:     return mtr_curses_keyaction();
        !           171: 
        !           172:   case DisplaySplit:
        !           173:     return split_keyaction();
        !           174: 
        !           175:   case DisplayGTK:
        !           176:     return gtk_keyaction();
        !           177:   }
        !           178:   return 0;
        !           179: }
        !           180: 
        !           181: 
        !           182: void display_rawping(int host, int msec) 
        !           183: {
        !           184:   switch(DisplayMode) {
        !           185:   case DisplayReport:
        !           186:   case DisplayTXT:
        !           187:   case DisplayXML:
        !           188:   case DisplayCSV:
        !           189:   case DisplaySplit:
        !           190:   case DisplayCurses:
        !           191:   case DisplayGTK:
        !           192:     break;
        !           193:   case DisplayRaw:
        !           194:     raw_rawping (host, msec);
        !           195:     break;
        !           196:   }
        !           197: }
        !           198: 
        !           199: 
        !           200: void display_rawhost(int host, ip_t *ip_addr) 
        !           201: {
        !           202:   switch(DisplayMode) {
        !           203:   case DisplayReport:
        !           204:   case DisplayTXT:
        !           205:   case DisplayXML:
        !           206:   case DisplayCSV:
        !           207:   case DisplaySplit:
        !           208:   case DisplayCurses:
        !           209:   case DisplayGTK:
        !           210:     break;
        !           211:   case DisplayRaw:
        !           212:     raw_rawhost (host, ip_addr);
        !           213:     break;
        !           214:   }
        !           215: }
        !           216: 
        !           217: 
        !           218: void display_loop(void)
        !           219: {
        !           220:   switch(DisplayMode) {
        !           221:   case DisplayReport:
        !           222:   case DisplayTXT:
        !           223:   case DisplayXML:
        !           224:   case DisplayCSV:
        !           225:   case DisplaySplit:
        !           226:   case DisplayCurses:
        !           227:   case DisplayRaw:
        !           228:     select_loop();
        !           229:     break;
        !           230:   case DisplayGTK:
        !           231:     gtk_loop();
        !           232:     break;
        !           233:   }
        !           234: }
        !           235: 
        !           236: 
        !           237: void display_clear(void)
        !           238: {
        !           239:   switch(DisplayMode) {
        !           240:   case DisplayCurses:
        !           241:     mtr_curses_clear();
        !           242:     break;
        !           243:   case DisplayReport:
        !           244:   case DisplayTXT:
        !           245:   case DisplayXML:
        !           246:   case DisplayCSV:
        !           247:   case DisplaySplit:
        !           248:   case DisplayRaw:
        !           249:     break;
        !           250: 
        !           251:   case DisplayGTK:
        !           252:     break;
        !           253:   }
        !           254: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>