Пример #1
0
        // uzycie metody statycznej nie wymaga tworzenia obiektu
        // ale skolei statyczna metoda ma problem do odwolan do innych metod w klasie / obiektow
        // jak tu byl static to nie widzialem obiektu comboMidiInDevices nawet gdy klasa byla partial Form1
        // public static void Init()

        public void Init()
        {
            // In MIDI Devices
            int iDevices = InputDevice.DeviceCount;

            comboMidiInDevices.Items.Clear();

            // Wypisz urzadzenia
            for (int x = 0; x < iDevices; x++)
            {
                MidiInCaps caps = InputDevice.GetDeviceCapabilities(x);

                comboMidiInDevices.Items.Add(caps.name);

                // Zapamietaj indeks urzadzenia, ktory jest wybrany
                //      if (caps.name == inString)
                //          iSelectedIn = x;
            }

            // Out MIDI Devices
            int oDevices = OutputDevice.DeviceCount;

            comboMidiOutDevices.Items.Clear();
            for (int x = 0; x < oDevices; x++)
            {
                MidiOutCaps caps = OutputDevice.GetDeviceCapabilities(x);

                comboMidiOutDevices.Items.Add(caps.name);

                // Zapamietaj indeks urzadzenia, ktory jest wybrany
                //     if (caps.name == outString)
                //         iSelectedOut = x;
            }
        }   // Init
Пример #2
0
 private void GetMidiDeviceInfo()
 {
     m_midiOutCount       = OutputDeviceBase.DeviceCount;
     m_midiInCount        = InputDevice.DeviceCount;
     lblMidiOutCount.Text = m_midiOutCount.ToString();
     lblMidiInCount.Text  = m_midiInCount.ToString();
     m_midiOuts           = new Dictionary <int, string>();
     for (int index = 0; index < m_midiOutCount; ++index)
     {
         MidiOutCaps deviceCapabilities = OutputDeviceBase.GetDeviceCapabilities(index);
         m_midiOuts.Add(index, deviceCapabilities.name);
     }
     m_midiIns = new Dictionary <int, string>();
     for (int index = 0; index < m_midiInCount; ++index)
     {
         MidiInCaps deviceCapabilities = InputDevice.GetDeviceCapabilities(index);
         m_midiIns.Add(index, deviceCapabilities.name);
     }
     cmbMidiIn.DataSource     = new BindingSource(m_midiIns, null);
     cmbMidiIn.DisplayMember  = "Value";
     cmbMidiIn.ValueMember    = "Key";
     cmbMidiIn.SelectedValue  = Settings.MidiIn;
     cmbMidiOut.DataSource    = new BindingSource(m_midiOuts, null);
     cmbMidiOut.DisplayMember = "Value";
     cmbMidiOut.ValueMember   = "Key";
     cmbMidiOut.SelectedValue = Settings.MidiOut;
 }
Пример #3
0
        public void start(MappingConfig mappingConfig)
        {
            this.mappingConfig = mappingConfig;

            int count = NativeMethods.midiInGetNumDevs();
            int deviceIndexSelected = -1;

            for (int deviceIndex = 0; deviceIndex < count; deviceIndex++)
            {
                var caps  = new MidiInCaps();
                int error = NativeMethods.midiInGetDevCaps(deviceIndex, ref caps, Marshal.SizeOf(caps));

                String inputDeviceKeyTmp = deviceIndex + "_" + caps.name;
                if (!inputDeviceKeyTmp.Equals(mappingConfig.inputDeviceKey))
                {
                    continue;
                }
                deviceIndexSelected = deviceIndex;
                break;
            }

            if (deviceIndexSelected > -1)
            {
                if (IntPtr.Zero == inputDeviceHandle)
                {
                    midiInProc = new NativeMethods.MidiInProc(MidiInEventProc);
                    bool opened  = NativeMethods.midiInOpen(out inputDeviceHandle, deviceIndexSelected, midiInProc, IntPtr.Zero, NativeMethods.CALLBACK_FUNCTION) == NativeMethods.MMSYSERR_NOERROR;
                    bool startet = NativeMethods.midiInStart(inputDeviceHandle) == NativeMethods.MMSYSERR_NOERROR;
                }
            }
        }
