From 32e6bfa16d5908ca8a3a665e0cfcf57eae7c2607 Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Tue, 23 Jan 2018 13:10:20 +0100 Subject: [PATCH 1/9] Update config.mk Added HIST2 and ROUTE2 --- apps/bees/config.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/bees/config.mk b/apps/bees/config.mk index dae12afa6..a3e121caf 100644 --- a/apps/bees/config.mk +++ b/apps/bees/config.mk @@ -60,7 +60,8 @@ CSRCS += \ $(APP_DIR)/src/ops/op_fade.c \ $(APP_DIR)/src/ops/op_gate.c \ $(APP_DIR)/src/ops/op_harry.c \ - $(APP_DIR)/src/ops/op_hid_word.c \ + $(APP_DIR)/src/ops/op_hid_word.c \ + $(APP_DIR)/src/ops/op_hist2.c \ $(APP_DIR)/src/ops/op_history.c \ $(APP_DIR)/src/ops/op_is.c \ $(APP_DIR)/src/ops/op_iter.c \ @@ -93,6 +94,7 @@ CSRCS += \ $(APP_DIR)/src/ops/op_preset.c \ $(APP_DIR)/src/ops/op_random.c \ $(APP_DIR)/src/ops/op_route.c \ + $(APP_DIR)/src/ops/op_route2.c \ $(APP_DIR)/src/ops/op_route8.c \ $(APP_DIR)/src/ops/op_route16.c \ $(APP_DIR)/src/ops/op_screen.c \ From a05f4b88112ec634d6c963ae3c8716508e9d402c Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Tue, 23 Jan 2018 13:14:17 +0100 Subject: [PATCH 2/9] Added Hist2 and Route2 --- apps/bees/src/op.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/bees/src/op.c b/apps/bees/src/op.c index bcd8bf0a0..612d7baf6 100644 --- a/apps/bees/src/op.c +++ b/apps/bees/src/op.c @@ -39,6 +39,7 @@ const op_id_t userOpTypes[NUM_USER_OP_TYPES] = { eOpMonomeGridRaw, // "gridraw" eOpHarry, eOpHid, + eOpHist2, eOpHistory, eOpIs, eOpIter, @@ -69,6 +70,7 @@ const op_id_t userOpTypes[NUM_USER_OP_TYPES] = { eOpPoly, eOpRandom, eOpRoute, + eOpRoute2 eOpRoute8, eOpRoute16, eOpScreen, @@ -421,6 +423,16 @@ const op_desc_t op_registry[numOpClasses] = { .size = sizeof(op_list4_t), .init = &op_list4_init, .deinit = NULL + }, { + .name = "ROUTE2", + .size = sizeof(op_route2_t), + .init = &op_route2_init, + .deinit = NULL + }, { + .name = "HIST2", + .size = sizeof(op_hist2_t), + .init = &op_hist2_init, + .deinit = NULL } }; From 1d3a338103372cf09b5500849e1c2cac83afc84d Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Tue, 23 Jan 2018 13:15:43 +0100 Subject: [PATCH 3/9] Added Route2 and Hist2 --- apps/bees/src/op.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/bees/src/op.h b/apps/bees/src/op.h index 4bdf34698..82aa537e6 100644 --- a/apps/bees/src/op.h +++ b/apps/bees/src/op.h @@ -109,6 +109,8 @@ typedef enum { eOpCkdiv, eOpLinlin, eOpList4, + eOpRoute2, + eOpHist2, // eOpMidiBend, // eOpMidiTouch, numOpClasses // dummy/count From 765be1852fa93e030fb2368cf354e7e330d103a1 Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Tue, 23 Jan 2018 13:16:36 +0100 Subject: [PATCH 4/9] Update op_derived.h --- apps/bees/src/op_derived.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/bees/src/op_derived.h b/apps/bees/src/op_derived.h index e69807b2b..14b481148 100644 --- a/apps/bees/src/op_derived.h +++ b/apps/bees/src/op_derived.h @@ -30,6 +30,7 @@ #include "ops/op_harry.h" #include "ops/op_hid_word.h" #include "ops/op_history.h" +#include "ops/op_hist2.h" #include "ops/op_is.h" #include "ops/op_iter.h" #include "ops/op_life_classic.h" @@ -68,6 +69,7 @@ #include "ops/op_sub.h" #include "ops/op_random.h" #include "ops/op_route.h" +#include "ops/op_route2.h" #include "ops/op_route8.h" #include "ops/op_route16.h" #include "ops/op_screen.h" From a83abcddf837a565f0640a595eff29fac45fd43e Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Tue, 23 Jan 2018 13:21:11 +0100 Subject: [PATCH 5/9] Added route2 and hist2 --- apps/bees/src/ops/op_hist2.c | 71 +++++++++++++++++++++++++++ apps/bees/src/ops/op_hist2.h | 19 ++++++++ apps/bees/src/ops/op_route2.c | 91 +++++++++++++++++++++++++++++++++++ apps/bees/src/ops/op_route2.h | 22 +++++++++ 4 files changed, 203 insertions(+) create mode 100644 apps/bees/src/ops/op_hist2.c create mode 100644 apps/bees/src/ops/op_hist2.h create mode 100644 apps/bees/src/ops/op_route2.c create mode 100644 apps/bees/src/ops/op_route2.h diff --git a/apps/bees/src/ops/op_hist2.c b/apps/bees/src/ops/op_hist2.c new file mode 100644 index 000000000..ae7c3d4d7 --- /dev/null +++ b/apps/bees/src/ops/op_hist2.c @@ -0,0 +1,71 @@ +#include "net_protected.h" +#include "op_hist2.h" + +//------------------------------------------------- +//----- static function declaration +static void op_hist2_in_in(op_hist2_t* history, const io_t v); + +// pickle / unpickle +static u8* op_hist2_pickle(op_hist2_t* op, u8* dst); +static const u8* op_hist2_unpickle(op_hist2_t* op, const u8* src); + + +//------------------------------------------------- +//----- static vars +static op_in_fn op_hist2_in_fn[1] = { + (op_in_fn)&op_hist2_in_in +}; + +static const char* op_hist2_instring = "IN\0 "; +static const char* op_hist2_outstring = "O0\0 O1\0 "; +static const char* op_hist2_opstring = "HIST2"; + +//------------------------------------------------- +//----- external function definitions +void op_hist2_init(void* mem) { + op_hist2_t* history = (op_hist2_t*)mem; + history->super.numInputs = 1; + history->super.numOutputs = 2; + history->outs[0] = -1; + history->outs[1] = -1; + + history->super.in_fn = op_hist2_in_fn; + history->super.pickle = (op_pickle_fn) (&op_hist2_pickle); + history->super.unpickle = (op_unpickle_fn) (&op_hist2_unpickle); + + history->super.in_val = history->in_val; + history->super.out = history->outs; + history->super.opString = op_hist2_opstring; + history->super.inString = op_hist2_instring; + history->super.outString = op_hist2_outstring; + history->super.type = eOpHist2; + history->in_val[0] = &(history->in); + + history->in = 0; +} + +//------------------------------------------------- +//----- static function definitions +static void op_hist2_in_in(op_hist2_t* history, const io_t v) { + // printf("history at %d received A %d\n", (int)history, (int)*v); + + history->in = v; + + history->val[1] = history->val[0]; + history->val[0] = v; + + net_activate(history, 0, history->val[0]); + net_activate(history, 1, history->val[1]); +} + + +// pickle / unpickle +u8* op_hist2_pickle(op_hist2_t* op, u8* dst) { + dst = pickle_io(op->in, dst); + return dst; +} + +const u8* op_hist2_unpickle(op_hist2_t* op, const u8* src ) { + src = unpickle_io(src, &(op->in)); + return src; +} diff --git a/apps/bees/src/ops/op_hist2.h b/apps/bees/src/ops/op_hist2.h new file mode 100644 index 000000000..5ee11d981 --- /dev/null +++ b/apps/bees/src/ops/op_hist2.h @@ -0,0 +1,19 @@ +#ifndef _op_hist2_H_ +#define _op_hist2_H_ + +#include "op.h" +#include "op_math.h" +#include "types.h" + +//--- op_hist2_t +typedef struct op_hist2_struct { + op_t super; + io_t val[2]; + volatile io_t in; + volatile io_t* in_val[1]; + op_out_t outs[2]; +} op_hist2_t; + +void op_hist2_init(void* hist2); + +#endif // header guard diff --git a/apps/bees/src/ops/op_route2.c b/apps/bees/src/ops/op_route2.c new file mode 100644 index 000000000..3a70f8277 --- /dev/null +++ b/apps/bees/src/ops/op_route2.c @@ -0,0 +1,91 @@ +#include "net_protected.h" +#include "print_funcs.h" + +#include "pickle.h" +#include "op_route.h" + +//------------------------------------------------- +//----- descriptor +static const char* op_route2_instring = "VAL\0 TO\0 "; +static const char* op_route2_outstring = "O0\0 O1\0 "; +static const char* op_route2_opstring = "ROUTE2"; + +//------------------------------------------------- +//----- static function declaration + + +// set inputs +static void op_route2_in_val(op_route2_t* route, const io_t v); +static void op_route2_in_to(op_route2_t* route, const io_t v); +// pickle / unpickle +static u8* op_route2_pickle(op_route2_t* route, u8* dst); +const static u8* op_route2_unpickle(op_route2_t* route, const u8* src); + +// array of input functions +static op_in_fn op_route2_in[2] = { + (op_in_fn)&op_route2_in_val, + (op_in_fn)&op_route2_in_to +}; + +//----- external function definition + +/// initialize +void op_route2_init(void* op) { + op_route2_t* route = (op_route2_t*)op; + + // superclass functions + route->super.in_fn = op_route2_in; + route->super.pickle = (op_pickle_fn) (&op_route2_pickle); + route->super.unpickle = (op_unpickle_fn) (&op_route2_unpickle); + + // superclass state + route->super.numInputs = 2; + route->super.numOutputs = 2; + route->outs[0] = -1; + route->outs[1] = -1; + + route->super.in_val = route->in_val; + route->in_val[0] = &(route->val); + route->in_val[1] = &(route->to); + + route->super.out = route->outs; + route->super.opString = op_route2_opstring; + route->super.inString = op_route2_instring; + route->super.outString = op_route2_outstring; + route->super.type = eOpRoute2; + + // class state + route->val = 0; + route->to = 0; +} + +//------------------------------------------------- +//----- static function definition + +//===== operator input + +// input state +static void op_route2_in_val(op_route2_t* route, const io_t v) { + route->val = v; + net_activate(route, route->to, route->val); +} + +// to where +static void op_route2_in_to(op_route2_t* route, const io_t v) { + io_t val = v; + if(val<0) val = 0; + else if(val>1) val = 1; + route->to = val; +} + + +// serialization +u8* op_route2_pickle(op_route2_t* route, u8* dst) { + dst = pickle_io(route->to, dst); + return dst; +} + +const u8* op_route2_unpickle(op_route2_t* route, const u8* src) { + src = unpickle_io(src, &(route->to)); + return src; +} diff --git a/apps/bees/src/ops/op_route2.h b/apps/bees/src/ops/op_route2.h new file mode 100644 index 000000000..4c458b76d --- /dev/null +++ b/apps/bees/src/ops/op_route2.h @@ -0,0 +1,22 @@ +#ifndef _OP_ROUTE2_H_ +#define _OP_ROUTE2_H_ + +#include "op.h" +#include "op_math.h" +#include "types.h" + +//--- op_split_t : switch (non-system) +typedef struct op_route2_struct { + // superclass + op_t super; + // state variables / inputs + volatile io_t val; + volatile io_t to; + // pointers for external access + volatile io_t* in_val[2]; + op_out_t outs[2]; +} op_route2_t; + +extern void op_route2_init(void* split4); + +#endif // header guard From 71da82fb862de8975ae46ad2fdbb460de02e6883 Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Sun, 15 Apr 2018 13:03:23 +0200 Subject: [PATCH 6/9] Update op.c --- apps/bees/src/op.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bees/src/op.c b/apps/bees/src/op.c index 612d7baf6..854585839 100644 --- a/apps/bees/src/op.c +++ b/apps/bees/src/op.c @@ -70,7 +70,7 @@ const op_id_t userOpTypes[NUM_USER_OP_TYPES] = { eOpPoly, eOpRandom, eOpRoute, - eOpRoute2 + eOpRoute2, eOpRoute8, eOpRoute16, eOpScreen, From cd14f1723b3353a409d122eb90bc1d14fd07f674 Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Sun, 15 Apr 2018 13:04:10 +0200 Subject: [PATCH 7/9] Update op.c corrected line 73, coma missing --- apps/bees/src/op.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bees/src/op.c b/apps/bees/src/op.c index 854585839..612d7baf6 100644 --- a/apps/bees/src/op.c +++ b/apps/bees/src/op.c @@ -70,7 +70,7 @@ const op_id_t userOpTypes[NUM_USER_OP_TYPES] = { eOpPoly, eOpRandom, eOpRoute, - eOpRoute2, + eOpRoute2 eOpRoute8, eOpRoute16, eOpScreen, From c02ea46eab90f3e36a441167f3b3c5562093a08c Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Sun, 15 Apr 2018 13:04:42 +0200 Subject: [PATCH 8/9] Update op.c Coma missing in line 73 - corrected --- apps/bees/src/op.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bees/src/op.c b/apps/bees/src/op.c index 612d7baf6..854585839 100644 --- a/apps/bees/src/op.c +++ b/apps/bees/src/op.c @@ -70,7 +70,7 @@ const op_id_t userOpTypes[NUM_USER_OP_TYPES] = { eOpPoly, eOpRandom, eOpRoute, - eOpRoute2 + eOpRoute2, eOpRoute8, eOpRoute16, eOpScreen, From 8f545838b46209a4d140672375877eaef8273d5d Mon Sep 17 00:00:00 2001 From: Yankow2 <33522073+Yankow2@users.noreply.github.com> Date: Sun, 15 Apr 2018 13:19:59 +0200 Subject: [PATCH 9/9] Update config.mk Should be fixed by now --- apps/bees/config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/bees/config.mk b/apps/bees/config.mk index a3e121caf..ddf2ef2b8 100644 --- a/apps/bees/config.mk +++ b/apps/bees/config.mk @@ -60,7 +60,7 @@ CSRCS += \ $(APP_DIR)/src/ops/op_fade.c \ $(APP_DIR)/src/ops/op_gate.c \ $(APP_DIR)/src/ops/op_harry.c \ - $(APP_DIR)/src/ops/op_hid_word.c \ + $(APP_DIR)/src/ops/op_hid_word.c \ $(APP_DIR)/src/ops/op_hist2.c \ $(APP_DIR)/src/ops/op_history.c \ $(APP_DIR)/src/ops/op_is.c \