changeset 2258:c146033f1f6a

Cleanups.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 16 Jun 2019 23:31:58 +0300
parents c7495fcaffa9
children 8ca515ab9c84
files tools/mod2wav.c
diffstat 1 files changed, 27 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/tools/mod2wav.c	Sun Jun 16 22:33:05 2019 +0300
+++ b/tools/mod2wav.c	Sun Jun 16 23:31:58 2019 +0300
@@ -88,7 +88,7 @@
     {
         case 0:
             dmPrintBanner(stdout, dmProgName,
-                "[options] [sourcefile] [destfile]");
+                "[options] [sourcefile] [destfile.wav]");
 
             dmArgsPrintHelp(stdout, optList, optListN, 0);
             exit(0);
@@ -142,10 +142,10 @@
 
 BOOL argHandleFile(char *currArg)
 {
-    if (!optInFilename)
+    if (optInFilename == NULL)
         optInFilename = currArg;
     else
-    if (!optOutFilename)
+    if (optOutFilename == NULL)
         optOutFilename = currArg;
     else
     {
@@ -208,6 +208,8 @@
 
     dmWriteWAVChunk(outFile, &wav.chData);
 }
+
+
 int main(int argc, char *argv[])
 {
     DMResource *inFile = NULL;
@@ -215,9 +217,9 @@
     JSSModule *mod = NULL;
     JSSMixer *dev = NULL;
     JSSPlayer *plr = NULL;
+    size_t bufLen = 1024*4, dataTotal, dataWritten, sampSize;
+    Uint8 *dataBuf = NULL;
     int result = -1;
-    size_t bufLen = 1024*4, dataTotal, dataWritten, sampSize;
-    Uint8 *mb = NULL;
 
     dmInitProg("mod2wav", "XM/JSSMOD to WAV renderer", "0.2", NULL, NULL);
     dmVerbosity = 1;
@@ -225,7 +227,7 @@
     // Parse arguments
     if (!dmArgsProcess(argc, argv, optList, optListN,
         argHandleOpt, argHandleFile, OPTH_BAILOUT))
-        exit(1);
+        return 1;
 
     // Check arguments
     if (optInFilename == NULL || optOutFilename == NULL)
@@ -242,7 +244,7 @@
     {
         dmErrorMsg("Error opening input file '%s', %d: %s\n",
             optInFilename, result, dmErrorStr(result));
-        return 1;
+        goto exit;
     }
 
     // Read module file
@@ -273,18 +275,19 @@
     {
         dmErrorMsg("Error loading module file, %d: %s\n",
             result, dmErrorStr(result));
+        goto exit;
     }
 
     // Check if we have anything
     if (mod == NULL)
-        return 3;
+        goto exit;
 
     // Try to convert it
     if ((result = jssConvertModuleForPlaying(mod)) != DMERR_OK)
     {
         dmErrorMsg("Could not convert module for playing, %d: %s\n",
             result, dmErrorStr(result));
-        return 3;
+        goto exit;
     }
 
     // Open mixer
@@ -292,11 +295,11 @@
     if (dev == NULL)
     {
         dmErrorMsg("jvmInit() returned NULL\n");
-        return 4;
+        goto exit;
     }
 
     sampSize = jvmGetSampleSize(dev);
-    if ((mb = dmMalloc(bufLen * sampSize)) == NULL)
+    if ((dataBuf = dmMalloc(bufLen * sampSize)) == NULL)
     {
         dmErrorMsg("Could not allocate mixing buffer\n");
         return 5;
@@ -310,7 +313,7 @@
     if ((plr = jmpInit(dev)) == NULL)
     {
         dmErrorMsg("jmpInit() returned NULL.\n");
-        return 6;
+        goto exit;
     }
 
     // Set callback
@@ -341,7 +344,7 @@
         int err = dmGetErrno();
         dmErrorMsg("Error opening output file '%s' #%d: %s.\n",
             optInFilename, err, dmErrorStr(err));
-        return 7;
+        goto exit;
     }
 
     // Write initial header
@@ -364,16 +367,15 @@
 
         if (writeLen > 0)
         {
-            jvmRenderAudio(dev, mb, writeLen);
+            jvmRenderAudio(dev, dataBuf, writeLen);
 #if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
-            jssEncodeSample16((Uint16 *)mb, writeLen * optOutChannels, jsampSwapEndianess);
+            jssEncodeSample16((Uint16 *)dataBuf, writeLen * optOutChannels, jsampSwapEndianess);
 #endif
-            dataWritten = fwrite(mb, sampSize, writeLen, outFile);
+            dataWritten = fwrite(dataBuf, sampSize, writeLen, outFile);
             if (dataWritten < writeLen)
             {
                 dmErrorMsg("Error writing data!\n");
-                fclose(outFile);
-                return 8;
+                goto exit;
             }
             dataTotal += dataWritten;
         }
@@ -386,19 +388,23 @@
     if (fseek(outFile, 0L, SEEK_SET) != 0)
     {
         dmErrorMsg("Error rewinding to header position!\n");
-        return 9;
+        goto exit;
     }
 
     dmWriteWAVHeader(outFile, jvmGetSampleRes(dev), optOutFreq, optOutChannels, dataTotal);
 
     // Done!
-    fclose(outFile);
+    dmMsg(1, "OK.\n");
 
+exit:
+    if (outFile != NULL)
+        fclose(outFile);
+
+    dmFree(dataBuf);
     jmpClose(plr);
     jvmClose(dev);
     jssFreeModule(mod);
     jssClose();
 
-    dmMsg(1, "OK.\n");
     return 0;
 }