Auto full-combo Koibumi2000 in Taiko no Tatsujin CS5
Dependencies: fll mbed-rtos mbed
Diff: main.cpp
- Revision:
- 5:130721ce29f7
- Parent:
- 4:9ee673ca05ad
- Child:
- 6:d0348b7a2f05
--- a/main.cpp Sat Feb 14 06:49:42 2015 +0000 +++ b/main.cpp Sat Feb 14 07:25:27 2015 +0000 @@ -3,10 +3,20 @@ #include "fll.h" #define FRAME 1.0 / 60 // 1 frame (sec) -#define PULL_PERIOD 20 // millisec -void invoke_sinkrun(const void *p) -{ +class OrPipe : public Pipe { + public: + OrPipe(Source **srcs, int srcs_size) : Pipe(srcs, srcs_size) {} + virtual button_t fold(button_t *bs, int bs_size) { + button_t b = 0x00; + for(int i = 0; i < bs_size; i++) { + b |= bs[i]; + } + return b; + } +}; + +void invoke_sinkrun(const void *p) { ((Sink*)p)->run(); } void outputrun(const void *p) @@ -16,9 +26,13 @@ int main(void) { - button_t array[] = {R1|B_CIRCLE, 0}; + button_t array0[] = {R1, 0}; + button_t array1[] = {B_CIRCLE, 0}; // user must make Source - Source* source = new Source(array, sizeof(array)/sizeof(button_t), true); + Source* source0 = new Source(array0, sizeof(array0)/sizeof(button_t), true); + Source* source1 = new Source(array1, sizeof(array1)/sizeof(button_t), true); + Source* ss[] = {source0, source1}; + Source* source = new OrPipe(ss, 2); // common pattern Mail<button_t, MAIL_BOX_SIZE>* mail_box = new Mail<button_t, MAIL_BOX_SIZE>();