Browse code

Made devapu static to emulator.c

Andrew Alderwick authored on 08/04/2021 20:22:27
Showing 3 changed files
... ...
@@ -13,8 +13,6 @@ WITH REGARD TO THIS SOFTWARE.
13 13
 #include "uxn.h"
14 14
 #include "apu.h"
15 15
 
16
-extern Device *devapu;
17
-
18 16
 static Uint32 note_advances[12] = {
19 17
 	0x82d01286 / (SAMPLE_FREQUENCY / 30), /* C7 */
20 18
 	0x8a976073 / (SAMPLE_FREQUENCY / 30),
... ...
@@ -47,7 +45,7 @@ render_note(Apu *apu, Uxn *u, int note_i, Sint16 *samples, int n_samples)
47 45
 				if(apu->queue->i == apu->queue->n) {
48 46
 					apu->queue->i = apu->queue->n = 0;
49 47
 					if(!apu->queue->finishes) {
50
-						u->ram.dat[devapu->addr + 0xa] = note_i;
48
+						u->ram.dat[apu->channel_addr] = note_i;
51 49
 						evaluxn(u, wv->vector);
52 50
 					}
53 51
 				}
... ...
@@ -40,6 +40,7 @@ typedef struct {
40 40
 	Queue *queue;
41 41
 	Note *notes;
42 42
 	int n_notes;
43
+	Uint16 channel_addr;
43 44
 } Apu;
44 45
 
45 46
 void apu_render(Apu *apu, Uxn *u, Sint16 *samples, int n_samples);
... ...
@@ -25,8 +25,7 @@ static SDL_Renderer *gRenderer;
25 25
 static SDL_Texture *gTexture;
26 26
 static Ppu ppu;
27 27
 static Apu apu;
28
-static Device *devsystem, *devscreen, *devmouse, *devkey, *devctrl;
29
-Device *devapu;
28
+static Device *devsystem, *devscreen, *devmouse, *devkey, *devctrl, *devapu;
30 29
 
31 30
 #pragma mark - Helpers
32 31
 
... ...
@@ -421,6 +420,7 @@ main(int argc, char **argv)
421 420
 	devmouse = portuxn(&u, 0x06, "mouse", ppnil);
422 421
 	portuxn(&u, 0x07, "file", file_poke);
423 422
 	devapu = portuxn(&u, 0x08, "audio", audio_poke);
423
+	apu.channel_addr = devapu->addr + 0xa;
424 424
 	portuxn(&u, 0x09, "midi", ppnil);
425 425
 	portuxn(&u, 0x0a, "datetime", datetime_poke);
426 426
 	portuxn(&u, 0x0b, "---", ppnil);