コード例 #1
0
        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);
        }
コード例 #2
0
 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;
 }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 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;
     }
 }