diff options
Diffstat (limited to 'src/settings.c')
-rw-r--r-- | src/settings.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/settings.c b/src/settings.c index b814e1a..2c698d1 100644 --- a/src/settings.c +++ b/src/settings.c | |||
@@ -13,8 +13,25 @@ draw_settings_cursor(void) { | |||
13 | draw_line(x + 3, y + 5, x + 3, y + 5, COL_ACC_0); | 13 | draw_line(x + 3, y + 5, x + 3, y + 5, COL_ACC_0); |
14 | } | 14 | } |
15 | 15 | ||
16 | void serial_irq(void); | ||
17 | void stop_sound(void); | ||
18 | void toggle_playing(void); | ||
19 | |||
16 | void | 20 | void |
17 | set_audio_settings(void) { | 21 | set_audio_settings(void) { |
22 | stop_sound(); | ||
23 | if (settings.sync == SYNC_IN_LINK) { | ||
24 | irs_set(IRQ_SERIAL, serial_irq); | ||
25 | irs_set(IRQ_TIMER_2, NULL); | ||
26 | SIO_MODE = SIO_MODE_GP | ||
27 | | SIO_SC_OUT(0) | ||
28 | | SIO_SD_OUT(0) | ||
29 | | SIO_SI_OUT(0) | ||
30 | | SIO_SO_OUT(0) | ||
31 | | SIO_IRQ_ENABLE; | ||
32 | } else { | ||
33 | irs_set(IRQ_SERIAL, NULL); | ||
34 | } | ||
18 | switch (settings.sync) { | 35 | switch (settings.sync) { |
19 | case SYNC_OUT_LINK_AUDIO_4: | 36 | case SYNC_OUT_LINK_AUDIO_4: |
20 | case SYNC_OUT_LINK_AUDIO_8: | 37 | case SYNC_OUT_LINK_AUDIO_8: |
@@ -121,4 +138,7 @@ handle_settings_input(void) { | |||
121 | if (key_tap(KEY_A)) { | 138 | if (key_tap(KEY_A)) { |
122 | next_scene = SCENE_SEQUENCER; | 139 | next_scene = SCENE_SEQUENCER; |
123 | } | 140 | } |
141 | if (key_tap(KEY_START)) { | ||
142 | toggle_playing(); | ||
143 | } | ||
124 | } | 144 | } |