comparison nykyaeka/musa.c @ 0:acb5694e93d9

Initial import.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 18 May 2010 04:25:44 +0300
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:acb5694e93d9
1 #define pwplib_volume 64
2 /* to pwplib.h -- pwplib.setup[SOUND_VOLUME] */
3
4 #include "pwpdemo.h"
5
6 #include "musa.h"
7
8 struct
9 {
10 int ord,patt,row;
11 int tick,tempo;
12 }player;
13
14 void newnote()
15 {
16 int c=0;
17
18 for(;c<3;c++)
19 {
20 int note=pwpmusic[player.patt][c][player.row];
21
22 if(note==253)
23 {
24 if(player.tempo==6)player.tempo=50;else
25 player.tempo=4;
26 }else
27 if(note==254)
28 pwplib_sound_nv(c,0,0);
29 else
30 if(note!=255)
31 pwplib_sound_nv(c,(note-5)<<8,pwplib_volume);
32 }
33 player.row++;
34 if(player.row==64)
35 {
36 player.row=0;
37 player.ord++;
38 player.patt=pwpmusic_order[player.ord];
39
40 if(player.patt>128)
41 {
42 if(player.patt==255)player.ord=0;else
43 {
44 if(player.patt==254)player.tempo=5;
45 player.ord++;
46 }
47 player.patt=pwpmusic_order[player.ord];
48 }
49 }
50 }
51
52 void playtick()
53 {
54 if(player.tick==0)
55 newnote();
56
57 player.tick++;
58 if(player.tick==player.tempo)
59 player.tick=0;
60 }
61
62 void initplayer()
63 {
64 player.row=player.ord;
65 player.patt=pwpmusic_order[0];
66 player.tick=0;
67 player.tempo=6;
68 pwplib_setplayer(playtick);
69 }
70
71
72 /* loopflush(); */