public LiveDataDisplayForm(SensorDataPlayer sdp, Dictionary <BoneType, Matrix4> calibration, Dictionary <string, BoneType> boneMapping)
        {
            // TODO: Complete member initialization
            InitializeComponent();
            this.mCalibrationData   = calibration;
            this.mSensorBoneMapping = boneMapping;
            mReplayer = sdp;
            this.subscribeToSource(sdp);
            isReplay = true;

            this.btnCalibrate.Visible   = false;
            this.btnSynchronize.Visible = false;
        }
        private void btnReplay_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDialog = new OpenFileDialog();

            openDialog.Filter = "Sensor Data|*.imu";
            openDialog.Title  = "Load sensor replay data";

            DialogResult result = openDialog.ShowDialog();

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                SensorDataPlayer sdp = new SensorDataPlayer();

                ReplayData                    data   = sdp.loadFile(openDialog.FileName);
                LiveDataDisplayForm           Replay = new LiveDataDisplayForm(sdp, data.mCalibrationData, data.mSensorBoneMapping);
                BindingList <SensorDataEntry> blist  = new BindingList <SensorDataEntry>(data.mDataList);
                dataGridView1.DataSource = blist;
                Replay.Show();
                Replay.begin();
            }
        }