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 }