Beispiel #1
0
            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);
            }
Beispiel #2
0
            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);
            }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 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;
 }