Skip to content
Permalink
Browse files

move op and mod arrays to op.c

  • Loading branch information
samdoshi committed May 12, 2016
1 parent 28f98aa commit d566533c491dfbc778881cb3392287b21227ed2e
Showing with 91 additions and 86 deletions.
  1. +86 −1 src/ops/op.c
  2. +5 −0 src/ops/op.h
  3. +0 −85 src/teletype.c
@@ -1,9 +1,94 @@
#include "op.h"
#include "ops/op.h"

#include <stddef.h> // offsetof

#include "helpers.h"

#include "ops/constants.h"
#include "ops/controlflow.h"
#include "ops/delay.h"
#include "ops/hardware.h"
#include "ops/maths.h"
#include "ops/metronome.h"
#include "ops/patterns.h"
#include "ops/queue.h"
#include "ops/stack.h"
#include "ops/variables.h"


/////////////////////////////////////////////////////////////////
// OPS //////////////////////////////////////////////////////////

const tele_op_t *tele_ops[OPS] = {
// variables
&op_A, &op_B, &op_C, &op_D, &op_DRUNK, &op_DRUNK_MAX, &op_DRUNK_MIN,
&op_DRUNK_WRAP, &op_FLIP, &op_I, &op_IN, &op_O, &op_O_INC, &op_O_MAX,
&op_O_MIN, &op_O_WRAP, &op_PARAM, &op_T, &op_TIME, &op_TIME_ACT, &op_X,
&op_Y, &op_Z,

// metronome
&op_M, &op_M_ACT, &op_M_RESET,

// patterns
&op_P, &op_P_HERE, &op_P_END, &op_P_I, &op_P_L, &op_P_N, &op_P_NEXT,
&op_P_PREV, &op_P_START, &op_P_WRAP, &op_P_INS, &op_P_RM, &op_P_PUSH,
&op_P_POP, &op_PN,

// queue
&op_Q, &op_Q_AVG, &op_Q_N,

// hardware
&op_CV, &op_CV_OFF, &op_CV_SLEW, &op_TR, &op_TR_POL, &op_TR_TIME,
&op_TR_TOG, &op_TR_PULSE, &op_II, &op_CV_SET, &op_MUTE, &op_UNMUTE,
&op_STATE,

// maths
&op_ADD, &op_SUB, &op_MUL, &op_DIV, &op_MOD, &op_RAND, &op_RRAND, &op_TOSS,
&op_MIN, &op_MAX, &op_LIM, &op_WRAP, &op_QT, &op_AVG, &op_EQ, &op_NE,
&op_LT, &op_GT, &op_NZ, &op_EZ, &op_RSH, &op_LSH, &op_EXP, &op_ABS, &op_AND,
&op_OR, &op_XOR, &op_JI, &op_SCALE, &op_N, &op_V, &op_VV, &op_ER,

// stack
&op_S_ALL, &op_S_POP, &op_S_CLR, &op_S_L,

// controlflow
&op_SCRIPT, &op_KILL, &op_SCENE,

// delay
&op_DEL_CLR,

// constants
&op_WW_PRESET, &op_WW_POS, &op_WW_SYNC, &op_WW_START, &op_WW_END,
&op_WW_PMODE, &op_WW_PATTERN, &op_WW_QPATTERN, &op_WW_MUTE1, &op_WW_MUTE2,
&op_WW_MUTE3, &op_WW_MUTE4, &op_WW_MUTEA, &op_WW_MUTEB, &op_MP_PRESET,
&op_MP_RESET, &op_MP_SYNC, &op_MP_MUTE, &op_MP_UNMUTE, &op_MP_FREEZE,
&op_MP_UNFREEZE, &op_MP_STOP, &op_ES_PRESET, &op_ES_MODE, &op_ES_CLOCK,
&op_ES_RESET, &op_ES_PATTERN, &op_ES_TRANS, &op_ES_STOP, &op_ES_TRIPLE,
&op_ES_MAGIC, &op_ORCA_TRACK, &op_ORCA_CLOCK, &op_ORCA_DIVISOR,
&op_ORCA_PHASE, &op_ORCA_RESET, &op_ORCA_WEIGHT, &op_ORCA_MUTE,
&op_ORCA_SCALE, &op_ORCA_BANK, &op_ORCA_PRESET, &op_ORCA_RELOAD,
&op_ORCA_ROTATES, &op_ORCA_ROTATEW, &op_ORCA_GRESET, &op_ORCA_CVA,
&op_ORCA_CVB,
};

/////////////////////////////////////////////////////////////////
// MODS /////////////////////////////////////////////////////////

const tele_mod_t *tele_mods[MODS] = {
// controlflow
&mod_IF, &mod_ELIF, &mod_ELSE, &mod_L, &mod_PROB,

// delay
&mod_DEL,

// stack
&mod_S

};

/////////////////////////////////////////////////////////////////
// HELPERS //////////////////////////////////////////////////////

