Contents page

Rules for Tools/struct Environment


struct Environment
Environment structure, for loading and saving entire songs.

struct Environment {
    char lock;                  /* Do not touch this structure! */
    char measureres;            /* Cuts resolve to measures. */
    char recording;             /* Set when recording. */
    char running;               /* Set when running. */
    char punchenabled;          /* Auto punch in and out enabled. */
    char loopenabled;           /* Loop mode turned on. */
    char clicking;              /* Click track on? */
    char seeclick;              /* Visual metronome. */
    char multiin;               /* Multiple inputs? */
    char clickchannel;          /* MIDI CLick channel. */
    char midiclock;             /* Sync to MIDI clocks. */
    char smpteclock;            /* Sync to SMPTE. */
    char sendmidiclock;         /* Send out MIDI clocks. */
    char smptetype;             /* Which SMPTE format. */
    char countdown;             /* Do count down. */
    char midiclick;             /* Use MIDI for click. */
    char chop;
    unsigned long countlen;     /* Length of lead in. */
    unsigned long timenow;      /* Current time. */
    unsigned long markone;      /* Auto locate register. */
    unsigned long marktwo;      /* Auto locate register. */
    unsigned long punchin;      /* Punch in point. */
    unsigned long punchout;     /* Punch out point. */
    unsigned long loopin;       /* Loop in point. */
    unsigned long loopout;      /* Loop out point. */
    unsigned long cutin;        /* Cut in point. */
    unsigned long cutout;       /* Cut out point. */
    unsigned long starttime;    /* Where to play from. */
    unsigned long stoptime;     /* Marker to stop at. */
    unsigned long padcutin;     /* For non real time edits. */
    unsigned long padcutout;    /* For non real time edits. */
    unsigned long songlength;
    long startoffset;           /* Starting hi res clock offset. */
    unsigned short tempos[4];
    unsigned short tempo;       /* Current tempo. */
    unsigned short inittempo;   /* Initial tempo. */
    char songname[100];
    char author[100];
    short palette[8];           /* Colors. */
    char remotecontrol[128];    /* Table of remote controls. */
    long id;                    /* Each has a unique id. */
    long more[19];              /* Expansion space. */
    struct Track *tracklist;    /* Top track in list. */
    struct Clip  masterclip;    /* Master key, chord, signature. */
    struct Clip  masterundo;
    struct Clip  mastercut;
    struct Edit  *masteredit;
    struct Tool  *edittools[16];/* 16 Tools to edit with. */
    unsigned short toolid;      /* Global tool id. */
    short groupid;              /* Currently selected group. */
    struct Chord  *scalelist;   /* All scales. */
    struct Chord  *chordlist;   /* All chords. */
    struct Rhythm  *rhythmlist; /* All rhythms. */
    long padd;
    struct Event  *lista;       /* Leave this alone. */ 
};