#ifndef __MonitorConfiguration_H
#define __MonitorConfiguration_H 0
#ifndef WIN32
#define TCHAR char
#endif
#include <string>
#include "MonitorModules.h"
#include "xmltools.h"
enum MonitorChannel {links=0,rechts=1} ;
struct LoginAccount
{
std::string Loginname ;
std::string Password ;
} ;
class SNDConfiguration
{
public:
int iAktiv ;
std::string sDevice ;
int iChannel ;
int iFMS[2] ;
int iZVEI[2] ;
int iPOC512[2] ;
int iPOC1200[2] ;
// Namen der Kanaele (hier geht komischerweise kein std::string mit dem gcc 4.0.3
char sChannelName0[255] ;
char sChannelName1[255] ;
XMLNode configSoundcard ;
XMLNode configChannel[2];
// Parameter der Module
XMLNode configFMS[2],
configZVEI[2],
configPOC512[2],
configPOC1200[2] ;
} ;
class MonitorConfiguration
{
public:
MonitorConfiguration() ;
virtual ~MonitorConfiguration() ;
SNDConfiguration m_sndConfig[4] ;
std::string m_sMonitordName ;
std::string m_sLogfile ;
std::string m_sLoglevel ;
std::string m_sLogConfigurationFile ;
bool ReadConfiguration(std::string filename) ;
bool ResetConfiguration() ;
bool IsValidLogin(std::string loginname, std::string password, std::string host="") ;
//MonitorModuleArray m_ModulesLinks[4] ;
//MonitorModuleArray m_ModulesRechts[4] ;
unsigned int m_Port ;
unsigned int m_PortFMS32Pro ;
unsigned int m_PortCrusader ;
XMLNode m_configDataPlugins ;
std::string m_BindIP ;
bool m_Daemonize ;
#ifdef WIN32
bool m_service_install;
bool m_service_run;
bool m_service_uninstall;
#endif
std::string m_ConfigFile ;
std::string m_crusaderUsername ;
std::string m_socketFilterFileName ;
std::string m_pluginFilterFileName ;
bool ParseCommandline (int argc, TCHAR * argv[]) ;
/* int getNodeInt(XMLNode parent,std::string childName,int defaultValue) ;
std::string getNodeText(XMLNode parent,std::string childName,std::string defaultValue) ;
*/
protected:
std::string ReadChannel(XMLNode channelNode, int sndCard, int channelNum) ;
void ReadSoundCard(XMLNode sndNode, int sndCard);
void ReadTCPConfiguration(XMLNode tcpNode) ;
void ReadAuthenticationData(XMLNode authNode) ;
void ReadMySQLConfiguration(XMLNode dbNode, int moduleNum=0);
std::vector<struct LoginAccount> m_MasterLogins ;
std::vector<std::string> m_IPBlacklist ;
std::vector<std::string> m_IPWhitelist ;
std::vector<std::string> m_IPLoginlist ;
};
#endif