コード例 #1
0
        public void Deserialize_V1(Stream stream, DataVersion version)
        {
            // Call base deserialization
            Deserialize(typeof(BasePowerTarget.IConcretePowerTarget), stream, version);

            IZoneCategory zones = Options.Instance.PowerZoneCategory;

            // RefId
            GarminFitnessString categoryRefID = new GarminFitnessString();
            categoryRefID.Deserialize(stream, version);

            // Zone index
            GarminFitnessInt32Range zoneIndex = new GarminFitnessInt32Range(0);
            zoneIndex.Deserialize(stream, version);

            if (categoryRefID == zones.ReferenceId && zoneIndex < zones.Zones.Count)
            {
                Zone = zones.Zones[zoneIndex];
            }
            else
            {
                Debug.Assert(zones.Zones.Count > 0);
                Zone = zones.Zones[0];

                // We can't find saved zone, force dirty
                IsDirty = true;
            }
        }
コード例 #2
0
 public HeartRateZoneSTTarget(INamedLowHighZone zone, BaseHeartRateTarget baseTarget)
     : this(baseTarget)
 {
     Zone = zone;
 }
コード例 #3
0
 public PowerZoneSTTarget(INamedLowHighZone zone, BasePowerTarget baseTarget)
     : this(baseTarget)
 {
     Zone = zone;
 }
コード例 #4
0
        public void Deserialize_V3(Stream stream, DataVersion version)
        {
            // Call base deserialization
            Deserialize(typeof(BaseHeartRateTarget.IConcreteHeartRateTarget), stream, version);

            IZoneCategory zones = BaseTarget.ParentStep.ParentConcreteWorkout.Category.HeartRateZone;

            GarminFitnessString categoryRefID = new GarminFitnessString();
            categoryRefID.Deserialize(stream, version);

            GarminFitnessInt32Range zoneIndex = new GarminFitnessInt32Range(0);
            zoneIndex.Deserialize(stream, version);

            GarminFitnessBool dirty = new GarminFitnessBool(IsDirty);
            dirty.Deserialize(stream, version);

            if (categoryRefID == zones.ReferenceId && zoneIndex < zones.Zones.Count)
            {
                Zone = zones.Zones[zoneIndex];

                // Was the step dirty on last save?
                IsDirty = dirty;
            }
            else
            {
                Debug.Assert(zones.Zones.Count > 0);
                Zone = zones.Zones[0];

                // We can't find saved zone, force dirty
                IsDirty = true;
            }
        }
コード例 #5
0
ファイル: Utils.cs プロジェクト: Digresiv/garminworkouts
        public static void SerializeSTZoneInfoXML(IStep step, IZoneCategory categoryZones, INamedLowHighZone zone, XmlDocument document)
        {
            int index = categoryZones.Zones.IndexOf(zone);

            if (index != -1)
            {
                XmlNode extensionNode;
                XmlNode categoryNode;
                XmlNode valueNode;

                extensionNode = document.CreateElement("TargetOverride");

                // Step Id node
                valueNode = document.CreateElement("StepId");
                extensionNode.AppendChild(valueNode);
                valueNode.AppendChild(document.CreateTextNode(step.ParentWorkout.GetStepExportId(step).ToString()));

                // Category node
                categoryNode = document.CreateElement("Category");
                extensionNode.AppendChild(categoryNode);

                // RefId
                GarminFitnessString categoryRefID = new GarminFitnessString(categoryZones.ReferenceId);
                categoryRefID.Serialize(categoryNode, "Id", document);

                // Zone index
                GarminFitnessInt32Range zoneIndex = new GarminFitnessInt32Range(index);
                zoneIndex.Serialize(categoryNode, "Index", document);

                step.ParentWorkout.AddSportTracksExtension(extensionNode);
            }
        }
コード例 #6
0
ファイル: Utils.cs プロジェクト: Digresiv/garminworkouts
        public static bool NamedZoneStillExists(IZoneCategoryList list, INamedLowHighZone zone)
        {
            for (int i = 0; i < list.Count; ++i)
            {
                IZoneCategory currentZoneCategory = list[i];

                for (int j = 0; j < currentZoneCategory.Zones.Count; ++j)
                {
                    if (currentZoneCategory.Zones[j] == zone)
                    {
                        return true;
                    }
                }
            }

            return false;
        }
コード例 #7
0
 public SpeedZoneSTTarget(INamedLowHighZone zone, BaseSpeedTarget baseTarget)
     : this(baseTarget)
 {
     Zone = zone;
 }
コード例 #8
0
 public CadenceZoneSTTarget(INamedLowHighZone zone, BaseCadenceTarget baseTarget)
     : this(baseTarget)
 {
     Zone = zone;
 }