+ symbol = (straight ? MagnetAccessory::TURNOUT_RIGHT : MagnetAccessory::TURNOUT_CURVED_RIGHT);
+
+ MagnetAccessory &turnout = add_accessory(addr, MagnetAccessory::TURNOUT, symbol);
+ turnout.bits = type.get_state_bits();
+
+ return addr;
+}
+
+void CentralStation::remove_turnout(unsigned addr)
+{
+ remove_accessory(addr);
+}
+
+void CentralStation::set_turnout(unsigned addr, unsigned state)
+{
+ set_accessory_state(addr, MagnetAccessory::TURNOUT, state);
+}
+
+unsigned CentralStation::get_turnout(unsigned addr) const
+{
+ return get_accessory_state(addr, MagnetAccessory::TURNOUT);
+}
+
+unsigned CentralStation::add_signal(unsigned addr, const SignalType &)
+{
+ add_accessory(addr, MagnetAccessory::SIGNAL, MagnetAccessory::SEMAPHORE_HOME);
+ return addr;
+}
+
+void CentralStation::remove_signal(unsigned addr)
+{
+ remove_accessory(addr);
+}