public static void StartSavingXMLSkeleton() { int nbSkFrame = 0; int count = 0; try { XmlWriterSettings settings = new XmlWriterSettings() { ConformanceLevel = ConformanceLevel.Auto, Indent = true }; xmlSkeletonWriter = XmlWriter.Create(SavingTools.pathFolder + "/" + "avatarSkeletonData.skd", settings); xmlSkeletonWriter.WriteStartDocument(); xmlSkeletonWriter.WriteStartElement("Skeletons"); xmlSkeletonQueue = new PCQueue <Skeleton>(sk => { nbSkFrame++; if (nbSkFrame % 2 == 1 || nbSkFrame == 0) { xmlSkeletonWriter.WriteStartElement("Skeleton_" + count++); xmlSkeletonWriter.WriteAttributeString("TimeElapse", Tools.getStopWatch().ToString()); xmlSkeletonWriter.WriteAttributeString("TrackingState", sk.TrackingState.ToString()); List <Joint> lJoints = sk.Joints.ToList(); lJoints.ForEach(joint => { xmlSkeletonWriter.WriteStartElement(joint.JointType.ToString()); xmlSkeletonWriter.WriteAttributeString("TrackingState", joint.TrackingState.ToString()); xmlSkeletonWriter.WriteAttributeString("X", joint.Position.X.ToString()); xmlSkeletonWriter.WriteAttributeString("Y", joint.Position.Y.ToString()); xmlSkeletonWriter.WriteAttributeString("Z", joint.Position.Z.ToString()); xmlSkeletonWriter.WriteEndElement(); }); xmlSkeletonWriter.WriteEndElement(); } }, () => { xmlSkeletonWriter.WriteEndElement(); xmlSkeletonWriter.WriteEndDocument(); xmlSkeletonWriter.Flush(); xmlSkeletonWriter.Close(); }, "XMLSkeletonRecordingTask"); } catch (Exception ex) { if (Tools.getStateStopWatch()) { Tools.stopStopWatch(); } Console.WriteLine(ex.ToString()); } }
/// <summary> /// Functions starting the different recordings (video, openGL, face, etc) /// </summary> /// <author> Amirali Ghazi </author> #region StartSavingFunctions public static void StartSavingStreamRecording() { try { videoStreamWriter = new VideoFileWriter(); videoStreamQueue = new PCQueue <Bitmap>(bm => { videoStreamWriter.WriteVideoFrame(bm); }, () => { videoStreamWriter.Close(); }, "VideoRecordingTask"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public static void startSavingTonePeak() { int valueIndex = 0; try { XmlWriterSettings settings = new XmlWriterSettings() { ConformanceLevel = ConformanceLevel.Auto, Indent = true }; xmlVoiceWriter = XmlWriter.Create(SavingTools.pathFolder + "/" + "tonePeakData.xml", settings); xmlVoiceWriter.WriteStartDocument(); xmlVoiceWriter.WriteStartElement("PeakValues"); xmlVoiceQueue = new PCQueue <float>(value => { xmlVoiceWriter.WriteStartElement("PeakValue_" + valueIndex); xmlVoiceWriter.WriteAttributeString("TimeElapse", Tools.getStopWatch().ToString()); xmlVoiceWriter.WriteAttributeString("Value", value.ToString()); xmlVoiceWriter.WriteAttributeString("Index", (valueIndex++).ToString()); xmlVoiceWriter.WriteEndElement(); }, () => { xmlVoiceWriter.WriteEndElement(); xmlVoiceWriter.WriteEndDocument(); xmlVoiceWriter.Flush(); xmlVoiceWriter.Close(); }, "XMLVoiceRecordingTask"); } catch (Exception ex) { if (Tools.getStateStopWatch()) { Tools.stopStopWatch(); } Console.WriteLine(ex.ToString()); } }
public static void StartSavingXMLFace() { int nbFaceFrame = 0; try { XmlWriterSettings settings = new XmlWriterSettings() { ConformanceLevel = ConformanceLevel.Auto, Indent = true }; xmlFaceWriter = XmlWriter.Create(SavingTools.pathFolder + "/" + "faceData.xml", settings); xmlFaceWriter.WriteStartDocument(); xmlFaceWriter.WriteStartElement("Faces"); xmlFaceQueue = new PCQueue <FaceDataWrapper>(fdw => { xmlFaceWriter.WriteStartElement("Face_" + nbFaceFrame++); xmlFaceWriter.WriteStartElement("FacePoints3D"); for (int i = 0; i < fdw.depthPointsList.Count; ++i) { switch (i) { case 7: case 8: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 23: case 24: case 31: case 40: case 41: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 64: case 87: { xmlFaceWriter.WriteStartElement("Point3D_" + i); xmlFaceWriter.WriteAttributeString("X", fdw.depthPointsList.ElementAt(i).X.ToString()); xmlFaceWriter.WriteAttributeString("Y", fdw.depthPointsList.ElementAt(i).Y.ToString()); xmlFaceWriter.WriteAttributeString("Z", fdw.depthPointsList.ElementAt(i).Z.ToString()); xmlFaceWriter.WriteEndElement(); } break; } } xmlFaceWriter.WriteEndElement(); xmlFaceWriter.WriteStartElement("FacePoints"); for (int i = 0; i < fdw.colorPointsList.Count; ++i) { xmlFaceWriter.WriteStartElement("Point_" + i); xmlFaceWriter.WriteAttributeString("X", fdw.colorPointsList.ElementAt(i).X.ToString()); xmlFaceWriter.WriteAttributeString("Y", fdw.colorPointsList.ElementAt(i).Y.ToString()); xmlFaceWriter.WriteEndElement(); } xmlFaceWriter.WriteEndElement(); xmlFaceWriter.WriteStartElement("FaceTriangles"); for (int i = 0; i < fdw.faceTriangles.Count(); ++i) { // Amirali xmlFaceWriter.WriteStartElement("FaceTriangle_" + i); xmlFaceWriter.WriteAttributeString("Vertex_1", fdw.faceTriangles.ElementAt(i).First.ToString()); xmlFaceWriter.WriteAttributeString("Vertex_2", fdw.faceTriangles.ElementAt(i).Second.ToString()); xmlFaceWriter.WriteAttributeString("Vertex_3", fdw.faceTriangles.ElementAt(i).Third.ToString()); xmlFaceWriter.WriteEndElement(); } xmlFaceWriter.WriteEndElement(); xmlFaceWriter.WriteEndElement(); }, () => { xmlFaceWriter.Flush(); xmlFaceWriter.WriteEndElement(); xmlFaceWriter.WriteEndDocument(); xmlFaceWriter.Close(); }, "XMLFaceRecordingTask"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }