]> git.tdb.fi Git - r2c2.git/blobdiff - source/network/client.cpp
Handle separate speed and reverse controls correctly in remote
[r2c2.git] / source / network / client.cpp
index 8e31cfe54c59b9cfe5e501722b31c112e36ea3c7..50db7df6d817bdcbb738e4182262de9df2fd275f 100644 (file)
@@ -43,9 +43,9 @@ void Client::connect(const Net::SockAddr &addr)
        comm = new Net::Communicator(*socket, proto, *this);
 }
 
-NetTrain &Client::get_train(unsigned addr)
+NetTrain &Client::get_train(unsigned addr) const
 {
-       map<unsigned, NetTrain *>::iterator i = trains.find(addr);
+       map<unsigned, NetTrain *>::const_iterator i = trains.find(addr);
        if(i==trains.end())
                throw KeyError("Unknown train");
        return *i->second;
@@ -58,7 +58,7 @@ void Client::receive(const TrainInfoPacket &pkt)
        signal_train_added.emit(*train);
 }
 
-void Client::receive(const TrainSpeedPacket &pkt)
+void Client::receive(const TrainControlPacket &pkt)
 {
        get_train(pkt.address).process_packet(pkt);
 }
@@ -83,4 +83,9 @@ void Client::receive(const TrainRoutePacket &pkt)
        get_train(pkt.address).process_packet(pkt);
 }
 
+void Client::receive(const ErrorPacket &pkt)
+{
+       signal_error.emit(pkt.message);
+}
+
 } // namespace Marklin