/// <summary> /// /// </summary> /// <param name="chPosition">通道位置</param> /// <returns></returns> private int SearchEquipmentOut2(out int chPosition) { int position = -1; chPosition = -1; var deviceOuts = mw.deviceConfigModel.Devices.Select(t => t.DeviceOut).ToList(); for (int j = 0; j < MidiDeviceBusiness.midiOutGetNumDevs(); j++) { MidiDeviceBusiness.MIDIOUTCAPS caps = new MidiDeviceBusiness.MIDIOUTCAPS(); MidiDeviceBusiness.midiOutGetDevCaps(new UIntPtr((uint)j), ref caps, Convert.ToUInt32(Marshal.SizeOf(typeof(MidiDeviceBusiness.MIDIOUTCAPS)))); //midiOutOpen(out IntPtr mOut, (uint)j, (IntPtr)0, (IntPtr)0, 0); String Pname = caps.szPname; if (deviceOuts.Contains(Pname)) { position = j; chPosition = deviceOuts.IndexOf(Pname); break; } } return(position); }
private void SearchEquipmentOut() { mw.editUserControl.playuc.CloseMidiOut(); cbRealDevice.Items.Clear(); for (int j = 0; j < MidiDeviceBusiness.midiOutGetNumDevs(); j++) { MidiDeviceBusiness.MIDIOUTCAPS caps = new MidiDeviceBusiness.MIDIOUTCAPS(); MidiDeviceBusiness.midiOutGetDevCaps(new UIntPtr((uint)j), ref caps, Convert.ToUInt32(Marshal.SizeOf(typeof(MidiDeviceBusiness.MIDIOUTCAPS)))); //midiOutOpen(out IntPtr mOut, (uint)j, (IntPtr)0, (IntPtr)0, 0); String Pname = caps.szPname; if (cbOnlySearchForLaunchpad.IsChecked == true) { if (Pname.Contains("Launchpad")) { cbRealDevice.Items.Add(Pname); if (isFirst) { //MidiDeviceBusiness.midiOutOpen(out nowOutDeviceIntPtr, (uint)j, (IntPtr)0, (IntPtr)0, 0); isFirst = false; } } } else { cbRealDevice.Items.Add(Pname); if (isFirst) { //MidiDeviceBusiness.midiOutOpen(out nowOutDeviceIntPtr, (uint)j, (IntPtr)0, (IntPtr)0, 0); isFirst = false; } } } if (cbRealDevice.Items.Count > 0) { //isSearchChangeSelect = true; cbRealDevice.SelectedIndex = 0; } }