Mercurial > hg > dmlib
comparison tests/plrtest.c @ 2530:aacf3bd1cceb
Cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 16 May 2020 06:38:52 +0300 |
parents | 186cf6a7d634 |
children | 9807ae37ad69 |
comparison
equal
deleted
inserted
replaced
2529:fddee4b6a427 | 2530:aacf3bd1cceb |
---|---|
104 int main(int argc, char *argv[]) | 104 int main(int argc, char *argv[]) |
105 { | 105 { |
106 SDL_AudioSpec afmt; | 106 SDL_AudioSpec afmt; |
107 DMResource *file = NULL; | 107 DMResource *file = NULL; |
108 char *inFilename = NULL; | 108 char *inFilename = NULL; |
109 int result = -1; | 109 int res = -1; |
110 JSSModule *mod = NULL; | 110 JSSModule *mod = NULL; |
111 JSSMixer *dev = NULL; | 111 JSSMixer *dev = NULL; |
112 JSSPlayer *plr = NULL; | 112 JSSPlayer *plr = NULL; |
113 | 113 |
114 if (argc > 1) | 114 if (argc > 1) |
115 inFilename = argv[1]; | 115 inFilename = argv[1]; |
116 | 116 |
117 // Open the files | 117 // Open the files |
118 if (inFilename == NULL) | 118 if (inFilename == NULL) |
119 result = dmf_open_stdio_stream(stdin, &file); | 119 res = dmf_open_stdio_stream(stdin, &file); |
120 else | 120 else |
121 result = dmf_open_stdio(inFilename, "rb", &file); | 121 res = dmf_open_stdio(inFilename, "rb", &file); |
122 | 122 |
123 if (result != DMERR_OK) | 123 if (res != DMERR_OK) |
124 { | 124 { |
125 fprintf(stderr, "Error opening input file '%s', #%d: %s\n", | 125 dmErrorMsg("Error opening input file '%s': %s\n", |
126 inFilename, result, dmErrorStr(result)); | 126 inFilename, dmErrorStr(res)); |
127 return 1; | 127 goto exit; |
128 } | 128 } |
129 | 129 |
130 // Initialize miniJSS | 130 // Initialize miniJSS |
131 fprintf(stderr, "Initializing miniJSS\n"); | 131 printf("Initializing miniJSS\n"); |
132 jssInit(); | 132 jssInit(); |
133 | 133 |
134 | |
135 // Read module file | 134 // Read module file |
136 dmMsg(1, "Reading file: %s\n", inFilename); | 135 printf("Reading file: %s\n", inFilename); |
137 #ifdef JSS_SUP_XM | 136 #ifdef JSS_SUP_XM |
138 result = jssLoadXM(file, &mod, TRUE); | 137 if (mod == NULL) |
138 { | |
139 printf("* Trying XM...\n"); | |
140 dmfreset(file); | |
141 if ((res = jssLoadXM(file, &mod, TRUE)) == DMERR_OK) | |
142 { | |
143 dmfreset(file); | |
144 res = jssLoadXM(file, &mod, FALSE); | |
145 } | |
146 } | |
139 #endif | 147 #endif |
140 #ifdef JSS_SUP_JSSMOD | 148 #ifdef JSS_SUP_JSSMOD |
141 dmfreset(file); | 149 if (mod == NULL) |
142 if (result != DMERR_OK) | 150 { |
143 { | 151 printf("* Trying JSSMOD ...\n"); |
144 dmMsg(1, "* Trying JSSMOD ...\n"); | |
145 result = jssLoadJSSMOD(file, &mod, TRUE); | |
146 dmfreset(file); | 152 dmfreset(file); |
147 if (result == DMERR_OK) | 153 if ((res = jssLoadJSSMOD(file, &mod, TRUE)) == DMERR_OK) |
148 result = jssLoadJSSMOD(file, &mod, FALSE); | 154 { |
149 } | 155 dmfreset(file); |
150 else | 156 res = jssLoadJSSMOD(file, &mod, FALSE); |
151 { | 157 } |
152 dmMsg(2, "* Trying XM...\n"); | |
153 result = jssLoadXM(file, &mod, FALSE); | |
154 } | 158 } |
155 #endif | 159 #endif |
156 dmf_close(file); | 160 dmf_close(file); |
157 | 161 |
158 // Check for errors, we still might have some data tho | 162 // Check for errors, we still might have some data tho |
159 if (result != DMERR_OK) | 163 if (res != DMERR_OK) |
160 { | 164 { |
161 dmErrorMsg("Error loading module file, %d: %s\n", | 165 dmErrorMsg( |
162 result, dmErrorStr(result)); | 166 "Error loading module file: %s\n", |
167 dmErrorStr(res)); | |
163 } | 168 } |
164 | 169 |
165 // Check if we have anything | 170 // Check if we have anything |
166 if (mod == NULL) | 171 if (mod == NULL) |
167 return 3; | 172 { |
168 | 173 res = dmError(DMERR_INIT_FAIL, |
174 "Could not load module file.\n"); | |
175 goto exit; | |
176 } | |
169 | 177 |
170 // Try to convert it | 178 // Try to convert it |
171 if ((result = jssConvertModuleForPlaying(mod)) != DMERR_OK) | 179 if ((res = jssConvertModuleForPlaying(mod)) != DMERR_OK) |
172 { | 180 { |
173 fprintf(stderr, "Could not convert module for playing, %d: %s\n", | 181 dmErrorMsg("Could not convert module for playing: %s\n", |
174 result, dmErrorStr(result)); | 182 dmErrorStr(res)); |
175 return 3; | 183 goto exit; |
176 } | 184 } |
177 | 185 |
178 // Initialize SDL audio | 186 // Initialize SDL audio |
179 afmt.freq = 48000; | 187 afmt.freq = 48000; |
180 afmt.format = AUDIO_S16SYS; | 188 afmt.format = AUDIO_S16SYS; |
181 afmt.channels = 2; | 189 afmt.channels = 2; |
182 | 190 |
183 // Initialize mixing device | 191 // Initialize mixing device |
184 fprintf(stderr, "Initializing miniJSS mixer with: %d, %d, %d\n", | 192 printf("Initializing miniJSS mixer with: %d, %d, %d\n", |
185 JSS_AUDIO_S16, afmt.channels, afmt.freq); | 193 JSS_AUDIO_S16, afmt.channels, afmt.freq); |
186 | 194 |
187 dev = jvmInit(JSS_AUDIO_S16, afmt.channels, afmt.freq, JMIX_AUTO); | 195 dev = jvmInit(JSS_AUDIO_S16, afmt.channels, afmt.freq, JMIX_AUTO); |
188 if (dev == NULL) | 196 if (dev == NULL) |
189 { | 197 { |
190 fprintf(stderr, "jvmInit() returned NULL\n"); | 198 res = dmError(DMERR_INIT_FAIL, |
191 return 3; | 199 "jvmInit() returned NULL\n"); |
200 goto exit; | |
192 } | 201 } |
193 | 202 |
194 afmt.samples = afmt.freq / 4; | 203 afmt.samples = afmt.freq / 4; |
195 afmt.callback = audioCallback; | 204 afmt.callback = audioCallback; |
196 afmt.userdata = (void *) dev; | 205 afmt.userdata = (void *) dev; |
197 | 206 |
198 // Open the audio device | 207 // Open the audio device |
199 fprintf(stderr, "Trying to init SDL with: %d, %d, %d\n", | 208 |
209 fprintf(stderr, | |
210 "Trying to init SDL with: %d, %d, %d\n", | |
200 afmt.format, afmt.channels, afmt.freq); | 211 afmt.format, afmt.channels, afmt.freq); |
201 | 212 |
202 if (SDL_OpenAudio(&afmt, NULL) < 0) | 213 if (SDL_OpenAudio(&afmt, NULL) < 0) |
203 { | 214 { |
204 fprintf(stderr, "Couldn't open audio: %s\n", SDL_GetError()); | 215 res = dmError(DMERR_INIT_FAIL, |
205 return 4; | 216 "Couldn't open audio: %s\n", |
217 SDL_GetError()); | |
218 goto exit; | |
206 } | 219 } |
207 | 220 |
208 // Initialize player | 221 // Initialize player |
209 if ((plr = jmpInit(dev)) == NULL) | 222 if ((plr = jmpInit(dev)) == NULL) |
210 { | 223 { |
211 fprintf(stderr, "jmpInit() returned NULL\n"); | 224 res = dmError(DMERR_INIT_FAIL, |
212 return 4; | 225 "jmpInit() returned NULL\n"); |
226 goto exit; | |
213 } | 227 } |
214 | 228 |
215 // Initialize playing | 229 // Initialize playing |
216 jvmSetCallback(dev, jmpExec, plr); | 230 jvmSetCallback(dev, jmpExec, plr); |
217 jmpSetModule(plr, mod); | 231 jmpSetModule(plr, mod); |
250 } | 264 } |
251 } | 265 } |
252 | 266 |
253 printf("----------------------------------------------------\n"); | 267 printf("----------------------------------------------------\n"); |
254 | 268 |
269 exit: | |
255 SDL_LockAudio(); | 270 SDL_LockAudio(); |
256 SDL_PauseAudio(1); | 271 SDL_PauseAudio(1); |
257 jmpClose(plr); | 272 jmpClose(plr); |
258 jvmClose(dev); | 273 jvmClose(dev); |
259 jssFreeModule(mod); | 274 jssFreeModule(mod); |
261 | 276 |
262 SDL_Quit(); | 277 SDL_Quit(); |
263 | 278 |
264 jssClose(); | 279 jssClose(); |
265 | 280 |
266 return 0; | 281 return res; |
267 } | 282 } |