public int GetStarredParameterNumber(ZoiaStarredParameter starredParameter) { return(StarredParameterList.IndexOf(starredParameter)); }
public void ParseData() { int dataSizeUnit = 4; PresetSize = BitConverter.ToInt32(PatchData, 0); PresetName = Encoding.UTF8.GetString(PatchData, 4, 16); int numberOfModules = BitConverter.ToInt32(PatchData, 20); int dataPosition = 24; for (int moduleNumber = 0; moduleNumber < numberOfModules; moduleNumber++) { int moduleSize = BitConverter.ToInt32(PatchData, dataPosition) * dataSizeUnit; byte[] moduleData = new byte[moduleSize]; Array.Copy(PatchData, dataPosition, moduleData, 0, moduleSize); ModuleList.Add(new ZoiaModule(moduleData, FormatDictionary)); dataPosition += moduleSize; } int numberOfConnections = BitConverter.ToInt32(PatchData, dataPosition); dataPosition += dataSizeUnit; int connectionSize = 20; for (int connectionNumber = 0; connectionNumber < numberOfConnections; connectionNumber++) { byte[] connectionData = new byte[connectionSize]; Array.Copy(PatchData, dataPosition, connectionData, 0, connectionSize); this.ConnectionList.Add(new ZoiaConnection(connectionData)); dataPosition += connectionSize; } int numberOfPages = BitConverter.ToInt32(PatchData, dataPosition); dataPosition += dataSizeUnit; int pageSize = 16; for (int pageNumber = 0; pageNumber < numberOfPages; pageNumber++) { string pageName = Encoding.UTF8.GetString(PatchData, dataPosition, pageSize); PageList.Add(pageName); dataPosition += pageSize; } int starredParameterCount = BitConverter.ToInt32(PatchData, dataPosition); dataPosition += dataSizeUnit; int starredParameterSize = 4; for (int starredParameterNumber = 0; starredParameterNumber < starredParameterCount; starredParameterNumber++) { byte[] starredParameterData = new byte[starredParameterSize]; Array.Copy(PatchData, dataPosition, starredParameterData, 0, starredParameterSize); StarredParameterList.Add(new ZoiaStarredParameter(starredParameterData)); dataPosition += starredParameterSize; } int moduleColorSize = 4; for (int moduleColorNumber = 0; moduleColorNumber < numberOfModules; moduleColorNumber++) { int moduleColor = BitConverter.ToInt32(PatchData, dataPosition); ModuleList[moduleColorNumber].ModuleColorId = moduleColor; dataPosition += moduleColorSize; } NumberOfBytesParsed = dataPosition; }