sequencer init state
This commit is contained in:
@ -11,6 +11,10 @@ void sequencerExec(void *handle) {
|
|||||||
t_melody *melody = (t_melody*) handle;
|
t_melody *melody = (t_melody*) handle;
|
||||||
|
|
||||||
switch (melody->state) {
|
switch (melody->state) {
|
||||||
|
case e_Init:
|
||||||
|
psgAmplitude(melody->channel, melody->amplitude);
|
||||||
|
melody->state = e_PlayTone;
|
||||||
|
break;
|
||||||
case e_PlayTone:
|
case e_PlayTone:
|
||||||
if (melody->tones[melody->idx].length == e_L_EndMark) {
|
if (melody->tones[melody->idx].length == e_L_EndMark) {
|
||||||
melody->idx = 0;
|
melody->idx = 0;
|
||||||
@ -51,7 +55,6 @@ uint16_t sequencerPlayMelody(t_melody *melody) {
|
|||||||
melody->lengthCnt = 0;
|
melody->lengthCnt = 0;
|
||||||
melody->state = e_PlayTone;
|
melody->state = e_PlayTone;
|
||||||
|
|
||||||
psgAmplitude(melody->channel, melody->amplitude);
|
|
||||||
return schAdd(sequencerExec, (void*) melody, 0, melody->pace);
|
return schAdd(sequencerExec, (void*) melody, 0, melody->pace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ typedef struct {
|
|||||||
} t_tone;
|
} t_tone;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
e_Init,
|
||||||
e_PlayTone,
|
e_PlayTone,
|
||||||
e_HoldTone,
|
e_HoldTone,
|
||||||
e_StaccatoBreak,
|
e_StaccatoBreak,
|
||||||
|
Reference in New Issue
Block a user