} // end AddGroup private static TreeNodeAdv AddDevice(Sequence4 seq, TreeNodeAdvCollection baseNodes, int deviceSI, List <TreeNodeAdv>[] siNodes, bool selectedOnly, bool includeRGBchildren, int memberTypes) { TreeNodeAdv deviceNode = null; if (siNodes[deviceSI] != null) { //ChanInfo nodeTag = new ChanInfo(); //nodeTag.MemberType = MemberType.ChannelGroup; //nodeTag.objIndex = groupIndex; //nodeTag.SavedIndex = theGroup.SavedIndex; //nodeTag.nodeIndex = nodeIndex; //ChannelGroup theGroup = seq.ChannelGroups[groupIndex]; CosmicDevice theDevice = (CosmicDevice)seq.Members.bySavedIndex[deviceSI]; //IMember groupID = theGroup; // Include groups in the TreeView? if ((memberTypes & SeqEnums.MEMBER_CosmicDevice) > 0) { string nodeText = theDevice.Name; deviceNode = new TreeNodeAdv(nodeText); baseNodes.Add(deviceNode); nodeIndex++; deviceNode.Tag = theDevice; deviceNode.LeftImageIndices = icodxChannelGroup; // .ImageKey = ICONcosmicDevice; deviceNode.Checked = theDevice.Selected; baseNodes = deviceNode.Nodes; siNodes[deviceSI].Add(deviceNode); } //List<TreeNodeAdv> qlist; // const string ERRproc = " in FillChannels-AddGroup("; // const string ERRgrp = "), in Group #"; // const string ERRitem = ", Items #"; // const string ERRline = ", Line #"; for (int gi = 0; gi < theDevice.Members.Count; gi++) { //try //{ IMember member = theDevice.Members.Items[gi]; int si = member.SavedIndex; if (member.MemberType == MemberType.ChannelGroup) { ChannelGroup memGrp = (ChannelGroup)member; bool inclChan = false; if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { inclChan = true; } bool inclRGB = false; if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { inclRGB = true; } int inclCount = memGrp.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); if (inclCount > 0) { TreeNodeAdv subGroupNode = AddGroup(seq, baseNodes, member.SavedIndex, siNodes, selectedOnly, includeRGBchildren, memberTypes); //qlist = siNodes[si]; //qlist.Add(subGroupNode); } int cosCount = memGrp.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); } if (member.MemberType == MemberType.CosmicDevice) { CosmicDevice memDev = (CosmicDevice)member; bool inclChan = false; if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { inclChan = true; } bool inclRGB = false; if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { inclRGB = true; } int inclCount = memDev.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); if (inclCount > 0) { TreeNodeAdv subGroupNode = AddGroup(seq, baseNodes, member.SavedIndex, siNodes, selectedOnly, includeRGBchildren, memberTypes); //qlist = siNodes[si]; //qlist.Add(subGroupNode); } int cosCount = memDev.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); } if (member.MemberType == MemberType.Channel) { if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { TreeNodeAdv channelNode = AddChannel(seq, baseNodes, member.SavedIndex, selectedOnly); siNodes[si].Add(channelNode); } } if (member.MemberType == MemberType.RGBchannel) { if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { TreeNodeAdv rgbChannelNode = AddRGBchannel(seq, baseNodes, member.SavedIndex, siNodes, selectedOnly, includeRGBchildren); siNodes[si].Add(rgbChannelNode); } } #region catch /* * } // end try * catch (Exception ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRgrp + groupIndex.ToString() + ERRitem + gi.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } // end catch */ #endregion } // End loop thru items } return(deviceNode); } // end AddGroup
private static TreeNodeAdv AddTrack(Sequence4 seq, TreeNodeAdvCollection baseNodes, int trackNumber, List <TreeNodeAdv>[] siNodes, bool selectedOnly, bool includeRGBchildren, int memberTypes) { string nodeText = ""; bool inclChan = false; if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { inclChan = true; } bool inclRGB = false; if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { inclRGB = true; } // TEMPORARY, FOR DEBUGGING // int tcount = 0; int gcount = 0; int rcount = 0; int ccount = 0; int dcount = 0; //try //{ Track theTrack = seq.Tracks[trackNumber]; nodeText = theTrack.Name; TreeNodeAdv trackNode = new TreeNodeAdv(nodeText); baseNodes.Add(trackNode); List <TreeNodeAdv> qlist; //int inclCount = theTrack.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); //if (inclCount > 0) //{ // Tracks don't normally have savedIndexes // But we will assign one for tracking and matching purposes //theTrack.SavedIndex = seq.Members.HighestSavedIndex + t + 1; //if ((memberTypes & SeqEnums.MEMBER_Track) > 0) //{ baseNodes = trackNode.Nodes; nodeIndex++; trackNode.Tag = theTrack; trackNode.LeftImageIndices = icodxTrack; trackNode.Checked = theTrack.Selected; //} for (int ti = 0; ti < theTrack.Members.Count; ti++) { //try //{ IMember member = theTrack.Members.Items[ti]; int si = member.SavedIndex; if (member != null) { if (member.MemberType == MemberType.ChannelGroup) { ChannelGroup memGrp = (ChannelGroup)member; int inclCount = memGrp.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); if (inclCount > 0) { TreeNodeAdv groupNode = AddGroup(seq, baseNodes, member.SavedIndex, siNodes, selectedOnly, includeRGBchildren, memberTypes); //AddNode(siNodes[si], groupNode); qlist = siNodes[si]; if (qlist == null) { qlist = new List <TreeNodeAdv>(); } qlist.Add(groupNode); gcount++; //siNodes[si].Add(groupNode); } } if (member.MemberType == MemberType.CosmicDevice) { CosmicDevice memDev = (CosmicDevice)member; int inclCount = memDev.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); if (inclCount > 0) { TreeNodeAdv cosmicNode = AddGroup(seq, baseNodes, member.SavedIndex, siNodes, selectedOnly, includeRGBchildren, memberTypes); //AddNode(siNodes[si], groupNode); qlist = siNodes[si]; if (qlist == null) { qlist = new List <TreeNodeAdv>(); } qlist.Add(cosmicNode); dcount++; //siNodes[si].Add(groupNode); } } if (member.MemberType == MemberType.RGBchannel) { TreeNodeAdv rgbNode = AddRGBchannel(seq, baseNodes, member.SavedIndex, siNodes, selectedOnly, includeRGBchildren); //AddNode(siNodes[si], rgbNode); //siNodes[si].Add(rgbNode); qlist = siNodes[si]; if (qlist == null) { qlist = new List <TreeNodeAdv>(); } qlist.Add(rgbNode); rcount++; } if (member.MemberType == MemberType.Channel) { TreeNodeAdv channelNode = AddChannel(seq, baseNodes, member.SavedIndex, selectedOnly); //AddNode(siNodes[si], channelNode); //siNodes[si].Add(channelNode); qlist = siNodes[si]; if (qlist == null) { qlist = new List <TreeNodeAdv>(); } qlist.Add(channelNode); ccount++; } } // end not null //} // end try #region catch1 /* * catch (System.NullReferenceException ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRtrk + t.ToString() + ERRitem + ti.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * System.Diagnostics.Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } * catch (System.InvalidCastException ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRtrk + t.ToString() + ERRitem + ti.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * System.Diagnostics.Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } * catch (Exception ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRtrk + t.ToString() + ERRitem + ti.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * System.Diagnostics.Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } */ #endregion } // end loop thru track items #region catch2 /* * } // end try * catch (System.NullReferenceException ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRtrk + t.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * System.Diagnostics.Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } * catch (System.InvalidCastException ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRtrk + t.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * System.Diagnostics.Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } * catch (Exception ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRtrk + t.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * System.Diagnostics.Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } */ #endregion // int x = 1; // Check ccount, rcount, gcount return(trackNode); } // end fillOldChannels
} // end fillOldChannels private static TreeNodeAdv TreeAddGroup(Sequence4 seq, TreeNodeAdvCollection baseNodes, ChannelGroup group, ref List <TreeNodeAdv>[] nodesBySI, bool selectedOnly, bool includeRGBchildren, int memberTypes) { TreeNodeAdv groupNode = null; List <TreeNodeAdv> nodeList; int groupSI = group.SavedIndex; if (groupSI >= nodesBySI.Length) { Array.Resize(ref nodesBySI, groupSI + 1); } if (nodesBySI[groupSI] != null) { // Include groups in the TreeView? if ((memberTypes & SeqEnums.MEMBER_ChannelGroup) > 0) { string nodeText = group.Name; groupNode = new TreeNodeAdv(nodeText); baseNodes.Add(groupNode); nodeIndex++; groupNode.Tag = group; groupNode.LeftImageIndices = ICONchannelGroup; //groupNode.SelectedImageKey = ICONchannelGroup; groupNode.Checked = group.Selected; baseNodes = groupNode.Nodes; nodesBySI[groupSI].Add(groupNode); if (group.Tag == null) { nodeList = new List <TreeNodeAdv>(); group.Tag = nodeList; } else { nodeList = (List <TreeNodeAdv>)group.Tag; } nodeList.Add(groupNode); } //List<TreeNodeAdv> qlist; // const string ERRproc = " in TreeFillChannels-TreeAddGroup("; // const string ERRgrp = "), in Group #"; // const string ERRitem = ", Items #"; // const string ERRline = ", Line #"; for (int gi = 0; gi < group.Members.Count; gi++) { //try //{ IMember member = group.Members.Items[gi]; int si = member.SavedIndex; if (member.MemberType == MemberType.ChannelGroup) { ChannelGroup memGrp = (ChannelGroup)member; bool inclChan = false; if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { inclChan = true; } bool inclRGB = false; if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { inclRGB = true; } int inclCount = memGrp.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); if (inclCount > 0) { TreeNodeAdv subGroupNode = TreeAddGroup(seq, baseNodes, memGrp, ref nodesBySI, selectedOnly, includeRGBchildren, memberTypes); //qlist = nodesBySI[si]; //qlist.Add(subGroupNode); } int cosCount = memGrp.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); } if (member.MemberType == MemberType.CosmicDevice) { CosmicDevice memDev = (CosmicDevice)member; bool inclChan = false; if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { inclChan = true; } bool inclRGB = false; if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { inclRGB = true; } int inclCount = memDev.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); if (inclCount > 0) { TreeNodeAdv subGroupNode = TreeAddCosmic(seq, baseNodes, memDev, ref nodesBySI, selectedOnly, includeRGBchildren, memberTypes); //qlist = nodesBySI[si]; //qlist.Add(subGroupNode); } int cosCount = memDev.Members.DescendantCount(selectedOnly, inclChan, inclRGB, includeRGBchildren); } if (member.MemberType == MemberType.Channel) { if ((memberTypes & SeqEnums.MEMBER_Channel) > 0) { Channel memCh = (Channel)member; TreeNodeAdv channelNode = TreeAddChannel(seq, baseNodes, memCh, selectedOnly); nodesBySI[si].Add(channelNode); } } if (member.MemberType == MemberType.RGBchannel) { if ((memberTypes & SeqEnums.MEMBER_RGBchannel) > 0) { RGBchannel memRGB = (RGBchannel)member; TreeNodeAdv rgbChannelNode = TreeAddRGBchannel(seq, baseNodes, memRGB, ref nodesBySI, selectedOnly, includeRGBchildren); nodesBySI[si].Add(rgbChannelNode); } } #region catch /* * } // end try * catch (Exception ex) * { * StackTrace st = new StackTrace(ex, true); * StackFrame sf = st.GetFrame(st.FrameCount - 1); * string emsg = ex.ToString(); * emsg += ERRproc + seq.filename + ERRgrp + groupIndex.ToString() + ERRitem + gi.ToString(); * emsg += ERRline + sf.GetFileLineNumber(); #if DEBUG * Debugger.Break(); #endif * utils.WriteLogEntry(emsg, utils.LOG_Error, Application.ProductName); * } // end catch */ #endregion } // End loop thru items } return(groupNode); } // end TreeAddGroup