protected void EnableChannelType(int channelType, bool enable) { var exp = ChannelType.GetExpansionTypeForChannelType(channelType); var idx = ChannelType.GetExpansionChannelIndexForChannelType(channelType); NesApu.EnableChannel(apuIndex, exp, idx, enable ? 1 : 0); }
public void UpdateListView() { var expansionMask = GetExpansionMask(dialog.Properties.GetPropertyValue <bool[]>(4)); var channels = Channel.GetChannelsForExpansionMask(expansionMask, 8); Debug.Assert(channelSources.Length == channels.Length); var gridData = new object[channels.Length, 3]; for (int i = 0; i < channels.Length; i++) { var src = channelSources[i]; gridData[i, 0] = ChannelType.Names[channels[i]]; gridData[i, 2] = "N/A"; if (i >= ChannelType.ExpansionAudioStart) { gridData[i, 0] += $" ({ExpansionType.ShortNames[ChannelType.GetExpansionTypeForChannelType(channels[i])]})"; } if (src.type == MidiSourceType.Track) { gridData[i, 1] = GetTrackName(src.index); } else if (src.type == MidiSourceType.Channel) { gridData[i, 1] = GetChannelName(src.index); if (src.index == 9) { gridData[i, 2] = src.keys == MidiFileReader.AllDrumKeysMask ? "All keys" : "Filtered keys"; } } else { gridData[i, 1] = NoneString; } } dialog.Properties.UpdateMultiColumnList(6, gridData); }