Ejemplo n.º 1
0
        public void Remove(PureDataContainer container)
        {
            if (parentId == 0)
            {
                container.childrenIds.Remove(id);
            }
            else
            {
                PureDataSubContainer parent = container.GetSubContainerWithID(parentId);
                if (parent != null)
                {
                    parent.childrenIds.Remove(id);
                }
            }

            if (container.subContainers.Contains(this))
            {
                container.subContainers.Remove(this);
            }

            foreach (int childrenId in childrenIds.ToArray())
            {
                container.GetSubContainerWithID(childrenId).Remove(container);
            }
        }
Ejemplo n.º 2
0
        public PureDataMultipleItem GetPureDataSwitchItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataMultipleItem switchAudioItem = new PureDataMultipleItem(container.Name, pureData);
            int stateIndex = int.MinValue;

            PureDataSubContainer[] childrenSubContainers = container.IdsToSubContainers(childrenIds);

            if (childrenSubContainers[0].parentId == 0)
            {
                stateIndex = container.switchSettings.GetCurrentStateIndex();
            }
            else
            {
                PureDataSubContainer parentSubContainer = container.GetSubContainerWithID(childrenSubContainers[0].parentId);
                stateIndex = parentSubContainer.switchSettings.GetCurrentStateIndex();
            }

            if (stateIndex != int.MinValue)
            {
                foreach (PureDataSubContainer childSubContainer in childrenSubContainers)
                {
                    if (childSubContainer.switchSettings.stateIndex == stateIndex)
                    {
                        PureDataItem childAudioItem = GetSubContainerAudioItem(container, childSubContainer, source);

                        if (childAudioItem != null)
                        {
                            switchAudioItem.AddItem(childAudioItem);
                        }
                    }
                }
            }

            return(switchAudioItem);
        }
Ejemplo n.º 3
0
        public PureDataMultipleItem GetPureDataRandomItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataMultipleItem        randomAudioItem = new PureDataMultipleItem(container.Name, pureData);
            List <PureDataSubContainer> childcontainers = new List <PureDataSubContainer>();
            List <float> weights = new List <float>();

            for (int i = 0; i < childrenIds.Count; i++)
            {
                PureDataSubContainer childContainer = container.GetSubContainerWithID(childrenIds[i]);
                if (childContainer != null)
                {
                    childcontainers.Add(childContainer);
                    weights.Add(childContainer.weight);
                }
            }

            PureDataSubContainer randomChildContainer = HelperFunctions.WeightedRandom(childcontainers, weights);

            if (randomAudioItem != null)
            {
                PureDataItem childAudioItem = GetSubContainerAudioItem(container, randomChildContainer, source);
                if (childAudioItem != null)
                {
                    randomAudioItem.AddItem(childAudioItem);
                }
            }

            return(randomAudioItem);
        }
Ejemplo n.º 4
0
        public PureDataMultipleItem GetPureDataMixItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataMultipleItem mixAudioItem = new PureDataMultipleItem(container.Name, pureData);

            foreach (int childrenId in childrenIds)
            {
                PureDataItem childItem = GetSubContainerAudioItem(container, container.GetSubContainerWithID(childrenId), source);
                if (childItem != null)
                {
                    mixAudioItem.AddItem(childItem);
                }
            }

            return(mixAudioItem);
        }
Ejemplo n.º 5
0
        PureDataSubContainer.Types GetParentContainerType(PureDataSubContainer subContainer, PureDataContainer container)
        {
            PureDataSubContainer.Types type = PureDataSubContainer.Types.AudioSource;

            if (subContainer.parentId != 0)
            {
                type = container.GetSubContainerWithID(subContainer.parentId).type;
            }
            else
            {
                type = container.type.ConvertByName <PureDataSubContainer.Types>();
            }

            return(type);
        }
Ejemplo n.º 6
0
 void ShowSources()
 {
     if (AddFoldOut <PureDataSetup>(subContainersProperty, currentContainer.childrenIds.Count, "Sources".ToGUIContent(), OnContainerSourceDropped))
     {
         if (currentContainer.childrenIds.Count > 0)
         {
             currentContainer.subContainers[currentContainer.subContainers.Count - 1] = new PureDataSubContainer(currentContainer, 0, currentContainer.GetSubContainerWithID(currentContainer.childrenIds.Last()), pureData);
         }
         else
         {
             currentContainer.subContainers[currentContainer.subContainers.Count - 1] = new PureDataSubContainer(currentContainer, 0, pureData);
         }
         containerManagerSerialized.Update();
     }
 }
