internal static MIDIOUTCAPS midiOutGetDevCaps(int uDeviceID) { MIDIOUTCAPS res = new MIDIOUTCAPS(); MMRESULT err = midiOutGetDevCaps(uDeviceID, ref res, (uint)Marshal.SizeOf(typeof(MIDIOUTCAPS))); if (err != MMRESULT.MMSYSERR_NOERROR) { throw new Exception("err: " + err.ToString()); } return(res); }
public static uint midiOutGetDevCaps(IntPtr uDeviceID, ref MIDIOUTCAPS lpMidiOutCaps, uint cbMidiOutCaps) { DeviceInformation deviceInformation = GetDevices()[uDeviceID.ToInt32()]; lpMidiOutCaps = new MIDIOUTCAPS(); lpMidiOutCaps.szPname = deviceInformation.Name; lpMidiOutCaps.wMid = 1; lpMidiOutCaps.wChannelMask = ushort.MaxValue; lpMidiOutCaps.wTechnology = (ushort)OutputDeviceType.MidiPort; return(MidiWinApi.MMSYSERR_NOERROR); }
public static string MidiOutGetName(int index) { MIDIOUTCAPS caps = new MIDIOUTCAPS(); int error = MidiOutGetDevCaps(index, ref caps, 52); if (error == 0) { return(caps.szPname); } else { return(""); } }
public static uint?FindOutputIdByName(string name) { uint midiDevNum = NativeImports.midiOutGetNumDevs(); for (uint i = 0; i < midiDevNum; i++) { MIDIOUTCAPS capsResult = default; NativeImports.ThrowOnError(NativeImports.midiOutGetDevCaps(i, ref capsResult)); if (capsResult.szPname == name) { return(i); } } return(null); }
public void refreshList(ComboBox list) { //clear combo list list.Items.Clear(); //get count of midi out devices int dev = (int)midiOutGetNumDevs(); //init struct for data MIDIOUTCAPS caps = new MIDIOUTCAPS(); //step through list for(int i=0;i<dev;i++) { //get midi out devices infos midiOutGetDevCaps(i,ref caps, (UInt32)Marshal.SizeOf(caps)); //add to combolist list.Items.Add(caps.szPname); } }
//**************************** Информация об устройстве ********************** public int OutGetCaps(uint dev) { // Информация об устройстве uOutDeviceID = dev; // Можно сделать выбор! midiOutCaps = new MIDIOUTCAPS(); uint res = MIDIOutGetDevCaps(uOutDeviceID, out midiOutCaps, (uint)Marshal.SizeOf(midiOutCaps)); if (res != MMSYSERR_NOERROR) { string str = ""; MIDIOutGetErrorText(res, str, 255); MessageBox.Show("Error = " + str); return(-1); } return(0); }
public static unsafe void Hello() { Console.WriteLine("Hello"); Console.WriteLine("devices-sum:{0}", InputPort.InputCount); //ip.Open(1); for (int j = 0; j < MidiDeviceBusiness.midiOutGetNumDevs(); j++) { MIDIOUTCAPS caps = new MIDIOUTCAPS(); MidiDeviceBusiness.midiOutGetDevCaps(new UIntPtr(new IntPtr(j).ToPointer()), ref caps, Convert.ToUInt32(System.Runtime.InteropServices.Marshal.SizeOf(typeof(MIDIOUTCAPS)) * 8)); MidiDeviceBusiness.midiOutOpen(out IntPtr mOut, (uint)j, (IntPtr)0, (IntPtr)0, 0); Console.WriteLine(mOut); Console.WriteLine(caps.szPname); Console.WriteLine(MidiDeviceBusiness.midiOutShortMsg(mOut, (uint)(0x90 + (61 * 0x100) + (60 * 0x10000) + 0))); Thread.Sleep(1000); Console.WriteLine(MidiDeviceBusiness.midiOutShortMsg(mOut, (uint)(0x90 + (61 * 0x100) + (60 * 0x10000) + 1))); Thread.Sleep(1000); Console.WriteLine(MidiDeviceBusiness.midiOutShortMsg(mOut, (uint)(0x90 + (61 * 0x100) + (60 * 0x10000) + 2))); Thread.Sleep(1000); Console.WriteLine(MidiDeviceBusiness.midiOutShortMsg(mOut, (uint)(0x90 + (61 * 0x100) + (60 * 0x10000) + 3))); Thread.Sleep(1000); Console.WriteLine(MidiDeviceBusiness.midiOutShortMsg(mOut, (uint)(0x90 + (61 * 0x100) + (60 * 0x10000) + 4))); Thread.Sleep(1000); Console.WriteLine(MidiDeviceBusiness.midiOutShortMsg(mOut, (uint)(0x90 + (61 * 0x100) + (60 * 0x10000) + 5))); } //ip.Start(); //try //{ // //while (true) // //{ // // Thread.Sleep(1); // //} //} //catch (Exception e) //{ //} //finally //{ // ip.Stop(); // ip.Close(); // Console.WriteLine("Bye~"); //} }
public void refreshList(ComboBox list) { //clear combo list list.Items.Clear(); //get count of midi out devices int dev = (int)midiOutGetNumDevs(); //init struct for data MIDIOUTCAPS caps = new MIDIOUTCAPS(); //step through list for (int i = 0; i < dev; i++) { //get midi out devices infos midiOutGetDevCaps(i, ref caps, (UInt32)Marshal.SizeOf(caps)); //add to combolist list.Items.Add(caps.szPname); } }
public static void Refresh() { var count = midiOutGetNumDevs(); Devices = new Tuple <uint, string> [count + 1]; var caps = new MIDIOUTCAPS(); midiOutGetDevCaps((UIntPtr)0xffffffff, ref caps, (uint)Marshal.SizeOf(typeof(MIDIOUTCAPS))); Devices[0] = new Tuple <uint, string>(0xffffffff, caps.szPname); for (uint x = 0; x < count; x++) { midiOutGetDevCaps((UIntPtr)x, ref caps, (uint)Marshal.SizeOf(typeof(MIDIOUTCAPS))); Devices[x + 1] = new Tuple <uint, string>(x, caps.szPname); } }
internal static extern EMMError midiOutGetDevCaps(IntPtr uDeviceId, [In, Out] MIDIOUTCAPS lpMidiInCaps, uint cbMidiInCaps);
private static extern uint midiOutGetDevCaps(uint uDeviceID, out MIDIOUTCAPS lpMidiOutCaps, int cbMidiOutCaps);
private uint MIDIOutGetDevCaps(uint uOutDeviceID, out MIDIOUTCAPS lpCaps, uint uSize) { return(midiOutGetDevCaps(uOutDeviceID, out lpCaps, uSize)); }
internal static extern MMRESULT midiOutGetDevCaps(int uDeviceID, ref MIDIOUTCAPS caps, uint cbMidiInCaps);
private static extern MMRESULT midiOutGetDevCaps(UIntPtr uDeviceID, out MIDIOUTCAPS caps, UInt32 cbMidiOutCaps);
public string[] GetDeviceNames() { int n = this.Devices; string[] r = new string[n]; for(int i = 0; i < n; i++) { MIDIOUTCAPS c = new MIDIOUTCAPS(); int rc = midiOutGetDevCaps(i, out c, Marshal.SizeOf(typeof(MIDIOUTCAPS))); r[i] = c.szPname; } return r; }
public static extern int MidiOutGetDevCaps(int uDeviceID, ref MIDIOUTCAPS caps, int cbMidiOutCaps);
static public extern UInt32 midiOutGetDevCaps(Int32 uDeviceID, ref MIDIOUTCAPS lpMidiOutCaps, UInt32 cbMidiOutCaps);
static extern MMRESULT midiOutGetDevCaps(UIntPtr uDeviceID, ref MIDIOUTCAPS lpMidiOutCaps, uint cbMidiOutCaps);
internal static extern uint midiOutGetDevCaps(uint uDeviceID, ref MIDIOUTCAPS lpCaps, uint uSize);
static extern int midiOutGetDevCaps(int deviceIndex, ref MIDIOUTCAPS caps, int uSize);
public static extern int midiOutGetDevCaps(int uDeviceID, ref MIDIOUTCAPS lpCaps, int uSize);
internal static extern uint midiOutGetDevCaps(UIntPtr uDeviceID, out MIDIOUTCAPS caps, uint cbMidiOutCaps);
/// <summary> /// Loads/reloads the MIDI output devices /// </summary> public static void LoadOutputDevices() { outputDevices = null; List<OutputDevice> devices = new List<OutputDevice>(); UInt32 numberOfDevices = Functions.midiOutGetNumDevs(); if(numberOfDevices > 0) { for(Int32 i = 0 ; i < numberOfDevices ; i++) { MIDIOUTCAPS caps = new MIDIOUTCAPS(); if(Functions.midiOutGetDevCaps(i, ref caps, (UInt32) Marshal.SizeOf(caps)) == Constants.MMSYSERR_NOERROR) { devices.Add(new OutputDevice(i, caps)); } } } outputDevices = devices.AsReadOnly(); }
[DllImport("winmm.dll")] private static extern UInt32 midiOutGetDevCaps(Int32 uDeviceID, ref MIDIOUTCAPS lpMidiOutCaps, UInt32 cbMidiOutCaps);
private static extern int midiOutGetDevCaps( int device, out MIDIOUTCAPS caps, int capsize );
/// <summary> /// Fills in the capabilities struct for a specific output device. /// </summary> /// NOTE: This is adapted from the original Win32 function in order to make it typesafe. /// /// Win32 docs: http://msdn.microsoft.com/en-us/library/ms711621(VS.85).aspx public static MMRESULT midiOutGetDevCaps(UIntPtr uDeviceID, out MIDIOUTCAPS caps) { return midiOutGetDevCaps(uDeviceID, out caps, (UInt32)Marshal.SizeOf(typeof(MIDIOUTCAPS))); }
/// <summary> /// Fills in the capabilities struct for a specific output device. /// </summary> /// NOTE: This is adapted from the original Win32 function in order to make it typesafe. /// /// Win32 docs: http://msdn.microsoft.com/en-us/library/ms711621(VS.85).aspx public static MMRESULT midiOutGetDevCaps(UIntPtr uDeviceID, out MIDIOUTCAPS caps) { return(midiOutGetDevCaps(uDeviceID, out caps, (UInt32)Marshal.SizeOf(typeof(MIDIOUTCAPS)))); }
/// <summary> /// Creates a new MIDI output device instance. /// </summary> /// <param name="id">The device's ID.</param> /// <param name="caps">The device's capabilities.</param> internal OutputDevice(Int32 id, MIDIOUTCAPS caps) { ID = id; Name = caps.szPname; }
internal static MMRESULT midiOutGetDevCaps(int uDeviceID, ref MIDIOUTCAPS caps) { return(midiOutGetDevCaps(uDeviceID, ref caps, (uint)Marshal.SizeOf(typeof(MIDIOUTCAPS)))); }
/// <summary> /// Loads/reloads all devices except VirtualMIDISynth #1 (which is reserved for the Assistant Performer). /// </summary> public static void LoadOutputDevices() { outputDevices = null; List<OutputDevice> devices = new List<OutputDevice>(); UInt32 numberOfDevices = Functions.midiOutGetNumDevs(); if(numberOfDevices > 0) { for(Int32 i = 0 ; i < numberOfDevices ; i++) { MIDIOUTCAPS caps = new MIDIOUTCAPS(); uint returnValue = Functions.midiOutGetDevCaps(i, ref caps, (UInt32)Marshal.SizeOf(caps)); Debug.Assert(returnValue == Constants.MMSYSERR_NOERROR); if(string.Compare(caps.szPname, "VirtualMIDISynth #1") != 0) { devices.Add(new OutputDevice(i, caps)); } } } outputDevices = devices.AsReadOnly(); }
public static extern uint midiOutGetDevCaps(IntPtr uDeviceID, ref MIDIOUTCAPS lpMidiOutCaps, uint cbMidiOutCaps);
internal static extern UInt32 midiOutGetDevCaps( Int32 uDeviceID, ref MIDIOUTCAPS lpMidiOutCaps, UInt32 cbMidiOutCaps);
static extern uint midiOutGetDevCaps(int uDeviceID, out MIDIOUTCAPS caps, uint cbMidiOutCaps);
public static string MidiOutGetName(int index) { MIDIOUTCAPS caps = new MIDIOUTCAPS(); int error = MidiOutGetDevCaps(index, ref caps, 52); if(error == 0) return caps.szPname; else return ""; }