+ this.pandaMappings = pandaMappings;
+ int totalChannels = 0;
+ for (PandaMapping pm : pandaMappings) {
+ totalChannels += pm.channelList.length;
+ }
+ numChannels = totalChannels;
+ setChannel();
+ }
+
+ private void setChannel() {
+ mappingChannelIndex = channelIndex;
+ for (PandaMapping pm : pandaMappings) {
+ if (mappingChannelIndex < pm.channelList.length) {
+ activeMapping = pm;
+ break;
+ }
+ mappingChannelIndex -= pm.channelList.length;
+ }
+ }
+
+ private int cubeInChannel(Cube c) {
+ int i = 1;
+ for (int index : activeMapping.channelList[mappingChannelIndex]) {
+ if (c == model.getCubeByRawIndex(index)) {
+ return i;
+ }
+ ++i;
+ }
+ return 0;