Пример #4
0
 internal Device(int pDeviceID)
 {
     mInDeviceID  = pDeviceID;
     mOutDeviceID = -1;
     mCap         = InputDevice.GetDeviceCapabilities(pDeviceID);
     mName        = mCap.name;
 }
Пример #5
0
 /// <summary>
 ///     Create new instance of MidiInputDeviceInfo
 /// </summary>
 /// <param name="caps"></param>
 public MidiInputDeviceInfo(MidiInCaps caps)
 {
     DriverVersion = caps.driverVersion;
     Mid           = caps.mid;
     Name          = caps.name;
     Pid           = caps.pid;
     Support       = caps.support;
 }
Пример #6
0
 void AddLogDevice(int device, MidiInCaps mic)
 {
     //AddLog("device= " + device.ToString());
     //AddLog("name= " + mic.name.ToString());
     //AddLog("mid= " + mic.mid.ToString());
     //AddLog("pid= " + mic.pid.ToString());
     //AddLog("support= " + mic.support.ToString());
     //AddLog("driverVersion= " + mic.driverVersion.ToString());
 }
Пример #7
0
 public void RefreshMidiInput()
 {
     // Refresh list of Midi input devices
     midiInputs.Clear();
     midiInputs.Add(new MidiInput("None", -1));
     for (int i = 0; i < InputDevice.DeviceCount; i++)
     {
         MidiInCaps cap = InputDevice.GetDeviceCapabilities(i);
         midiInputs.Add(new MidiInput(cap.name, i));
     }
     SettingMidiInput.DataSource = midiInputs;
 }
Пример #8
0
        public void GetMidiInfo()
        {
            for (int i = 0; i < InputDevice.DeviceCount; i++)
            {
                MidiInCaps caps = InputDevice.GetDeviceCapabilities(i);
                im[i] = new InputMidi(caps.name, i);
            }

            for (int i = 0; i < OutputDevice.DeviceCount; i++)
            {
                MidiOutCaps caps = OutputDevice.GetDeviceCapabilities(i);
                om[i] = new OutputMidi(caps.name, i);
            }
        }
Пример #9
0
        public string GetDetail()
        {
            MidiInCaps midiincap = InputDevice.GetDeviceCapabilities(DeviceID);

            string res = "";

            res = res + "ControllerName: " + midiincap.name + "\r\n";
            res = res + "DriverVersion: " + midiincap.driverVersion.ToString() + "\r\n";
            res = res + "ManufacturerID: " + midiincap.mid.ToString() + "\r\n";
            res = res + "ProductID: " + midiincap.pid.ToString() + "\r\n";
            res = res + "SupportID: " + midiincap.support.ToString() + "\r\n";

            return(res);
        }
Пример #10
0
 public static List <string> AvailableMidiDevices()
 {
     if (deviceNames == null)
     {
         deviceNames = new List <string>();
         for (int i = 0; i < InputDevice.DeviceCount; i++)
         {
             MidiInCaps deviceCaps = InputDevice.GetDeviceCapabilities(i);
             deviceNames.Add(deviceCaps.name);
             UnityEngine.Debug.Log(string.Format("Midi Device {0}: {1}", i, deviceCaps.name));
         }
     }
     return(deviceNames);
 }
Пример #11
0
    public static MidiInCaps GetDeviceCapabilities(int deviceID)
    {
        int        result;
        MidiInCaps caps = new MidiInCaps();

        result = midiInGetDevCaps(deviceID, ref caps, SizeOfMidiHeader);

        if (result != MidiDeviceException.MMSYSERR_NOERROR)
        {
            throw new InputDeviceException(result);
        }

        return(caps);
    }
Пример #12
0
        public List <String> retrieveInputDeviceKeys()
        {
            List <String> result = new List <String>();

            int count = NativeMethods.midiInGetNumDevs();

            for (int deviceIndex = 0; deviceIndex < count; deviceIndex++)
            {
                var caps  = new MidiInCaps();
                int error = NativeMethods.midiInGetDevCaps(deviceIndex, ref caps, Marshal.SizeOf(caps));

                String inputDeviceKey = deviceIndex + "_" + caps.name;
                Debug.WriteLine(inputDeviceKey);
                result.Add(inputDeviceKey);
            }
            return(result);
        }
