## IpatchGigDimension

IpatchGigDimension — GigaSampler dimension object

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    enum                IpatchGigDimensionType;
    #define             IPATCH_GIG_DIMENSION_TYPE_MAX
                        IpatchGigDimension;
    IpatchGigDimension * ipatch_gig_dimension_new           (void);
    IpatchGigDimension * ipatch_gig_dimension_first         (IpatchIter *iter);
    IpatchGigDimension * ipatch_gig_dimension_next          (IpatchIter *iter);

## Object Hierarchy

      GObject
       +----IpatchItem
             +----IpatchGigDimension

## Properties

      "name"                     gchar*                : Read / Write
      "split-count"              gint                  : Read / Write
      "type"                     IpatchGigDimensionType  : Read / Write

## Description

Defines a GigaSampler dimension object which are the children of IpatchGigInst objects.

## Details

### enum IpatchGigDimensionType

    typedef enum
    {
      IPATCH_GIG_DIMENSION_NONE            = 0x00, /* not in use (is this in files?) */

      /* MIDI controllers - see IpatchGigControlType (IpatchGigEffects.h) */

      IPATCH_GIG_DIMENSION_MOD_WHEEL       = 0x01,
      IPATCH_GIG_DIMENSION_BREATH          = 0x02,
      IPATCH_GIG_DIMENSION_FOOT            = 0x04,
      IPATCH_GIG_DIMENSION_PORTAMENTO_TIME = 0x05,
      IPATCH_GIG_DIMENSION_EFFECT_1        = 0x0C,
      IPATCH_GIG_DIMENSION_EFFECT_2        = 0x0D,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_1   = 0x10,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_2   = 0x11,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_3   = 0x12,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_4   = 0x13,
      IPATCH_GIG_DIMENSION_SUSTAIN_PEDAL   = 0x40,
      IPATCH_GIG_DIMENSION_PORTAMENTO      = 0x41,
      IPATCH_GIG_DIMENSION_SOSTENUTO       = 0x42,
      IPATCH_GIG_DIMENSION_SOFT_PEDAL      = 0x43,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_5   = 0x50,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_6   = 0x51,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_7   = 0x52,
      IPATCH_GIG_DIMENSION_GEN_PURPOSE_8   = 0x53,
      IPATCH_GIG_DIMENSION_EFFECT_DEPTH_1  = 0x5B,
      IPATCH_GIG_DIMENSION_EFFECT_DEPTH_2  = 0x5C,
      IPATCH_GIG_DIMENSION_EFFECT_DEPTH_3  = 0x5D,
      IPATCH_GIG_DIMENSION_EFFECT_DEPTH_4  = 0x5E,
      IPATCH_GIG_DIMENSION_EFFECT_DEPTH_5  = 0x5F,

      IPATCH_GIG_DIMENSION_CHANNEL         = 0x80, /* sample has more than 1 channel */
      IPATCH_GIG_DIMENSION_LAYER           = 0x81, /* layer up to 8 zones (cross fade 2 or 4) */
      IPATCH_GIG_DIMENSION_VELOCITY        = 0x82, /* key velocity (only type that allows specific ranges) */
      IPATCH_GIG_DIMENSION_AFTER_TOUCH     = 0x83, /* channel MIDI after touch */
      IPATCH_GIG_DIMENSION_RELEASE_TRIG    = 0x84, /* trigger on key release */
      IPATCH_GIG_DIMENSION_KEYBOARD        = 0x85, /* key switching (FIXME WTF?) */
      IPATCH_GIG_DIMENSION_ROUND_ROBIN     = 0x86, /* selects zones in sequence */
      IPATCH_GIG_DIMENSION_RANDOM          = 0x87  /* selects random zone */
    } IpatchGigDimensionType;

### IPATCH_GIG_DIMENSION_TYPE_MAX

    #define IPATCH_GIG_DIMENSION_TYPE_MAX   IPATCH_GIG_DIMENSION_RANDOM

### IpatchGigDimension

    typedef struct _IpatchGigDimension IpatchGigDimension;

### ipatch_gig_dimension_new ()

    IpatchGigDimension * ipatch_gig_dimension_new           (void);

Create a new GigaSampler instrument dimension.

Returns : | New GigaSampler dimension with a ref count of 1 which the caller owns.

### ipatch_gig_dimension_first ()

    IpatchGigDimension * ipatch_gig_dimension_first         (IpatchIter *iter);

Gets the first item in a dimension iterator. A convenience wrapper for `ipatch_iter_first()`.

`iter` : | Patch item iterator containing IpatchGigDimension items
Returns : | The first dimension in `iter` or `NULL` if empty.

### ipatch_gig_dimension_next ()

    IpatchGigDimension * ipatch_gig_dimension_next          (IpatchIter *iter);

Gets the next item in a dimension iterator. A convenience wrapper for `ipatch_iter_next()`.

`iter` : | Patch item iterator containing IpatchGigDimension items
Returns : | The next dimension in `iter` or `NULL` if at the end of the list.

## Property Details

### The `"name"` property

      "name"                     gchar*                : Read / Write

Dimension name.

Default value: NULL

### The `"split-count"` property

      "split-count"              gint                  : Read / Write

Number of split bits.

Allowed values: [1,5]

Default value: 1

### The `"type"` property

      "type"                     IpatchGigDimensionType  : Read / Write

Dimension type.

Default value: IPATCH_GIG_DIMENSION_NONE

## See Also

#IpatchGigInst