Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 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;
     }
 }