Пример #13
0
        public void OpenInputDevice(string device)
        {
            for (int i = 0; i < InputDevice.DeviceCount; i++)
            {
                MidiInCaps cap = InputDevice.GetDeviceCapabilities(i);
                if (cap.name == device)
                {
                    try {
                        midiInput = new InputDevice(i);
                        midiInput.StartRecording();
                        midiInput.ChannelMessageReceived += OnSimpleChannelMessagePlayed;

                        Console.WriteLine(string.Format("{0} opened.", cap.name));
                    } catch (InputDeviceException e) {
                        Console.WriteLine(string.Format("Couldn't open input {0}.", device));
                    }
                }
            }
        }
Пример #14
0
        public void initialize()
        {
            int outDeviceCount = midiOutGetNumDevs();

            for (int i = 0; i < outDeviceCount; i++)
            {
                MidiOutCaps moc = new MidiOutCaps();
                midiOutGetDevCaps(i, ref moc, (int)Marshal.SizeOf(typeof(MidiOutCaps)));
                MidiOutDevice outDev = new MidiOutDevice(i, moc);
                outDeviceList.Add(outDev);
            }
            int inDeviceCount = midiInGetNumDevs();

            for (int i = 0; i < inDeviceCount; i++)
            {
                MidiInCaps mic = new MidiInCaps();
                midiInGetDevCaps(i, ref mic, (int)Marshal.SizeOf(typeof(MidiInCaps)));
                MidiInDevice inDev = new MidiInDevice(i, mic);
                inDeviceList.Add(inDev);
            }
        }
Пример #15
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Configure"/> class.
        /// </summary>
        public Configure()
        {
            InitializeComponent();

            // TODO: Finish the LiveDrive support!

            MidiInCaps    midiInCaps = new MidiInCaps();
            ASCIIEncoding encoder    = new ASCIIEncoding();

            for (int i = 0; i < LiveDriveReceiver.midiInGetNumDevs(); i++)
            {
                if (midiInGetDevCaps(i, ref midiInCaps, Marshal.SizeOf(typeof(MidiInCaps))) == 0)
                {
                    string strName      = encoder.GetString(midiInCaps.szPname);
                    int    intNullIndex = strName.IndexOf((char)0);
                    strName = strName.Remove(intNullIndex, MidiInCaps.MAXPNAMELEN - intNullIndex);

                    comboBoxDevice.Items.Add(strName);

                    //cbxDevices.Items.Add(new MIDIDevice(strName, i));
                }
            }
        }
Пример #16
0
    /// <summary>
    /// Initializes a new instance of the <see cref="Configure"/> class.
    /// </summary>
    public Configure()
    {
      InitializeComponent();

      // TODO: Finish the LiveDrive support!

      MidiInCaps midiInCaps = new MidiInCaps();
      ASCIIEncoding encoder = new ASCIIEncoding();

      for (int i = 0; i < LiveDriveReceiver.midiInGetNumDevs(); i++)
      {
        if (midiInGetDevCaps(i, ref midiInCaps, Marshal.SizeOf(typeof (MidiInCaps))) == 0)
        {
          string strName = encoder.GetString(midiInCaps.szPname);
          int intNullIndex = strName.IndexOf((char) 0);
          strName = strName.Remove(intNullIndex, MidiInCaps.MAXPNAMELEN - intNullIndex);

          comboBoxDevice.Items.Add(strName);

          //cbxDevices.Items.Add(new MIDIDevice(strName, i));
        }
      }
    }
Пример #17
0
 public static extern uint MidiInGetDevCaps(uint deviceId, ref MidiInCaps midiInCaps, uint cbMidiInCaps);
Пример #18
0
 private static extern int midiInGetDevCaps(int deviceID,
                                            ref MidiInCaps caps, int sizeOfMidiInCaps);
Пример #19
0
 public static extern int midiInGetDevCaps(uint uDeviceID, out MidiInCaps lpMidiInCaps, int cbMidiInCaps);
Пример #20
0
 public static extern int midiInGetDevCaps(uint uDeviceID, out MidiInCaps lpMidiInCaps, int cbMidiInCaps);
