Drivetrain replayer now has the gyro.

Change-Id: Ica3630eb65c11992f61d7bf719361cddd87fa95b
diff --git a/aos/common/controls/replay_control_loop.h b/aos/common/controls/replay_control_loop.h
index e258267..fa98463 100644
--- a/aos/common/controls/replay_control_loop.h
+++ b/aos/common/controls/replay_control_loop.h
@@ -52,6 +52,13 @@
     replayer_.AddDirectQueueSender(process_name, "goal", loop_group_->goal);
   }
 
+  template <class QT>
+  void AddDirectQueueSender(const ::std::string &process_name,
+                            const ::std::string &log_message,
+                            const ::aos::Queue<QT> &queue) {
+    replayer_.AddDirectQueueSender<QT>(process_name, log_message, queue);
+  }
+
   // Replays messages from a file.
   // filename can be straight from the command line; all sanity checking etc is
   // handled by this function.
diff --git a/y2014/control_loops/drivetrain/BUILD b/y2014/control_loops/drivetrain/BUILD
index 21d3051..6a380de 100644
--- a/y2014/control_loops/drivetrain/BUILD
+++ b/y2014/control_loops/drivetrain/BUILD
@@ -11,6 +11,7 @@
     ':drivetrain_queue',
     '//aos/common/controls:replay_control_loop',
     '//aos/linux_code:init',
+    '//frc971/queues:gyro',
   ],
 )
 
diff --git a/y2014/control_loops/drivetrain/replay_drivetrain.cc b/y2014/control_loops/drivetrain/replay_drivetrain.cc
index 26209fa..091d992 100644
--- a/y2014/control_loops/drivetrain/replay_drivetrain.cc
+++ b/y2014/control_loops/drivetrain/replay_drivetrain.cc
@@ -2,6 +2,7 @@
 #include "aos/linux_code/init.h"
 
 #include "y2014/control_loops/drivetrain/drivetrain.q.h"
+#include "frc971/queues/gyro.q.h"
 
 // Reads one or more log files and sends out all the queue messages (in the
 // correct order and at the correct time) to feed a "live" drivetrain process.
@@ -16,6 +17,9 @@
 
   ::aos::controls::ControlLoopReplayer<::frc971::control_loops::DrivetrainQueue>
       replayer(&::frc971::control_loops::drivetrain_queue, "drivetrain");
+
+  replayer.AddDirectQueueSender("wpilib_interface.Gyro", "sending",
+                                ::frc971::sensors::gyro_reading);
   for (int i = 1; i < argc; ++i) {
     replayer.ProcessFile(argv[i]);
   }