//=========================================================================
// Summary  :
// Filename : MMDevice.h
// Author   : Gil Jones
// Project  :
// Revision : 1
// Created  : 2001/12/17
// Modified : 2001/12/17
//=========================================================================
// Description :  Device Name
//=========================================================================
#ifndef _MMDEVICE_H
#define _MMDEVICE_H

#include "ModemMessage.h"
#include "MMUtils.h"

#define DriverMessageTimeOut 30
#define MAXDRIVERLENGTH 256


//////////////////////////////////////////////
class MMDriver : public MMConvertible
{

public:
	MMDriver();
	MMDriver(const ModemMessage *pMM);
	MMDriver(char* str, Boolean to);
	MMDriver(char* str, char status);

	~MMDriver();

	virtual const char* pcRead(const char* sourceBuffer);
	virtual char* pcWrite(char* destBuffer) const;
	virtual ModemMessage::Type tGetMessageType() const
		{ return ModemMessage::tMMDriver; };
	virtual int iGetDefaultTimeout() const
		{ return DriverMessageTimeOut; };

	void setDriverName(char* str)
		{ strcpy(_driver,str); };

	void getDriverName(char* str)
		{ strcpy(str,_driver); };

	void setDriverOn(Boolean b)
	    { _status = b; };
	
	Boolean getDriverOn()
	    { return (Boolean)_status; };

	void setDriverStatus(char status)
	    { _status = status; };

	char getDriverStatus() 
	    { return _status; };

	virtual int size() { return strlen(_driver) + 1; };

protected:
	char _status;
	char _driver[MAXDRIVERLENGTH];

};

#endif