Ejemplo n.º 7
0
        public PureDataSubContainer(PureDataContainer container, int parentId, PureData pureData)
        {
            this.name           = container.Name;
            this.id             = container.GetUniqueID();
            this.parentId       = parentId;
            this.pureData       = pureData;
            this.switchSettings = new PureDataSwitchSettings(pureData);

            if (parentId == 0)
            {
                container.childrenIds.Add(id);
            }
            else
            {
                container.GetSubContainerWithID(parentId).childrenIds.Add(id);
            }
        }
		public PureDataContainerItemInternal GetSwitchItem(PureDataContainer container, List<int> childrenIds, object source) {
			PureDataContainerItemInternal switchAudioItem = new PureDataContainerItemInternal(container.Name, pureData);
			int stateIndex = int.MinValue;
			PureDataSubContainer[] childrenSubContainers = container.IdsToSubContainers(childrenIds);
			
			if (childrenSubContainers[0].parentId == 0) {
				stateIndex = container.switchSettings.GetCurrentStateIndex();
			}
			else {
				PureDataSubContainer parentSubContainer = container.GetSubContainerWithID(childrenSubContainers[0].parentId);
				stateIndex = parentSubContainer.switchSettings.GetCurrentStateIndex();
			}
			
			if (stateIndex != int.MinValue) {
				foreach (PureDataSubContainer childSubContainer in childrenSubContainers) {
					if (childSubContainer.switchSettings.stateIndex == stateIndex) {
						PureDataSourceOrContainerItem childAudioItem = GetSubContainerItem(container, childSubContainer, source);
						
						if (childAudioItem != null) {
							switchAudioItem.AddItem(childAudioItem);
						}
					}
				}
			}
			
			return switchAudioItem;
		}
		public PureDataContainerItemInternal GetRandomItem(PureDataContainer container, List<int> childrenIds, object source) {
			PureDataContainerItemInternal randomAudioItem = new PureDataContainerItemInternal(container.Name, pureData);
			List<PureDataSubContainer> childcontainers = new List<PureDataSubContainer>();
			List<float> weights = new List<float>();
			
			for (int i = 0; i < childrenIds.Count; i++) {
				PureDataSubContainer childContainer = container.GetSubContainerWithID(childrenIds[i]);
				if (childContainer != null) {
					childcontainers.Add(childContainer);
					weights.Add(childContainer.weight);
				}
			}
			
			PureDataSubContainer randomChildContainer = HelperFunctions.WeightedRandom(childcontainers, weights);
			if (randomAudioItem != null) {
				PureDataSourceOrContainerItem childAudioItem = GetSubContainerItem(container, randomChildContainer, source);
				if (childAudioItem != null) {
					randomAudioItem.AddItem(childAudioItem);
				}
			}
			
			return randomAudioItem;
		}
Ejemplo n.º 10
0
		public PureDataContainerItemInternal GetMixItem(PureDataContainer container, List<int> childrenIds, object source) {
			PureDataContainerItemInternal mixAudioItem = new PureDataContainerItemInternal(container.Name, pureData);
			
			foreach (int childrenId in childrenIds) {
				PureDataSourceOrContainerItem childItem = GetSubContainerItem(container, container.GetSubContainerWithID(childrenId), source);
				if (childItem != null) {
					mixAudioItem.AddItem(childItem);
				}
			}
			
			return mixAudioItem;
		}
		public PureDataSubContainer(PureDataContainer container, int parentId, PureDataSubContainer subContainer, PureData pureData) {
			this.Copy(subContainer, "id", "parentId", "childrenIds");
			
			this.name = container.Name;
			this.id = container.GetUniqueID();
			this.parentId = parentId;
			this.pureData = pureData;
			
			switchSettings = new PureDataSwitchSettings(pureData);
			
			if (parentId == 0) {
				container.childrenIds.Add(id);
			}
			else {
				container.GetSubContainerWithID(parentId).childrenIds.Add(id);
			}
		}
		public void Remove(PureDataContainer container) {
			if (parentId == 0) {
				container.childrenIds.Remove(id);
			}
			else {
				PureDataSubContainer parent = container.GetSubContainerWithID(parentId);
				if (parent != null) {
					parent.childrenIds.Remove(id);
				}
			}
			
			if (container.subContainers.Contains(this)) {
				container.subContainers.Remove(this);
			}
			
			foreach (int childrenId in childrenIds.ToArray()) {
				container.GetSubContainerWithID(childrenId).Remove(container);
			}
		}
Ejemplo n.º 13
0
		PureDataSubContainer.Types GetParentContainerType(PureDataSubContainer subContainer, PureDataContainer container) {
			PureDataSubContainer.Types type = PureDataSubContainer.Types.AudioSource;
		
			if (subContainer.parentId != 0) {
				type = container.GetSubContainerWithID(subContainer.parentId).type;
			}
			else {
				type = container.type.ConvertByName<PureDataSubContainer.Types>();
			}
		
			return type;
		}
Ejemplo n.º 14
0
        public PureDataContainerItemInternal GetMixItem(PureDataContainer container, List <int> childrenIds, object source)
        {
            PureDataContainerItemInternal mixAudioItem = new PureDataContainerItemInternal(container.Name, pureData);

            foreach (int childrenId in childrenIds)
            {
                PureDataSourceOrContainerItem childItem = GetSubContainerItem(container, container.GetSubContainerWithID(childrenId), source);
                if (childItem != null)
                {
                    mixAudioItem.AddItem(childItem);
                }
            }

            return(mixAudioItem);
        }