Example #1
0
        public string xTimingsOutX(xTimings timings, xTimings.LabelTypes labelType, bool indent = false)
        {
            string label  = "";
            string level0 = "";
            string level1 = "  ";
            string level2 = "    ";

            if (indent)
            {
                level0 = "  ";
                level1 = "    ";
                level2 = "      ";
            }
            xEffect effect = null;

            StringBuilder ret = new StringBuilder();

            //  <timing
            ret.Append(level0);
            ret.Append(xTimings.RECORD_start);
            ret.Append(xTimings.TABLE_timing);
            ret.Append(xTimings.SPC);
            //  name="the Name"
            ret.Append(xTimings.FIELD_name);
            ret.Append(xTimings.VALUE_start);
            ret.Append(timings.timingName);
            ret.Append(xTimings.VALUE_end);
            ret.Append(xTimings.SPC);
            //  SourceVersion="2019.21">
            ret.Append(xTimings.FIELD_source);
            ret.Append(xTimings.VALUE_start);
            ret.Append(timings.sourceVersion);
            ret.Append(xTimings.VALUE_end);
            ret.Append(xTimings.RECORD_end);
            ret.Append(xTimings.CRLF);
            //    <EffectLayer>
            ret.Append(level1);
            ret.Append(xTimings.RECORD_start);
            ret.Append(xTimings.TABLE_layers);
            ret.Append(xTimings.RECORD_end);
            ret.Append(xTimings.CRLF);

            for (int i = 0; i < timings.effects.Count; i++)
            {
                effect = timings.effects[i];
                ret.Append(level2);
                ret.Append(xTimings.RECORD_start);
                ret.Append(xEffect.TABLE_Effect);
                ret.Append(xTimings.SPC);
                //  label="foo"
                ret.Append(xEffect.FIELD_label);
                ret.Append(xTimings.VALUE_start);
                switch (labelType)
                {
                case xTimings.LabelTypes.None:
                    // Append Nothing!
                    break;

                case xTimings.LabelTypes.Numbers:
                    ret.Append(effect.xlabel);
                    break;

                case xTimings.LabelTypes.NoteNames:
                    label = "";
                    if (effect.Midi >= 0 && effect.Midi <= 127)
                    {
                        //label = SequenceFunctions.noteNames[timings.effects[i].Midi];
                        label = xUtils.noteNames[effect.Midi];
                    }
                    ret.Append(label);
                    break;

                case xTimings.LabelTypes.MidiNumbers:
                    ret.Append(effect.Midi.ToString());
                    break;

                case xTimings.LabelTypes.KeyNumbers:
                    ret.Append(effect.Midi.ToString());
                    break;

                case xTimings.LabelTypes.KeyNames:
                    label = "";
                    if (effect.Midi >= 0 && effect.Midi <= 24)
                    {
                        label = SequenceFunctions.keyNames[effect.Midi];
                    }
                    ret.Append(label);
                    break;

                case xTimings.LabelTypes.Letters:
                    ret.Append(effect.xlabel);
                    break;

                case xTimings.LabelTypes.Frequency:
                    label = "";
                    if (effect.Midi >= 0 && effect.Midi <= 127)
                    {
                        label = SequenceFunctions.noteFreqs[effect.Midi];
                    }
                    ret.Append(label);
                    break;
                }
                ret.Append(xTimings.VALUE_end);
                ret.Append(xTimings.SPC);
                //  starttime="50"
                ret.Append(xEffect.FIELD_start);
                ret.Append(xTimings.VALUE_start);
                ret.Append(timings.effects[i].starttime.ToString());
                ret.Append(xTimings.VALUE_end);
                ret.Append(xTimings.SPC);
                //  endtime="350" />
                ret.Append(xEffect.FIELD_end);
                ret.Append(xTimings.VALUE_start);
                ret.Append(timings.effects[i].endtime.ToString());
                ret.Append(xTimings.VALUE_end);
                ret.Append(xTimings.SPC);

                ret.Append(xEffect.RECORD_end);
                ret.Append(xTimings.CRLF);
            }

            //     </EffectLayer>
            ret.Append(level1);
            ret.Append(xTimings.RECORDS_done);
            ret.Append(xTimings.TABLE_layers);
            ret.Append(xTimings.RECORD_end);
            ret.Append(xTimings.CRLF);
            //  </timing>
            ret.Append(level0);
            ret.Append(xTimings.RECORDS_done);
            ret.Append(xTimings.TABLE_timing);
            ret.Append(xTimings.RECORD_end);

            return(ret.ToString());
        }
