/// <summary> /// Adds a synctrack object (bpm or time signature) into the song. /// </summary> /// <param name="syncTrackObject">Item to add.</param> /// <param name="autoUpdate">Automatically update all read-only arrays? /// If set to false, you must manually call the updateArrays() method, but is useful when adding multiple objects as it increases performance dramatically.</param> public void Add(SyncTrack syncTrackObject, bool autoUpdate = true) { syncTrackObject.song = this; SongObjectHelper.Insert(syncTrackObject, _syncTrack); if (autoUpdate) { UpdateCache(); } }
/// <summary> /// Adds an event object (section or event) into the song. /// </summary> /// <param name="syncTrackObject">Item to add.</param> /// <param name="autoUpdate">Automatically update all read-only arrays? /// If set to false, you must manually call the updateArrays() method, but is useful when adding multiple objects as it increases performance dramatically.</param> public void Add(Event eventObject, bool autoUpdate = true) { eventObject.song = this; SongObjectHelper.Insert(eventObject, _events); if (autoUpdate) { UpdateCache(); } }
/// <summary> /// Adds a chart object (note, starpower and/or chart event) into the chart. /// </summary> /// <param name="chartObject">The item to add</param> /// <param name="update">Automatically update all read-only arrays? /// If set to false, you must manually call the updateArrays() method, but is useful when adding multiple objects as it increases performance dramatically.</param> public int Add(ChartObject chartObject, bool update = true) { chartObject.chart = this; chartObject.song = this._song; int pos = SongObjectHelper.Insert(chartObject, _chartObjects); if (update) { UpdateCache(); } return(pos); }