public static void TranscodeFile(string filePath, string outputPath, Dynastream.Fit.Sport resultantSport) { Console.WriteLine("Transcoding file {0} to {1}..", filePath, outputPath); using (var fitFileStream = new FileStream(filePath, FileMode.Open)) using (var outputFitFileStream = new FileStream(outputPath, FileMode.Create)) { var decoder = new Dynastream.Fit.Decode(); var encoder = new Dynastream.Fit.Encode(); using (var transcoder = new Transcoder(decoder, encoder, resultantSport)) { encoder.Open(outputFitFileStream); bool status = decoder.IsFIT(fitFileStream) & decoder.CheckIntegrity(fitFileStream); // Process the file if (!status) { throw new ApplicationException(string.Format("Integrity Check Failed {0}", filePath)); } else { decoder.Read(fitFileStream); } encoder.Close(); } } Console.WriteLine("Transcoded file {0} to {1}..", filePath, outputPath); }
internal Transcoder(Dynastream.Fit.Decode decoder, Dynastream.Fit.Encode encoder, Dynastream.Fit.Sport resultantSport) { this.decoder = decoder; this.decoder.MesgEvent += new Dynastream.Fit.MesgEventHandler(this.HandleMessageEvent); this.decoder.MesgDefinitionEvent += new Dynastream.Fit.MesgDefinitionEventHandler(this.HandleMessageDefinitionEvent); this.encoder = encoder; this.resultantSport = resultantSport; }
public static FitnessActivityType ToFitnessActivityType(this Dynastream.Fit.Sport sport) { // TODO: support as much types as possible! switch (sport) { case Dynastream.Fit.Sport.Cycling: return(FitnessActivityType.Cycling); case Dynastream.Fit.Sport.Running: return(FitnessActivityType.Running); case Dynastream.Fit.Sport.Walking: return(FitnessActivityType.Walking); default: return(FitnessActivityType.Other); } }
public static ActivityType ToStravaActivityType(this Dynastream.Fit.Sport sport) { // TODO: support as much types as possible! switch (sport) { case Dynastream.Fit.Sport.Cycling: return(ActivityType.Ride); case Dynastream.Fit.Sport.Running: return(ActivityType.Run); case Dynastream.Fit.Sport.Walking: return(ActivityType.Walk); default: return(ActivityType.Workout); } }
public ParsedArguments(string[] args) { try { if (args.Length < 2) { PrintUsage(); throw new ArgumentException(string.Format("Not enough arguments - {0}!", args.Length)); } else { resultantSport = (Dynastream.Fit.Sport)Enum.Parse(typeof(Dynastream.Fit.Sport), args[0]); inputFilePath = args[1]; } } catch { PrintUsage(); throw; } }