public TrackData NewTrackData(
            UserSongClip clip,
            BeatStructureMadmom bsm,
            LocationMode locationMode)
        {
            TrackData trackData = new TrackData();

            trackData.originalFilePath  = clip.originalFilePath;
            trackData.originalTrackName = clip.trackData.originalTrackName;
            trackData.originalArtist    = clip.trackData.originalArtist;
            trackData.trackId           = new TrackId(clip.originalFilePath);
            trackData.bpm = bsm._beatList.AverageBpm;
            trackData.beatStrucureJSON = BeatStructureToJSON(bsm);
            trackData.duration         = clip.trackData.duration;
            trackData.locationMode     = locationMode;
            trackData.firstBeatOffset  = bsm.Beats[0]._triggerTime;
            SaveTrackData(trackData);
            TrackDefinition trackDefinition = new TrackDefinition();

            trackDefinition.locationMode = locationMode;
            trackDefinition.trackId      = trackData.trackId;
            trackDefinition.tagLibTitle  = trackData.originalTrackName;
            trackDefinition.tagLibArtist = trackData.originalArtist;
            trackDefinition.duration     = trackData.duration;
            trackDefinition.bpm          = trackData.bpm;
            trackDefinition.trackData    = trackData;
            trackDefinition.SaveTrackDefinition();
            this.trackDefinitionsPlayer.Add(trackDefinition);
            return(trackData);
        }
Example #2
0
        private Boolean isApproachingStartLine(TrackDefinition track, float previousLapDistance, float currentLapDistance)
        {
            if (track == null)
            {
                return(false);
            }
            float checkPoint = track.trackLength - distanceBeforeStartLineToWarnOfPitExit;

            return(previousLapDistance < checkPoint && currentLapDistance > checkPoint);
        }
Example #3
0
 public static void UpdateFromTrackDefinition(TrackDefinition trackDefinition)
 {
     useOvalLogic = trackDefinition.isOval;
     // this is called when we start a session, so update the spotter enabled flag based on the initial state
     spotterEnabled = spotterEnabledInitialState && (useOvalLogic || !realisticMode);
     if (useOvalLogic)
     {
         Console.WriteLine("Track is marked as oval");
     }
 }
        public TrackData GetTrackDataByID(string trackDataId)
        {
            TrackDefinition trackDefinition = this.GetTrackDefinition(trackDataId);

            if (trackDefinition == null)
            {
                return((TrackData)null);
            }
            trackDefinition.LoadTrackData();
            return(trackDefinition.trackData);
        }
Example #5
0
 public void AddToPlaylist(TrackDefinition trackDefinition)
 {
     if (Current == null)
     {
         MultipleAddToPlaylistAndPlay(new[] { trackDefinition }, 0);
         return;
     }
     Current.AddTrack(trackDefinition);
     _currentTracks.Source = Current.Tracks;
     CurrentTracks.Refresh();
     OnPropertyChanged(nameof(CurrentTracks));
 }
        public TrackDefinition GetTrackDefinition(string trackId)
        {
            TrackDefinition trackDefinition = (TrackDefinition)null;

            for (int index = 0; index < this.trackDefinitionsResources.Count; ++index)
            {
                if (this.trackDefinitionsResources[index].trackId.trackId == trackId)
                {
                    trackDefinition = this.trackDefinitionsResources[index];
                    break;
                }
            }
            if (trackDefinition == null)
            {
                for (int index = 0; index < this.trackDefinitionsPlayer.Count; ++index)
                {
                    if (this.trackDefinitionsPlayer[index].trackId.trackId == trackId)
                    {
                        trackDefinition = this.trackDefinitionsPlayer[index];
                        break;
                    }
                }
            }
            if (trackDefinition == null)
            {
                for (int index = 0; index < this.trackDefinitionsEditor.Count; ++index)
                {
                    if (this.trackDefinitionsEditor[index].trackId.trackId == trackId)
                    {
                        trackDefinition = this.trackDefinitionsEditor[index];
                        break;
                    }
                }
            }
            if (trackDefinition == null)
            {
                for (int index = 0; index < this.trackDefinitionsDLC.Count; ++index)
                {
                    if (this.trackDefinitionsDLC[index].trackId.trackId == trackId)
                    {
                        trackDefinition = this.trackDefinitionsDLC[index];
                        break;
                    }
                }
            }
            return(trackDefinition);
        }
        public void LoadTrackDefinitionLists()
        {
            this.trackDataLoadComplete     = false;
            this.trackDefinitionsResources = new List <TrackDefinition>();
            this.trackDefinitionsPlayer    = new List <TrackDefinition>();
            this.trackDefinitionsEditor    = new List <TrackDefinition>();
            this.myWorkoutTrackDataList    = new List <TrackData>();
            this.trackDefinitionsDLC       = new List <TrackDefinition>();
            string str = Paths.DefinitionsFolder(LocationMode.Workouts);
            int    count;
            string path1 = Paths.DefinitionsFolder(LocationMode.PlayerData);

            string[] fileNames;
            if (Directory.Exists(path1))
            {
                fileNames = Directory.GetFiles(path1, "*.wdef.txt");
                for (count = 0; count < fileNames.Length; ++count)
                {
                    TrackDefinition trackDefinition = JsonConvert.DeserializeObject <TrackDefinition>(System.IO.File.ReadAllText(fileNames[count]));
                    if (this.GetTrackDefinition(trackDefinition.trackId.trackId) == null)
                    {
                        trackDefinition.locationMode = LocationMode.PlayerData;
                        this.trackDefinitionsPlayer.Add(trackDefinition);
                    }
                }
                fileNames = (string[])null;
            }
            string path2 = Paths.DefinitionsFolder(LocationMode.Editor);

            if (Directory.Exists(path2))
            {
                fileNames = Directory.GetFiles(path2, "*.wdef.txt");
                for (count = 0; count < fileNames.Length; ++count)
                {
                    TrackDefinition trackDefinition = JsonConvert.DeserializeObject <TrackDefinition>(System.IO.File.ReadAllText(fileNames[count]));
                    if (this.GetTrackDefinition(trackDefinition.trackId.trackId) == null)
                    {
                        this.trackDefinitionsEditor.Add(trackDefinition);
                    }
                    trackDefinition.locationMode = LocationMode.Editor;
                }
                fileNames = (string[])null;
            }
            this.trackDataLoadComplete = true;
        }
 internal void Log(TrackDefinition trackDefinition, string message) { LogBase(new LogEntry(trackDefinition), message); }
Example #9
0
 public Member(TrackDefinition track, long position)
 {
     Track    = track;
     Position = position;
 }
Example #10
0
 public void AddTrack(TrackDefinition trackDefinition)
 {
     Tracks.Add(new Member(trackDefinition, Tracks.Count + 1));
 }