Mercurial > hg > dmlib
annotate ppl.c @ 584:923d920a8a85
Build setupfont.h and setupimage.h from source data files. Use setupfont in PPL.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 12 Apr 2013 05:12:08 +0300 |
parents | 61af51348ea4 |
children | ad738873083e |
rev | line source |
---|---|
216
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
1 /* |
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
2 * Cyrbe Pasci Player - A simple SDL-based UI for XM module playing |
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
3 * Programmed and designed by Matti 'ccr' Hamalainen |
559 | 4 * (C) Copyright 2012 Tecnic Software productions (TNSP) |
216
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
5 * |
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
6 * Please read file 'COPYING' for information on license and distribution. |
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
7 */ |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 #include "jss.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 #include "jssmod.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 #include "jssmix.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 #include "jssplr.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
13 #include "dmlib.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
14 #include "dmargs.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
15 #include "dmimage.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
16 #include "dmtext.h" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 |
584
923d920a8a85
Build setupfont.h and setupimage.h from source data files. Use setupfont in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
559
diff
changeset
|
18 #include "setupfont.h" |
164
a49d431ff40e
Add a hardcoded font to PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
159
diff
changeset
|
19 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
20 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 struct |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
23 BOOL exitFlag; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
24 SDL_Surface *screen; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 SDL_Event event; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
26 int optScrWidth, optScrHeight, optVFlags, optScrDepth; |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
27 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
28 int actChannel; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
29 BOOL pauseFlag; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
30 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
31 JSSModule *mod; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
32 JSSMixer *dev; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
33 JSSPlayer *plr; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
34 SDL_AudioSpec afmt; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 } engine; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 struct |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 { |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
39 Uint32 boxBg, inboxBg, box1, box2, viewDiv, activeRow, activeChannel; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 } col; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 DMBitmapFont *font = NULL; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
44 |
273 | 45 char *optFilename = NULL; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
46 int optOutFormat = JSS_AUDIO_S16, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
47 optOutChannels = 2, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
48 optOutFreq = 48000, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
49 optMuteOChannels = -1, |
179
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
50 optStartOrder = 0; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
51 BOOL optUsePlayTime = FALSE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
52 size_t optPlayTime; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
55 DMOptArg optList[] = |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
56 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
57 { 0, '?', "help", "Show this help", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
58 { 1, 'v', "verbose", "Be more verbose", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
59 { 2, 0, "fs", "Fullscreen", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
60 { 3, 'w', "window", "Initial window size/resolution -w 640x480", OPT_ARGREQ }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
61 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
62 { 4, '1', "16bit", "16-bit output", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
63 { 5, '8', "8bit", "8-bit output", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
64 { 6, 'm', "mono", "Mono output", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 { 7, 's', "stereo", "Stereo output", OPT_NONE }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
66 { 8, 'f', "freq", "Output frequency", OPT_ARGREQ }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
67 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 { 9, 'M', "mute", "Mute other channels than #", OPT_ARGREQ }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 { 10, 'o', "order", "Start from order #", OPT_ARGREQ }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
70 { 11, 't', "time", "Play for # seconds", OPT_ARGREQ }, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
71 }; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
72 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
73 const int optListN = sizeof(optList) / sizeof(optList[0]); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
74 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
75 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
76 void argShowHelp() |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
77 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
78 dmPrintBanner(stdout, dmProgName, "[options] <module>"); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
79 dmArgsPrintHelp(stdout, optList, optListN); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
80 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
81 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
82 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
83 BOOL argHandleOpt(const int optN, char *optArg, char *currArg) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
84 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
85 switch (optN) { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
86 case 0: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
87 argShowHelp(); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 exit(0); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
91 case 1: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 dmVerbosity++; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 case 2: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 engine.optVFlags |= SDL_FULLSCREEN; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 case 3: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
101 int w, h; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
102 if (sscanf(optArg, "%dx%d", &w, &h) == 2) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
103 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
104 if (w < 320 || h < 200 || w > 3200 || h > 3200) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
105 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
106 dmError("Invalid width or height: %d x %d\n", w, h); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
107 return FALSE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
108 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
109 engine.optScrWidth = w; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
110 engine.optScrHeight = h; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
111 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
112 else |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
113 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
114 dmError("Invalid size argument '%s'.\n", optArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
115 return FALSE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
116 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
117 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
118 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
119 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
120 case 4: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
121 optOutFormat = JSS_AUDIO_S16; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
122 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
123 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
124 case 5: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
125 optOutFormat = JSS_AUDIO_U8; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
126 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 case 6: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 optOutChannels = JSS_AUDIO_MONO; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
132 case 7: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
133 optOutChannels = JSS_AUDIO_STEREO; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
134 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
135 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
136 case 8: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
137 optOutFreq = atoi(optArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
138 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
139 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
140 case 9: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 optMuteOChannels = atoi(optArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
142 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
143 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
144 case 10: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
145 optStartOrder = atoi(optArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
146 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
147 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
148 case 11: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
149 optPlayTime = atoi(optArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
150 optUsePlayTime = TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
151 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
152 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
153 default: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
154 dmError("Unknown option '%s'.\n", currArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 return FALSE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
157 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
158 return TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
160 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
161 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
162 BOOL argHandleFile(char *currArg) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
164 if (!optFilename) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
165 optFilename = currArg; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 else |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
168 dmError("Too many filename arguments '%s'\n", currArg); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
169 return FALSE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
170 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
171 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
172 return TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
173 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
174 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
175 |
130
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
176 void dmDrawBMTextConstQ(SDL_Surface *screen, DMBitmapFont *font, int mode, int xc, int yc, const char *fmt) |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
177 { |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
178 const char *ptr = fmt; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
179 DMUnscaledBlitFunc blit = NULL; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
180 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
181 while (*ptr) |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
182 { |
137
f721f9f7838a
Remove toupper() from custom text drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
130
diff
changeset
|
183 int ch = *ptr++; |
130
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
184 SDL_Surface *glyph; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
185 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
186 if (ch == '_') |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
187 { |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
188 xc += 4; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
189 continue; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
190 } |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
191 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
192 if (ch >= 0 && ch < font->nglyphs && (glyph = font->glyphs[ch]) != NULL) |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
193 { |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
194 if (blit == NULL) |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
195 blit = dmGetUnscaledBlitFunc(glyph->format, screen->format, mode); |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
196 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
197 blit(glyph, xc, yc, screen); |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
198 xc += font->width; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
199 } |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
200 else |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
201 xc += font->width; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
202 } |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
203 } |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
204 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
205 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
206 void dmDrawBMTextVAQ(SDL_Surface *screen, DMBitmapFont *font, int mode, int xc, int yc, const char *fmt, va_list ap) |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
207 { |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
208 char tmp[512]; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
209 vsnprintf(tmp, sizeof(tmp), fmt, ap); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
210 dmDrawBMTextConstQ(screen, font, mode, xc, yc, tmp); |
130
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
211 } |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
212 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
213 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
214 void dmDrawBMTextQ(SDL_Surface *screen, DMBitmapFont *font, int mode, int xc, int yc, const char *fmt, ...) |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
215 { |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
216 va_list ap; |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
217 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
218 va_start(ap, fmt); |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
219 dmDrawBMTextVAQ(screen, font, mode, xc, yc, fmt, ap); |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
220 va_end(ap); |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
221 } |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
222 |
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
223 |
78
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
224 Uint32 dmCol(float r, float g, float b) |
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
225 { |
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
226 return dmMapRGB(engine.screen, 255.0f * r, 255.0f * g, 255.0f * b); |
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
227 } |
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
228 |
130
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
229 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
230 BOOL dmInitializeVideo() |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
231 { |
179
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
232 SDL_FreeSurface(engine.screen); |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
233 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
234 engine.screen = SDL_SetVideoMode( |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
235 engine.optScrWidth, engine.optScrHeight, engine.optScrDepth, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
236 engine.optVFlags | SDL_RESIZABLE | SDL_SWSURFACE | SDL_HWPALETTE); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
237 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
238 if (engine.screen == NULL) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
239 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
240 dmError("Can't SDL_SetVideoMode(): %s\n", SDL_GetError()); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
241 return FALSE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
242 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
243 |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
244 col.inboxBg = dmCol(0.6, 0.5, 0.2); |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
245 col.boxBg = dmCol(0.7, 0.6, 0.3); |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
246 col.box1 = dmCol(1.0, 0.9, 0.6); |
78
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
247 col.box2 = dmCol(0.3, 0.3, 0.15); |
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
248 col.viewDiv = dmCol(0,0,0); |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
249 col.activeRow = dmCol(0.5,0.4,0.1); |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
250 col.activeChannel = dmCol(0.6, 0.8, 0.2); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
251 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
252 return TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
253 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
254 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
255 |
165 | 256 void dmDisplayChn(SDL_Surface *screen, int x0, int y0, int x1, int y1, int nchannel, JSSChannel *chn) |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
257 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
258 int yh = y1 - y0 - 2; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
259 if (yh < 10 || chn == NULL) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
260 return; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
261 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
262 int xc, ym = y0 + (y1 - y0) / 2, vol = FP_GETH(chn->chVolume); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
263 int pitch = screen->pitch / sizeof(Uint32); |
287
1e89cd081956
Use fixed point everywhere in the mixing internals, to avoid going over
Matti Hamalainen <ccr@tnsp.org>
parents:
276
diff
changeset
|
264 int len = FP_GETH(chn->chSize); |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
265 DMFixedPoint offs = chn->chPos; |
165 | 266 Uint32 coln = dmCol(0.0, 0.8, 0.0), colx = dmCol(1.0, 0, 0); |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
267 Uint32 *pix = screen->pixels; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
268 Sint16 *data = chn->chData; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
269 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
270 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
271 dmFillBox3D(screen, x0, y0, x1, y1, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
272 (chn->chMute ? dmCol(0.3,0.1,0.1) : dmCol(0,0,0)), |
165 | 273 nchannel == engine.actChannel ? colx : col.box2, |
274 nchannel == engine.actChannel ? colx : col.box1); | |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
275 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
276 if (chn->chData == NULL || !chn->chPlaying) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
277 return; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
278 |
274
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
279 if (chn->chDirection) |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
280 { |
274
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
281 for (xc = x0 + 1; xc < x1 - 1; xc++) |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
282 { |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
283 if (FP_GETH(offs) >= len) |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
284 break; |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
285 Sint16 val = ym + (data[FP_GETH(offs)] * yh * vol) / (65535 * 255); |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
286 pix[xc + val * pitch] = coln; |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
287 FP_ADD(offs, chn->chDeltaO); |
274
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
288 } |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
289 } |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
290 else |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
291 { |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
292 for (xc = x0 + 1; xc < x1 - 1; xc++) |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
293 { |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
294 if (FP_GETH(offs) < 0) |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
295 break; |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
296 Sint16 val = ym + (data[FP_GETH(offs)] * yh * vol) / (65535 * 255); |
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
297 pix[xc + val * pitch] = coln; |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
298 FP_SUB(offs, chn->chDeltaO); |
274
31e62b1f1b6e
Add boundary checks for the scope drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
273
diff
changeset
|
299 } |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
300 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
301 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
302 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
303 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
304 void dmDisplayChannels(SDL_Surface *screen, int x0, int y0, int x1, int y1, JSSMixer *dev) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
305 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
306 int nchannel, qx, qy, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
307 qwidth = x1 - x0, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
308 qheight = y1 - y0, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
309 nwidth = jsetNChannels, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
310 nheight = 1; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
311 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
312 if (qheight < 40) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
313 return; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
314 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
315 while (qwidth / nwidth <= 60 && qheight / nheight >= 40) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
316 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
317 nheight++; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
318 nwidth /= nheight; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
319 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
320 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
321 // fprintf(stderr, "%d x %d\n", nwidth, nheight); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
322 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
323 if (qheight / nheight <= 40) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
324 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
325 nwidth = qwidth / 60; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
326 nheight = qheight / 40; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
327 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
328 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
329 qwidth /= nwidth; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
330 qheight /= nheight; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
331 |
165 | 332 for (nchannel = qy = 0; qy < nheight && nchannel < jsetNChannels; qy++) |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
333 { |
165 | 334 for (qx = 0; qx < nwidth && nchannel < jsetNChannels; qx++) |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
335 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
336 int xc = x0 + qx * qwidth, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
337 yc = y0 + qy * qheight; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
338 |
165 | 339 dmDisplayChn(screen, xc + 1, yc + 1, |
340 xc + qwidth - 1, yc + qheight - 1, | |
341 nchannel, &dev->channels[nchannel]); | |
342 | |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
343 nchannel++; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
344 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
345 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
346 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
347 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
348 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
349 static const char patNoteTable[12][3] = |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
350 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
351 "C-", "C#", "D-", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
352 "D#", "E-", "F-", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
353 "F#", "G-", "G#", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
354 "A-", "A#", "B-" |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
355 }; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
356 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
357 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
358 #define jmpNMODEffectTable (36) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
359 static const char jmpMODEffectTable[jmpNMODEffectTable] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
360 |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
361 static const char jmpHexTab[16] = "0123456789ABCDEF"; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
362 |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
363 static inline char dmHexVal(int v) |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
364 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
365 return jmpHexTab[v & 15]; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
366 } |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
367 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
368 void dmPrintNote(SDL_Surface *screen, int xc, int yc, JSSNote *n) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
369 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
370 char text[32]; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
371 char *ptr = text; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
372 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
373 switch (n->note) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
374 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
375 case jsetNotSet: |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
376 strcpy(ptr, "..._"); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
377 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
378 case jsetNoteOff: |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
379 strcpy(ptr, "===_"); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
380 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
381 default: |
78
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
382 sprintf(ptr, "%s%i_", |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
383 patNoteTable[n->note % 12], |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
384 n->note / 12); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
385 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
386 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
387 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
388 ptr += 4; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
389 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
390 if (n->instrument != jsetNotSet) |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
391 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
392 int v = n->instrument + 1; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
393 *ptr++ = dmHexVal(v >> 4); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
394 *ptr++ = dmHexVal(v); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
395 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
396 else |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
397 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
398 *ptr++ = '.'; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
399 *ptr++ = '.'; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
400 } |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
401 *ptr++ = '_'; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
402 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
403 if (n->volume == jsetNotSet) |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
404 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
405 *ptr++ = '.'; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
406 *ptr++ = '.'; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
407 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
408 else |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
409 if (n->volume >= 0x00 && n->volume <= 0x40) |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
410 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
411 *ptr++ = dmHexVal(n->volume >> 4); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
412 *ptr++ = dmHexVal(n->volume); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
413 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
414 else |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
415 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
416 char c; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
417 switch (n->volume & 0xf0) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
418 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
419 case 0x50: c = '-'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
420 case 0x60: c = '+'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
421 case 0x70: c = '/'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
422 case 0x80: c = '\\'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
423 case 0x90: c = 'S'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
424 case 0xa0: c = 'V'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
425 case 0xb0: c = 'P'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
426 case 0xc0: c = '<'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
427 case 0xd0: c = '>'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
428 case 0xe0: c = 'M'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
429 default: c = '?'; break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
430 } |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
431 *ptr++ = c; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
432 *ptr++ = dmHexVal(n->volume); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
433 } |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
434 *ptr++ = '_'; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
435 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
436 if (n->effect >= 0 && n->effect < jmpNMODEffectTable) |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
437 *ptr++ = jmpMODEffectTable[n->effect]; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
438 else |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
439 *ptr++ = (n->effect == jsetNotSet ? '.' : '?'); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
440 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
441 if (n->param != jsetNotSet) |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
442 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
443 *ptr++ = dmHexVal(n->param >> 4); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
444 *ptr++ = dmHexVal(n->param); |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
445 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
446 else |
201
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
447 { |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
448 *ptr++ = '.'; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
449 *ptr++ = '.'; |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
450 } |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
451 |
844f38cbff65
Optimize pattern drawing a bit.
Matti Hamalainen <ccr@tnsp.org>
parents:
199
diff
changeset
|
452 *ptr = 0; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
453 |
130
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
454 dmDrawBMTextConstQ(screen, font, DMD_TRANSPARENT, xc, yc, text); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
455 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
456 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
457 |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
458 void dmDisplayPattern(SDL_Surface *screen, int x0, int y0, int x1, int y1, JSSPattern *pat, int row) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
459 { |
78
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
460 int cwidth = (font->width * 10 + 3 * 4 + 5), |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
461 lwidth = 6 + font->width * 3, |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
462 qy0 = y0 + font->height + 2, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
463 qy1 = y1 - font->height - 2, |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
464 qwidth = ((x1 - x0 - lwidth) / cwidth), |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
465 qheight = ((qy1 - qy0 - 4) / (font->height + 1)), |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
466 nrow, nchannel, yc, choffs, |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
467 midrow = qheight / 2; |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
468 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
469 if (engine.actChannel < qwidth / 2) |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
470 choffs = 0; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
471 else |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
472 if (engine.actChannel >= pat->nchannels - qwidth/2) |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
473 choffs = pat->nchannels - qwidth; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
474 else |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
475 choffs = engine.actChannel - qwidth/2; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
476 |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
477 dmDrawBox3D(screen, x0 + lwidth, qy0, x1, qy1, col.box2, col.box1); |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
478 |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
479 for (nchannel = 0; nchannel < qwidth; nchannel++) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
480 { |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
481 int bx0 = x0 + lwidth + 1 + nchannel * cwidth, |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
482 bx1 = bx0 + cwidth; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
483 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
484 if (engine.actChannel == nchannel + choffs) |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
485 { |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
486 dmFillRect(screen, bx0+1, qy0 + 1, bx1-1, qy1 - 1, col.activeChannel); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
487 } |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
488 else |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
489 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
490 dmFillRect(screen, bx0+1, qy0 + 1, bx1-1, qy1 - 1, col.inboxBg); |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
491 } |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
492 } |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
493 |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
494 yc = qy0 + 2 + (font->height + 1) * midrow; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
495 dmFillRect(screen, x0 + lwidth + 1, yc - 1, x1 - 1, yc + font->height, col.activeRow); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
496 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
497 for (nchannel = 0; nchannel < qwidth; nchannel++) |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
498 { |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
499 int bx0 = x0 + lwidth + 1 + nchannel * cwidth, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
500 bx1 = bx0 + cwidth; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
501 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
502 dmDrawVLine(screen, qy0 + 1, qy1 - 1, bx1, col.viewDiv); |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
503 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
504 if (jvmGetMute(engine.dev, nchannel + choffs)) |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
505 { |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
506 dmDrawBMTextConstQ(screen, font, DMD_TRANSPARENT, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
507 bx0 + (cwidth - font->width * 5) / 2, qy1 + 3, "MUTED"); |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
508 } |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
509 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
510 dmDrawBMTextQ(screen, font, DMD_TRANSPARENT, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
511 bx0 + (cwidth - font->width * 3) / 2, y0 + 1, "%3d", |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
512 nchannel + choffs); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
513 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
514 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
515 for (nrow = 0; nrow < qheight; nrow++) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
516 { |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
517 int crow = nrow - midrow + row; |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
518 yc = qy0 + 2 + (font->height + 1) * nrow; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
519 |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
520 if (crow >= 0 && crow < pat->nrows) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
521 { |
130
1d7dc7c8745c
Move custom bitmap font text rendering functions into PPL code itself.
Matti Hamalainen <ccr@tnsp.org>
parents:
99
diff
changeset
|
522 dmDrawBMTextQ(screen, font, DMD_TRANSPARENT, x0, yc, "%03d", crow); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
523 |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
524 for (nchannel = 0; nchannel < qwidth; nchannel++) |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
525 { |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
526 if (choffs + nchannel >= pat->nchannels) |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
527 break; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
528 |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
529 dmPrintNote(screen, x0 + lwidth + 4 + nchannel * cwidth, yc, |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
530 pat->data + (pat->nchannels * crow) + choffs + nchannel); |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
531 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
532 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
533 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
534 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
535 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
536 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
537 void audioCallback(void *userdata, Uint8 *stream, int len) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
538 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
539 JSSMixer *d = (JSSMixer *) userdata; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
540 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
541 if (d != NULL) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
542 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
543 jvmRenderAudio(d, stream, len / jvmGetSampleSize(d)); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
544 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
545 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
546 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
547 |
203
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
548 void dmMuteChannels(BOOL mute) |
198
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
549 { |
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
550 int i; |
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
551 for (i = 0; i < engine.mod->nchannels; i++) |
203
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
552 jvmMute(engine.dev, i, mute); |
198
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
553 } |
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
554 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
555 int main(int argc, char *argv[]) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
556 { |
290 | 557 BOOL initSDL = FALSE, audioInit = FALSE; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
558 DMResource *file = NULL; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
559 int result = -1; |
203
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
560 BOOL muteState = FALSE; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
561 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
562 memset(&engine, 0, sizeof(engine)); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
563 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
564 engine.optScrWidth = 640; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
565 engine.optScrHeight = 480; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
566 engine.optScrDepth = 32; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
567 |
216
247b03797fc9
Rename player, add a copyright note.
Matti Hamalainen <ccr@tnsp.org>
parents:
203
diff
changeset
|
568 dmInitProg("CBP", "Cyrbe Basci Player", "0.1", NULL, NULL); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
569 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
570 // Parse arguments |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
571 if (!dmArgsProcess(argc, argv, optList, optListN, |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
572 argHandleOpt, argHandleFile, TRUE)) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
573 exit(1); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
574 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
575 // Open the files |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
576 if (optFilename == NULL) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
577 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
578 dmError("No filename specified.\n"); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
579 return 1; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
580 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
581 |
78
3b3908d28a4b
PPL now looks a bit saner, but does not do anything interesting yet.
Matti Hamalainen <ccr@tnsp.org>
parents:
71
diff
changeset
|
582 if ((file = dmf_create_stdio(optFilename, "rb")) == NULL) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
583 { |
493
1bdd2af756ec
Use dmlib functions instead of errno/strerror directly.
Matti Hamalainen <ccr@tnsp.org>
parents:
359
diff
changeset
|
584 int err = dmGetErrno(); |
80 | 585 dmError("Error opening file '%s', %d: (%s)\n", |
493
1bdd2af756ec
Use dmlib functions instead of errno/strerror directly.
Matti Hamalainen <ccr@tnsp.org>
parents:
359
diff
changeset
|
586 optFilename, err, dmErrorStr(err)); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
587 return 1; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
588 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
589 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
590 // Initialize miniJSS |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
591 jssInit(); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
592 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
593 // Read module file |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
594 dmMsg(1, "Reading file: %s\n", optFilename); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
595 #ifdef JSS_SUP_XM |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
596 dmMsg(2, "* Trying XM...\n"); |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
597 result = jssLoadXM(file, &engine.mod); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
598 #endif |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
599 #ifdef JSS_SUP_JSSMOD |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
600 if (result != 0) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
601 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
602 size_t bufgot, bufsize = dmfsize(file); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
603 Uint8 *buf = dmMalloc(bufsize); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
604 dmfseek(file, 0L, SEEK_SET); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
605 dmMsg(2, "* Trying JSSMOD (%d bytes, %p)...\n", bufsize, buf); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
606 if ((bufgot = dmfread(buf, 1, bufsize, file)) != bufsize) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
607 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
608 dmf_close(file); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
609 dmError("Error reading file (not enough data %d), #%d: %s\n", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
610 bufgot, dmferror(file), dmErrorStr(dmferror(file))); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
611 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
612 } |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
613 result = jssLoadJSSMOD(buf, bufsize, &engine.mod); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
614 dmFree(buf); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
615 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
616 #endif |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
617 dmf_close(file); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
618 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
619 if (result != DMERR_OK) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
620 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
621 dmError("Error loading module file, %d: %s\n", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
622 result, dmErrorStr(result)); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
623 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
624 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
625 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
626 // Try to convert it |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
627 if ((result = jssConvertModuleForPlaying(engine.mod)) != DMERR_OK) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
628 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
629 dmError("Could not convert module for playing, %d: %s\n", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
630 result, dmErrorStr(result)); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
631 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
632 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
633 |
164
a49d431ff40e
Add a hardcoded font to PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
159
diff
changeset
|
634 // Get font |
a49d431ff40e
Add a hardcoded font to PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
159
diff
changeset
|
635 // file = dmf_create_stdio("fnsmall.fnt", "rb"); |
584
923d920a8a85
Build setupfont.h and setupimage.h from source data files. Use setupfont in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
559
diff
changeset
|
636 file = dmf_create_memio(NULL, "pplfont.fnt", engineSetupFont, sizeof(engineSetupFont)); |
164
a49d431ff40e
Add a hardcoded font to PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
159
diff
changeset
|
637 if (file == NULL) |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
638 { |
273 | 639 dmError("Error opening font file 'pplfont.fnt'.\n"); |
99
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
640 goto error_exit; |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
641 } |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
642 result = dmLoadBitmapFont(file, &font); |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
643 dmf_close(file); |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
644 if (result != DMERR_OK) |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
645 { |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
646 dmError("Could not load font from file, %d: %s\n", |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
647 result, dmErrorStr(result)); |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
648 goto error_exit; |
7a59611f9d4f
Various minor improvements in PPL.
Matti Hamalainen <ccr@tnsp.org>
parents:
80
diff
changeset
|
649 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
650 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
651 // Initialize SDL components |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
652 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER) != 0) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
653 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
654 dmError("Could not initialize SDL: %s\n", SDL_GetError()); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
655 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
656 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
657 initSDL = TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
658 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
659 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
660 // Initialize mixing device |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
661 dmMsg(2, "Initializing miniJSS mixer with: %d, %d, %d\n", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
662 optOutFormat, optOutChannels, optOutFreq); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
663 |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
664 engine.dev = jvmInit(optOutFormat, optOutChannels, optOutFreq, JMIX_AUTO); |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
665 if (engine.dev == NULL) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
666 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
667 dmError("jvmInit() returned NULL\n"); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
668 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
669 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
670 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
671 switch (optOutFormat) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
672 { |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
673 case JSS_AUDIO_S16: engine.afmt.format = AUDIO_S16SYS; break; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
674 case JSS_AUDIO_U16: engine.afmt.format = AUDIO_U16SYS; break; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
675 case JSS_AUDIO_S8: engine.afmt.format = AUDIO_S8; break; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
676 case JSS_AUDIO_U8: engine.afmt.format = AUDIO_U8; break; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
677 default: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
678 dmError("Unsupported audio format %d (could not set matching SDL format)\n", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
679 optOutFormat); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
680 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
681 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
682 |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
683 engine.afmt.freq = optOutFreq; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
684 engine.afmt.channels = optOutChannels; |
297
a991e4f0acfe
Make audio buffer smaller, for now.
Matti Hamalainen <ccr@tnsp.org>
parents:
296
diff
changeset
|
685 engine.afmt.samples = optOutFreq / 16; |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
686 engine.afmt.callback = audioCallback; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
687 engine.afmt.userdata = (void *) engine.dev; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
688 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
689 // Open the audio device |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
690 if (SDL_OpenAudio(&engine.afmt, NULL) < 0) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
691 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
692 dmError("Couldn't open SDL audio: %s\n", |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
693 SDL_GetError()); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
694 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
695 } |
290 | 696 audioInit = TRUE; |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
697 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
698 // Initialize player |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
699 if ((engine.plr = jmpInit(engine.dev)) == NULL) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
700 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
701 dmError("jmpInit() returned NULL\n"); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
702 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
703 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
704 |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
705 jvmSetCallback(engine.dev, jmpExec, engine.plr); |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
706 jmpSetModule(engine.plr, engine.mod); |
179
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
707 jmpPlayOrder(engine.plr, optStartOrder); |
190
87b46e61f2c4
Make it possible to mute channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
185
diff
changeset
|
708 jvmSetGlobalVol(engine.dev, 64); |
87b46e61f2c4
Make it possible to mute channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
185
diff
changeset
|
709 |
87b46e61f2c4
Make it possible to mute channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
185
diff
changeset
|
710 if (optMuteOChannels >= 0 && optMuteOChannels < engine.mod->nchannels) |
87b46e61f2c4
Make it possible to mute channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
185
diff
changeset
|
711 { |
203
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
712 dmMuteChannels(TRUE); |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
713 jvmMute(engine.dev, optMuteOChannels, FALSE); |
190
87b46e61f2c4
Make it possible to mute channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
185
diff
changeset
|
714 engine.actChannel = optMuteOChannels; |
203
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
715 muteState = TRUE; |
190
87b46e61f2c4
Make it possible to mute channels.
Matti Hamalainen <ccr@tnsp.org>
parents:
185
diff
changeset
|
716 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
717 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
718 // Initialize video |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
719 if (!dmInitializeVideo()) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
720 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
721 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
722 SDL_WM_SetCaption(dmProgDesc, dmProgName); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
723 |
275 | 724 SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); |
725 | |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
726 // okay, main loop here ... "play" module and print out info |
275 | 727 SDL_LockAudio(); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
728 SDL_PauseAudio(0); |
275 | 729 SDL_UnlockAudio(); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
730 |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
731 int currTick, prevTick = 0, prevRow = -1; |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
732 |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
733 while (!engine.exitFlag) |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
734 { |
176 | 735 currTick = SDL_GetTicks(); |
296
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
736 BOOL force = (currTick - prevTick > 500), updated = FALSE; |
176 | 737 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
738 while (SDL_PollEvent(&engine.event)) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
739 switch (engine.event.type) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
740 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
741 case SDL_KEYDOWN: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
742 switch (engine.event.key.keysym.sym) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
743 { |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
744 case SDLK_ESCAPE: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
745 engine.exitFlag = TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
746 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
747 |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
748 case SDLK_SPACE: |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
749 engine.pauseFlag = !engine.pauseFlag; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
750 SDL_PauseAudio(engine.pauseFlag); |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
751 break; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
752 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
753 case SDLK_LEFT: |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
754 if (engine.actChannel > 0) |
176 | 755 { |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
756 engine.actChannel--; |
176 | 757 force = TRUE; |
758 } | |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
759 break; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
760 |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
761 case SDLK_RIGHT: |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
762 if (engine.actChannel < engine.mod->nchannels) |
176 | 763 { |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
764 engine.actChannel++; |
176 | 765 force = TRUE; |
766 } | |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
767 break; |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
768 |
198
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
769 case SDLK_m: |
203
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
770 if (engine.event.key.keysym.mod & KMOD_SHIFT) |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
771 { |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
772 muteState = !muteState; |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
773 dmMuteChannels(muteState); |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
774 } |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
775 else |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
776 if (engine.event.key.keysym.mod & KMOD_CTRL) |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
777 { |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
778 dmMuteChannels(FALSE); |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
779 } |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
780 else |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
781 { |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
782 jvmMute(engine.dev, engine.actChannel, !jvmGetMute(engine.dev, engine.actChannel)); |
bed7457cd8da
Improve channel mute control. Now shift+M will toggle mute of all channels,
Matti Hamalainen <ccr@tnsp.org>
parents:
201
diff
changeset
|
783 } |
198
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
784 force = TRUE; |
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
785 break; |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
786 |
167
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
787 case SDLK_PAGEUP: |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
788 JSS_LOCK(engine.dev); |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
789 JSS_LOCK(engine.plr); |
182
9024d249e47a
Add a new function jmpChangeOrder() to change orderlist position "on fly",
Matti Hamalainen <ccr@tnsp.org>
parents:
179
diff
changeset
|
790 jmpChangeOrder(engine.plr, dmClamp(engine.plr->order - 1, 0, engine.mod->norders)); |
167
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
791 JSS_UNLOCK(engine.plr); |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
792 JSS_UNLOCK(engine.dev); |
176 | 793 force = TRUE; |
167
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
794 break; |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
795 |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
796 case SDLK_PAGEDOWN: |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
797 JSS_LOCK(engine.dev); |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
798 JSS_LOCK(engine.plr); |
182
9024d249e47a
Add a new function jmpChangeOrder() to change orderlist position "on fly",
Matti Hamalainen <ccr@tnsp.org>
parents:
179
diff
changeset
|
799 jmpChangeOrder(engine.plr, dmClamp(engine.plr->order + 1, 0, engine.mod->norders)); |
167
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
800 JSS_UNLOCK(engine.plr); |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
801 JSS_UNLOCK(engine.dev); |
176 | 802 force = TRUE; |
167
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
803 break; |
e281663f04ba
Implement moving around in order list via pageup/down.
Matti Hamalainen <ccr@tnsp.org>
parents:
165
diff
changeset
|
804 |
179
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
805 case SDLK_f: |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
806 engine.optVFlags ^= SDL_FULLSCREEN; |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
807 if (!dmInitializeVideo()) |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
808 goto error_exit; |
198
4568c479541c
Make 'm' key mute all but selected active channel.
Matti Hamalainen <ccr@tnsp.org>
parents:
190
diff
changeset
|
809 force = TRUE; |
179
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
810 break; |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
811 |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
812 default: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
813 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
814 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
815 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
816 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
817 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
818 case SDL_VIDEORESIZE: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
819 engine.optScrWidth = engine.event.resize.w; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
820 engine.optScrHeight = engine.event.resize.h; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
821 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
822 if (!dmInitializeVideo()) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
823 goto error_exit; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
824 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
825 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
826 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
827 case SDL_VIDEOEXPOSE: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
828 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
829 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
830 case SDL_QUIT: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
831 engine.exitFlag = TRUE; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
832 break; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
833 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
834 |
137
f721f9f7838a
Remove toupper() from custom text drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
130
diff
changeset
|
835 |
f721f9f7838a
Remove toupper() from custom text drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
130
diff
changeset
|
836 #if 1 |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
837 JSS_LOCK(engine.plr); |
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
838 JSSPattern *currPattern = engine.plr->pattern; |
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
839 int currRow = engine.plr->row; |
293 | 840 if (!engine.plr->isPlaying) |
841 engine.exitFlag = TRUE; | |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
842 JSS_UNLOCK(engine.plr); |
176 | 843 |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
844 if (currRow != prevRow || force) |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
845 { |
296
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
846 prevRow = currRow; |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
847 force = TRUE; |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
848 } |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
849 |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
850 // Draw frame |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
851 if (SDL_MUSTLOCK(engine.screen) != 0 && SDL_LockSurface(engine.screen) != 0) |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
852 { |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
853 dmError("Can't lock surface.\n"); |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
854 goto error_exit; |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
855 } |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
856 |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
857 if (force) |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
858 { |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
859 dmClearSurface(engine.screen, col.boxBg); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
860 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
861 dmDrawBMTextQ(engine.screen, font, DMD_TRANSPARENT, 5, 5, "%s v%s by ccr/TNSP - (c) Copyright 2012 TNSP", dmProgDesc, dmProgVersion); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
862 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
863 dmDrawBMTextQ(engine.screen, font, DMD_TRANSPARENT, 5, 5 + 12 + 11, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
864 "Song: '%s'", |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
865 engine.mod->moduleName); |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
866 |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
867 dmDisplayPattern(engine.screen, 5, 40, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
868 engine.screen->w - 6, engine.screen->h * 0.8, |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
869 currPattern, currRow); |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
870 |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
871 JSS_LOCK(engine.plr); |
176 | 872 dmDrawBMTextQ(engine.screen, font, DMD_TRANSPARENT, 5, 5 + 12, |
179
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
873 "Tempo: %3d | Speed: %3d | Row: %3d/%-3d | Order: %3d/%-3d | Pattern: %3d/%-3d", |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
874 engine.plr->tempo, engine.plr->speed, |
b29c9a2fbeb5
Add full screen switching to PPL via 'f' key, and various other
Matti Hamalainen <ccr@tnsp.org>
parents:
176
diff
changeset
|
875 engine.plr->row, engine.plr->pattern->nrows, |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
876 engine.plr->order, engine.mod->norders, |
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
877 engine.plr->npattern, engine.mod->npatterns); |
276
40efff364904
Fix some possible data races.
Matti Hamalainen <ccr@tnsp.org>
parents:
275
diff
changeset
|
878 JSS_UNLOCK(engine.plr); |
296
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
879 updated = TRUE; |
176 | 880 } |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
881 |
176 | 882 if (force || currTick - prevTick >= (engine.pauseFlag ? 100 : 20)) |
883 { | |
884 JSS_LOCK(engine.dev); | |
885 dmDisplayChannels(engine.screen, 5, engine.screen->h * 0.8 + 5, | |
886 engine.screen->w - 5, engine.screen->h - 5, engine.dev); | |
887 JSS_UNLOCK(engine.dev); | |
296
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
888 updated = TRUE; |
176 | 889 } |
890 | |
891 if (force) | |
892 prevTick = currTick; | |
151
8708b0354eb8
Various improvements and small optimizations in display drawing/updating.
Matti Hamalainen <ccr@tnsp.org>
parents:
148
diff
changeset
|
893 |
137
f721f9f7838a
Remove toupper() from custom text drawing.
Matti Hamalainen <ccr@tnsp.org>
parents:
130
diff
changeset
|
894 #endif |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
895 // Flip screen |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
896 if (SDL_MUSTLOCK(engine.screen) != 0) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
897 SDL_UnlockSurface(engine.screen); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
898 |
296
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
899 if (updated) |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
900 SDL_Flip(engine.screen); |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
901 |
6d62918739c6
Improve screen update logic.
Matti Hamalainen <ccr@tnsp.org>
parents:
293
diff
changeset
|
902 SDL_Delay(engine.pauseFlag ? 100 : 30); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
903 } |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
904 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
905 error_exit: |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
906 if (engine.screen) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
907 SDL_FreeSurface(engine.screen); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
908 |
290 | 909 dmMsg(0, "Audio shutdown.\n"); |
910 if (audioInit) | |
911 { | |
912 SDL_LockAudio(); | |
913 SDL_PauseAudio(1); | |
914 SDL_UnlockAudio(); | |
915 SDL_CloseAudio(); | |
916 } | |
917 | |
147
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
918 jmpClose(engine.plr); |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
919 jvmClose(engine.dev); |
ead759da30b4
Various improvements, implement channel muting.
Matti Hamalainen <ccr@tnsp.org>
parents:
137
diff
changeset
|
920 jssFreeModule(engine.mod); |
71
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
921 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
922 dmFreeBitmapFont(font); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
923 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
924 if (initSDL) |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
925 SDL_Quit(); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
926 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
927 jssClose(); |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
928 |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
929 return 0; |
b908fda1036e
Add a simplistic skeleton of a module player with SDL-based view.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
930 } |