コード例 #1
0
    public void OnDeviceClick(MidiSelectionUIDeviceButton button)
    {
        Debug.Log("Device : " + button.device.ToString() + " " + button.text.text);
        if (button.connected)
        {
            switch (button.device)
            {
            case MidiSelectionUIDeviceButton.Device.IN:
                MidiINPlugin.DisconnectDeviceByName(button.text.text);
                button.image.color = disconnectedColor;
                button.connected   = false;
                MidiINPlugin.StoreConnections();
                break;

            case MidiSelectionUIDeviceButton.Device.OUT:
                MidiOUTPlugin.DisconnectDeviceByName(button.text.text);
                button.image.color = disconnectedColor;
                button.connected   = false;
                MidiOUTPlugin.StoreConnections();
                break;
            }
        }
        else
        {
            switch (button.device)
            {
            case MidiSelectionUIDeviceButton.Device.IN:
                if (MidiINPlugin.ConnectDeviceByName(button.text.text) != null)
                {
                    button.image.color = connectedColor;
                    button.connected   = true;
                    MidiINPlugin.StoreConnections();
                }
                break;

            case MidiSelectionUIDeviceButton.Device.OUT:
                if (MidiOUTPlugin.ConnectDeviceByName(button.text.text) != null)
                {
                    button.image.color = connectedColor;
                    button.connected   = true;
                    MidiOUTPlugin.StoreConnections();
                }
                break;
            }
        }
    }
コード例 #2
0
    void Init()
    {
        foreach (MidiSelectionUIDeviceButton button in INs)
        {
            Destroy(button.gameObject);
        }

        INs = new List <MidiSelectionUIDeviceButton> ();

        foreach (MidiSelectionUIDeviceButton button in OUTs)
        {
            Destroy(button.gameObject);
        }

        OUTs = new List <MidiSelectionUIDeviceButton> ();

        int count = MidiINPlugin.deviceNames.Count > MidiOUTPlugin.deviceNames.Count ? MidiINPlugin.deviceNames.Count : MidiOUTPlugin.deviceNames.Count;

        _minHeight = count * (int)PREFAB_MidiDeviceButton.GetComponent <LayoutElement> ().preferredHeight + 100;

        if (_minHeight < minHeight)
        {
            _minHeight = minHeight;
        }

        _minWidth = minWidth;

        for (int i = 0; i < MidiINPlugin.GetDeviceCount(); i++)
        {
            var go = Instantiate(PREFAB_MidiDeviceButton);

            go.transform.SetParent(inPanel, false);
            MidiSelectionUIDeviceButton button = go.GetComponent <MidiSelectionUIDeviceButton> ();
            button.device          = MidiSelectionUIDeviceButton.Device.IN;
            button.midiSelectionUI = this;
            button.text.text       = MidiINPlugin.GetDeviceName(i);

            bool connected = false;

            foreach (MidiDevice device in MidiINPlugin.connectedDevices)
            {
                if (device.name == button.text.text)
                {
                    connected = true;
                }
            }

            button.connected = connected;

            if (connected)
            {
                button.image.color = connectedColor;
            }
            else
            {
                button.image.color = disconnectedColor;
            }

            INs.Add(button);

            int preferredWidth = (int)button.text.preferredWidth;
            if (preferredWidth > _minWidth / 2)
            {
                _minWidth = 2 * preferredWidth;
            }
        }

        for (int i = 0; i < MidiOUTPlugin.GetDeviceCount(); i++)
        {
            var go = Instantiate(PREFAB_MidiDeviceButton);
            go.transform.SetParent(outPanel, false);
            MidiSelectionUIDeviceButton button = go.GetComponent <MidiSelectionUIDeviceButton> ();
            button.device          = MidiSelectionUIDeviceButton.Device.OUT;
            button.midiSelectionUI = this;
            button.text.text       = MidiOUTPlugin.GetDeviceName(i);

            bool connected = false;

            foreach (MidiDevice device in MidiOUTPlugin.connectedDevices)
            {
                if (device.name == button.text.text)
                {
                    connected = true;
                }
            }

            button.connected = connected;

            if (connected)
            {
                button.image.color = connectedColor;
            }
            else
            {
                button.image.color = disconnectedColor;
            }

            OUTs.Add(button);

            int preferredWidth = (int)button.text.preferredWidth;
            if (preferredWidth > _minWidth / 2)
            {
                _minWidth = 2 * preferredWidth;
            }
        }

        _minWidth += 2 * widthMargin;
        //_minHeight += 2 * heightMargin;

        midiPanel.SetSize(new Vector2(_minWidth, _minHeight));
    }