Пример #21
0
 private static extern int midiInGetDevCaps(int uDeviceID, ref MidiInCaps lpCaps, int uSize);
Пример #22
0
 public static extern int midiInGetDevCaps(int deviceID, ref MidiInCaps caps, int capsSize);
Пример #23
0
 /// <summary>
 /// Constructs a new instance based on the unmanaged structure.
 /// </summary>
 /// <param name="caps">Reference to the unmanaged structure.</param>
 internal MidiInPortCaps(ref MidiInCaps caps)
     : this(caps.Mid, caps.Pid, caps.DriverVersion, caps.Name, caps.Support)
 {
 }
Пример #24
0
 public MidiInDevice(int index_, MidiInCaps moc)
 {
     name  = moc.szPname;
     index = index_;
 }
Пример #25
0
 protected static extern int midiInGetDevCaps(int deviceID, ref MidiInCaps caps, int sizeOfMidiOutCaps);
Пример #26
0
 public static extern uint MidiInGetDevCaps(uint uDeviceID, ref MidiInCaps lpMidiInCaps, uint cbMidiInCaps);
Пример #27
0
 static extern int midiInGetDevCaps(int deviceIndex,
                                    ref MidiInCaps caps, int sizeOfMidiInCaps);
Пример #28
0
 public static extern int midiInGetDevCaps(IntPtr handle, ref MidiInCaps caps, uint sizeOfmidiInCaps);
Пример #29
0
        protected override void OnLoad(EventArgs e)
        {
            if (OutputDevice.DeviceCount == 0)
            {
                MessageBox.Show("No MIDI output devices available.", "Error!",
                                MessageBoxButtons.OK, MessageBoxIcon.Stop);

                Close();
            }
            else
            {
                try
                {
                    int foo      = InputDevice.DeviceCount;
                    int i        = 0;
                    int APCfound = 0;

                    for (i = 0; i < foo; i++)
                    {
                        MidiInCaps mdevices = InputDevice.GetDeviceCapabilities(i);
                        int        ii       = i + 1;
                        listBox1.Items.Add((string)"PORT " + ii.ToString() + '\t' + '\t' + mdevices.name.ToString() + '\t');
                        if (mdevices.name.ToString() == "APC control")
                        {
                            listBox1.SelectedIndex = listBox1.Items.Count - 1;
                        }

                        listBox3.Items.Add((string)"PORT " + ii.ToString() + '\t' + '\t' + mdevices.name.ToString() + '\t');
                        if (mdevices.name.ToString() == "APC MINI")
                        {
                            APCfound = 1;
                            listBox3.SelectedIndex = listBox3.Items.Count - 1;
                        }


                        listBox5.Items.Add((string)"PORT " + ii.ToString() + '\t' + '\t' + mdevices.name.ToString() + '\t');
                        if (mdevices.name.ToString() == "Mixer")
                        {
                            listBox5.SelectedIndex = listBox5.Items.Count - 1;
                        }
                    }


                    if (APCfound == 0)
                    {
                        MessageBox.Show("No APC MINI device available.", "Error!",
                                        MessageBoxButtons.OK, MessageBoxIcon.Stop);

                        Close();
                    }


                    int bar = OutputDevice.DeviceCount;
                    i = 0;
                    for (i = 0; i < bar; i++)
                    {
                        MidiOutCaps odevices = OutputDevice.GetDeviceCapabilities(i);
                        int         ii       = i + 1;
                        listBox2.Items.Add((string)"PORT " + ii.ToString() + '\t' + '\t' + odevices.name.ToString() + '\t');

                        if (odevices.name.ToString() == "Lights")
                        {
                            listBox2.SelectedIndex = listBox2.Items.Count - 1;
                        }

                        listBox4.Items.Add((string)"PORT " + ii.ToString() + '\t' + '\t' + odevices.name.ToString() + '\t');
                        if (odevices.name.ToString() == "APC MINI")
                        {
                            listBox4.SelectedIndex = listBox4.Items.Count - 1;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error!",
                                    MessageBoxButtons.OK, MessageBoxIcon.Stop);

                    Close();
                }
            }

            base.OnLoad(e);
        }
Пример #30
0
 private static extern int midiInGetDevCaps(int uDeviceID, ref MidiInCaps lpCaps, int uSize);