Example #2
0
        private void ExportSelectedxTimings(string fileName)
        {
            // Get Temp Directory
            int    writeCount   = 0;
            bool   allInOne     = optMultiPer.Checked;
            string lineOut      = "<timings>";
            string fileBaseName = Path.GetDirectoryName(fileName) + "\\" + Path.GetFileNameWithoutExtension(fileName);
            string exten        = ".xtiming";

            // Save Filename for next time (really only need the path, but...)
            fileTimingsLast               = fileName;
            txtSaveNamexL.Text            = ShortenPath(fileName, 100);
            heartOfTheSun.fileTimingsLast = fileTimingsLast;

            if (optMultiPer.Checked)
            {
                heartOfTheSun.saveFormat = 2;
            }
            else
            {
                heartOfTheSun.saveFormat = 1;
            }
            mruTimings.AddNew(fileName);
            mruTimings.SaveToConfig();
            // Get path and name for export files

            if (allInOne)
            {
                writer = BeginTimingsXFile(fileName);
                writer.WriteLine(lineOut);
                writeCount++;
            }

            // BARS AND BEATS
            //if (chkBars.Checked)
            //if (doBarsBeats)
            if (chkBarsBeats.Checked)
            {
                if (transBarBeats != null)
                {
                    if (transBarBeats.xBars != null)
                    {
                        if (transBarBeats.xBars.effects.Count > 0)
                        {
                            if (!allInOne)
                            {
                                writer = BeginTimingsXFile(fileBaseName + " - " + transBarBeats.xBars.timingName + exten);
                                writeCount++;
                            }
                            lineOut = xTimingsOutX(transBarBeats.xBars, xTimings.LabelTypes.Numbers, allInOne);
                            writer.WriteLine(lineOut);
                        }
                    }
                }
                if (chkBeatsFull.Checked)
                {
                    if (transBarBeats.xBeatsFull != null)
                    {
                        if (transBarBeats.xBeatsFull.effects.Count > 0)
                        {
                            if (!allInOne)
                            {
                                writer = BeginTimingsXFile(fileBaseName + " - " + transBarBeats.xBeatsFull.timingName + exten);
                                writeCount++;
                            }
                            lineOut = xTimingsOutX(transBarBeats.xBeatsFull, xTimings.LabelTypes.Numbers, allInOne);
                            writer.WriteLine(lineOut);
                        }
                    }
                }
                if (chkBeatsHalf.Checked)
                {
                    if (transBarBeats.xBeatsHalf != null)
                    {
                        if (transBarBeats.xBeatsHalf.effects.Count > 0)
                        {
                            if (!allInOne)
                            {
                                writer = BeginTimingsXFile(fileBaseName + " - " + transBarBeats.xBeatsHalf.timingName + exten);
                                writeCount++;
                            }
                            lineOut = xTimingsOutX(transBarBeats.xBeatsHalf, xTimings.LabelTypes.Numbers, allInOne);
                            writer.WriteLine(lineOut);
                        }
                    }
                }
                if (chkBeatsThird.Checked)
                {
                    if (transBarBeats.xBeatsThird != null)
                    {
                        if (transBarBeats.xBeatsThird.effects.Count > 0)
                        {
                            if (!allInOne)
                            {
                                writer = BeginTimingsXFile(fileBaseName + " - " + transBarBeats.xBeatsThird.timingName + exten);
                                writeCount++;
                            }
                            lineOut = xTimingsOutX(transBarBeats.xBeatsThird, xTimings.LabelTypes.Numbers, allInOne);
                            writer.WriteLine(lineOut);
                        }
                    }
                }
                if (chkBeatsQuarter.Checked)
                {
                    if (transBarBeats.xBeatsQuarter != null)
                    {
                        if (transBarBeats.xBeatsQuarter.effects.Count > 0)
                        {
                            if (!allInOne)
                            {
                                writer = BeginTimingsXFile(fileBaseName + " - " + transBarBeats.xBeatsQuarter.timingName + exten);
                                writeCount++;
                            }
                            lineOut = xTimingsOutX(transBarBeats.xBeatsQuarter, xTimings.LabelTypes.Numbers, allInOne);
                            writer.WriteLine(lineOut);
                        }
                    }
                }
            }

            // NOTE ONSETS
            if (transOnsets != null)
            {
                if (chkNoteOnsets.Checked)
                {
                    if (transOnsets.xOnsets != null)
                    {
                        if (transOnsets.xOnsets.effects.Count > 0)
                        {
                            if (!allInOne)
                            {
                                writer = BeginTimingsXFile(fileBaseName + " - " + transOnsets.xOnsets.timingName + exten);
                                writeCount++;
                            }
                            xTimings.LabelTypes lt = xTimings.LabelType(cboOnsetsLabels.Text);
                            lineOut = xTimingsOutX(transOnsets.xOnsets, lt, allInOne);
                            writer.WriteLine(lineOut);
                        }
                    }
                }
            }

            /*
             * if (chkTranscribe.Checked)
             * {
             *      if (transOnsets.xTranscription != null)
             *      {
             *              if (xTimes.xTranscription.effects.Count > 0)
             *              {
             *                      WriteTimingFileX(xTimes.xTranscription, fileName);
             *                      WriteTimingFile4(xTimes.xTranscription, fileName);
             *                      WriteTimingFile5(xTimes.xTranscription, fileName);
             *                      writeCount+=3;
             *              }
             *      }
             * }
             * if (chkPitchKey.Checked)
             * {
             *      if (xTimes.xKey != null)
             *      {
             *              if (xTimes.xKey.effects.Count > 0)
             *              {
             *                      WriteTimingFileX(xTimes.xKey, fileName);
             *                      WriteTimingFile4(xTimes.xKey, fileName);
             *                      WriteTimingFile5(xTimes.xKey, fileName);
             *                      writeCount += 3;
             *              }
             *      }
             * }
             * if (chkSegments.Checked)
             * {
             *      if (xTimes.xSegments != null)
             *      {
             *              if (xTimes.xSegments.effects.Count > 0)
             *              {
             *                      WriteTimingFileX(xTimes.xSegments, fileName);
             *                      WriteTimingFile4(xTimes.xSegments, fileName);
             *                      WriteTimingFile5(xTimes.xSegments, fileName);
             *                      writeCount += 3;
             *              }
             *      }
             * }
             *
             *
             */

            //}

            if (allInOne)
            {
                lineOut = "</timings>";
                writer.WriteLine(lineOut);
            }
            writer.Close();



            pnlStatus.Text = writeCount.ToString() + " files writen.";
        }