/***************************************************************************
                                   dev.h
                             -------------------
    begin                : Wed Aug 1 2001
    copyright            : (C) 2001 - 20003 by Roland Riegel
    email                : feedback@roland-riegel.de
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef DEV_H
#define DEV_H

#include <curses.h>
#include <config.h>
#include "proc.h"
#include "status.h"

class Status;
class Graph;
class Window;
class OptionBool;
class OptionInt;
class OptionLong;
class OptionStatusFormat;

const bool STANDARD_HIDE_GRAPHS = false;
const int STANDARD_SLEEP_INTERVAL = 500;
const Status::status_format STANDARD_TRAFFIC_FORMAT = Status::kilobit;
const Status::status_format STANDARD_DATA_FORMAT = Status::megabyte;

#ifdef HAVE_LINUX
	char* const STANDARD_NETWORK_DEVICE = "eth0";
#endif

#ifdef HAVE_BSD
	char* const STANDARD_NETWORK_DEVICE = "fxp0";
#endif

#ifdef HAVE_SOLARIS
	char* const STANDARD_NETWORK_DEVICE = "hme0";
#endif

#ifdef HAVE_HPUX
	char* const STANDARD_NETWORK_DEVICE = "lan0";
#endif

class Dev : public Proc
{

public:
	Dev();
	~Dev();

	void update();
	void print( Window& );
	void setDeviceNumber( int );
	void setTotalNumberOfDevices( int );
	void setAverageSmoothness( OptionInt* );
	void setHideGraphs( OptionBool* );
	void setTrafficWithMaxDeflectionOfGraphs( OptionLong*, OptionLong* );
	void setStatusFormat( OptionStatusFormat*, OptionStatusFormat* );
	
private:
	bool hideGraphs();
	Status::status_format trafficFormat();
	Status::status_format dataFormat();
	
	int m_devicenumber;
	int m_totalnumberofdevices;
	OptionBool* m_hidegraphs;
	OptionStatusFormat* m_trafficformat;
	OptionStatusFormat* m_dataformat;
	
	Status *device_status[2];
	Graph *traffic_graph[2];
	
};

#endif


syntax highlighted by Code2HTML, v. 0.9.1