/// <summary>
        /// Outputs all the contents of a single frame. This is done per cycle and
        /// then per item.
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="writer"></param>
        private static void OutputFrame(PlayFrame frame, XmlWriter writer)
        {
            FramePlayData playData = frame.GenerateViewingData();
              int cycleIndex = 0;

              writer.WriteStartElement("frame");
              writer.WriteAttributeString("name", frame.Name);
              foreach (List<ItemPlayData> cyclePlayData in playData.PlayData)
              {
            String pauseText = null;

            if (playData.PauseTexts.ContainsKey(cycleIndex))
            {
              pauseText = playData.PauseTexts[cycleIndex];
            }

            OutputSingleCycle(cyclePlayData, writer, pauseText);
            cycleIndex++;
              }
              writer.WriteEndElement();
        }