public InputDescription GetCurrentDescription(int jackInd)
    {
        ShaderOffsetMap[] maps;
        string            name;

        switch (jackInd)
        {
        case VERT_JACK:
            name = "Vertex";
            maps = _vertexOffsets;
            break;

        case RAST_JACK:
            name = "Rasterizer";
            maps = _rasterizerOffsets;
            break;

        case FRAG_JACK:
            name = "Fragment";
            maps = _fragmentOffsets;
            break;

        case POST_JACK:
            name = "Post Processing";
            maps = _postProcessOffsets;
            break;

        case CAMERA_JACK:
            name = "Rasterizer Scale";
            maps = new ShaderOffsetMap[] { _cameraScaleOffset };
            break;

        case SELECT_JACK:
            name = "Select";
            maps = new ShaderOffsetMap[] { _selectOffset };
            break;

        default:
            name = "null";
            maps = null;
            break;
        }

        int offsetInd = (int)(GetSelectVal() * (maps.Length - 1) + (.5f / maps.Length));

        Debug.Log("Select val: " + GetSelectVal() + " offsetInd: " + offsetInd + " maps len: " + maps.Length + " jack ind: " + jackInd);
        return(new InputDescription(name, maps[offsetInd].Description, maps[offsetInd].Center));
    }
    private float TransformVal(float val, ShaderOffsetMap map, float scale)
    {
        float f = map.Amplitude * scale * (val / 1024.0f);

        if (map.Center == ShaderOffsetMap.CenterMode.One)
        {
            f += 1.0f;
        }
        else if (map.Center == ShaderOffsetMap.CenterMode.ZeroAbs)
        {
            f = Mathf.Abs(f);
        }
        else if (map.Center == ShaderOffsetMap.CenterMode.OneMinusZeroAbs)
        {
            f = 1.0f - Mathf.Abs(f);
        }
        return(f);
    }