Auto full-combo Koibumi2000 in Taiko no Tatsujin CS5

Dependencies:   fll mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "rtos.h"
00003 #include "fll.h"
00004 #include "fllaux.h"
00005 #include "taiko.h"
00006 
00007 int main(void)
00008 {
00009     note don1 = { Don, 1 };
00010     note don05 = { Don, 0.5 };
00011     note don025 = { Don, 0.25 };
00012     note un1 = { Un, 1 };
00013     note un05 = { Un, 0.5 };
00014     note ka1 = { Ka, 1 };
00015     note ka05 = { Ka, 0.5 };
00016     note ka025 = { Ka, 0.25 };
00017     note renda2 = { Renda, 2 };
00018     note dondai05 = { DonDai, 0.5 };
00019     note dondai1 = { DonDai, 1 };
00020     note kadai05 = { KaDai, 0.5 };
00021     note kadai1 = { KaDai, 1 };
00022 
00023     button_t go_bs[] = {
00024         CIRCLE, CIRCLE,
00025     };
00026 
00027     Producer* go = new OnetimeSource(go_bs, sizeof(go_bs) / sizeof(button_t));
00028 
00029     // Koibumi2000
00030     note* note_seq[] = {
00031         &un1, &un1, &un1, &un1,
00032         &un1, &un1, &un05, &dondai05, &un1,
00033 
00034         &don05, &don05, &un1, &un1, &un1,
00035         &un1, &un1, &un1, &un1,
00036 
00037         &don05, &don05, &un1, &un1, &un1,
00038         &dondai1, &un1, &dondai1, &un1,
00039 
00040         //
00041         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
00042         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
00043 
00044         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
00045         &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
00046 
00047         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
00048         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
00049 
00050         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
00051         &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
00052 
00053         //
00054         &dondai1, &un1, &don025, &don025, &don025, &don025, &don1, //
00055 
00056         //
00057         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00058         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00059 
00060         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00061         &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
00062 
00063         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00064         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00065 
00066         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00067         &don05, &ka05, &don05, &ka05, &don05, &kadai05, &un1,
00068 
00069         //
00070         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00071         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00072 
00073         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00074         &don05, &ka05, &don05, &ka05, &don05, &kadai05, &kadai05, &kadai05,
00075 
00076         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00077         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00078 
00079         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00080         &don05, &ka05, &don05, &ka05, &don025, &don025, &don025, &don025, &don1,
00081 
00082         //
00083         &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &dondai1,
00084         &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &dondai1,
00085 
00086         &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
00087         &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
00088 
00089         &don025, &don025, &don05, &un05, &ka025, &ka025, &ka05, &un05, &dondai1,
00090         &don025, &don025, &don05, &un05, &ka025, &ka025, &ka05, &un05, &dondai1,
00091 
00092         &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
00093         &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
00094 
00095         //
00096         &don05, &don05, &don1, &don05, &don025, &don025, &don05, &don05,
00097         &don05, &don05, &don1, &don05, &don025, &don025, &don05, &don05,
00098 
00099         &don05, &don05, &don1, &don05, &don025, &don025, &don05, &don05,
00100         &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025, &don05, &don05,
00101 
00102         &don05, &ka05, &don05, &ka05, &don05, &don025, &don025, &don05, &don05,
00103         &don05, &ka05, &don05, &ka05, &don05, &don025, &don025, &don05, &don05,
00104 
00105         &don05, &ka05, &don05, &ka05, &don05, &don025, &don025, &don05, &ka05,
00106         &don05, &don025, &don025, &don05, &ka05, &don05, &ka025, &ka025, &ka05, &ka05,
00107 
00108         //
00109         &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
00110         &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
00111 
00112         &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
00113         &don05, &don025, &don025, &don025, &don025, &don05, &don05, &don025, &don025, &don025, &don025,&don05,
00114 
00115         &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don05, &ka05, &ka05,
00116         &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don05, &ka05, &ka05,
00117 
00118         &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don05, &ka05, &ka05,
00119         &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &dondai1,
00120 
00121         // irregular time
00122         &don05, &don1, &don1, &don1, &don05, &un05, &don05, &don05, &don05, &don1, &don05, &don05,
00123         &un05, &don1, &don1, &don1, &don05, &don05, &don05, &don1, // ?
00124 
00125         &don05, &don1, &don1, &don05, &don05, &don05, &un05, &ka025, &ka025, &ka05, &ka025, &ka025, &ka1, &don05, &don05,
00126         &un05, &don1, &don05, &don05, &don05, &un05, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &un05,
00127 
00128         &don05, &don025, &don025, &don05, &don1, &don1, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &don025, &don025, &don1, &don05, &don1, &don1, &don1, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &don05, &don05, &don05,
00129 
00130         // normal time
00131         &don1, &ka1, &don1, &ka1, &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
00132         &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &ka025, &ka025, &ka05, &don1, &un1, &un05, &don025, &don025, &don05, &don05,
00133 
00134         &don1, &ka1, &don1, &ka1, &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
00135         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don05, &don05, &don05, &don05,
00136 
00137         &don1, &ka1, &don1, &ka1, &dondai1, &kadai1, &dondai1, &kadai1,
00138         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025,
00139         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025,
00140         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025,
00141         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05,
00142 
00143         &renda2, &un05, &don025, &don025, &don1,
00144 
00145         // switch (tatsujin)
00146         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00147         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00148 
00149         &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
00150         &don05, &ka05, &don05, &ka05, &don05, &kadai05, &un05, &kadai05,
00151 
00152         //
00153         &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
00154         &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
00155 
00156         &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
00157         &don05, &don05, &don05, &don05, &don05, &don025, &don025, &don025, &don025, &don05,
00158         //
00159         &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &ka025, &ka025, &ka05,
00160         &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &ka025, &ka025, &ka05,
00161 
00162         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025,
00163         &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don025, &don025, &don05, &ka05,
00164         //
00165         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05,
00166         &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05,
00167 
00168         &don025, &don025, &ka025, &ka025, &don025, &don025, &ka025, &ka025, &don025, &don025, &ka025, &ka025, &don025, &don025, &ka025, &ka025,
00169         &don05, &don05, &don05, &don05, &don025, &don025, &don025, &don025, &don025, &don025, &don05,
00170 
00171         // irregular time
00172         &don05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &don05, &don05, &don1,
00173         &don05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &don05, &don05, &don1,
00174 
00175         // last
00176         &dondai05, &dondai05
00177     };
00178 
00179     Producer* taiko = new TaikoSource(note_seq, sizeof(note_seq)/sizeof(note*), 200);
00180 
00181     Producer* delayed_taiko = new DelayFlow(taiko, 9.068);
00182 
00183     button_time menu_bs[] = {
00184         space(40), single(CIRCLE), space(3), single(CIRCLE), space(4)
00185     };
00186 
00187     Producer* back = new EasySource(menu_bs, sizeof(menu_bs) / sizeof(menu_bs[0]));
00188 
00189     Producer* src_seq[] = { go, delayed_taiko, back };
00190 
00191     Producer* oneset = new SequentialFlow(src_seq, sizeof(src_seq) / sizeof(src_seq[0]));
00192 
00193     Producer* source = new RepeaterFlow(oneset);
00194 
00195     FLL fll(source);
00196     fll.run();
00197 }