changeset 1208:fa758951720f

Remove some code duplication.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 05 Mar 2015 21:24:12 +0200
parents 59b5821b5cf9
children cb31e57982f2
files minijss/jloadjss.c
diffstat 1 files changed, 16 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/minijss/jloadjss.c	Thu Mar 05 21:23:47 2015 +0200
+++ b/minijss/jloadjss.c	Thu Mar 05 21:24:12 2015 +0200
@@ -26,19 +26,17 @@
         return DMERR_OUT_OF_DATA
 
 
-#if defined(JM_SUP_PATMODE_1) || defined(JM_SUP_PATMODE_3)
-static int jssGetConvertedNote(DMResource *inFile, JSSNote *pnote)
+static int jssDoGetConvertedNote(DMResource *inFile, JSSNote *pnote, Uint8 note)
 {
     Uint8 tmp;
 
-    JSGETBYTE(&tmp);
-
-    if (tmp == 127)
+    if (note == 127)
         pnote->note = jsetNoteOff;
-    else if (tmp == 0)
+    else
+    if (note == 0)
         pnote->note = jsetNotSet;
     else
-        pnote->note = tmp - 1;
+        pnote->note = note - 1;
 
     JSGETBYTE(&tmp);
     pnote->instrument = (tmp > 0) ? tmp - 1 : jsetNotSet;
@@ -54,7 +52,14 @@
 
     return DMERR_OK;
 }
-#endif
+
+
+static inline int jssGetConvertedNote(DMResource *inFile, JSSNote *pnote)
+{
+    Uint8 tmp;
+    JSGETBYTE(&tmp);
+    return jssDoGetConvertedNote(inFile, pnote, tmp);
+}
 
 
 #if defined(JM_SUP_PATMODE_2) || defined(JM_SUP_PATMODE_4)
@@ -101,27 +106,9 @@
     }
     else
     {
-        tmp = packb;
-
-        if (tmp == 127)
-            pnote->note = jsetNoteOff;
-        else
-        if (tmp == 0)
-            pnote->note = jsetNotSet;
-        else
-            pnote->note = tmp - 1;
-
-        JSGETBYTE(&tmp);
-        pnote->instrument = (tmp > 0) ? tmp - 1 : jsetNotSet;
-
-        JSGETBYTE(&tmp);
-        pnote->volume = (tmp > 0) ? tmp - 1 : jsetNotSet;
-
-        JSGETBYTE(&tmp);
-        pnote->effect = (tmp > 0) ? tmp - 1 : jsetNotSet;
-
-        JSGETBYTE(&tmp);
-        pnote->param = (tmp == 0 && pnote->effect == jsetNotSet) ? jsetNotSet : tmp;
+        int ret;
+        if ((ret = jssDoGetConvertedNote(inFile, pnote, packb)) != DMERR_OK)
+            return ret;
     }
 
     return DMERR_OK;