private IClipContainer EnsureContainerFor(string childId) { ParseId(childId, out string containerId, out string localId); if (string.IsNullOrEmpty(containerId)) { return(null); } IClipContainer clipContainer = GetContainer(containerId); if (clipContainer == null) { SampleContainerChildType childType = GetChildType(localId); clipContainer = CreateContainer(containerId, childType); containers[containerId] = clipContainer; IClipContainer clipContainer2 = EnsureContainerFor(containerId); if (clipContainer2 == null) { root = clipContainer; } else { ParseId(containerId, out string _, out string localId2); clipContainer2.SetChild(localId2, clipContainer); } if (clipContainer is LoopContainer) { isLoop = true; } if (clipContainer is SwitchContainer) { isSwitch = true; } } return(clipContainer); }
public SerializedClip AddClip(string path, string id, SerializedClip copyFrom = null, AudioClip loadedClip = null) { if (containers == null) { containers = new Dictionary <string, IClipContainer>(); } if (clips == null) { clips = new List <SerializedClip>(); } SerializedClip serializedClip = null; for (int i = 0; i < clips.Count; i++) { if (clips[i].id == id) { serializedClip = clips[i]; break; } } if (serializedClip == null) { SerializedClip serializedClip2 = new SerializedClip(); serializedClip2.id = id; serializedClip2.filename = path; serializedClip = serializedClip2; clips.Add(serializedClip); } serializedClip.filename = path; if (loadedClip != null) { serializedClip.clip = loadedClip; serializedClip.isEmbedded = true; serializedClip.clipDirty = false; serializedClip.missingFile = false; } if (copyFrom != null) { serializedClip.Merge(copyFrom); } serializedClip.sample = this; serializedClip.CheckClipFileChange(); IClipContainer clipContainer = EnsureContainerFor(id); if (clipContainer != null) { ParseId(id, out string _, out string localId); clipContainer.SetChild(localId, serializedClip); } else { root = serializedClip; } return(serializedClip); }
public Clip(IClipContainer container, IAMTimeline timeline, IAMTimelineSrc timelineSource, string name, double offset, double duration, double mediaStart, MediaFile file) { _container = container; _name = name; _timeline = timeline; _timelineSource = timelineSource; _offset = offset; _duration = duration; _file = file; _mediaStart = mediaStart; }
public Clip(IClipContainer container, IAMTimeline timeline, IAMTimelineSrc timelineSource, string name, double offset, double duration, double mediaStart, MediaFile file) { _container = container; _name = name; _timeline = timeline; _timelineSource = timelineSource; _offset = offset; _duration = duration; _file = file; _mediaStart = mediaStart; }