void op_constant(const void *data, scene_state_t *NOTUSED(ss),
exec_state_t *NOTUSED(es), command_state_t *cs) {
cs_push(cs, (intptr_t)data);
@@ -27,6 +27,11 @@ typedef struct {
const char *doc;
} tele_mod_t;

#define OPS 145
extern const tele_op_t *tele_ops[OPS];

#define MODS 7
extern const tele_mod_t *tele_mods[MODS];

// Get only ops
#define MAKE_GET_OP(n, g, p, r, d) \
@@ -5,17 +5,7 @@
#include <string.h>

#include "helpers.h"
#include "ops/constants.h"
#include "ops/controlflow.h"
#include "ops/delay.h"
#include "ops/hardware.h"
#include "ops/maths.h"
#include "ops/metronome.h"
#include "ops/op.h"
#include "ops/patterns.h"
#include "ops/queue.h"
#include "ops/stack.h"
#include "ops/variables.h"
#include "table.h"
#include "teletype.h"
#include "teletype_io.h"
@@ -95,81 +85,6 @@ void clear_delays(void) {
}


/////////////////////////////////////////////////////////////////
// MODS /////////////////////////////////////////////////////////

#define MODS 7
static const tele_mod_t *tele_mods[MODS] = {
// controlflow
&mod_IF, &mod_ELIF, &mod_ELSE, &mod_L, &mod_PROB,

// delay
&mod_DEL,

// stack
&mod_S

};


/////////////////////////////////////////////////////////////////
// OPS //////////////////////////////////////////////////////////


#define OPS 145
static const tele_op_t *tele_ops[OPS] = {
// variables
&op_A, &op_B, &op_C, &op_D, &op_DRUNK, &op_DRUNK_MAX, &op_DRUNK_MIN,
&op_DRUNK_WRAP, &op_FLIP, &op_I, &op_IN, &op_O, &op_O_INC, &op_O_MAX,
&op_O_MIN, &op_O_WRAP, &op_PARAM, &op_T, &op_TIME, &op_TIME_ACT, &op_X,
&op_Y, &op_Z,

// metronome
&op_M, &op_M_ACT, &op_M_RESET,

// patterns
&op_P, &op_P_HERE, &op_P_END, &op_P_I, &op_P_L, &op_P_N, &op_P_NEXT,
&op_P_PREV, &op_P_START, &op_P_WRAP, &op_P_INS, &op_P_RM, &op_P_PUSH,
&op_P_POP, &op_PN,

// queue
&op_Q, &op_Q_AVG, &op_Q_N,

// hardware
&op_CV, &op_CV_OFF, &op_CV_SLEW, &op_TR, &op_TR_POL, &op_TR_TIME,
&op_TR_TOG, &op_TR_PULSE, &op_II, &op_CV_SET, &op_MUTE, &op_UNMUTE,
&op_STATE,

// maths
&op_ADD, &op_SUB, &op_MUL, &op_DIV, &op_MOD, &op_RAND, &op_RRAND, &op_TOSS,
&op_MIN, &op_MAX, &op_LIM, &op_WRAP, &op_QT, &op_AVG, &op_EQ, &op_NE,
&op_LT, &op_GT, &op_NZ, &op_EZ, &op_RSH, &op_LSH, &op_EXP, &op_ABS, &op_AND,
&op_OR, &op_XOR, &op_JI, &op_SCALE, &op_N, &op_V, &op_VV, &op_ER,

// stack
&op_S_ALL, &op_S_POP, &op_S_CLR, &op_S_L,

// controlflow
&op_SCRIPT, &op_KILL, &op_SCENE,

// delay
&op_DEL_CLR,

// constants
&op_WW_PRESET, &op_WW_POS, &op_WW_SYNC, &op_WW_START, &op_WW_END,
&op_WW_PMODE, &op_WW_PATTERN, &op_WW_QPATTERN, &op_WW_MUTE1, &op_WW_MUTE2,
&op_WW_MUTE3, &op_WW_MUTE4, &op_WW_MUTEA, &op_WW_MUTEB, &op_MP_PRESET,
&op_MP_RESET, &op_MP_SYNC, &op_MP_MUTE, &op_MP_UNMUTE, &op_MP_FREEZE,
&op_MP_UNFREEZE, &op_MP_STOP, &op_ES_PRESET, &op_ES_MODE, &op_ES_CLOCK,
&op_ES_RESET, &op_ES_PATTERN, &op_ES_TRANS, &op_ES_STOP, &op_ES_TRIPLE,
&op_ES_MAGIC, &op_ORCA_TRACK, &op_ORCA_CLOCK, &op_ORCA_DIVISOR,
&op_ORCA_PHASE, &op_ORCA_RESET, &op_ORCA_WEIGHT, &op_ORCA_MUTE,
&op_ORCA_SCALE, &op_ORCA_BANK, &op_ORCA_PRESET, &op_ORCA_RELOAD,
&op_ORCA_ROTATES, &op_ORCA_ROTATEW, &op_ORCA_GRESET, &op_ORCA_CVA,
&op_ORCA_CVB,
};


/////////////////////////////////////////////////////////////////
// PARSE ////////////////////////////////////////////////////////

0 comments on commit d566533

Please sign in to comment.