-/* $Id$
-
-This file is part of the MSP Märklin suite
-Copyright © 2009 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
-#ifndef MARKLINNET_CLIENT_H_
-#define MARKLINNET_CLIENT_H_
+#ifndef R2C2_NET_CLIENT_H_
+#define R2C2_NET_CLIENT_H_
#include <msp/io/eventdispatcher.h>
#include <msp/net/communicator.h>
-#include "libmarklin/catalogue.h"
+#include "libr2c2/catalogue.h"
#include "packets.h"
#include "protocol.h"
#include "train.h"
-namespace Marklin {
+namespace R2C2 {
-class Client: public Msp::Net::PacketReceiver<TrainInfoPacket>,
- Msp::Net::PacketReceiver<TrainSpeedPacket>,
+class Client: Msp::Net::PacketReceiver<DriverStatePacket>,
+ Msp::Net::PacketReceiver<EmergencyPacket>,
+ Msp::Net::PacketReceiver<TrainInfoPacket>,
Msp::Net::PacketReceiver<TrainFunctionPacket>,
+ Msp::Net::PacketReceiver<TrainControlPacket>,
Msp::Net::PacketReceiver<TrainStatusPacket>,
Msp::Net::PacketReceiver<RouteInfoPacket>,
Msp::Net::PacketReceiver<TrainRoutePacket>,
Msp::Net::PacketReceiver<ErrorPacket>
{
public:
+ sigc::signal<void, bool> signal_power_changed;
+ sigc::signal<void, bool> signal_halt_changed;
+ sigc::signal<void, const std::string &> signal_emergency;
sigc::signal<void, NetTrain &> signal_train_added;
sigc::signal<void, const std::string &> signal_error;
Msp::Net::StreamSocket *socket;
Msp::Net::Communicator *comm;
Msp::IO::EventDispatcher *event_disp;
+ bool power;
+ bool halt;
std::list<std::string> routes;
std::map<unsigned, NetTrain *> trains;
const Catalogue &get_catalogue() const { return catalogue; }
const std::list<std::string> &get_routes() const { return routes; }
+ void set_power(bool);
+ void set_halt(bool);
NetTrain &get_train(unsigned) const;
const std::map<unsigned, NetTrain *> &get_trains() const { return trains; }
private:
+ virtual void receive(const DriverStatePacket &);
+ virtual void receive(const EmergencyPacket &);
virtual void receive(const TrainInfoPacket &);
- virtual void receive(const TrainSpeedPacket &);
+ virtual void receive(const TrainControlPacket &);
virtual void receive(const TrainFunctionPacket &);
virtual void receive(const TrainStatusPacket &);
virtual void receive(const RouteInfoPacket &);
virtual void receive(const ErrorPacket &);
};
-} // namespace Marklin
+} // namespace R2C2
#endif