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); }
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); }
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); } }
void OnAudioSourceCleared(object data) { PureDataSubContainer subContainer = data as PureDataSubContainer; subContainer.Setup = null; subContainer.infoName = ""; containerManagerSerialized.Update(); }
public PureDataSourceItem GetSourceItem(PureDataSubContainer subContainer, object source) { PureDataSourceItem sourceAudioItem = null; switch (subContainer.type) { default: sourceAudioItem = GetSourceItem(subContainer.infoName, source); sourceAudioItem.ApplyOptions(subContainer.options); break; } return sourceAudioItem; }
public PureDataSingleItem GetPureDataSourceItem(PureDataSubContainer subContainer, object source) { PureDataSingleItem sourceAudioItem = null; switch (subContainer.type) { default: sourceAudioItem = GetPureDataSingleItem(subContainer.infoName, source); sourceAudioItem.ApplyOptions(subContainer.options); break; } return(sourceAudioItem); }
public PureDataSubContainer[] IdsToSubContainers(List <int> ids) { List <PureDataSubContainer> childrenSubContainers = new List <PureDataSubContainer>(); for (int i = 0; i < ids.Count; i++) { PureDataSubContainer childSubContainer = GetSubContainerWithID(ids[i]); if (childSubContainer != null) { childrenSubContainers.Add(childSubContainer); } } return(childrenSubContainers.ToArray()); }
public PureDataItem GetSubContainerAudioItem(PureDataContainer container, PureDataSubContainer subContainer, object source) { PureDataItem item = null; if (subContainer.IsSource) { item = GetPureDataSourceItem(subContainer, source); } else { item = GetPureDataContainerItem(container, subContainer, source); } return(item); }
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); }
public PureDataContainerItemInternal GetContainerItem(PureDataContainer container, PureDataSubContainer subContainer, object source) { PureDataContainerItemInternal multipleAudioItem = null; switch (subContainer.type) { case PureDataSubContainer.Types.RandomContainer: multipleAudioItem = GetRandomItem(container, subContainer.childrenIds, source); break; case PureDataSubContainer.Types.SwitchContainer: multipleAudioItem = GetSwitchItem(container, subContainer.childrenIds, source); break; default: multipleAudioItem = GetMixItem(container, subContainer.childrenIds, source); break; } return multipleAudioItem; }
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); } }
void ShowSubContainers(List <int> ids) { for (int i = 0; i < ids.Count; i++) { currentSubContainer = currentContainer.GetSubContainerWithID(ids[i]); currentSubContainerIndex = currentContainer.subContainers.IndexOf(currentSubContainer); currentSubContainerProperty = subContainersProperty.GetArrayElementAtIndex(currentSubContainerIndex); if (DeleteFoldOut <PureDataSetup>(subContainersProperty, currentSubContainerIndex, currentSubContainer.Name.ToGUIContent(), GetContainerStyle(currentSubContainer.type), OnSubContainerDropped, OnSubContainerReorder)) { currentSubContainer.Remove(currentContainer); break; } ShowSubContainer(); } }
void AdjustName(string prefix, PureDataSubContainer subContainer, PureDataContainer container) { subContainer.Name = prefix; if (subContainer.IsContainer) { subContainer.Name += string.Format(" ({0})", subContainer.childrenIds.Count); } if (GetParentContainerType(subContainer, container) == PureDataSubContainer.Types.RandomContainer) { subContainer.Name += " | Weight: " + subContainer.weight; } else if (GetParentContainerType(subContainer, container) == PureDataSubContainer.Types.SwitchContainer) { subContainer.Name += " | State: " + subContainer.switchSettings.stateName; } }
public PureDataSubContainer GetSubContainerWithID(int id) { if (!pureData.generalSettings.applicationPlaying && !IdDict.ContainsKey(id)) { return(null); } PureDataSubContainer subContainer = null; try { subContainer = IdDict[id]; } catch { Logger.LogError(string.Format("SubContainer with id {0} was not found.", id)); } return(subContainer); }
void OnSubContainerReorder(SerializedProperty arrayProperty, int sourceIndex, int targetIndex) { PureDataSubContainer sourceSubContainer = currentContainer.subContainers[sourceIndex]; PureDataSubContainer targetSubContainer = currentContainer.subContainers[targetIndex]; List <int> sourceParentIds = sourceSubContainer.parentId == 0 ? currentContainer.childrenIds : currentContainer.GetSubContainerWithID(sourceSubContainer.parentId).childrenIds; List <int> targetParentIds = targetSubContainer.parentId == 0 ? currentContainer.childrenIds : currentContainer.GetSubContainerWithID(targetSubContainer.parentId).childrenIds; if (sourceParentIds == targetParentIds) { int sourceSubContainerIndex = sourceParentIds.IndexOf(sourceSubContainer.id); int targetSubContainerIndex = targetParentIds.IndexOf(targetSubContainer.id); sourceParentIds.Move(sourceSubContainerIndex, targetSubContainerIndex); } else { int targetSubContainerIndex = targetParentIds.IndexOf(targetSubContainer.id); targetParentIds.Insert(targetSubContainerIndex, sourceSubContainer.id); sourceParentIds.Remove(sourceSubContainer.id); sourceSubContainer.parentId = targetSubContainer.parentId; } containerManagerSerialized.Update(); }
public PureDataSourceOrContainerItem GetSubContainerItem(PureDataContainer container, PureDataSubContainer subContainer, object source) { PureDataSourceOrContainerItem item = null; if (subContainer.IsSource) { item = GetSourceItem(subContainer, source); } else { item = GetContainerItem(container, subContainer, source); } return item; }
public PureDataMultipleItem GetPureDataContainerItem(PureDataContainer container, PureDataSubContainer subContainer, object source) { PureDataMultipleItem multipleAudioItem = null; switch (subContainer.type) { case PureDataSubContainer.Types.RandomContainer: multipleAudioItem = GetPureDataRandomItem(container, subContainer.childrenIds, source); break; case PureDataSubContainer.Types.SwitchContainer: multipleAudioItem = GetPureDataSwitchItem(container, subContainer.childrenIds, source); break; default: multipleAudioItem = GetPureDataMixItem(container, subContainer.childrenIds, source); break; } return(multipleAudioItem); }
void ShowSubContainers(List<int> ids) { for (int i = 0; i < ids.Count; i++) { currentSubContainer = currentContainer.GetSubContainerWithID(ids[i]); currentSubContainerIndex = currentContainer.subContainers.IndexOf(currentSubContainer); currentSubContainerProperty = subContainersProperty.GetArrayElementAtIndex(currentSubContainerIndex); if (DeleteFoldOut<PureDataSetup>(subContainersProperty, currentSubContainerIndex, currentSubContainer.Name.ToGUIContent(), GetContainerStyle(currentSubContainer.type), OnSubContainerDropped, OnSubContainerReorder)) { currentSubContainer.Remove(currentContainer); break; } ShowSubContainer(); } }
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; }
GUIStyle GetContainerStyle(PureDataSubContainer.Types type) { GUIStyle style = new GUIStyle("foldout"); style.fontStyle = FontStyle.Bold; Color textColor = style.normal.textColor; switch (type) { case PureDataSubContainer.Types.AudioSource: textColor = new Color(1, 0.5F, 0.3F, 10); break; case PureDataSubContainer.Types.MixContainer: textColor = new Color(0, 1, 1, 10); break; case PureDataSubContainer.Types.RandomContainer: textColor = new Color(1, 1, 0, 10); break; case PureDataSubContainer.Types.SwitchContainer: textColor = new Color(0.5F, 1, 0.3F, 10); break; } style.normal.textColor = textColor * 0.7F; style.onNormal.textColor = textColor * 0.7F; style.focused.textColor = textColor * 0.85F; style.onFocused.textColor = textColor * 0.85F; style.active.textColor = textColor * 0.85F; style.onActive.textColor = textColor * 0.85F; return style; }